HM-CC-RT-DN mit Temperatur eines Fibaro Smoke Sensor FGSD002 versorgen

Begonnen von KraxelHuber, 11 Februar 2017, 17:10:36

Vorheriges Thema - Nächstes Thema

KraxelHuber

Hallo zusammen,

ich würde gerne die Temperatur meines Fibaro Smoke Sensor FGSD002 nutzen, um sie meinem Homematic Heizungsthermostat HM-CC-RT-DN zur Verfügung zu stellen.

Ich bin bisher wie im Wiki beschrieben vorgegangen:
https://wiki.fhem.de/wiki/HM-CC-RT-DN_Funk-Heizk%C3%B6rperthermostat#Simulation_von_Fensterkontakten_und_externen_Temperatursensoren

Bis zu Schritt 4 habe ich alles hinbekommen. Schritt 5 verstehe ich nicht ganz. Bin mir nicht sicher, wie ich hier testen muss. Das Heizungsthermostat heißt bei mir "thermostat_keller_flur". Die Eingabe von set thermostat_keller_flur peerXref liefert bei mir eine Fehlermeldung:
Unknown argument peerXref, choose one of assignHmKey burstXmit clear deviceRename fwUpdate getConfig getRegRaw inhibit raw regBulk regSet reset sysTime unpair

Ich gehe aber davon aus, dass das peering funktioniert hat. Siehe List:
Internals:
   DEF        512E0A01
   NAME       thermostat_keller_flur_weather
   NOTIFYDEV  global
   NR         167
   STATE      18.6
   TYPE       CUL_HM
   chanNo     01
   device     thermostat_keller_flur
   peerList   virtual_temp_sensor_keller_flur_Sensor1,
   Helper:
     Dblog:
       Measured-temp:
         Dblog:
           TIME       1486829083.71643
           VALUE      18.6
       State:
         Dblog:
           TIME       1486829083.71643
           VALUE      18.6
   Readings:
     2017-01-20 20:42:27   R-sign          off
     2017-02-11 16:25:04   RegL_01.          08:00 00:00
     2017-02-11 17:04:43   measured-temp   18.6
     2017-02-11 16:25:03   peerList        virtual_temp_sensor_keller_flur_Sensor1,
     2017-02-11 17:04:43   state           18.6
   Helper:
     peerIDsRaw ,00000201,00000000
     Expert:
       def        1
       det        0
       raw        1
       tpl        0
     Role:
       chn        1
     Shadowreg:
Attributes:
   group      Heizung
   model      HM-CC-RT-DN
   peerIDs    00000000,00000201,


Mein Problem liegt jetzt darin, die gemessene Temperatur des Rauchmelders an das Thermostat zu übergeben. Ich habe folgendes at definiert:
Internals:
   CFGFN
   COMMAND    { my $T=(ReadingsVal("smokesensor_keller_flur","temperature",20.0)); fhem "set virtual_temp_sensor_keller_flur_Sensor1 virtTemp $T" }
   DEF        +*00:01 { my $T=(ReadingsVal("smokesensor_keller_flur","temperature",20.0)); fhem "set virtual_temp_sensor_keller_flur_Sensor1 virtTemp $T" }
   NAME       at_virtual_temp_sensor_keller_flur
   NR         560
   NTM        17:07:47
   PERIODIC   yes
   RELATIVE   yes
   REP        -1
   STATE      Next: 17:07:47
   TIMESPEC   00:01
   TRIGGERTIME 1486829267.65162
   TRIGGERTIME_FMT 2017-02-11 17:07:47
   TYPE       at
   Helper:
     Dblog:
       Next:
         Dblog:
           TIME       1486829207.65632
           VALUE      17:07:47
   Readings:
     2017-02-11 17:06:47   state           Next: 17:07:47
Attributes:


Das funktioniert aber nicht. Im Log stehen die folgenden Meldungen:

2017.02.11 17:06:47 3: set virtual_temp_sensor_keller_flur_Sensor1 virtTemp 19.0 C : virtTemp requires parameter: [off|-20.0..50.0]
2017.02.11 17:06:47 3: at_virtual_temp_sensor_keller_flur: virtTemp requires parameter: [off|-20.0..50.0]

Kann es etwas damit zu tun haben, dass das Reading "temperature" einen String zurückliefert, der nicht richtig verarbeitet werden kann? Wer kann mir den entscheidenden Tip geben?

MadMax-FHEM

#1
Bei mir liefert der Rauchmelder folgendes:

temperature 20.3 C

D.h. das passt nat. nicht zu [off|-20.0..50.0]...

Du musst das 'C' wegmachen...

Statt ReadingsVal mal ReadingsNum probieren...

EDIT: allerdings weiß ich nicht wie oft der Rauchmelder die Temperatur meldet... Könnte etwas träge werden oder zu "Überschwingern" führen... Öftere TempMeldung geht dann wohl auf die Batterielebensdauer...

Gruß, Joachim
FHEM PI3B+ Bullseye: HM-CFG-USB, 40x HM, ZWave-USB, 13x ZWave, EnOcean-PI, 15x EnOcean, HUE/deCONZ, CO2, ESP-Multisensor, Shelly, alexa-fhem, ...
FHEM PI2 Buster: HM-CFG-USB, 25x HM, ZWave-USB, 4x ZWave, EnOcean-PI, 3x EnOcean, Shelly, ha-bridge, ...
FHEM PI3 Buster (Test)

KraxelHuber

@MadMax

Danke für den Tip!
Wo finde ich eigentlich eine gute Beschreibung zu ReadingsVal und ReadingsNum? Google ist da eher enthaltsam.

Ich habe das at jetzt wie folgt geändert:

+*00:01 { my $T=(ReadingsNum("smokesensor_keller_flur","temperature",20.0)); fhem "set virtual_temp_sensor_keller_flur_Sensor1 virtTemp $T" }

Das scheint zu funktionieren, da im Log jetzt folgendes auftaucht:

2017.02.11 21:15:49 3: CUL_HM set virtual_temp_sensor_keller_flur_Sensor1 virtTemp 18.0

Allerdings scheint es das Thermostat nicht sonderlich zu interessieren. Das Reading "measured-temp" wird nicht auf 18.0°C gesetzt. Woran kann das liegen? Fehlt noch etwas?

List thermostat_keller_flur
Internals:
   DEF        512E0A01
   NAME       thermostat_keller_flur_weather
   NOTIFYDEV  global
   NR         167
   STATE      17.6
   TYPE       CUL_HM
   chanNo     01
   device     thermostat_keller_flur
   peerList   virtual_temp_sensor_keller_flur_Sensor1,
   Helper:
     Dblog:
       Measured-temp:
         Dblog:
           TIME       1486844900.80499
           VALUE      17.6
       State:
         Dblog:
           TIME       1486844900.80499
           VALUE      17.6
   Readings:
     2017-01-20 20:42:27   R-sign          off
     2017-02-11 16:25:04   RegL_01.          08:00 00:00
     2017-02-11 21:28:20   measured-temp   17.6
     2017-02-11 16:25:03   peerList        virtual_temp_sensor_keller_flur_Sensor1,
     2017-02-11 21:28:20   state           17.6
   Helper:
     peerIDsRaw ,00000201,00000000
     Expert:
       def        1
       det        0
       raw        1
       tpl        0
     Role:
       chn        1
     Shadowreg:
Attributes:
   group      Heizung
   model      HM-CC-RT-DN
   peerIDs    00000000,00000201,



MadMax-FHEM

#3
Ich habe noch nicht wirklich mit virtuellen Sensoren gearbeitet...

Es sollte aber im Forum schon so einiges diskutiert worden sein...

Evtl. mal im Homematic Unterforum suchen...

EDIT: vielleicht hilft das weiter https://forum.fhem.de/index.php/topic,19686.0/topicseen.html

Gibt es beim virtuellen Sensor auch eine Peerlist? Steht da der Weather Kanal des Thermostaten drin?

Evtl. braucht es noch was damit der Thermostat auch die Temp bekommt bzw. der virtuelle Sensor diese überträgt...

Sorry, Joachim
FHEM PI3B+ Bullseye: HM-CFG-USB, 40x HM, ZWave-USB, 13x ZWave, EnOcean-PI, 15x EnOcean, HUE/deCONZ, CO2, ESP-Multisensor, Shelly, alexa-fhem, ...
FHEM PI2 Buster: HM-CFG-USB, 25x HM, ZWave-USB, 4x ZWave, EnOcean-PI, 3x EnOcean, Shelly, ha-bridge, ...
FHEM PI3 Buster (Test)

KraxelHuber

Ja, im Virtual Sensor steht eine peer list, in der auch der Weather Channel des entsprechenden Thermostats eingetragen ist. Umgekehrt ist im Weather Channel der Virtual Sensor eingetragen. Aber wie zu sehen ist, ist der Temp Wert vom virtuellen Sensor (17.5°C) nicht als "measured-temp" beim Thermostat angekommen. Hier steht 17.0°C.

Internals:
   DEF        00000301
   NAME       virtualTempSensor_keller_sz_sensor1
   NOTIFYDEV  global
   NR         189
   STATE      set_virtTemp 17.5
   TYPE       CUL_HM
   chanNo     01
   device     virtualTempSensor_keller_sz
   peerList   thermostat_keller_sz_weather,
   Helper:
     Dblog:
       State:
         Dblog:
           TIME       1486935570.22221
           VALUE      set_virtTemp 17.5
       Temperature:
         Dblog:
           TIME       1486935570.21693
           VALUE      17.5
   Readings:
     2017-02-12 22:29:36   peerList        thermostat_keller_sz_weather,
     2017-02-12 22:39:30   state           set_virtTemp 17.5
     2017-02-12 22:39:30   temperature     17.5
   Helper:
     fkt        virtThSens
     virtTC     00
     Expert:
       def        1
       det        0
       raw        1
       tpl        0
     Role:
       chn        1
       vrt        1
     Vd:
       cmd        8470000003000000
       idh        0
       idl        768
       msgCnt     5
       msgRed     0
       next       1486935718.55178
       nextM      1486935718.55178
       typ        2
       val        00AF
       vin        17.5
Attributes:
   model      virtual_1
   peerIDs    4ED1EA01,
   webCmd     press short:press long



Internals:
   DEF        4ED1EA01
   NAME       thermostat_keller_sz_weather
   NOTIFYDEV  global
   NR         174
   STATE      17.0
   TYPE       CUL_HM
   chanNo     01
   device     thermostat_keller_sz
   peerList   virtualTempSensor_keller_sz_sensor1,
   Helper:
     Dblog:
       Measured-temp:
         Dblog:
           TIME       1486935668.23319
           VALUE      17.0
       State:
         Dblog:
           TIME       1486935668.23319
           VALUE      17.0
   Readings:
     2016-11-26 20:23:57   R-sign          off
     2016-11-26 22:15:09   RegL_01.        08:00 00:00
     2017-02-12 22:41:08   measured-temp   17.0
     2017-02-12 22:29:35   peerList        virtualTempSensor_keller_sz_sensor1,
     2017-02-12 22:41:08   state           17.0
   Helper:
     Expert:
       def        1
       det        0
       raw        1
       tpl        0
     Role:
       chn        1
Attributes:
   group      Heizung
   model      HM-CC-RT-DN
   peerIDs    00000000,00000301,


Ich werde mir den anderen Beitrag mal anschauen, der ist ja etwas länger. Danke für den Link.

MadMax-FHEM

Gut, dann ist ja schon mal richtig "verbunden"...

Allerdings denke ich fehlt noch etwas dass der virtuelle TempSensor seine Daten auch "zeitgerecht" zum Thermostaten überträgt...

Ich glaube das ist etwas "tricky" wenn ich den anderen Link/Thread noch so im Kopf hab (bin aber nur grob drüber geflogen).

Ich weiß nur, dass das Thermostat so alle ca. 3min "aufwacht" und dann die Werte erwartet.
Wenn dann nichts kommt, dann geht er wieder schlafen und arbeitet mit seinem internen Sensor...

Wie allerdings das "zeitgerechte" Senden geht weiß ich leider nicht...

Viel Erfolg, Joachim
FHEM PI3B+ Bullseye: HM-CFG-USB, 40x HM, ZWave-USB, 13x ZWave, EnOcean-PI, 15x EnOcean, HUE/deCONZ, CO2, ESP-Multisensor, Shelly, alexa-fhem, ...
FHEM PI2 Buster: HM-CFG-USB, 25x HM, ZWave-USB, 4x ZWave, EnOcean-PI, 3x EnOcean, Shelly, ha-bridge, ...
FHEM PI3 Buster (Test)

Linef

Aktueller Thread zu dem Thema:
https://forum.fhem.de/index.php/topic,45735.msg582875.html#new

Es gibt eine neue Option, mit der das ganze wesentlich stabiler wird - sofern's am Timing der Übertragung liegt.

Martin
fhem auf cubietruck, HM-USB-CFG-2, CUL-V3, 6x HM-CC-RT-DN, 5x HM-SEC-SD, 2x HM-SEC-SCo, 5x HM Eigenbausensoren, AVR-Heizungsgateway

KraxelHuber

Hallo Martin,

habe mir den anderen Thread durchgelesen. Ist ja ein richtig großes Thema. Ich habe mal ein bisschen mit dem cyclicMsgOffset Parameter innerhalb des Channels des virtuellen Sensors herum gespielt und Werte zwischen 100 und 500 ms ausprobiert. Ich kann nicht feststellen, dass das irgendwas gebracht hat. Ich habe auch nicht den Eindruck, dass jemals eine Temperatur erfolgreich vom virtuellen Sensor zum Thermostat übertragen wurde. Measured-temp und die Temperatur beim virtuellen Sensor stimmen bei acht Devices nicht überein.
Ich habe das Gefühl, dass ich irgendwas Grundlegendes falsch mache.