Seite 2 von 2
Re: OH3 Pushbutton Funktion
Verfasst: 13. Feb 2021 00:38
von udo1toni
FF_Office_Power_O2_on ist ziemlich sicher eine globale Variable. Es ist aber gleich in mehrfacheer Hinsicht Quatsch, das so zu realisieren.
Die korrekte Umsetzung von Toggle ist sehr viel einfacher so zu erledigen:
Code: Alles auswählen
rule "Büro Erdkugel"
when
Item FF_Office_BuroSchaltkasten6PRESSSHORT changed to ON
then
FF_Office_Power_O2.sendCommand(if(FF_Office_Power_O2.state != ON) ON else OFF)
end
Dem Item wird der Befehl ON geschickt, falls der Status des Items nicht ON ist, falls der Status ON ist, wird OFF gesendet.
Der Trigger der Rule ist mutmaßlich auch wesentlich zu kompliziert, allerdings kommt es da natürlich drauf an, der Taster genau angebunden ist. Gewöhnlich gibt es aber ein Event Channel, der dann SHORT_PRESSED oder LONG_PRESSED als Trigger schickt. Es braucht dazu gar kein Item.
Re: OH3 Pushbutton Funktion
Verfasst: 13. Feb 2021 10:10
von rbeudel
Ich kann Euch versichern, das die Rule so wie sie im ersten Beitrag steht unter openhab2 monatelang unter ständiger Nutzung einwandfrei lief. Sie läuft auch unter OH3. Die java errors haben nicht direkt etwas mit dieser rule zu tun, sondern sollen auftreten wenn viele dsl rules laufen. Bei mir lief das system manchmal nur 4 Stunden und oh3 musste mit systemctl restart neu gestartet werden. Dann war das log voll mit diesen java Fehlern. Als workaround habe ich schon in der oh3 config Datei die Java einstellungen angepasst, dann läuft das system mehrere Tage. Mir wurde im englischen Forum emphohlen die dsl rules gegen js auszutauschen. Das wollte ich mit dieser eigenlich simplen rule anfangen. Wie immer hat @udo1toni diese schon einmal mit seinem Genie

stark verbessert und verkürzt, so das ich es jetzt noch einmal mit blockly versuchen werde.
Re: OH3 Pushbutton Funktion
Verfasst: 13. Feb 2021 15:41
von int5749
rbeudel hat geschrieben: ↑13. Feb 2021 10:10
Die java errors haben nicht direkt etwas mit dieser rule zu tun, sondern sollen auftreten wenn viele dsl rules laufen. Bei mir lief das system manchmal nur 4 Stunden und oh3 musste mit systemctl restart neu gestartet werden. Dann war das log voll mit diesen java Fehlern.
Da scheint eher noch etwas anderes im argen zu sein und OH 3 reagiert nur anders darauf? Bei mir läuft das System mit 55 Rules ohne Probleme und Fehler und Warnhinweise. Oder hast Du deutlich mehr als nur 55 Rules??
Gruß,
INT5749
Re: OH3 Pushbutton Funktion
Verfasst: 13. Feb 2021 15:50
von rbeudel
So,
erst einmal an die Experten eine Entschuldigung. Ich habe tatsächlich in meinem Beispiel die erste Zeile die Variabelendefinition vergessen.
Vorher war es eine rules Datei mit vielen rules. Jetzt hat jede rule seine Datei. Dabei habe ich die Deklariation ganz oben vergessen.
Jetzt habe ich auch aus
Code: Alles auswählen
rule "Büro Erdkugel"
when
Item FF_Office_BuroSchaltkasten6PRESSSHORT changed to ON
then
FF_Office_Power_O2.sendCommand(if(FF_Office_Power_O2.state != ON) ON else OFF)
end
ein js gemacht
trigger
Code: Alles auswählen
if (itemRegistry.getItem('Steckdose2Erdkugel_Schalter').getState() != 'ON') {
events.sendCommand('Steckdose2Erdkugel_Schalter', 'ON');
} else {
events.sendCommand('Steckdose2Erdkugel_Schalter', 'OFF');
}
Screenshot (15).jpg
Die Bezeichnungen haben sich etwas geändert.
So der Anfang ist gemacht, danke für die Unterstützung. Jetzt kommen die harten Fälle.
Viele Grüße,
Ralf
Re: OH3 Pushbutton Funktion
Verfasst: 13. Feb 2021 16:03
von lukh
Über die UI kann ich vielleicht helfen. Der Trigger sollte sein:
FF_Office_BuroSchaltkasten6PRESSSHORT changed
Dann folgendes Script ausführen:
Code: Alles auswählen
var tasterBuero = itemRegistry.getItem("FF_Office_BuroSchaltkasten6PRESSSHORT").getState();
if(tasterBuero == "ON") {
events.sendCommand("FF_Office_Power_O2", "ON");
} else {
events.sendCommand("FF_Office_Power_O2", "OFF");
}
Re: OH3 Pushbutton Funktion
Verfasst: 13. Feb 2021 20:12
von rbeudel
Danke @ lukh ,
so wie ich es gemacht habe geht es auch.