Telegram-melding van batterijpercentage van Zigbee-devices

Gestart door Joost, 18 juli 2021, 07:27:21

Vorige topic - Volgende topic

Joost

Onderstaand PHP-script geeft een melding op Telegram indien:

       
  • het zondag 20.00 uur (overzicht van alle Zigbee-devices met batterij
  • een batterij van een Zigbee-devices lager dan 25% is.

<?php
include("/home/pi/domoticz/scriptsjoost/php/functions.php");
include(
"/home/pi/domoticz/scriptsjoost/php/settings.php");

$today date('w');
$time date("H:i");

//PHP cURL GET request
$get_data callAPI('GET''http://127.0.0.1/api/4831A9C634/sensors'false);
$response json_decode($get_datatrue);

// melding batterij < 25%
   
foreach ($response as $device) {
      if (isset(
$device['config']['battery'])) {
         if (((
$device['type']=='ZHAHumidity')) || (($device['type']=='ZHAPresence')) || (($device['type']=='ZHAOpenClose')) || (($device['type']=='ZHALightLevel'))) {   
            
$level $device['config']['battery'];
            if (
$level 25) {
            
Telegram('Batterij van ' $device['name'] . ' is ' $level '%. Tijd voor een nieuwe batterij!',false,1);
            }
         }
      }
   }

// Op zondag 20:00 uur overzicht van alle batterij-percentages
$text1 ''
if ((
$today == 0) && ($time == "20:00")) {
   foreach (
$response as $device) {
      if (isset(
$device['config']['battery'])) {
         if (((
$device['type']=='ZHAHumidity')) || (($device['type']=='ZHAPresence')) || (($device['type']=='ZHAOpenClose')) || (($device['type']=='ZHALightLevel'))) {   

            
$level $device['config']['battery'];
            
$text1 $text1.'battery level ' $device['name'] . ': ' $level '%'.PHP_EOL
            
//Telegram('battery level ' . $device['name'] . ': ' . $level . '%',false,1);
         
}
      }
   }
}
Telegram($text1,false,1);
?>