FritzDECT200
-
- Beiträge: 8
- Registriert: 5. Aug 2019 22:08
FritzDECT200
Hallo, bin neu hier und openhab2 Beginner.
Ich habe gerade eine FritzDECT200 erfolgreich in OH2 eingebunden. Items und sitemap erstellt. Nun möchte ich die Steckdose mit dem eingebauten TempSensor kombinieren, also eine rule erstellen.
folgendes habe ich probiert:
rule "Frostschutz_Stall"
when
Item FRITZDECT200_CurrentTemperature < 30
then
FRITZDECT200_Outlet.sendCommand(OFF);
end
Leider ist das wohl nicht richtig so. Was ist daran falsch und wie muss es richtig lauten
Ich habe gerade eine FritzDECT200 erfolgreich in OH2 eingebunden. Items und sitemap erstellt. Nun möchte ich die Steckdose mit dem eingebauten TempSensor kombinieren, also eine rule erstellen.
folgendes habe ich probiert:
rule "Frostschutz_Stall"
when
Item FRITZDECT200_CurrentTemperature < 30
then
FRITZDECT200_Outlet.sendCommand(OFF);
end
Leider ist das wohl nicht richtig so. Was ist daran falsch und wie muss es richtig lauten
- udo1toni
- Beiträge: 15247
- Registriert: 11. Apr 2018 18:05
- Wohnort: Darmstadt
Re: FritzDECT200
So sieht es richtig aus:
Der when-Teil der Rule beschreibt Trigger. Es können mehrere Trigger angegeben werden, aber keine Bedingungen, die erfüllt sein müssen. Stattdessen muss man solche Bedingungen innerhalb des Execute-Teils abhandeln. Im vorliegenden Fall lautet die Bedingung, dass die Temperatur unter den Grenzwert 30 Grad gesunken ist. Damit die Rule nun nicht pausenlos ausgeführt wird, muss man zwei Bedingungen kombinieren, nämlich alte Temperatur >= 30 und aktuelle Temperatur < 30. previousState ist ist eine implizite Variable, die von openHAB zur Verfügung gestellt wird, wenn der Trigger changed heißt.
Ein Semikolon ist nur bei einer Anweisung notwendig, das ist return(); Damit bricht man die Rule vorzeitig ab.
Code: Alles auswählen
rule "Frostschutz_Stall"
when
Item FRITZDECT200_CurrentTemperature changed
then
if(previousState >= 30 && FRITZDECT200_CurrentTemperature.state < 30 )
FRITZDECT200_Outlet.sendCommand(OFF)
end
Ein Semikolon ist nur bei einer Anweisung notwendig, das ist return(); Damit bricht man die Rule vorzeitig ab.
openHAB4.3.3 stable in einem Debian-Container (bookworm) (Proxmox 8.3.5, LXC), mit openHABian eingerichtet
-
- Beiträge: 8
- Registriert: 5. Aug 2019 22:08
Re: FritzDECT200
ich probiere das mal aus und erwärme die DECT mit dem Fön auf 35 Grad, dann warte ich mal ab, aber schon mal vielen Dank für die Erklärung und den Code
-
- Beiträge: 8
- Registriert: 5. Aug 2019 22:08
Re: FritzDECT200
schade, hat leider nicht geklappt.
-
- Beiträge: 8
- Registriert: 5. Aug 2019 22:08
Re: FritzDECT200
hast Du noch eine Idee Udo? oder wer anders? Das muss es doch schon lange geben. Für Gewächshäuser, etc
- peter-pan
- Beiträge: 2758
- Registriert: 28. Nov 2018 12:03
- Wohnort: Schwäbisch Gmünd
Re: FritzDECT200
Wann soll sich denn die Steckdose wieder anschalten ?
Pi5/8GB(PiOS Lite 64-bit(bookworm)/SSD 120GB - OH4.3.5 openhabian
-
- Beiträge: 7
- Registriert: 27. Jul 2019 20:26
Re: FritzDECT200
Oft ist es Hilfreich in die Rules Log infos zu schreiben
Das hilft sehr beim Debugen.
mithilfe der Loginfos kann man sehen an welcher Stelle es hängt
Grüße aus dem Norden
Das hilft sehr beim Debugen.
Code: Alles auswählen
rule "Frostschutz_Stall"
when
Item FRITZDECT200_CurrentTemperature changed
then
logInfo("Frostschutz_Stall", "Temperatur hat gewechselt")
if(previousState >= 30 && FRITZDECT200_CurrentTemperature.state < 30 ){
logInfo("Frostschutz_Stall", "Comando senden")
FRITZDECT200_Outlet.sendCommand(OFF)
}
end
Grüße aus dem Norden
nemo me impune lacessit
- peter-pan
- Beiträge: 2758
- Registriert: 28. Nov 2018 12:03
- Wohnort: Schwäbisch Gmünd
Re: FritzDECT200
Hallo Tom,
ich denke, das Problem ist die If-Abfrage. Du verwendest, wie ich, sicherlich das UoM-System, welches im Fritz-Binding Standard ist. Dann sollte deine Regel etwa so aussehen:
ich denke, das Problem ist die If-Abfrage. Du verwendest, wie ich, sicherlich das UoM-System, welches im Fritz-Binding Standard ist. Dann sollte deine Regel etwa so aussehen:
Code: Alles auswählen
rule "Frostschutz_Stall"
when
Item Socket_Fritz_02_Temp changed
then
logInfo("Frostschutz_Stall", "Commando senden" + Socket_Fritz_02 + " Temp.: " + Socket_Fritz_02_Temp + " previous State : " + previousState) // Test
if( (Socket_Fritz_02_Temp.state as Number).floatValue < 25 && (previousState as Number).floatValue >= 25) {
logInfo("Frostschutz_Stall", "Comando senden" + Socket_Fritz_02)
Socket_Fritz_02.sendCommand(OFF)
}
end
/*
Alternativ:
if(Socket_Fritz_02_Temp.state < 24.6 | °C)
*/
Pi5/8GB(PiOS Lite 64-bit(bookworm)/SSD 120GB - OH4.3.5 openhabian
-
- Beiträge: 8
- Registriert: 5. Aug 2019 22:08
Re: FritzDECT200
super und vielen dank, probier ich gleich aus.
letzlich soll die Stchdose bei weniger als 5 Grad angehen, ist abergerade schwer auszuprobieren. deshalb hslte ich einen Fön davor und dann sollte sie beim abkühlen ausgehen
letzlich soll die Stchdose bei weniger als 5 Grad angehen, ist abergerade schwer auszuprobieren. deshalb hslte ich einen Fön davor und dann sollte sie beim abkühlen ausgehen
-
- Beiträge: 8
- Registriert: 5. Aug 2019 22:08
Re: FritzDECT200
achso, in der sitemap wird der aktuelle Temperaturwert richtig angezeigt