Neues Modul HMCCU für Homematic CCU

Begonnen von zap, 19 August 2015, 19:45:30

Vorheriges Thema - Nächstes Thema

zap

Ja ich weiß, hab's eingebaut weil es den Befehl in CUL_HM auch gibt und außerdem sicher gestellt ist, dass man aus Versehen nicht Readings anderer Devices löscht.

2xCCU3, Fenster, Rollläden, Themostate, Stromzähler, Steckdosen ...)
Entwicklung: FHEM auf AMD NUC (Ubuntu)
Produktiv inzwischen auf Home Assistant gewechselt.
Maintainer: FULLY, Meteohub, HMCCU, AndroidDB

Yil

Nachdem ich nun Ventiltriebe und Wandthermostate angelernt und in fhem eingebunden habe, hat jemand Beispiele für Heizungssteuerung der folgenden Art:

  • Boost starten
  • Temperatur ändern (so dass sie über das Control ebenfalls korrekt angezeigt wird)
Es bleibt ja dabei, dass im Gruppenverbund Ventiltrieb und Wandthermostat die Regelung ausschließlich über das Wandthermostat vorgenommen wird - richtig?
HM CCU2 mit ca. 35 HM-Komponenten inkl. Bausätzen
fhem auf RPi mit Sonos, EnOcean-CUL, ZWAVE-CUL und Bluetooth
Osram Lightify

zap

Zitat von: Yil am 16 November 2016, 13:48:57
Nachdem ich nun Ventiltriebe und Wandthermostate angelernt und in fhem eingebunden habe, hat jemand Beispiele für Heizungssteuerung der folgenden Art:

  • Boost starten
  • Temperatur ändern (so dass sie über das Control ebenfalls korrekt angezeigt wird)
Es bleibt ja dabei, dass im Gruppenverbund Ventiltrieb und Wandthermostat die Regelung ausschließlich über das Wandthermostat vorgenommen wird - richtig?

Definiere mal mit HMCCUDEV ein Device für Dein Wandthermostat in FHEM und führe dann "set defaults" dafür aus (in der Hoffnung, dass der Typ Deines Thermostaten in HMCCUConf.pm hinterlegt ist.
Und ja, das Wandthermostat ist der Master, wenn Wand- und Heizkörperthermostat verknüpft sind. Grundsätzlich würde ich Dir aber zu einer Gerätegruppe in der CCU2 raten, wobei die allerdings in FHEM etwas anders definiert wird als ein normales Gerät. Mal als Beispiel:Gruppe in CCU2 = G-AZ-HZ, bestehend aus den CCU2 Thermostaten (Wand, Heizkörper) KL-AZ-TH und KL-AZ-HZ. Die Gruppe enthält in der CCU2 zwar noch 2 Fenstersensoren, auf die kann jedoch hier verzichtet werden, da das Wandthermostat den Fensterstatus mitliefert (aufgrund der Verknüpfung).


define HM_G_AZ_HZ HMCCUDEV G-AZ-HZ group=KL-AZ-HZ,KL-AZ-TH
attr HM_G_AZ_HZ ccureadingfilter (^SET_TEMPERATURE|^TEMPERATURE|^HUMIDITY|LOWBAT$|^VALVE|^CONTROL|^WINDOW_OPEN)
attr HM_G_AZ_HZ cmdIcon Auto:sani_heating_automatic Manu:sani_heating_manual Boost:sani_heating_boost on:general_an off:general_aus
attr HM_G_AZ_HZ controldatapoint 1.SET_TEMPERATURE
attr HM_G_AZ_HZ event-on-change-reading .*
attr HM_G_AZ_HZ eventMap /datapoint 1.MANU_MODE 20.0:Manu/datapoint 1.AUTO_MODE 1:Auto/datapoint 1.BOOST_MODE 1:Boost/datapoint 1.MANU_MODE 4.5:off/datapoint 1.MANU_MODE 30.5:on/
attr HM_G_AZ_HZ statedatapoint 1.SET_TEMPERATURE
attr HM_G_AZ_HZ stripnumber 1
attr HM_G_AZ_HZ substexcl control
attr HM_G_AZ_HZ substitute LOWBAT!(0|false):no,(1|true):yes;;CONTROL_MODE!0:AUTO,1:MANU,2:PARTY,3:BOOST;;WINDOW_OPEN_REPORTING!(true|1):open,(false|0):closed;;SET_TEMPERATURE!#0-4.5:off,#30.5-40:on
attr HM_G_AZ_HZ webCmd control:Auto:Manu:Boost:on:off
attr HM_G_AZ_HZ widgetOverride control:slider,4.5,0.5,30.5,1


Die Attribute können auch weitgehend für einen Wandthermostaten übernommen werden, sofern Du keine Gruppe verwenden möchtest. Bei Gruppen muss rpcport um 9292 ergänzt werden.
2xCCU3, Fenster, Rollläden, Themostate, Stromzähler, Steckdosen ...)
Entwicklung: FHEM auf AMD NUC (Ubuntu)
Produktiv inzwischen auf Home Assistant gewechselt.
Maintainer: FULLY, Meteohub, HMCCU, AndroidDB

Yil

ZitatDefiniere mal mit HMCCUDEV ein Device für Dein Wandthermostat in FHEM und führe dann "set defaults" dafür aus (in der Hoffnung, dass der Typ Deines Thermostaten in HMCCUConf.pm hinterlegt ist.

Das ist ja prima - die eventMap wurde zusätzlich definiert und einiges ergänzt. Trotzdem ist für mich der fhem-Befehl noch nicht klar.

Wenn das meine Einrichtung ist:
Internals:
   CFGFN
   CHANGED
   DEF        MEQ0235698
   IODev      HMCCU2
   NAME       Bad.Wandthermostat
   NR         1423
   STATE      T: 19.9° H: 48% T: 19.0° D: 8.6°
   TYPE       HMCCUDEV
   ccuaddr    MEQ0235698
   ccudevstate Active
   ccuif      BidCos-RF
   ccuname    Bad.Wandthermostat
   ccutype    HM-TC-IT-WM-W-EU
   channels   6
   statevals  devstate
   Readings:
     2016-11-16 16:31:53   1.HUMIDITY      48
     2016-11-16 16:31:53   1.TEMPERATURE   19.9
     2016-11-16 16:31:32   2.SET_TEMPERATURE 19.0
     2016-11-16 16:21:44   2.WINDOW_OPEN_REPORTING closed
     2016-11-16 16:31:53   DEWPOINT        8.6
     2016-11-16 16:31:32   control         19.0
     2016-11-16 16:31:32   state           19.0
Attributes:
   IODev      HMCCU2
   alias      Bad Wandthermostat
   ccureadingfilter (^UNREACH|^HUMIDITY|^TEMPERATURE|^SET_TEMPERATURE|^LOWBAT$|^WINDOW_OPEN)
   ccureadingformat datapoint
   cmdIcon    Auto:sani_heating_automatic Manu:sani_heating_manual Boost:sani_heating_boost on:general_an off:general_aus
   controldatapoint 2.SET_TEMPERATURE
   devStateIcon OK:10px-kreis-gruen Error:10px-kreis-rot Initialized:10px-kreis-gelb
   event-on-change-reading .*
   eventMap   /datapoint 2.MANU_MODE 20.0:Manu/datapoint 2.AUTO_MODE 1:Auto/datapoint 2.BOOST_MODE 1:Boost/datapoint 2.MANU_MODE 4.5:off/datapoint 2.MANU_MODE 30.5:on/
   group      Heizung & Thermostate
   icon       hm-tc-it-wm-w-eu
   room       Bad,Device
   stateFormat T: 1.TEMPERATURE° H: 1.HUMIDITY% T: 2.SET_TEMPERATURE° D: DEWPOINT°
   statechannel 2
   statedatapoint 2.SET_TEMPERATURE
   stripnumber 1
   substexcl  control
   substitute LOWBAT,UNREACH!(0|false):no,(1|true):yes;CONTROL_MODE!0:AUTO,1:MANU,2:PARTY,3:BOOST;WINDOW_OPEN_REPORTING!(true|1):open,(false|0):closed;SET_TEMPERATURE!#0-3.5:off,#30.5-40:on
   userReadings DEWPOINT {HMCCU_Dewpoint($name,"1.TEMPERATURE", "1.HUMIDITY","n/a")}
   webCmd     control:Auto:Manu:Boost:on:off
   widgetOverride control:slider,4.5,0.5,30.5,1


Wie muss dann der fhem-Befehl für das Einschalten des Boosts lauten sowie der Befehl für das Setzen der Temperatur (mal ganz unabhängig von Gruppen).
Und auch wenn ich nerve - wozu braucht es die Gruppendefinition? Was bringt das?
HM CCU2 mit ca. 35 HM-Komponenten inkl. Bausätzen
fhem auf RPi mit Sonos, EnOcean-CUL, ZWAVE-CUL und Bluetooth
Osram Lightify

zap

Mit der eventmap Definition wird der Boost-Mode so eingeschaltet:

set Bad.Wandthermostat Boost

Ohne eventmap:

set Bad.Wandthermostat datapoint 2.BOOST_MODE 1

Die Zieltemperatur stellt man so ein:

set Bad.Wandthermostat datapoint 2.SET_TEMPERATURE 20

Aber aufpassen: Der Datenpunkt SET_TEMPERATURE liegt je nach Gerätetyp in unterschiedlichen Kanälen:

Wandthermostat: 2.SET_TEMPERATURE
Heizkörperthermostat: 4.SET_TEMPERATURE
Gruppe: 1.SET_TEMPERATURE

Wenn Heizkörper- und Wandthermostat verknüpft sind, wird jegliche Änderung am Heizkörperthermostat sofort vom Wandthermostat wieder überschrieben.

Vorteile von Gruppendevices:

- In der CCU2 müssen die Komponenten nicht manuell verknüpft werden.
- In FHEM spart man sich das Anlegen von einzelnen Devices für Heizkörper-/Wandthermostat und ggf. Fenster. Ich habe z.B. in einem großen Raum 1 Wandthermostat, 2 Heizkörperthermostate und 3 Fenstersensoren alle in einer Gruppe und mit einem einzigen Gruppendevice abgefrühstückt. Natürlich kommst Du theoretisch in FHEM mit einem Device für das Wandthermostat aus. Allerdings hast Du dann z.B. keine Info über die Ventilöffnung am Heizkörper oder den Fensterstatus, der ja z.B. zum Schließen des Ventils führt.

2xCCU3, Fenster, Rollläden, Themostate, Stromzähler, Steckdosen ...)
Entwicklung: FHEM auf AMD NUC (Ubuntu)
Produktiv inzwischen auf Home Assistant gewechselt.
Maintainer: FULLY, Meteohub, HMCCU, AndroidDB

Yil

Klasse und danke für die schlüssige und ausführliche Erklärung.  ;D
HM CCU2 mit ca. 35 HM-Komponenten inkl. Bausätzen
fhem auf RPi mit Sonos, EnOcean-CUL, ZWAVE-CUL und Bluetooth
Osram Lightify

ToM_ToM

Hallo Zusammen,

ich hätte mal ein Frage zum Wandtaster und long press event.
Bei mir daheim nutze ich FHEM auf einem Pi mit der HM-LAN-Box und kann auf das press_long Event so lange reagieren bis die Taste losgelassen wird.

Dadurch wird mit folgendem Code durch drücken der Taste, die Lautstärke permanent verringert bis ich wieder loslasse.

#Wandtaster 3 (6fach)-Sonos Steuerung - Lautstärke runter
define Wandtaster3_Btn3_long DOIF ([vccu_Btn7:virtActTrigType] eq "long") (set Sonos_Wohnzimmer Volume -1)
attr Wandtaster3_Btn3_long DbLogExclude .*
attr Wandtaster3_Btn3_long do always
attr Wandtaster3_Btn3_long group Wohnzimmer
attr Wandtaster3_Btn3_long room Sonos


Nun möchte ich bei meinen Eltern das Gleiche installieren. Allerdings wird hier eine CCU verwendet.
Und da bekomme ich das Event erst nach dem Loslassen. Gibt es hier eine Möglichkeit, das auch direkt permanent zu erhalten?

# Wandtaster 6 fach #
#####################
define Wandtaster6Fach HMCCUDEV MEQ0XXXXXX
attr Wandtaster6Fach IODev CCU2
attr Wandtaster6Fach group Wandtaster6Fach


# Wandtaster 6 fach - Kanal 3 #
###############################
define Wandtaster6Fach_03 HMCCUCHN MEQ0XXXXXX:3
attr Wandtaster6Fach_03 IODev CCU2
attr Wandtaster6Fach_03 ccureadings 1
attr Wandtaster6Fach_03 group Wandtaster6Fach
attr Wandtaster6Fach_03 statevals on:true,off:false
attr Wandtaster6Fach_03 substitute STATE!1:on,0:off


# Wandtaster 6 fach - Sonos Steuerung - Lautstärke runter -5
define Wandtaster6Fach_03_Long DOIF (["Wandtaster6Fach_03:HM-PB-6-WM55_MEQ0XXXXXX.3.PRESS_LONG"] eq "1") (set Sonos_Bad_oben Volume -1)
attr Wandtaster6Fach_03_Long do always
attr Wandtaster6Fach_03_Long group Wandtaster6Fach
attr Wandtaster6Fach_03_Long room Sonos


Vielen Dank :)
Hardware: BananaPi, Busmaster CUL, SanDisk 16GB Ultra SD, 16 GB USB-Stick | Software: Armbian, FHEM 5.8

zap

Hast Du einen Reading Filter gesetzt? Eigentlich müsstest Du Readings PRESS_CONT bekommen. Nach der Doku kommen die, wenn man eine Taste gedrückt hält. Kann das leider nicht nachvollziehen, da ich so ein Teil nicht habe.

Außerdem würde ich event-on-update-reading auf .* setzen.

Problematisch könnte das Attribut rpcinterval im IO Device werden. Wenn das z.B. auf 5 Sekunden steht, bekommst Du auch nur alle 5 Sekunden ein Event. Dann musst Du ziemlich lange die Taste gedrückt halten.

Aber schau erst mal, ob ein REading PRESS_CONT gesetzt wird.
2xCCU3, Fenster, Rollläden, Themostate, Stromzähler, Steckdosen ...)
Entwicklung: FHEM auf AMD NUC (Ubuntu)
Produktiv inzwischen auf Home Assistant gewechselt.
Maintainer: FULLY, Meteohub, HMCCU, AndroidDB

ToM_ToM

Hallo zap,

nein, ich habe keinen Filter gesetzt. Ist genau so definiert wie du oben den Code siehst.
Den PRESS_CONT gibt's leider nicht.
Anbei nochmal ein Foto vom Kanal.


Viele Grüße

Thomas
Hardware: BananaPi, Busmaster CUL, SanDisk 16GB Ultra SD, 16 GB USB-Stick | Software: Armbian, FHEM 5.8

zap

Echt blöd. Habe mal Google bemüht. Andere User berichten auch davon, dass PRESS_CONT nicht gesendet wird.
Scheint ein Problem der Firmware des Schalters zu sein. Frag mich nicht, warum das bei Deiner anderen Installation funktioniert.
2xCCU3, Fenster, Rollläden, Themostate, Stromzähler, Steckdosen ...)
Entwicklung: FHEM auf AMD NUC (Ubuntu)
Produktiv inzwischen auf Home Assistant gewechselt.
Maintainer: FULLY, Meteohub, HMCCU, AndroidDB

zap

Hast Du auch event-on-update-reading gesetzt?
2xCCU3, Fenster, Rollläden, Themostate, Stromzähler, Steckdosen ...)
Entwicklung: FHEM auf AMD NUC (Ubuntu)
Produktiv inzwischen auf Home Assistant gewechselt.
Maintainer: FULLY, Meteohub, HMCCU, AndroidDB

ToM_ToM

Hallo zap,

ja, ich habe rpcinterval jetzt auf 1 gesetzt und den Kanälen das attr Wandtaster6Fach_03_Long event-on-update-reading .* hinzugefügt.
Aber hilft leider auch nicht.

Viele Grüße

Thomas
Hardware: BananaPi, Busmaster CUL, SanDisk 16GB Ultra SD, 16 GB USB-Stick | Software: Armbian, FHEM 5.8

ToM_ToM

Hallo zap,

ich habe jetzt herausgefunden dass beim gedrückt halten der Taste, sich der Timestamp des folgenden readings ändert.

HM-PB-6-WM55_MXXXXXXX74.4.INSTALL_TEST

Es gibt ja neben "TEST" unter anderem auch noch das Reading "LONG" und "LONG_RELEASE", aber die aktualisieren sich leider beide erst nach dem loslassen der Taste.
Also Workaround könnte ich theoretisch auf den "TEST" gehen, allerdings wird dieser auch beim kurz drücken aktualisiert.
Hardware: BananaPi, Busmaster CUL, SanDisk 16GB Ultra SD, 16 GB USB-Stick | Software: Armbian, FHEM 5.8

zap

Der DP INSTALL_TEST ist zwar in der eq3 Doku aufgeführt, allerdings ohne Kommentar. Schwierig ...
2xCCU3, Fenster, Rollläden, Themostate, Stromzähler, Steckdosen ...)
Entwicklung: FHEM auf AMD NUC (Ubuntu)
Produktiv inzwischen auf Home Assistant gewechselt.
Maintainer: FULLY, Meteohub, HMCCU, AndroidDB

Chris8888

Hallo,

ich kämpfe noch ein wenig mit den neuen Homematic-IP-Devices und der Definition in HMCCU.

Mein Heizkörperthermostat: HMIP-eTRV (ich will das ohne Wandthermostat betreiben, da dies nur einen Handtuchwärmer ansteuert)

Die Readings
CHN 000393C994D014:0 HMIP-eTRV_000393C994D014:0
  DPT {b} HmIP-RF.000393C994D014:0.CONFIG_PENDING = false [RE]
  DPT {b} HmIP-RF.000393C994D014:0.DUTY_CYCLE = false [RE]
  DPT {b} HmIP-RF.000393C994D014:0.LOW_BAT = false [RE]
  DPT {f} HmIP-RF.000393C994D014:0.OPERATING_VOLTAGE = 3.000000 [RE]
  DPT {n} HmIP-RF.000393C994D014:0.RSSI_DEVICE = 191 [RE]
  DPT {n} HmIP-RF.000393C994D014:0.RSSI_PEER = 188 [RE]
  DPT {b} HmIP-RF.000393C994D014:0.UNREACH = false [RE]
  DPT {b} HmIP-RF.000393C994D014:0.UPDATE_PENDING = false [RE]
CHN 000393C994D014:1 HMIP-eTRV_000393C994D014:1
  DPT {i} HmIP-RF.000393C994D014:1.ACTIVE_PROFILE = 1 [WE]
  DPT {f} HmIP-RF.000393C994D014:1.ACTUAL_TEMPERATURE = 22.000000 [RE]
  DPT {b} HmIP-RF.000393C994D014:1.BOOST_MODE = false [WE]
  DPT {f} HmIP-RF.000393C994D014:1.CONTROL_DIFFERENTIAL_TEMP =  [WE]
  DPT {i} HmIP-RF.000393C994D014:1.CONTROL_MODE =  [WE]
  DPT {i} HmIP-RF.000393C994D014:1.DURATION_UNIT =  [W]
  DPT {i} HmIP-RF.000393C994D014:1.DURATION_VALUE =  [W]
  DPT {b} HmIP-RF.000393C994D014:1.FROST_PROTECTION = false [RE]
  DPT {f} HmIP-RF.000393C994D014:1.LEVEL = 0.050000 [RWE]
  DPT {b} HmIP-RF.000393C994D014:1.PARTY_MODE = false [RE]
  DPT {f} HmIP-RF.000393C994D014:1.PARTY_SET_POINT_TEMPERATU = 0.000000 [RE]
  DPT {s} HmIP-RF.000393C994D014:1.PARTY_TIME_END =  [RWE]
  DPT {s} HmIP-RF.000393C994D014:1.PARTY_TIME_START =  [RWE]
  DPT {i} HmIP-RF.000393C994D014:1.SET_POINT_MODE = 0 [RWE]
  DPT {f} HmIP-RF.000393C994D014:1.SET_POINT_TEMPERATURE = 20.000000 [RWE]
  DPT {b} HmIP-RF.000393C994D014:1.SWITCH_POINT_OCCURED = false [RE]
  DPT {b} HmIP-RF.000393C994D014:1.VALVE_ADAPTION =  [WE]
  DPT {i} HmIP-RF.000393C994D014:1.VALVE_STATE = 4 [RE]
  DPT {i} HmIP-RF.000393C994D014:1.WINDOW_STATE = 0 [WE]


Ich habe versucht die Atrribute entsprechend der Beispiele von anderen Thermostaten abzuleiten, verzweifel aber so langsam.

controldatapoint 1.SET_POINT_TEMPERATURE
event-on-change-reading .*
genericDeviceType thermostat
homebridgeMapping TargetTemperature=HMIP-eTRV_000393C994D014.1.SET_POINT_TEMPERATURE,minValue=10,maxValue=25,minStep=0.5
                             CurrentTemperature=HMIP-eTRV_000393C994D014.1.ACTUAL_TEMPERATURE
icon hc_wht_regler
stateFormat T: HMIP-eTRV_000393C994D014.1.ACTUAL_TEMPERATURE° D: HMIP-eTRV_000393C994D014.1.SET_POINT_TEMPERATURE° V: HMIP-eTRV_000393C994D014.1.VALVE_STATE%
statechannel 1
statedatapoint 1.SET_POINT_TEMPERATURE
stripnumber 1
substitute LOW_BAT!(0|false):ok,(1|true):low;;CONTROL_MODE!0:AUTO,1:MANU,2:PARTY,3:BOOST;WINDOW_STATE!(true|1):open,(false|0):closed
webCmd control
widgetOverride control:slider,10,1,25

Meine Fragen/Probleme:
Den Modus einstellen per SET ... klappt nicht.
Ist- und Zieltemperatur in FHEM ändern klappt.

Das Mapping in Homebridge klappt leider nur halb.
Ist-Temperatur klappt.
Soll-Temperatur wird nicht verändert.

Wie kommt man sinnvoll an eine Erklärung der Readings (hier zB LEVEL)?

Könnt ihr mir beim Endspurt helfen?

Besten Dank vorab!

Viele Grüße
Christian

FHEM 6.0 auf einem PI4 mit div. Homematic-Komponenten, Alexa, Tablet-UI und Homebridge...und läuft einfach. Erweitert mit CCU3 und Homematic-IP...und läuft immer noch.