NEWS
[Blockly Script] Geht das überhaupt ? Status HM Sensoren abfragen und dann reagieren
-
Hallo zusammen,
ich versuche mich immer noch in den ioBroker einzuarbeiten und wollte mich jetzt an meinem ersten Script versuchen.
Was soll das Script machen:
In meinem HM System nutze ich eine 16fach LED Anzeige um an der Haustür direkt sehen zu können , ob noch ein Fenster geöffnet ist.( LED grün, Fenster geschlossen, LED rot, Fenster offen). Beim ersten mal, muß jedes Fenster einmal geöffnet und geschlossen werden, damit der richtige Status erkannt wird. Wenn jetzt jemand das Netzteil von der LED anzeige aus der Steckdose zieht, ist der Status aller Fenster unbekannt und ich kann durchs Haus rennen und jedes Fenster auf und zu machen . Das würde ich gerne über ein Script im ioBroker lösen.
( zur Info ich bin DAU was scripten angeht
Ich dachte so, aber das klappt nicht
Intervall gesteuert Abfrage ob HM LED Anzeige erreichbar ist.
nur wenn wieder erreichbar einmal alle Fenstersensoren abfragen und je nach Status ( offen = Rot , zu = Grün) HM Anzeige setzten
Erst wiederholen wenn Anzeige nicht erreichbar ist
klingt einfach, kriege ich aber nicht hin. Geht das überhaupt ? und wenn ja, kann mir jemand helfen ?
Was ich versucht habe, aber nicht weiter komme:
In der HM läuft für jedes Fenster ein kleines Programm
VG Uwe -
@HAL:Geht das überhaupt ? Status HM Sensoren abfragen … `
da muss man differenzieren.Bei Homematic kann man Batteriesensoren nicht aktiv abfragen.
In dem von dir geschilderten Fall ist jedoch anscheinend der korrekte Wert in der CCU hinterlegt, durch den Stromverlust jedoch nicht mehr dem Display bekannt.
Dies müsste per Skript wieder ins Lot zu bringen sein.
Gruß
Rainer
-
Also, dein Script haut so überhaupt nicht hin!
Du musst mit einen Objekt-Trigger anfangen, da stellst du z.B. deinen Fensterkontakt ein. Also, wenn der Zustand des Kontaktes sich verändert, soll was passieren.
In den Trigger kommt dann der Block steuere, in deinem Fall einen Eingang des Displays.
Wie sehen denn eigentlich die Datenpunkte des Displays in ioBroker aus?
Enrico
Edit: Ich habe wieder die Hälfte nicht richtig gelesen. :? Die Abfrage Datenpunkte zur Kontrolle kann dann über einen Zeittrigger oder auch über die Änderung des Verbindgusstatus erfolgen. Aber zeige mal bitte erstmal die Datenpunkte des Displays, dann machen wir hier weiter!
UNd ganz wichtig, schreibe mal noch Blockly in den Betreff rein, dann kommen noch mehr Experten dazu!
-
Ja, das mein 1.Versuch des Script "Käse" ist wurde mir auch klar. Die Datenpunkte des Display sehen so aus ( in diesem Falle LED = Rot):
Das kleine HM Programm ( Fenster auf = LED Rot, Fenster zu = LED Grün ) hat diese Datenpunkte:
-
Ohne auf den Rest des Skripts einzugehen:
Wenn du nicht 100% weißt, was du tust, wird ein "Wiederhole bis/solange"-Block dir mit sehr hoher Wahrscheinlichkeit das System lahmlegen.
Wiederkehrende Prüfungen sollten - wenn irgendwie möglich - mit Timeouts/Intervallen erfolgen.
-
@HAL:Was ich versucht habe, aber nicht weiter komme: `
HalloBist Du jetzt schon weiter gekommen?
Wie AlCazone schon geschrieben hat. Starte das Script nicht mit Deinen gesetzten Intervallen!
Grüße
-
@HAL:Was ich versucht habe, aber nicht weiter komme: `
HalloBist Du jetzt schon weiter gekommen?
Wie AlCazone schon geschrieben hat. Starte das Script nicht mit Deinen gesetzten Intervallen!
Grüße `
Ich denke über eine andere Vorgehensweise nach. Da sich die Fensterkontakte nicht aktive auslesen lassen, könnt es besser sein im Brockly Script den Status jedes Fensterkontaktes / oder der LED regelmäßig in Variable zu speichern ( open / close ). Das muß ich zunächst mal ausprobieren . Dann wäre der nächste Schritt alle 10 Sek ( oder so ) zu prüfen, ob die Anzeige erreichbar ist. Wenn nicht solange wiederholen, bis die Anzeige wieder erreichbar wird und dann einmal den Status zurück spielen.
Jetzt bin ich aber gerade mit der HW beschäftigt und stelle das etwas zurück.
VG Uwe
-
@HAL:Ich denke über eine andere Vorgehensweise nach. Da sich die Fensterkontakte nicht aktive auslesen lassen… `
Warum soll das nicht gehen?Melde Dich wenn Du weitermachen willst.
Grüße
-
@HAL:Ja, das mein 1.Versuch des Script "Käse" ist wurde mir auch klar. `
Versuch macht meistens klug! Die Sache mit den Schleifen haben schon viele hier erfolglos probiert, bzw. damit ihre Javascript-Instanz abschmieren lassen.
Die Sache mit den Statusmeldungen, die bleiben doch erhalten, sowohl in der CCU als auch in ioBroker. Dein Ansatz war ja schon nicht schlecht, nur eben ohne diese wiederholen-Blöcke.
Die Logik aus den CCU-Programmen würde ich gleich mit in das Skript einarbeiten, dann hast du schon mal einen Anfang. Versuchs mal.
Du könntest ja auch mal deinen ersten Versuch exportieren und hier einstellen, dann haben wir schonmal ein paar Datenpunkte aus deinen Objekten.
Enrico