Leere Batterien suchen, Varieblen die Lange nicht geändert werden

Moin,

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.

danke.

Klar. Such mal nach dem Watchdog Modul im Store :slight_smile:

paresy

Oder Variablenüberwachung im Store [emoji14]
Michael

danke!!

das sieht jetzt besser aus, als das was ich mir gedacht habe :wink:

Watchdog ist wirklich genau das was ich wollte, auch extrem einfach einzurichten. Hab eine 15 minuten gebraucht.

Jetzt wäre es noch extrem cool wenn jemand ein Skript dazu hat den „aktive alarme“ status per Email zu versenden.

Auslösen kann man das ja einfach wenn der Alarm an ist, dann schick den Inhalt davon weg, aber da happert es bei mir doch noch.

danke

Hallo,

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);
			}
		}
	}

?>

shelly


<?php
$MinBat = GetValue(20668);
$sound = "connected";


    // Shelly1 = {9E5FA0B2-AA98-48D5-AE07-78DEA4B0370A}
    // Shelly2 = {BE266877-6642-4A80-9BAA-8C5B3B4DAF80}
    // Shelly3EM = {108ECEFF-642A-4B1F-9608-E592E31DBA11}
    // Shelly4Pro = {F56CC544-581D-42EB-AAF0-F5E9E908916C}
    // ShellyConfigurator = {BE86AD40-3F66-E34D-98FC-ED69A12DB131}
    // ShellyDimmer = {69B501C7-DCE8-4A4A-910C-D3954473E654}
    // ShellyEM = {53A4EF84-0CF9-44D4-B70E-4B84E0DCE9B3}
    // ShellyFlood = {C360BA67-99A3-4F37-932B-B851D4E10AD6}
    // ShellyHT = {F2EE9948-94F6-4BA6-BDC9-E59E440F3DB0}
    // ShellyPlug = {ED5E1057-C47A-4D73-A130-B4E2912A026C}
    // ShellyRGBW2 = {3286C438-2174-E03B-85CE-B6B7C1A685D0}
    // ShellySense = {F86F268B-BC23-41AC-B107-16EEF661A4D7}
    // ShellySmoke = {88A5611C-CD57-4255-9F57-E420CE784C81}
    // ShellyVintage = {9BFE4A38-47C9-775E-A6BE-DA338817A639}
    // ShellyWindow = {24BDCF16-A370-6F72-8CBD-9B9968899FED}


	// Zu aktualisierende Modultypen festlegen
	$ModuleGUIDList = array ();
    array_push($ModuleGUIDList, '{F2EE9948-94F6-4BA6-BDC9-E59E440F3DB0}');
    array_push($ModuleGUIDList, '{C360BA67-99A3-4F37-932B-B851D4E10AD6}');
    array_push($ModuleGUIDList, '{88A5611C-CD57-4255-9F57-E420CE784C81}');
    array_push($ModuleGUIDList, '{24BDCF16-A370-6F72-8CBD-9B9968899FED}');
	 


	// 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('Shelly_Battery', $InstanceID);
			
			if ( (GetValueInteger($BatteryVarId)<$MinBat) && (GetValueInteger($BatteryVarId)>0) )
			{
                $BatLevel = GetValueInteger($BatteryVarId);
				echo "Batterie von ".IPS_GetName($InstanceID)." $BatLevel%
";
                WFC_PushNotification(20221, "Shelly", "Batterie von ".IPS_GetName($InstanceID)." $BatLevel%" , $sound, 0);

                
			}
		}
	}

?>