Seite 1 von 1

Veränderung des Setpoints eines Raumthermostaten soll Heizung schalten

Verfasst: 5. Jan 2020 13:54
von michaL
Hallo miteinander und ein schönes neues Jahr,

Ich möchte mit einer Regel auf die Veränderung eines Setpoints bei einem Raumthermostaten (ZWave) reagieren.
Ich nutze openhab2 (v2.5), der Raumthermostat wird erkannt und ist eingebunden, d.h. wird als Thing geführt.
Den Channel "Setpoint (Heating)" (zwave:device:xxxxxx:node6:thermostat_setpoint_heating) habe ich mit dem Item ZWaveNode006xxxRoomThermostat_SetpointHeating verlinkt. Ich kann also z.b. über ein Panel die "Richttemperatur" ändern.

Wenn nun aber diese Temperatur am Gerät geändert wird, sollen Heizungen ein- bzw. ausgeschaltet werden, je nachdem, ob ein Wert über- oder unterschritten wird.

Leider bin ich in Bezug auf rules ein ziemlicher Anfänger. Vielleicht könnte mir da jemand auf die Sprünge helfen?
Ich wollte so etwas probieren wie

Code: Alles auswählen

rule "Heizung WZ an bei Kälte"

when
        Item ZWaveNode006xxxxxxRoomThermostat_SetpointHeating received update
then
        if (ZWaveNode006xxxxxxRoomThermostat_SetpointHeating.state>23) {
                sendCommand(ZWaveNode002SpiritThermostaticValveWZE_ThermostatMode, "1");
                sendCommand(ZWaveNode002SpiritThermostaticValveWZE_SetpointEnergyHeat, "22.5");
                sendCommand(ZWaveNode003SpiritThermostaticValveWZW_ThermostatMode, "1");
                sendCommand(ZWaveNode003SpiritThermostaticValveWZW_SetpointEnergyHeat, "22.5");
        }
        else {
                if (ZWaveNode006xxxxxxRoomThermostat_SetpointHeating.state<22) {
                        sendCommand(ZWaveNode002SpiritThermostaticValveWZE_ThermostatMode, "0");
                        sendCommand(ZWaveNode003SpiritThermostaticValveWZW_ThermostatMode, "0");
                }
        }
end
Das scheint aber nicht mal ansatzweise zu klappen.

Danke im Voraus für eure Hilfe.

Mfg Michael

Re: Veränderung des Setpoints eines Raumthermostaten soll Heizung schalten

Verfasst: 5. Jan 2020 21:37
von udo1toni
Ich nehme mal an, Setpoint bedeutet in diesem Zusammenhang Solltemperatur? Welcher Typ ist denn der Channel und das Item? Wie sind denn die Channel und Items definiert (über Paper UI oder über Textdatei)?

Semikola am Zeilenende sind in der Rules DSL nicht vorgesehen (Ausnahme: return sollte mit einem Semikolon versehen werden).

Allgemein sind kurze Itemnamen eine gute Idee ;) wobei natürlich trotzdem eine Zuordnung zur Funktion gegeben sein sollte. Sinnvoller ist aber sicher eine Benennung z.B. nach Räumen, aber nicht nach Geräten oder Technologien, da Items technologieunabhängig sind. Also lieber z.B. Wohnzimmer_Heizung1_Modus und Wohnzimmer_Heizung1_Solltemperatur (aber Wohn_Heiz1_Soll wäre ebenso eindeutig)

Weiterhin ist es eine gute Idee, die Methode der Action vorzuziehen, also lieber Item.sendCommand(Befehl) als sendCommand(Item, Befehl). Es kann notwendig sein, Umwege zu gehen, um gänzlich auf die Action zu verzichten, wenn man den Namen eines Items "errechnet", aber man kann komplett ohne die Action arbeiten.

Der Trigger ist eventuell auch nicht so günstig, versuche lieber mal changed statt received update

Re: Veränderung des Setpoints eines Raumthermostaten soll Heizung schalten

Verfasst: 9. Jan 2020 21:52
von Detlef
Hallo
Ist das Thema hör schon erledigt?
Ich wollte mein Raumthermostat auch ein wenig automatisch laufen lassen.
Also Geo Daten von bekannten Netzgeräte erkennen und dann je nach Entfernung zur HomeMatic auf Nachtabsenkung sowie WWUP aus und Alarmanlage an Beleuchtung nach Helligkeit an oder aus sowie vielleicht auch einige Rollos vorerst schalten.