mit nachstehendem Skript lese ich die Aktualisierung einer 1-Wire Thermometers aus und schreibe es in eine Variable. So hab ich im Blick ob die Abfrage mal hängt.
<?
$zeit = IPS_GetVariable(46497 /*[Schlafzimmer\Heizung\Schlafzimmer 1-Wire Temp\Temperatur]*/);//lesen der Updatezeit mit der ID 12345
SetValue (23240 /*[Schlafzimmer\Raumtemperatur\letzte Thermostatabfrage]*/, date("d.m.Y H:i:s", $zeit['VariableUpdated']));//schreiben der Zeit in Variable 23456
?>
Nur im Blick haben reicht aber aktuell nicht, da ich zur Zeit sporadische Probleme mit 1-Wire habe die zur Heizperiode sehr ungünstig sind… :rolleyes:
Ich bräuchte ein Skript was Alarm schlägt (Variable setzt, mail verschickt, etc.) wenn eine Variable seit X Minuten nicht mehr aktualisiert wird.
Hat jemand sowas im Petto ? Die Suche hat mich hier nicht weitergebracht, ist auch schwer zu formulieren als Suchtext… :eek:
Es gabe mal die Funktion IPS_GetUpdateTime, um die letzte Aktualisierungszeit einer Variablen festzustellen.
Gibt es die noch?
Wenn ich die verwende kommt bei mir die Fehlermeldung
Fatal error: Call to undefined function IPS_GetUpdateTime() in [Scripte Vorlagen\Praxis – Watch Dog Timer] on line 11
Suche in der Dokumentation funktioniert seit Umstellung auf zweisprachig nicht mehr !!!
Sicher das GetUpdateTime noch implentiert ist ? Der Link aus dem einen Thread ist tot, in der Doku ist nix zu finden und im Skript funktionierts (auch als „IPS_GetUpdateTime“) nicht.
<?
/*
*******************************
IP-SYNCOM Event Scripting
*******************************
*/
//Trigger: alle 600 Sekunden
//GetUpdateTime gibt die Zeit der letzten Aktualisierung als UNIX Timestamp
;
$last_TX = IPS_GetUpdateTime (46497 /*[Schlafzimmer\Heizung\Schlafzimmer 1-Wire Temp\Temperatur]*/);
//Wenn über 2 Stunden (2*60*60=7200) nicht gesendet wurde > Alarm
if(($last_TX + 360) < (time())) {
echo "Alarm! Der 1-Wire Bus scheint nicht korrekt zu funktionieren !";
SMTP_SendMail(24364 /*[**Programme\eMail (xxx.xxx@gmx.de)]*/, "Alarm! 1-Wire Bus antwortet nicht !", "Die Abfrage des 1-Wire Temperatursensors im Schlafzimmer fand über eine Minute nicht statt.");;
}
?>
<?
/*
*******************************
IP-SYNCOM Event Scripting
*******************************
*/
//Trigger: alle 1200 Sekunden
//Lebt der Gas-Sensor noch?
//File: WatchDogHMS.ips.php
//GetUpdateTime gibt die Zeit der letzten Aktualisierung als UNIX Timestamp
$last_TX = IPS_GetVariable(12345);
//Wenn über 2 Stunden (2*60*60=7200) nicht gesendet wurde > Alarm
if(($last_TX['VariableUpdated'] + 7200) < (time())) {
echo "Alarm! Der Gas-Sensor ist defekt";
//"" TTS_Speak(37579 /*[Objekt #37579 existiert nicht]*/, "Alarm! Der Gas-Sensor ist defekt");
} else
{
echo "Alarm! Der Gas-Sensor ist ok";
}
?>
Da ich die Änderungen für „ab 2.0“ ja in meiner „neuen Version“ drin hatte, verstehe ich den Hinweis auf 1.0 und „alte Funktion“ nicht.
Oder war es das zusätzlich Klammerpaar bei time?