NEWS
[Gelöst] einfache Fenster-Regel
-
Hi,
ich bin nagelneu bei IoBroker und bin zunächst mal ziemlich beeindruckt.
Mein System: RPi3 mit Raspian und iobroker
Zunächst verwende ich testweise nur mal die folgenden Objekte:
-
Fenstersensor von HM
-
Funkthermostat von HM
-
einge HUE-Lampen
-
ein z-wave-Gerät
Das System funktioniert schon mal sehr gut und die Einrichtung war (mit Hilfe der vielen Anleitungen) sehr einfach.
Ich möchte nun beginnen eigene Regels erstellen - und hierbei möchte ich lieber JavaScript verwenden. Leider habe ich damit noch keine Erfahrung ,obwohl mir die "Einleitung zur JavaScript-Programmierung" sehr geholfen hat.
Ich denke, dass ich mit JavaScripot schnell klarkommen , wenn ich mal das Grundprinzip verstanden habe. Ich denke, dass ich das ganze sehr gut an einer sehr einfachen Regel erlernen könnte.
Die Regel soll: wenn der Fenstersensor von FALSE auf TRUE geht (also das Fenster geöffnet wird), den Thermostat auf "Fenster_geöffnet_Status" bringen (indem der entsprechende State of "true" gesetzt wird.
Hier die Regel - die leider nicht funktioniert:
` > // Beginn Fenster offen - Regel
when
Item "hm-rpc.0.MEQ1485344.1.STATE" changed from FALSE to TRUE // teste ob der Fenstersensor auf "offen" schaltet
then {
setstate("Thermostat_WC_Window_state", TRUE) // falls ja wird das Thermostat auf "Fenstermodus geschaltet
// }
end `
Ich denke, wenn ich diese - klar sehr einfache - Regel funktionstüchtig bekomme, dann kann ich auch komplexere Regeln erstellen.
Ich wäre daher sehr froh, wenn mir jemand mitteilen könnte, was an meiner Regel falsch ist.
Übrigens, der Log-Bereich - unterhalb des Script-Bereich - ist bei mir immer Grau, d.h. dort gibt es keine Log-Ausgabe wenn ich ein Script (mit dem Play-Symbol) starte (zB. auch bei Ausführen des Hello-Welt-Scripts (aus "Einführung Programmieren mit Javascript") zeigt keine Ausgabe.
Ich hoffe ich konnte mein Problem nachvollziehbar schildern und freue mich sehr über jede Hilfe.
schroedinger
-
-
Hallo schroedinger (der mit der Katze?) und Willkommen im Forum!
Vielleicht solltest du erst mal mit Blockly beginnen und dann dir den generierten Code ansehen.
Das erleichtert den Einstieg in die Syntax ungemein.
Gruß
Rainer
-
when
Item "hm-rpc.0.MEQ1485344.1.STATE" changed from FALSE to TRUE // teste ob der Fenstersensor auf "offen" schaltet
then { `
Das ist nicht Javascript. Richtig:if(getState("hm-rpc.0.MEQ1485344.1.STATE").val) { // testet ob Fenster offen ist
Allerdings möchtest Du direkt auf die Änderung geschlossen –> offen reagieren, also braucht es einen Auslöser.
on({id: "hm-rpc.0.MEQ1485344.1.STATE", val: true}, function() { // Triggern bei Wert = true setState("Thermostat_WC_Window_state", true); });
Bitte Groß-/Kleinschreibung beachten (ist meist klein) !!
Die Kommandos des Javascript-Adapters findest Du auf https://github.com/ioBroker/ioBroker.javascript/blob/master/README.md.
-
herzlichen Dank an beiden.
-
ich werde den Blockly -Rat beherzigen (und mir vorher ein paar Videos oder Tutorials dazu ansehen)
-
den Regel (von paul53) hat noch nicht funktioniert ; ich nehme aber an, dass das Problem noch woanders liegt - ich bin sicher, dass paul53s-Regel grundsätzlich richtig ist.
Ich werde mich (am Wochenende) erstmal etwas mehr in die Materie einlesen - und erst wenn ich dann immer noch nicht klar komme - wieder melden.
schroedinger (ja - der mit der Katze)
-
-
Hi, ich habe ein Blockly Script das eigentlich genau das macht. Bei mir wird die Temperatur noch in eine Variable geschrieben und nach dem Schließen wieder gezogen. Bei bedarf kann ich das gerne veröffentlichen.
Gruß Lars
Gesendet von iPhone mit Tapatalk Pro
-
Klingt so als würde der JavaScript Adapter gar nicht laufen. Schau mal bei Instanzen wie der Status des JS Adapters ist, sollte grün sein.
Gesendet von Unterwegs
-
… und genau so war's ...der Adapter lief nicht , nach dem Einschalten funktionierte es.
-> Anfängerfehler offensichtlich
Herzlichen Dank!
(habe den Thread als [solved] markiert.
-
Black veröffentliche es doch bitte, steh da gerade aufm schlauch ^^ ( oder vorm offenen Fenster ^^ )
Lg
-
Homematic kann das doch von Haus aus?
Direktverknüpfung zwischen Fensterkontakt und Thermostat und fertig.
Oder hab ich jetzt was falsch verstanden?
Gruß