Hallo zusammen, ich bekomme leider meine Rule nicht hin.
was mache ich falsch ??? :
der merker macht das Problem:
Fehlermeldung des openHab:
[ERROR] [.script.engine.ScriptExecutionThread] - Rule 'Test': An error occurred during the script execution: Could not invoke method: org.eclipse.xtext.xbase.lib.BooleanExtensions.operator_and(boolean,boolean) on instance: null
Meine Regel:
import org.openhab.core.library.types.*
import org.openhab.core.types.Command
import org.openhab.core.types.*
import org.openhab.core.items.GenericItem
var Number merkerTV = 0
rule "Test ON"
when
Item SteckdoseMitLeistungsmessung_2_Current changed
then
val SteckdoseMitLeistungsmessung_2_Current = (SteckdoseMitLeistungsmessung_2_Current.state as DecimalType).intValue
if ((SteckdoseMitLeistungsmessung_2_Current > 20) && (merkerTV = 0))
{
sendCommand(alexa_spielezimmer_licht, ON);
merkerTV = 1;
createTimer(now.plusSeconds(5)) [| sendCommand(alexa_spielezimmer_licht, OFF) ]
}
end
rule "Test OFF"
when
Item SteckdoseMitLeistungsmessung_2_Current changed
then
val SteckdoseMitLeistungsmessung_2_Current = (SteckdoseMitLeistungsmessung_2_Current.state as DecimalType).intValue
if ((SteckdoseMitLeistungsmessung_2_Current < 20) && (merkerTV = 1))
{
sendCommand(alexa_spielezimmer_licht, OFF);
merkerTV = 0
}
end
wenn jemand mir da weiter helfen könnte wäre ich echt froh.
ich habe nicht wirklich Ahnung vom Skripten ich kopiere mir die Sachen immer nur zusammen, dauert lange aber passt meistens
nur in diesen fall bin ich schon länger dran und nix passt
also wer kann mich retten ???
OpenHab Rule
Moderator: Co-Administratoren
Re: OpenHab Rule
Jetzt habe ich es mal so Probiert:
aber auch hier nicht der gewünschte Erfolg
val Number OFF = 0
val Number ON = 1
rule "Test"
when
Item SteckdoseMitLeistungsmessung_2_Current changed
then
if (SteckdoseMitLeistungsmessung_2_Current.state > 20) TV_State.postUpdate(ON)
if (SteckdoseMitLeistungsmessung_2_Current.state < 20) TV_State.postUpdate(OFF)
end
rule "TV Ein"
when
Item TV_State changed from 0 to 1
then
sendCommand(alexa_spielezimmer_licht, ON);
createTimer(now.plusSeconds(5)) [| sendCommand(alexa_spielezimmer_licht, OFF) ]
end
rule "TV Aus"
when
Item TV_State changed from 1 to 0
then
sendCommand(alexa_spielezimmer_licht, OFF)
end
das Item TV_State ist angelegt und läuft auch ich bekomme im log eine 1 oder 0 wie ich es wollte!
aber leider schaltet da nix ???
Fehler vom openHab:
[ERROR] [.script.engine.ScriptExecutionThread] - Rule 'TV Aus': The argument 'command' must not be null or empty.
ich komme da leider ohne euch echt nicht weiter !!!
LG, der Olli
aber auch hier nicht der gewünschte Erfolg
val Number OFF = 0
val Number ON = 1
rule "Test"
when
Item SteckdoseMitLeistungsmessung_2_Current changed
then
if (SteckdoseMitLeistungsmessung_2_Current.state > 20) TV_State.postUpdate(ON)
if (SteckdoseMitLeistungsmessung_2_Current.state < 20) TV_State.postUpdate(OFF)
end
rule "TV Ein"
when
Item TV_State changed from 0 to 1
then
sendCommand(alexa_spielezimmer_licht, ON);
createTimer(now.plusSeconds(5)) [| sendCommand(alexa_spielezimmer_licht, OFF) ]
end
rule "TV Aus"
when
Item TV_State changed from 1 to 0
then
sendCommand(alexa_spielezimmer_licht, OFF)
end
das Item TV_State ist angelegt und läuft auch ich bekomme im log eine 1 oder 0 wie ich es wollte!
aber leider schaltet da nix ???
Fehler vom openHab:
[ERROR] [.script.engine.ScriptExecutionThread] - Rule 'TV Aus': The argument 'command' must not be null or empty.
ich komme da leider ohne euch echt nicht weiter !!!
LG, der Olli
Re: OpenHab Rule
und mit der :
val Number OFF = 0
val Number ON = 1
rule "Test1"
when
Item SteckdoseMitLeistungsmessung_2_Current changed
then
if (SteckdoseMitLeistungsmessung_2_Current.state > 20) TV_State.postUpdate(ON)
if (SteckdoseMitLeistungsmessung_2_Current.state < 20) TV_State.postUpdate(OFF)
end
rule "Test2"
when
Item TV_State changed
then
if (TV_State=1) {
sendCommand(alexa_spielezimmer_licht, ON);
createTimer(now.plusSeconds(5)) [| sendCommand(alexa_spielezimmer_licht, OFF) ] Heating.sendCommand(ON)
}
if (TV_State=0) {
sendCommand(alexa_spielezimmer_licht, OFF);
}
end
Bekomme ich folgenden Fehler:
[ERROR] [.script.engine.ScriptExecutionThread] - Rule 'Test2': An error occurred during the script execution: Cannot assign a value in null context.
man man ich hätte mal was richtiges lernen sollen !!!
leider komme ich nicht klar damit ich mache mal ne pause und probiere es später weiter !!
vielleicht bekomme ich bis dahin auch einen Tip von euch ???
val Number OFF = 0
val Number ON = 1
rule "Test1"
when
Item SteckdoseMitLeistungsmessung_2_Current changed
then
if (SteckdoseMitLeistungsmessung_2_Current.state > 20) TV_State.postUpdate(ON)
if (SteckdoseMitLeistungsmessung_2_Current.state < 20) TV_State.postUpdate(OFF)
end
rule "Test2"
when
Item TV_State changed
then
if (TV_State=1) {
sendCommand(alexa_spielezimmer_licht, ON);
createTimer(now.plusSeconds(5)) [| sendCommand(alexa_spielezimmer_licht, OFF) ] Heating.sendCommand(ON)
}
if (TV_State=0) {
sendCommand(alexa_spielezimmer_licht, OFF);
}
end
Bekomme ich folgenden Fehler:
[ERROR] [.script.engine.ScriptExecutionThread] - Rule 'Test2': An error occurred during the script execution: Cannot assign a value in null context.
man man ich hätte mal was richtiges lernen sollen !!!
leider komme ich nicht klar damit ich mache mal ne pause und probiere es später weiter !!
vielleicht bekomme ich bis dahin auch einen Tip von euch ???
- Dragonfly
- Beiträge: 1249
- Registriert: 04.01.2010, 11:40
- Wohnort: Tyrol
- Hat sich bedankt: 1 Mal
- Danksagung erhalten: 4 Mal
- Kontaktdaten:
Re: OpenHab Rule
So pauschal helfen kann man da jetzt nicht wirklich, da man nicht weiß was z.B. TV_State ist.
Ist es vom Typ Switch? Dann so:
alexa_spielezimmer_licht.sendCommand(OFF) - das ist OH2
sendCommand(alexa_spielezimmer_licht, OFF) - das ist OH1 (geht auch unter OH2)
alexa_spielezimmer_licht - sollte auch vom Typ switch sein...
das solltest du nicht brauchen:falls es das ist, was ich denke.
Ist es vom Typ Switch? Dann so:
Code: Alles auswählen
rule "TV Aus"
when
Item TV_State changed from ON to OFF
then
alexa_spielezimmer_licht.sendCommand(OFF)
end
sendCommand(alexa_spielezimmer_licht, OFF) - das ist OH1 (geht auch unter OH2)
alexa_spielezimmer_licht - sollte auch vom Typ switch sein...
das solltest du nicht brauchen:
Code: Alles auswählen
val Number OFF = 0
val Number ON = 1
Re: OpenHab Rule
So, Danke erstmal für deine Unterstützung hat alles so geklappte wie ich es wollt.
mein Wunsch war wenn der Fernseher an ist soll das Ambilight reseted werden so das er auf Grabber steht.
beim Ausschalten auf eine Farbe nach Wahl mit Dimmung usw.
so hat es geklappt:
rule "Test1"
when
Item SteckdoseMitLeistungsmessung_2_Current changed
then
if (SteckdoseMitLeistungsmessung_2_Current.state > 20) TV_State.postUpdate(1)
if (SteckdoseMitLeistungsmessung_2_Current.state < 20) TV_State.postUpdate(0)
end
rule "TV Aus"
when
Item TV_State changed from 1 to 0
then
Ambilight_helligkeit.sendCommand(20);
Ambilight_Farbe.sendCommand("217,100,100")
end
rule "TV Ein"
when
Item TV_State changed from NULL to 1 or
Item TV_State changed from 0 to 1
then
Ambilight_helligkeit.sendCommand(100);
Ambilight_enabled.sendCommand(ON);
createTimer(now.plusSeconds(1)) [| sendCommand(Ambilight_enabled, OFF) ] Heating.sendCommand(ON);
end
TV_State wurde als Item so angelegt:
Number TV_State "TV State"
bin aber für jede Änderung oder Anregung offen
Danke noch mal
mein Wunsch war wenn der Fernseher an ist soll das Ambilight reseted werden so das er auf Grabber steht.
beim Ausschalten auf eine Farbe nach Wahl mit Dimmung usw.
so hat es geklappt:
rule "Test1"
when
Item SteckdoseMitLeistungsmessung_2_Current changed
then
if (SteckdoseMitLeistungsmessung_2_Current.state > 20) TV_State.postUpdate(1)
if (SteckdoseMitLeistungsmessung_2_Current.state < 20) TV_State.postUpdate(0)
end
rule "TV Aus"
when
Item TV_State changed from 1 to 0
then
Ambilight_helligkeit.sendCommand(20);
Ambilight_Farbe.sendCommand("217,100,100")
end
rule "TV Ein"
when
Item TV_State changed from NULL to 1 or
Item TV_State changed from 0 to 1
then
Ambilight_helligkeit.sendCommand(100);
Ambilight_enabled.sendCommand(ON);
createTimer(now.plusSeconds(1)) [| sendCommand(Ambilight_enabled, OFF) ] Heating.sendCommand(ON);
end
TV_State wurde als Item so angelegt:
Number TV_State "TV State"
bin aber für jede Änderung oder Anregung offen
Danke noch mal
- eiGelbGeek
- Beiträge: 979
- Registriert: 24.07.2014, 17:46
- Wohnort: Ruhrpottrandgebiet
- Hat sich bedankt: 105 Mal
- Danksagung erhalten: 19 Mal
Re: OpenHab Rule
ELV4Olli hat geschrieben:So, Danke erstmal für deine Unterstützung hat alles so geklappte wie ich es wollt.
mein Wunsch war wenn der Fernseher an ist soll das Ambilight reseted werden so das er auf Grabber steht.
beim Ausschalten auf eine Farbe nach Wahl mit Dimmung usw.
so hat es geklappt:
rule "Test1"
when
Item SteckdoseMitLeistungsmessung_2_Current changed
then
if (SteckdoseMitLeistungsmessung_2_Current.state > 20) TV_State.postUpdate(1)
if (SteckdoseMitLeistungsmessung_2_Current.state < 20) TV_State.postUpdate(0)
end
rule "TV Aus"
when
Item TV_State changed from 1 to 0
then
Ambilight_helligkeit.sendCommand(20);
Ambilight_Farbe.sendCommand("217,100,100")
end
rule "TV Ein"
when
Item TV_State changed from NULL to 1 or
Item TV_State changed from 0 to 1
then
Ambilight_helligkeit.sendCommand(100);
Ambilight_enabled.sendCommand(ON);
createTimer(now.plusSeconds(1)) [| sendCommand(Ambilight_enabled, OFF) ] Heating.sendCommand(ON);
end
TV_State wurde als Item so angelegt:
Number TV_State "TV State"
bin aber für jede Änderung oder Anregung offen
Danke noch mal
Nutze doch bitte Code Tags ... dann kann man das lesen
Code: Alles auswählen
rule "Test1"
when
Item SteckdoseMitLeistungsmessung_2_Current changed
then
if (SteckdoseMitLeistungsmessung_2_Current.state > 20) TV_State.postUpdate(1)
if (SteckdoseMitLeistungsmessung_2_Current.state < 20) TV_State.postUpdate(0)
end
rule "TV Aus"
when
Item TV_State changed from 1 to 0
then
Ambilight_helligkeit.sendCommand(20);
Ambilight_Farbe.sendCommand("217,100,100")
end
rule "TV Ein"
when
Item TV_State changed from NULL to 1 or
Item TV_State changed from 0 to 1
then
Ambilight_helligkeit.sendCommand(100);
Ambilight_enabled.sendCommand(ON);
createTimer(now.plusSeconds(1)) [| sendCommand(Ambilight_enabled, OFF) ] Heating.sendCommand(ON);
end
Nur weil es nicht geht, muss es nicht kaputt sein ^^
Apple for Work, Linux for Network, iOS for Mobility and still Windows for Solitaire
Apple for Work, Linux for Network, iOS for Mobility and still Windows for Solitaire