FHEM Forum

FHEM - Hausautomations-Systeme => Homematic => Thema gestartet von: ak323 am 03 November 2019, 20:50:17

Titel: [gelöst] HM-TC-IT-WM-W-EU Funk-Wandthermostat AP - measured-temp/desired-temp
Beitrag von: ak323 am 03 November 2019, 20:50:17
Hi zusammen,
ich versuche mittel HM-TC-IT-WM-W-EU Funk-Wandthermostaten einen Aktor (Relais für Fußbodenheizungsventil) zu steuern.
Also eine simple Fußbodenheizungssteuerung in der Art

     IF Raumtemperatur < gewünschte Temperatur THEN aktiviere Aktor

Ich bekomme die measured-temp und desired-temp jedoch nicht vom HM-TC-IT-WM-W-EU Funk-Wandthermostat in die DOIF oder THRESHOLD Bedingung übertragen ...

Ich habe es in dieser Art versucht:
define TestHzReglerBuero DOIF ([Thermostat_BUERO:desired-temp] > [Thermostat_BUERO:measured-temp]) (set RELAIS on) DOELSEIF ([Thermostat_BUERO:desired-temp] < [Thermostat_BUERO:measured-temp]) (set RELAIS off)

Irgendjemand eine Idee ... gefunden habe ich nach Stunden suchen leider nichts.

VG ak323
Titel: Antw:HM-TC-IT-WM-W-EU Funk-Wandthermostat AP - measured-temp/desired-temp
Beitrag von: Otto123 am 03 November 2019, 21:45:08
Hi,

kannst Du mal bitte ein list TestHzReglerBuero zeigen?
Ich nehme an RELAIS ist kein HM Aktor?
Ich würde es wie das Beispiel in der Doku ansetzen https://fhem.de/commandref_DE.html#DOIF_Weitere_Anwendungsbeispiele
define TestHzReglerBuero DOIF ([Thermostat_BUERO:measured-temp] < ([Thermostat_BUERO:desired-temp]-1)) (set RELAIS on) DOELSEIF ([Thermostat_BUERO:measured-temp] > ([Thermostat_BUERO:desired-temp]) (set RELAIS off)

Wobei Du einfach auch das Reading level vom Channel _SwitchTr auswerten könntest.

Gruß Otto
Titel: Antw:HM-TC-IT-WM-W-EU Funk-Wandthermostat AP - measured-temp/desired-temp
Beitrag von: ak323 am 03 November 2019, 22:34:18
Hallo Otto,
hier mein list. Achtung RELAIS ist nur ein Ersatz für "set XXX on" ! Nein kein Homematic, sondern 1-Wire ..

Ein "get  Thermostat_BUERO param measured-temp" in der Kommandozeile liefert mir auch den richtigen Temperaturwert zurück !



Internals:
   DEF        ([Thermostat_BUERO:desired-temp] > [Thermostat_BUERO:measured-temp]) (set RELAIS on) DOELSEIF ([Thermostat_BUERO:desired-temp] < [Thermostat_BUERO:measured-temp]) (set RELAIS off)
   NAME       TestHzReglerBuero
   NR         432
   NTFY_ORDER 50-TestHzReglerBuero
   STATE      cmd_1
   TYPE       DOIF
   READINGS:
     2019-11-03 22:30:54   Device          Thermostat_BUERO
     2019-11-02 22:26:48   cmd             1
     2019-11-02 22:26:48   cmd_event       Thermostat_BUERO
     2019-11-02 22:26:48   cmd_nr          1
     2019-11-03 22:30:54   e_Thermostat_BUERO_desired-temp 24.0
     2019-11-03 22:30:54   e_Thermostat_BUERO_measured-temp 22.3
     2019-11-02 22:26:48   error           set RELAIS on: Please define RELAIS first
     2019-11-02 22:26:48   state           cmd_1
   condition:
     0          ReadingValDoIf($hash,'Thermostat_BUERO','desired-temp') > ReadingValDoIf($hash,'Thermostat_BUERO','measured-temp')
     1          ReadingValDoIf($hash,'Thermostat_BUERO','desired-temp') < ReadingValDoIf($hash,'Thermostat_BUERO','measured-temp')
   devices:
     0           Thermostat_BUERO
     1           Thermostat_BUERO
     all         Thermostat_BUERO
   do:
     0:
       0          set RELAIS on
     1:
       0          set RELAIS off
   helper:
     event      desired-temp: 24.0,humidity: 50,measured-temp: 22.3,T: 22.3 desired: 24.0
     globalinit 1
     last_timer 0
     sleeptimer -1
     timerdev   Thermostat_BUERO
     timerevent desired-temp: 24.0,humidity: 50,measured-temp: 22.3,T: 22.3 desired: 24.0
     triggerDev Thermostat_BUERO
     timerevents:
       desired-temp: 24.0
       humidity: 50
       measured-temp: 22.3
       T: 22.3 desired: 24.0
     timereventsState:
       desired-temp: 24.0
       humidity: 50
       measured-temp: 22.3
       state: T: 22.3 desired: 24.0
     triggerEvents:
       desired-temp: 24.0
       humidity: 50
       measured-temp: 22.3
       T: 22.3 desired: 24.0
     triggerEventsState:
       desired-temp: 24.0
       humidity: 50
       measured-temp: 22.3
       state: T: 22.3 desired: 24.0
   internals:
   itimer:
   readings:
     0           Thermostat_BUERO:desired-temp Thermostat_BUERO:measured-temp
     1           Thermostat_BUERO:desired-temp Thermostat_BUERO:measured-temp
     all         Thermostat_BUERO:desired-temp Thermostat_BUERO:measured-temp
   regexp:
     0:
     1:
     all:
   state:
     STATE:
   trigger:
Attributes:
Titel: Antw:HM-TC-IT-WM-W-EU Funk-Wandthermostat AP - measured-temp/desired-temp
Beitrag von: Otto123 am 03 November 2019, 22:40:53
FHEM/DOIF spricht doch mit Dir:
Please define RELAIS first   :-[
Und bitte Codetags nehmen! https://forum.fhem.de/index.php/topic,71806.0.html

Meinen Vorschlag (bzw. aus der Doku) den Zusatz mit der Hysterese musst Du unbedingt einbauen!!!
Titel: Antw:HM-TC-IT-WM-W-EU Funk-Wandthermostat AP - measured-temp/desired-temp
Beitrag von: ak323 am 04 November 2019, 15:32:20
Otto you made my day !

Es funktioniert mit:
define TestHzReglerBuero DOIF ([Thermostat_BUERO:measured-temp] < ([Thermostat_BUERO:desired-temp]-1)) (set IO2 PIO.0 1) DOELSEIF ([Thermostat_BUERO:measured-temp] > [Thermostat_BUERO:desired-temp]) (set IO2 PIO.0 0)

DANKE !
Titel: Antw:[gelöst] HM-TC-IT-WM-W-EU Funk-Wandthermostat AP - measured-temp/desired-temp
Beitrag von: Otto123 am 04 November 2019, 16:51:17
Naja wenn das gerät dann mal da ist, ist es ganz einfach :)
Wie gesagt: Schau Dir mal das Reading level vom Channel _SwitchTr an.
Könnte so gehen (ungetestet) oder eigentlich auch noch viel einfacher :)
define TestHzReglerBuero DOIF ([Thermostat_BUERO_SwitchTr:level] > 0 ) (set IO2 PIO.0 1) DOELSEIF ([Thermostat_BUERO_SwitchTr:level] == 0) (set IO2 PIO.0 0)

Gruß Otto