FritzDECT200

Einrichtung der openHAB Umgebung und allgemeine Konfigurationsthemen.

Moderatoren: seppy, udo1toni

Tom
Beiträge: 8
Registriert: 5. Aug 2019 22:08
Answers: 0

FritzDECT200

Beitrag von Tom »

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

Benutzeravatar
udo1toni
Beiträge: 15247
Registriert: 11. Apr 2018 18:05
Answers: 242
Wohnort: Darmstadt

Re: FritzDECT200

Beitrag von udo1toni »

So sieht es richtig aus:

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
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.
openHAB4.3.3 stable in einem Debian-Container (bookworm) (Proxmox 8.3.5, LXC), mit openHABian eingerichtet

Tom
Beiträge: 8
Registriert: 5. Aug 2019 22:08
Answers: 0

Re: FritzDECT200

Beitrag von Tom »

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

Tom
Beiträge: 8
Registriert: 5. Aug 2019 22:08
Answers: 0

Re: FritzDECT200

Beitrag von Tom »

schade, hat leider nicht geklappt.

Tom
Beiträge: 8
Registriert: 5. Aug 2019 22:08
Answers: 0

Re: FritzDECT200

Beitrag von Tom »

hast Du noch eine Idee Udo? oder wer anders? Das muss es doch schon lange geben. Für Gewächshäuser, etc

Benutzeravatar
peter-pan
Beiträge: 2758
Registriert: 28. Nov 2018 12:03
Answers: 30
Wohnort: Schwäbisch Gmünd

Re: FritzDECT200

Beitrag von peter-pan »

Wann soll sich denn die Steckdose wieder anschalten ?
Pi5/8GB(PiOS Lite 64-bit(bookworm)/SSD 120GB - OH4.3.5 openhabian

Thorvald
Beiträge: 7
Registriert: 27. Jul 2019 20:26
Answers: 0

Re: FritzDECT200

Beitrag von Thorvald »

Oft ist es Hilfreich in die Rules Log infos zu schreiben
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
mithilfe der Loginfos kann man sehen an welcher Stelle es hängt

Grüße aus dem Norden
nemo me impune lacessit

Benutzeravatar
peter-pan
Beiträge: 2758
Registriert: 28. Nov 2018 12:03
Answers: 30
Wohnort: Schwäbisch Gmünd

Re: FritzDECT200

Beitrag von peter-pan »

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:

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

Tom
Beiträge: 8
Registriert: 5. Aug 2019 22:08
Answers: 0

Re: FritzDECT200

Beitrag von Tom »

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

Tom
Beiträge: 8
Registriert: 5. Aug 2019 22:08
Answers: 0

Re: FritzDECT200

Beitrag von Tom »

achso, in der sitemap wird der aktuelle Temperaturwert richtig angezeigt

Antworten