Ich hab seit kurzem von dem „Problembehafteteten“ blauen DS9490R Gateway auf den Eservice 1Wire USB v2 Gateway umgestellt.
Der neue 1 Wire Gateway funktioniert jetzt einfach zuverlässig! Nicht wie der DS9490R - den musste meine Überwachung regelmässig durchstarten.(wbei das ein IPS Problem ist - da der 1 Wire Stick mit dem Maxim 1 Wire Viewer in diesen Fällen immer ansprechbar war - Nur in IPS nicht ).
-Egal-
Nun möchte ich fehlerhafte Sensoren anzeigen lassen.
Ich hab da derzeit einen kaputten Sensor
Hier mein Abfragewskript eines TEmp-Sensors:
if (IPS_SemaphoreEnter("TMEX", 1000))
{
TMEX_RequestRead(43332 /*[Haus\Temperaturen\Wohnzimmer\Wohnzimmer]*/);
SetValue(17112 /*[Haus\Temperaturen\Wohnzimmer\Wohnzimmer\Erfolgreicher Abruf]*/,date("d.m.y H:i:s"));
IPS_SemaphoreLeave("TMEX");
}
else
{
//Abfrage hat nicht funktioniert, deshalb Rückmeldung
SetValue(14472 /*[Haus\Temperaturen\Wohnzimmer\Wohnzimmer\Fehlerhafter Abruf]*/,date("d.m.y H:i:s"));
IPS_SemaphoreLeave("TMEX");
}
Leider gibt mir diese Abfrage immer einen erfolgreichen Abruf zurück.
Der Sensor sollte aber einen CRC Error ausspucken.
Zumindest spuckt das die manuelle Abfrage aus. Wo kann ich diesen CRC Error als Antwort abgreifen?
Zu meiner Variante mit dem Semaphore… Ich musste ne zeit lang die „weit“ entfernten 1 Wire Sensoren damit abfragen.
D.h. ich hab der Abfrage Zeit gegeben. -> Ansonsten hat IPS die WErte nicht erhalten. INteressanterweise konnte ich die per 1 Wire Viewer ohne FEhler abrufen
Jetzt mit dem Eservice Gateway ist das vermutlich hinfällig da der robuster ist und auch ne bessere Spannungsversorgung bereit stellt.
Die Abfrage gibt bei einem kaputten Sensor ein erfolgreich zurück
Nach meinem verständnis geht die Abfrage nur dann auf einen Fehler, wenn der 1 Wire Gateway selbst nicht funktioniert. - Nicht der Sensor selbst .
ergibt: ow_requestatus:
PHP-Error-Warning: 1-Wire Operation failed: CRC Error
Error in Script C:\IP-SYMCON\scripts\45754.ips.php on Line 2
Warning: 1-Wire Operation failed: CRC Error in C:\IP-SYMCON\scripts\45754.ips.php on line 2
für tmex_requestread:
PHP-Error-Warning: 1-Wire Operation failed: CRC Error
Error in Script C:\IP-SYMCON\scripts__compatibility.inc.php on Line 4676
Warning: 1-Wire Operation failed: CRC Error in C:\IP-SYMCON\scripts__compatibility.inc.php on line 4676
Wie könnte ich das nun abfangen?
Abfrage eines funktionierenden Sensors gibt den Temperaturwert aus.
P.S:
Ist die 1Wire Abfrage „OW_…“ dann die neue Variante. „TMEX_…“ die alte?
Damit erhalte ich einerseits einen Zeitstempel in die Variable „Erfolgreicher Abruf“ oder „Fehlerhafter Abruf“.
Desweiteren lasse ich das Ergebnis True oder False in die Variable „Ergebnis“ schreiben.
D.h. über die Variable „Ergebnis“ könnte man sich für das Ereignis „False“ - eine Nachricht schicken lassen, oder den Schalter ins Webfront verlinken…
Ich hätte aber auch selbst drauf kommen, wenn man in den 1 Wire Sensor mit „Befehl testen“ schaut. Da ist in meiner BETA bereits „OW_requeststatus“ hinterlegt