Seite 1 von 2

OH3 Pushbutton Funktion

Verfasst: 12. Feb 2021 10:43
von rbeudel
Hallo,
ich habe schon alles auf OH3 laufen. Die Rules jedoch sind noch alle DSL. Anscheinend führt das bei manchen Systemen zu java heap errors. Deshalb wird empholen die rules umzustellen. Bis jetzt komme ich aber selbst mit Blockly nicht weiter und frage einfach mal ob jemand folgende Funktion in javascript umsetzen kann:

Code: Alles auswählen

rule " Büro Erdkugel"
when
	Item FF_Office_BuroSchaltkasten6PRESSSHORT changed to ON
then
	if (FF_Office_Power_O2_on == 0){
	sendCommand(FF_Office_Power_O2, ON)
	FF_Office_Power_O2_on = 1}
else{
	sendCommand(FF_Office_Power_O2, OFF)
	FF_Office_Power_O2_on = 0}
end
Also Knopf drücken Steckdose an, wieder Knopf drücken Steckdose aus.
Eigentlich ganz einfach :oops:

Re: OH3 Pushbutton Funktion

Verfasst: 12. Feb 2021 13:59
von peter-pan
Ich kann zwar kein Java-Script, aber wie sieht denn die Regel in DSL aus ? Ist "Steckdose2Erdkugel_Schalter_on" eine Variable, die du vorher initialisierst ?

Re: OH3 Pushbutton Funktion

Verfasst: 12. Feb 2021 15:44
von rbeudel
Ich habe oben noch mal die OH2 rule reingeschrieben. Der FF_Office_Power_02 ist ein Osram Zwischenstecker item und der Item FF_Office_BuroSchaltkasten6PRESSSHORT ein einfacher Taster über homematic.

Re: OH3 Pushbutton Funktion

Verfasst: 12. Feb 2021 16:12
von peter-pan
...und was soll da passieren ?

Code: Alles auswählen

FF_Office_Power_O2_on = 0
Ist das auch ein Item ?

Re: OH3 Pushbutton Funktion

Verfasst: 12. Feb 2021 16:56
von rbeudel
Vor dem = das item, dahinter wahrscheinlich ein Platzhalter 0/1 für OFF/ON. Das habe ich irgentwo aus den tiefen des WWW, funktioniert aber.

Re: OH3 Pushbutton Funktion

Verfasst: 12. Feb 2021 17:17
von peter-pan
...aber wenn du das an das Item schicken willst, musst du das doch auch mit einem Kommando machen (postUpdate/sendCommand), oder ?

Re: OH3 Pushbutton Funktion

Verfasst: 12. Feb 2021 17:28
von rbeudel

Code: Alles auswählen

sendCommand(FF_Office_Power_O2, ON)
ist doch, oder ?

Re: OH3 Pushbutton Funktion

Verfasst: 12. Feb 2021 21:20
von peter-pan
???? Ich meine das hier:

Code: Alles auswählen

FF_Office_Power_O2_on = 0
Wenn das ein Item sein soll, dann denke ich, musst du es auch als solches behandeln.

Code: Alles auswählen

postUpdate(FF_Office_Power_O2_on, "0")

Re: OH3 Pushbutton Funktion

Verfasst: 12. Feb 2021 22:08
von OliverCJ
Wenn ich den Beitrag von rbeudel richtig verstanden habe, dann funktioniert diese rule ja so, wie er es möchte
Das habe ich irgentwo aus den tiefen des WWW, funktioniert aber.
und im Eröffnungsbeitrag
... und frage einfach mal ob jemand folgende Funktion in javascript umsetzen kann.
Es geht also nicht darum, ihm seine Regel zu korrigieren, weil sie nicht funktioniert, sondern darum, ob ihm diese rule jemand in javascript "übersetzen" kann.

Wenn dem so ist, dann bin ich leider raus. Sorry. Hab vor kurzem mal mit Java angefangen, aber über ein "Hello World." noch nicht hinaus gekommen...

PS. Mir kommt die allerdings auch komisch vor und so, als könne sie eigentlich nicht funktionieren (oder er enthält uns Teile vor).
FF_Office_BuroSchaltkasten6PRESSSHOR ist ein Hm Schalter
FF_Office_Power_02 ist ein Zwischenstecker
Was ist FF_Office_Power_O2_on??? Eine Variable? Wenn ja, dann...
Hier (FF_Office_Power_O2_on = 1) willst Du wahrscheinlich dieser Variablen einen Wert zuweisen. Aber wo ist die Variable definiert?

Ach ja, statt "sendCommand(FF_Office_Power_O2, ON)" schreibst Du besser "FF_Office_Power_O2.sendCommand(ON)"

Re: OH3 Pushbutton Funktion

Verfasst: 12. Feb 2021 23:00
von peter-pan
OliverCJ hat geschrieben: 12. Feb 2021 22:08 Es geht also nicht darum, ihm seine Regel zu korrigieren
Prinzipiell ist das richtig. Das habe ich ja auch gleich zu Anfang genauso wie du beantwortet(Ich kann kein Java-Script). Und schlussendlich sind wir auch zur gleichen Fragestellung gekommen: Was ist mit diesem Kommando FF_Office_Power_O2_on = 0. Evtl. ist das der Grund für den java heap error.

Die Rule-Darstellung war auch im ersten Beitrag zunächst etwas anders (Rules-Editor aus OH3) und wurde dann geändert. Es würde mich aber wundern, wenn diese Regel in OH2 so funktioniert hätte. Und dann wird sie wohl so auch nicht in einer anderen Script-Sprache funktionieren.