OnWire Relais Status abfragen

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

Servus

Ich verstehe dein Problem nicht ganz.
Hab hier ein ordinäres „getValue“. Funktioniert seit den frühzeiten von IPS.
Hardware ist ein DS2408 8fach I/O

gruß
bb

Naja, du versuchst einen OW_* Befehl für eine nicht Symcon OWInstanz aufzurufen. Darum der Fehler.
Du nutzt das Esera Modul. Wie man dort der Instanz sagt, hole einen aktuellen Wert vom Baustein, kann ich dir aber leider nicht sagen.
Dokumentation zum Modul wäre mein erster Tip.
Wobei eigentlich die Statusvariablen ja schon sich automatisch aktualisieren sollten.
Michael

Hey @bbernhard,

manchmal sieht man den Wald vor lauter Bäumen nicht mehr. Das kann ja alles so einfach sein. Aber einfach kann ja jeder. Ich will kompliziert. :slight_smile:

Spaß beiseite. Warum ich da nicht selbst drauf gekommen bin…man oh man

Danke für den Hinweis.

Beste Grüße
tomquenten