FHEM Forum

FHEM => Anfängerfragen => Thema gestartet von: siggel am 19 November 2020, 20:01:58

Titel: Homematic eTRV-B oder eTRV2 in fhem, FTUI und Alexa einbinden
Beitrag von: siggel am 19 November 2020, 20:01:58
Hallo zusammen,
ich möchte möglichst viele Funktionalitäten der Homematic Thermostate eTRV-B oder eTRV2 aus fhem/FTUI nutzen können. Folgendes habe ich mir schon anhand früherer Posts zusammengesucht und selbst ergänzt (ginge sicher auch eingekürzt für meine Frage, aber vielleicht kann der eine oder andere Suchende davon profitieren wie ich von ähnlichen Posts:

Internals:
   DEF        00201A49123456
   FUUID      ...
   IODev      CCU3
   NAME       HmIP_eTRV_B_123456
   NR         171
   STATE      19.6 auto1
   TYPE       HMCCUDEV
   ccuaddr    00201A49123456
   ccudevstate active
   ccuif      HmIP-RF
   ccuname    HmIP-eTRV-B-123456
   ccutype    HmIP-eTRV-B
   channels   8
   firmware   1.0.20
   statevals  devstate
   OLDREADINGS:
   READINGS:
     2020-11-19 18:58:35   battery_low     0
     2020-11-19 18:58:35   battery_percent 90
     2020-11-19 18:58:35   battery_voltage 2.9
     2020-11-19 18:58:35   boost_mode      0
     2020-11-19 18:58:35   control         11.0
     2020-11-19 18:58:35   hmstate         19.6
     2020-11-19 18:58:35   mode            0
     2020-11-19 18:58:35   overall_mode    auto1
     2020-11-19 18:58:35   profile         1
     2020-11-19 18:58:35   state           19.6
     2020-11-19 18:58:35   target_temperature 11.0
     2020-11-19 18:58:35   temperature     19.6
     2020-11-19 18:58:35   valve_open_percent 0
     2020-11-19 18:58:35   window_state    closed
   hmccu:
     devspec    00201A49123456
     dp:
       0.CONFIG_PENDING:
         OVAL       0
         VAL        0
       0.DUTY_CYCLE:
         OVAL       0
         VAL        0
       0.INSTALL_TEST:
         OVAL       true
         VAL        true
       0.LOW_BAT:
         OSVAL      0
         OVAL       0
         SVAL       0
         VAL        0
       0.OPERATING_VOLTAGE:
         OSVAL      2.9
         OVAL       2.9
         SVAL       2.9
         VAL        2.9
       0.OPERATING_VOLTAGE_STATUS:
         OVAL       0
         VAL        0
       0.RSSI_DEVICE:
         OVAL       -79
         VAL        -80
       0.RSSI_PEER:
         OVAL       182
         VAL        182
       0.UNREACH:
         OVAL       0
         VAL        0
       1.ACTIVE_PROFILE:
         OSVAL      1
         OVAL       1
         SVAL       1
         VAL        1
       1.ACTUAL_TEMPERATURE:
         OSVAL      19.3
         OVAL       19.3
         SVAL       19.6
         VAL        19.6
       1.ACTUAL_TEMPERATURE_STATUS:
         OVAL       0
         VAL        0
       1.BOOST_MODE:
         OSVAL      0
         OVAL       0
         SVAL       0
         VAL        0
       1.BOOST_TIME:
         OVAL       0
         VAL        0
       1.FROST_PROTECTION:
         OVAL       0
         VAL        0
       1.LEVEL:
         OSVAL      0
         OVAL       0.0
         SVAL       0
         VAL        0.0
       1.LEVEL_STATUS:
         OVAL       0
         VAL        0
       1.PARTY_MODE:
         OVAL       0
         VAL        0
       1.PARTY_SET_POINT_TEMPERATURE:
         OVAL       0.000000
         VAL        0.000000
       1.PARTY_TIME_END:
         OVAL       
         VAL       
       1.PARTY_TIME_START:
         OVAL       
         VAL       
       1.QUICK_VETO_TIME:
         OVAL       0
         VAL        0
       1.SET_POINT_MODE:
         OSVAL      0
         OVAL       0
         SVAL       0
         VAL        0
       1.SET_POINT_TEMPERATURE:
         OSVAL      11.0
         OVAL       11.0
         SVAL       11.0
         VAL        11.0
       1.SWITCH_POINT_OCCURED:
         OVAL       0
         VAL        0
       1.VALVE_ADAPTION:
         OVAL       false
         VAL        false
       1.VALVE_STATE:
         OVAL       4
         VAL        4
       1.WINDOW_STATE:
         OSVAL      closed
         OVAL       0
         SVAL       closed
         VAL        0
Attributes:
   IODev      CCU3
   alexaName  Heizung Küche
   alias      Heizung Küche
   ccureadingfilter ^ACTUAL_TEMPERATURE$|^SET_POINT_MODE$|^SET_POINT_TEMPERATURE$|^LEVEL$|^OPERATING_VOLTAGE$|^LOW_BAT|^ACTIVE_PROFILE|^WINDOW_STATE|^BOOST_MODE
   ccureadingname 1.ACTUAL_TEMPERATURE$:temperature;1.SET_POINT_TEMPERATURE$:target_temperature;1.LEVEL$:valve_open_percent;1.SET_POINT_MODE$:mode;0.LOW_BAT$:battery_low;0.OPERATING_VOLTAGE$:battery_voltage;1.ACTIVE_PROFILE$:profile;1.WINDOW_STATE$:window_state;1.BOOST_MODE$:boost_mode
   ccuscaleval LEVEL:0:1:0:100
   controldatapoint 1.SET_POINT_TEMPERATURE
   eventMap   /datapoint 1.BOOST_MODE true:boost/datapoint 1.CONTROL_MODE 0 1.ACTIVE_PROFILE 1:auto/datapoint 1.CONTROL_MODE 0 1.ACTIVE_PROFILE 2:absent/datapoint 1.CONTROL_MODE 1:manual/datapoint 1.CONTROL_MODE 1 1.SET_POINT_TEMPERATURE 4.5:off/datapoint 1.CONTROL_MODE 1 1.SET_POINT_TEMPERATURE 30.5:on/datapoint 1.WINDOW_STATE 1:open/datapoint 1.WINDOW_STATE 0:close
   genericDeviceType thermostat
   group      Heizung
   homebridgeMapping TargetTemperature=target_temperature::target_temperature,,minValue=5,maxValue=30,minStep=0.5,cmd=control,nocache=true CurrentTemperature=temperature
   readingsWatcher 87000,-1,battery_percent
   room       EG Küche,Geräteinfos
   sortby     1(EG)-2(Küche)-3(Heizung)-1(Nummer)
   stateFormat temperature overall_mode
   statedatapoint 1.ACTUAL_TEMPERATURE
   stripnumber 1
   substexcl  control
   substitute SET_POINT_TEMPERATURE!#0-4.5:off,#30.5-40:on;WINDOW_STATE!(0|false):closed,(1|true):open
   userReadings battery_percent {max(0,100*(ReadingsNum($NAME,"battery_voltage",0)-2.0))},
overall_mode { if (ReadingsVal($NAME,"window_state","closed") eq "open") {"window open"}
               elsif (ReadingsVal($NAME,"boost_mode","0") eq "1") {"boost"}
               else {
                if (ReadingsVal($NAME,"mode","0") eq "1") {
                 if (ReadingsVal($NAME,"target_temperature","0") eq "off") {"off"}
                 elsif (ReadingsVal($NAME,"target_temperature","0") eq "on") {"on"}
                 else {"manual"}
                }
                elsif (ReadingsVal($NAME,"mode","0") eq "0") {
                 if (ReadingsVal($NAME,"profile","1") eq "1") {"auto1"}
                 elsif (ReadingsVal($NAME,"profile","1") eq "2") {"auto2"}
                 elsif (ReadingsVal($NAME,"profile","1") eq "3") {"auto3"}
                 else {"unknown"}
                }
                elsif (ReadingsVal($NAME,"mode","0") eq "2") {"holiday"}
                else {"unknown"}
               }
             }
   webCmd     control:boost:auto:absent:manual:on:off:open:close
   widgetOverride control:slider,4.5,0.5,30.5,1


Das habe ich damit schon erreicht:

Der angehängte FTUI-Screenshot zeigt recht anschaulich, wie das aktuell bedient werden kann.

Was ich gerne noch hätte, aber entweder syntaktisch nicht verstanden habe, oder mir nicht sicher bin, ob ich zu kompliziert denke:

Titel: Antw:Homematic eTRV-B oder eTRV2 in fhem, FTUI und Alexa einbinden
Beitrag von: siggel am 21 November 2020, 19:08:22
Das Lüften habe ich jetzt mittels readingsProxy gelöst, da habe ich dann auch ein on-for-timer und kann z.B. 5 min lüften. Wen es interessiert (passend zum Thermostat-Listing meines Eingangs-Posts):


Internals:
   CFGFN     
   DEF        HmIP_eTRV_B_123456:window_state
   DEVICE     HmIP_eTRV_B_123456
   FUUID     
   NAME       Lueften_123456
   NOTIFYDEV  global,HmIP_eTRV_B_123456
   NR         17567
   NTFY_ORDER 50-Lueften_123456
   READING    window_state
   STATE      off
   TYPE       readingsProxy
   CONTENT:
     HmIP_eTRV_B_123456 1
   READINGS:
     2020-11-21 18:51:56   lastCmd         off
     2020-11-21 18:51:57   state           off
Attributes:
   alias      Lüften Küche
   devStateIcon on.*:fts_window_1w_open@orange .*:fts_window_1w
   group      Heizung
   room       EG Küche
   setFn      {($CMD eq "on")?"open":"close"}
   setList    on off
   valueFn    {($VALUE eq "open")?"on":"off"}
   webCmd     :