Hallo alle zusammen,
heute muss ich mal wieder selbst eine Frage stellen.
Ich muss von OnWire Relais den Status prüfen können. Hintergrund: Ich habe eine Zisterne und noch keinen automatischen Überlauf. Ich muss also mit der Kreiselpumpe Wasser abpumpen, wenn die Zisterne zu voll wird. (sonst läuft mir die Suppe in den Kriechkeller zurück) Dazu habe ich seit 10 Monaten ein Script am laufen, was diese Aufgabe übernimmt.
Im Haus habe ich 2 Bussysteme. LCN und OnWire. Mit OnWire wollte ich ursprünglich mal Geld sparen, da die LCN Steine doch recht teuer sind. Die Nachteile von OneWire kannte ich zum damaligen Zeitpunkt noch nicht. Nun habe ich die Steine übrig, da ich diese im Haus selbst nicht mehr einsetze. Für die Gartenbewässerung sind diese aber ausreichend.
Heute ist mir aber fast die Pumpe abgebrannt. Die Zisterne war voll, die Pumpe hat Ihren Dienst aufgenommen, das Ventil sollte vorher einschalten, tat es aber nicht. Nun läuft die Pumpe, aber das Wasser konnte nirgendswo hin - die Ventile waren ja zu.
Zur Veranschaulichung hier ein Teil vom Script
//pumpe automatisch einschalten
if($fuellstandProzent >= $schwellwerEin){
if(GetValue(52849)== FALSE){ //damit aufgrund des scripttimers die befehle nicht alle x sekunden ausgeführt werden
setDiaplayInfos($reciver, "Abpumpen EIN");
LCN_SwitchRelay(50036, TRUE); //3 wege ventil umschalten auf zisterne
foreach($virtuelleVentile as $k => $v){
if(getValue($k) == TRUE){ //virtuelle ventile prüfen
RequestAction($v, true); //physisches ventile einschalten
usleep(500000); //0,5 sekunden verzögerung damit die 1-wire befehle nicht verschluckt werden
}
}
setValue(52849, TRUE); //symbol im frontend setzen zur anzeige des automatischen abpumpen
usleep(1000000);
LCN_SwitchRelay(41174, TRUE); //pumpe einschalten
}
}
Mit dem Befehl
var_dump(OW_RequestStatus(31207);
//Rasen Holzlager (busmodule\1-Wire\DS 2408 Relaisbaustein I Bewässerung)
bekomme ich aber den Fehler
<br />
<b>Warning</b>: Instance #31207 does not exist in <b>/var/lib/symcon/scripts/13490.ips.php</b> on line <b>3</b><br />
bool(false)
Die 31207 ist aber definiert. Ich bekomme ja ein FALSE zurück…also habe ich das Relais manuell eingeschaltet, das Script nochmal gestartet in der Hoffnung nun würde ich ein TRUE bekommen - pahhh Pusteblume.
Es muss doch eine Möglichkeit geben, den Status einer OnWire Relais abzufragen.
In diesem Beitrag hatte ich zu meiner IPS Anfangszeit schon mal was angefragt…
und @Dr.Niels hatte mir damals den Hinweis gegeben, für die damalige Anfragen nur RequestAction zu nehmen. Nun, ich als Fuchs dachte mir nun, das mache ich mit RequestStatus genauso. Aber den Befehl kennt IPS gar nicht. Jetzt bin ich am A…
Wie kann ich denn nun den Status eines OnWire Relais abfragen zum prüfen?
Vielen Dank für Hinweise.
Beste Grüße
tomquenten