Heizungssteuerung mit DOIF

Begonnen von bjoernbo, 10 September 2015, 08:16:22

Vorheriges Thema - Nächstes Thema

bjoernbo

Hallo zusammen,

ich habe mich seit kurzem mal mit der Funktion DOIF auseinander gesetzt und hierzu eine Frage, da ich leider nicht weiterkomme.
Ich habe im Garten "Aussen" eine NetatmoWetterstation. Ich möchte nun, dass wenn die Außentemperatur unter <= 10 Grad ist die Heizung im Wohnzimmer angeht. Vom ControlMode "manual" in "auto" wechselt.

define hzg_wohnzimmer DOIF ([Aussen:temperature] <= 10) (set Wohnzimmer.Wandthermostat:controlMode "auto") DOELSEIF
(Wohnzimmer.Wandthermostat:controlMode "manual")


1. ich bekomme folgende Meldung
Zitathzg_wohnzimmer DOIF: no trigger in condition: Wohnzimmer.Wandthermostat:controlMode "manual"

2. habe ich in der CommandRef gelesen das dies nicht so sinnvoll ist und ich mit "alwaysOn" arbeiten soll!?

Könnte mir jem. weiterhelfen? Vielen Dank!

Raspberry Pi 3 - FB6490C - Synology NAS DS916+ - NETATMO - HUE - SIEMENS G-Tag'S - FTUI - EchoDOT -

Brockmann

Es muss am Ende entweder DOELSEIF(Bedingung)(Aktion) oder DOELSE(Aktion) heißen, also in dem Fall vermutlich

define hzg_wohnzimmer DOIF ([Aussen:temperature] <= 10) (set Wohnzimmer.Wandthermostat:controlMode "auto") DOELSE
(set Wohnzimmer.Wandthermostat:controlMode "manual")

bjoernbo

Danke Brockmann, die Einbindung hat jetzt funktioniert, allerdings bekomme ich nicht das gewünschte Ergebnis.
(Habe den Wert für die Temperatur mal auf 20 Grad gesetzt in der Hoffnung das sich dadurch der Status ändert, leider nicht) :-[+
Zitat([Aussen:temperature] < 20) (set Wohnzimmer.Wandthermostat:controlMode eq "auto") DOELSE (set Wohnzimmer.Wandthermostat:controlMode eq "manual")
Raspberry Pi 3 - FB6490C - Synology NAS DS916+ - NETATMO - HUE - SIEMENS G-Tag'S - FTUI - EchoDOT -

Brockmann

Das liegt daran, dass Du da - warum auch immer - "eq"s eingefügt hast, die da nichts zu suchen haben.

SvenJust


  • Die Notation device:reading ist erst ab featurelevel 5.7, lt. http://fhem.de/commandref_DE.html#set erlaubt.
  • Die Verwendung von setreading sollte funktionieren.
  • In der Zuweisung ist ein Vergleich (eq). Richtig sollte folgendes sein:
([Aussen:temperature] < 20) (setreading Wohnzimmer.Wandthermostat controlMode auto) DOELSE (setreading Wohnzimmer.Wandthermostat controlMode manual)ungetestet

...da war jemand schneller...
FTUI, Raspberry PI/SSD, CUL CC1101, HMLAN, 10x HM-LC-Bl1PBU-FM, HM-LC-Sw4-WM (KWL Pluggit P300), HM-WDS30-OT2-SM (Sonnensensor), HM-Sec-SCo, LW-12 Wifi LED, CUL Selbstbau nanoCUL 433 (IT), Arduino (S0-Stromverbrauch), OW DS2480 (OWX_ASYNC) 8x DS18B20, MQTT (Fröling P4), MYSENSORS (Roto Rollläden)

bjoernbo

Danke für die schnelle Unterstützung. Leider ohne Erfolg. Kann es ggf. daran liegen, dass ich bei der Netatmo-Wetterstation den Alias Namen verwende???
Ps: Die Wetterstation zeigt aktuell 16.7 Grad an :-)
Raspberry Pi 3 - FB6490C - Synology NAS DS916+ - NETATMO - HUE - SIEMENS G-Tag'S - FTUI - EchoDOT -

Brockmann

Zitat von: bjoernbo am 10 September 2015, 13:44:41
Kann es ggf. daran liegen, dass ich bei der Netatmo-Wetterstation den Alias Namen verwende???
Ja. Das DOIF reagiert auf Events, die das entsprechende Device triggert. Dabei kannst Du Dich am Event monitor orientieren. Nur was da drin steht, triggert auch ein DOIF. Und Aliase tauchen im Event monitor nicht auf.

Generell bei Frage zu DOIFs möglichst ein list <Name des DOIFs> machen und mitposten. Am Besten in dem Moment, wo das DOIF sich nicht so wie erwartet verhält. Das beschleunigt die Ursachenforschung.


bjoernbo

Dann weiß ich wo mein Problem liegt: Die Netatmo hat als NAME
Zitatnetatmo_M02:00:00:00:24:a2
und die Doppelpunkte werden bei der Anlage von doif als Zeitparameter interpretiert.
Zitathzg_wohnzimmer DOIF: unknown expression format: 00



list:
ZitatInternals:
   DEF        ([Aussen:temperature] < 20) (setreading Wohnzimmer.Wandthermostat controlMode auto) DOELSE (setreading Wohnzimmer.Wandthermostat controlMode manual)
   NAME       hzg_wohnzimmer
   NR         327
   NTFY_ORDER 50-hzg_wohnzimmer
   STATE      initialized
   TYPE       DOIF
   Readings:
     2015-09-10 13:59:57   state           initialized
   Devices:
   Helper:
     globalinit 1
     last_timer 0
     sleeptimer -1
   Itimer:
   State:
   Timerfunc:
Attributes:
   loglevel   1
   room       Wohnzimmer
Raspberry Pi 3 - FB6490C - Synology NAS DS916+ - NETATMO - HUE - SIEMENS G-Tag'S - FTUI - EchoDOT -

Brockmann

Dann musst Du das Device umbenennen (rename-Kommando). Wenn da noch Filelogs, SVGs usw. dranhängen, musst Du das allerdings alles manuell nachziehen.
Deshalb benennen ich Device immer von Anfang an sinnvoll bzw. benennen automatisch erzeugte ggf. um. Alias verwende ich gar nicht mehr.

Im list sieht man, dass das DOIF noch nie getriggert wurde, aber Du hast ja selbst erkannt, warum.