ich habe diverse xcomfort Geräte (BINBAT, Temperatur, etc) und ca. 20 Shellys (Float, HT, etc).
Nun kommt es immer mal vor das ein Shelly oder ein xcomfort einfach mal leer gehen. Sogar 50% Akku und nie wieder gesehen - bis ich die Batterie getauscht habe.
Bei einem Float Sensor der z.B. unter der Waschemaschine oder Poolpumpe liegt guckt man nun nicht ständig auf die Batterie, der meldet sich und dann ist eilig.
Hat jemand ein Skript mit dem man villeicht variablen auslesen kann um zu prüfen welche Varible lange nicht geändert wurde?
Alle xcomfort und Shelly senden ja immer Signal Qualität, Temperatur, oder sonst was (sofern die Batterie ausreicht).
Dann könnte man daraus eine Email genereien mit dem variablen die Zeit 1-2 Tagen nicht geändert wurden.
Und die leeren Dinger finden.
hier eine Ausgabe der Batterie für Shelly und xcomfort. Ich lasse nun beides laufen. per Whatdog finde ich Geräte die von 100% direkt auf 0 gehen, und per Skript finde ich Geräte die bald leer gehen.
Als nächstes versuche ich das ins IPS View einzubinden, irgendwie eine HTLM übergabe der Variable Liste, oder so
xomfort
<?php
$MinBat = GetValue(47971);
$sound = "connected";
// Liste aller XComfort Modultypen:
// xComfort Binary Input = {3040A77D-3E9C-42D4-A1B6-329EFE8086DB}
// xComfort Configurator = {5DD921D4-4712-443F-B89F-03434A4DBF94}
// xComfort Dimmer = {8050FEEC-C875-4BDD-9143-D15134B89D35}
// xComfort Energy = {814067F0-EACB-43C3-99BD-5CB9B2F8FB9E}
// xComfort Gateway = {D2DCE381-19A7-4D14-B819-49C0539BC350}
// xComfort HRV = {E4693C3F-95F1-48B6-9443-4A6B3EE0FACA}
// xComfort Heating = {586D59EE-04A8-4896-B49D-63B4DD9618EF}
// xComfort Humidity = {3EBA1AB7-72CA-48D2-8F89-813E085D41BB}
// xComfort Impulse = {A374DCF0-CEDE-4EB7-B6A8-E92787E19B25}
// xComfort One Channel Heating = {62444FDF-FBF0-8F98-50B3-B1E85ADD86E2}
// xComfort Remote = {DCBD8143-83AB-4068-8FC0-0C92A93AA8A8}
// xComfort Room Control = {1A1C4C67-C99D-4D3E-8A34-23581CE8CCAA}
// xComfort Shutter = {1B7B5B7D-CAA9-4AB5-B9D8-EC805EC955AD}
// xComfort Switch = {27DD9788-802E-45B7-BA54-FB97141398F7}
// xComfort Temperature = {591B4A05-E5BF-4EEA-BC34-36E6F1CC9D56}
// xComfort Value RX = {DA2FCC12-2DE1-404A-8A5E-1C6AF05F96A2}
// xComfort Value TX = {ED6A1E00-81C7-416F-9F97-1F2CC8F45B15}
// Zu aktualisierende Modultypen festlegen
$ModuleGUIDList = array ();
array_push($ModuleGUIDList, '{3040A77D-3E9C-42D4-A1B6-329EFE8086DB}');
array_push($ModuleGUIDList, '{591B4A05-E5BF-4EEA-BC34-36E6F1CC9D56}');
array_push($ModuleGUIDList, '{8050FEEC-C875-4BDD-9143-D15134B89D35}');
array_push($ModuleGUIDList, '{814067F0-EACB-43C3-99BD-5CB9B2F8FB9E}');
array_push($ModuleGUIDList, '{E4693C3F-95F1-48B6-9443-4A6B3EE0FACA}');
array_push($ModuleGUIDList, '{586D59EE-04A8-4896-B49D-63B4DD9618EF}');
array_push($ModuleGUIDList, '{3EBA1AB7-72CA-48D2-8F89-813E085D41BB}');
array_push($ModuleGUIDList, '{A374DCF0-CEDE-4EB7-B6A8-E92787E19B25}');
array_push($ModuleGUIDList, '{1B7B5B7D-CAA9-4AB5-B9D8-EC805EC955AD}');
array_push($ModuleGUIDList, '{27DD9788-802E-45B7-BA54-FB97141398F7}');
// Aktualisiere alle Instanzen
foreach($ModuleGUIDList AS $ModuleGUID)
{
// Alle Instanzen suchen, die zu der Modul-GUID passt
$InstanceList = IPS_GetInstanceListByModuleID($ModuleGUID);
foreach($InstanceList AS $InstanceID)
{
$BatteryVarId = IPS_GetObjectIDByIdent('BatteryVariable', $InstanceID);
if ( (GetValueInteger($BatteryVarId)<$MinBat) && (GetValueInteger($BatteryVarId)>0) )
{
$BatLevel = GetValueInteger($BatteryVarId);
echo "Batterie von ".IPS_GetName($InstanceID)." $BatLevel%
";
WFC_PushNotification(20221, "xcomfort", "Batterie von ".IPS_GetName($InstanceID)." $BatLevel% " , $sound, 0);
}
}
}
?>