HMCCU 5.0 Beta verfügbar

Begonnen von zap, 05 Januar 2020, 19:49:52

Vorheriges Thema - Nächstes Thema

zap

Hallo zusammen,

ich habe ein Update für die 4.4 Beta eingecheckt (in FHEM contrib und in Github). Update Anweisung siehe erster Beitrag dieses Threads.

Ich habe diverse Bugs behoben.

Wichtige Änderung: Wenn ein neues CCU bzw. I/O Device angelegt wird, muss man explizit die Option "sync" angeben, damit alle CCU Informationen synchronisiert werden. Beim Starten von FHEM wird diese Option ignoriert und die CCU Infos werden synchronisiert.

Eine spätere Synchronisation ist jederzeit mit dem Befehl "get ccuConfig" möglich.
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

juemuc

update lief problemlos.

Test läuft.

Viele Grüße
Jürgen
3x Sonos Play 1, 1x Sonos Arc + Sub, 1 Sonos-One, 1x Sonos Playbar
FB6690 + FB7490 mit 4x Dect 200 und 3 Dect-ULE-Thermostate,  raspberry3B+, HM Funkmodul HM-MOD-RPI-PCB, HM Klingelsensor HM-Sen-DB-PCB, HM (IP) Fensterkontakte und  Amazon Echo Dot,  piVCCU, pi OS (bookworm).

juemuc

Hallo zap,

ich weiß nicht, ob das aufgrund der aktuellen Version kommt oder ob in den Definitionen noch ein Fehler schlummert. Ich finde im Log diese Meldungen:

2020.09.21 20:32:37 1: PERL WARNING: Use of uninitialized value $sr in substitution (s///) at ./FHEM/88_HMCCU.pm line 2192.
2020.09.21 20:32:37 1: PERL WARNING: Use of uninitialized value $sr in substitution (s///) at ./FHEM/88_HMCCU.pm line 2193.
2020.09.21 20:32:37 1: PERL WARNING: Use of uninitialized value $sr in concatenation (.) or string at ./FHEM/88_HMCCU.pm line 2211.
2020.09.21 20:32:37 1: PERL WARNING: Use of uninitialized value $sr in split at ./FHEM/88_HMCCU.pm line 2266.


Viele Grüße
Jürgen
3x Sonos Play 1, 1x Sonos Arc + Sub, 1 Sonos-One, 1x Sonos Playbar
FB6690 + FB7490 mit 4x Dect 200 und 3 Dect-ULE-Thermostate,  raspberry3B+, HM Funkmodul HM-MOD-RPI-PCB, HM Klingelsensor HM-Sen-DB-PCB, HM (IP) Fensterkontakte und  Amazon Echo Dot,  piVCCU, pi OS (bookworm).

zap

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

StephanFHEM

leider bin ich erst mit HMCCU 4.4 Beta richtig eingestiegen daher kenne ich das vorherige Verhalten nicht.
Ist es normal, dass ich eine angelegte Gruppe nicht sehe, wenn ich get debmatic ccudevices mache?

In der wiki ist übrigens überall etwas von Devicelist geschrieben, welches bei mir unter get gar nicht angezeigt wird...

zap

Der Befehl "get ccuDevices" zeigt die CCU-Devices an, die FHEM bekannt sind. Bei mir werden da auch die Gruppen angezeigt (ggf. mal scrollen). Die Liste ist nach dem zugehörigen Interface sortiert. Ich bin mir jetzt nich ganz sicher, aber es könnte hilfreich sein, auch im Attribut rpcinterfaces den Haken bei VirtualDevices zu setzten.

Den Befehl "get devicelist" gibt es in 4.4 nicht mehr (das Wiki ist Stand Version 4.3). Dieser Befehl wurde durch 2 neue Befehle ersetzt:

"get ccuConfig" liest die Geräte von der CCU neu ein und ersetzt damit "get devicelist" ohne "create".

"get create" legt automatisch neue Geräte an und ersetzt damit "get devicelist create".
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

aherby

Zitat von: zap am 29 Juni 2020, 09:32:26
Du hast also ein Gerät, das am Stromnetz hängt, aber trotzdem ein Reading "battery" anzeigt? Kannst Du bitte mal ein "list" von diesem Geräte machen und vielleicht noch ein "get deviceinfo" ?

Hallo Zap,
hast du dir das Thema mit den Batterie-Readings mal angeschaut?
Ich hatte kein "list" oder "get deviceinfo" gemacht, da ich die Antwort vom Jürgen
Zitat
Hallo zap,

das sind die Schaltaktoren (ohne IP).
als Erklärung gesehen habe.
Leider habe ich die Batterie-Readings noch bei den Geräten.
Ein
set clear
hat es leider nur kurzzeitig gelöscht.

Danke
FHEM 6.0 auf Raspberry Pi 4b 4GB, RaspberryMatic auf Raspi3b mit Charly-Funkmodul, ZigeeBridge mt deCONZ... . Homematic mittels HMCCU, Sonos 3xS1, 1xS6 (Play5 in der 2te Generation), 1xS9 (Soundbar), 1x SonosSub
1-Wire® to I2C host interface with ESD mit DS18B/S20.

zap

Wenn es keine Umstände macht, wäre ein get deviceinfo schon hilfreich
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

Mal wieder ein Update mit einigen Bugfixes. Installation siehe erster Beitrag.

Wichtigste Neuerung: Der Befehl "get week-program" zeigt - sofern vorhanden - Heizprogramme an.

Ich werde nächste Woche einen Termin bekannt geben, zu dem ich die Beta beende und die Module in den produktiven Zweig des SVN einchecke. Auf jeden Fall noch dieses Jahr.
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

kjmEjfu

Zitat von: zap am 08 November 2020, 18:03:09
Ich werde nächste Woche einen Termin bekannt geben, zu dem ich die Beta beende und die Module in den produktiven Zweig des SVN einchecke. Auf jeden Fall noch dieses Jahr.

Was bedeutet das dann eigentlich für den Nutzer?
Muss ich alle Geräte neu anlegen? Werden die automatisch angepasst?

Macht es eigentlich Sinn jetzt schon umzustellen, wenn man gerade etwas Zeit hat? Oder rätst du vom produktiven Einsatz vorerst noch ab?
Migriere derzeit zu Home Assistant

zap

Zitat von: kjmEjfu am 09 November 2020, 07:57:15
Was bedeutet das dann eigentlich für den Nutzer?
Muss ich alle Geräte neu anlegen? Werden die automatisch angepasst?

Macht es eigentlich Sinn jetzt schon umzustellen, wenn man gerade etwas Zeit hat? Oder rätst du vom produktiven Einsatz vorerst noch ab?

Für den Benutzer bedeutet es (hoffentlich), dass die Definition von Geräten einfacher wird. HMCCU erkennt nun anhand der Kanalrolle, wie ein Gerät eingebunden werden muss. Viele der aktuellen Attribute werden dadurch überflüssig, werden aber weiterhin unterstützt. Man kann ein schon existierendes HMCCUDEV oder HMCCUCHN Device auf die neuen Defaults umstellen, indem man den Befehl "set defaults reset" ausführt.

Die gebräuchlichsten Geräte wie Thermostate, Schalter, Rollladen usw werden jetzt schon unterstützt. Da die alten Defaults nach wir vor vorhanden sind, kann eigentlich nichts bzw wenig schiefgehen.

Natürlich bleibt ein Restrisikio. Trotzdem würde ich jedem, der jetzt über den Einstieg mit HMCCU nachdenkt, gleich mit der 4.4 Beta zu starten.
Für alle anderen, die einen existierende HMCCU Umgebung haben, empfehle ich: probiert die Umstellung mal aus. Dabei würde ich so vorgehen:

- fhem.cfg sichern
- RPC Server stoppen (set rpcserver off)
- Autostart der RPC Server deaktivieren (attr rpcserver off)
- Update auf 4.4. Beta durchführen (siehe 1. Post in diesem Thread, am besten die Github Quelle verwenden)
- FHEM neu starten
- Optional: die Defaults bei einigen / allen Geräten zurücksetzen (set defaults reset)
- RPC Server starten

Es wäre für mich sehr hilfreich, wenn das möglichst viele versuchen und Feedback geben.

Falls Ihr zurück auf die alte Version wollt:

- RPC Server stoppen
- Normales FHEM Update ausführen
- FHEM stoppen
- Alte fhem.cfg zurück kopieren
- FHEM starten

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

kjmEjfu

Ich habe mich mal getraut ...

Im Anhang mal der optische Unterschied zwischen nach "set defaults reset" (oben) und vorher (unten).
Beim alten ist gesetzt:


cmdIcon up:fts_shutter_up stop:fts_shutter_manual down:fts_shutter_down


dürfte damit zusammen hängen, dass jetzt

webCMD open:close:stop:pct

ist.

Dann sind folgende Attribute weggefallen:

attr Rollo_OG_Allrum_West ccureadingname ^(.+\.)?DIRECTION$:+motor
attr Rollo_OG_Allrum_West ccuscaleval LEVEL:0:1:0:100
attr Rollo_OG_Allrum_West eventMap /datapoint 1.STOP true:stop/datapoint 1.LEVEL 0:down/datapoint 1.LEVEL 100:up/datapoint 1.INHIBIT 0:inhibit off/datapoint 1.INHIBIT 1:inhibit on/
attr Rollo_OG_Allrum_West substitute LEVEL!#0-0:none,#100-100:open;;DIRECTION!0:stop,1:up,2:down,3:undefined;;WORKING!(0|false):no,(1|true):yes


das ist so Absicht?

Und verändert hat sich

attr Rollo_OG_Allrum_West substexcl control|pct
attr Rollo_OG_Allrum_West widgetOverride control:slider,0,10,100


beim ersten ist control raus und beim zweiten control zu pct geworden.

Generell steht jetzt im pct immer der Wert (auch 0 oder 100), im control dann angepasst (also open statt 100, ...). Passt soweit. Muss mal schauen, ob das Auswirkungen auf meine ASC-Steuerung hat.


Frage: brauche ich controldatapoint und statedatapoint noch?
Migriere derzeit zu Home Assistant

kjmEjfu

Mir ist gerade auch aufgefallen, bei einer Außensirene (HmIP-ASIR-O) existieren Setter für on und off. Was genau lösen die aus? ;-)
Migriere derzeit zu Home Assistant

kjmEjfu

Einen habe ich noch.

2020.11.11 10:49:00.582 2: HMCCUDEV [Sensor_Aussen_Carport_Temperatur] Cannot detect control channel role of Sensor_Aussen_Carport_Temperatur
2020.11.11 10:49:00.587 1: HMCCUDEV [Sensor_Aussen_Carport_Temperatur] HMCCUDEV: Sensor_Aussen_Carport_Temperatur No default attributes found


Ist ein HmIP-STHO

DeviceInfo:

CHN XXXXXX:0 HM-Temperatur-Aussen-Carport:0
  DPT {b} HmIP-RF.XXXXXX:0.CONFIG_PENDING = false [RE]
  DPT {b} HmIP-RF.XXXXXX:0.DUTY_CYCLE = false [RE]
  DPT {n} HmIP-RF.XXXXXX:0.ERROR_CODE = 0 [RE]
  DPT {b} HmIP-RF.XXXXXX:0.INSTALL_TEST = true [RW]
  DPT {b} HmIP-RF.XXXXXX:0.LOW_BAT = false [RE]
  DPT {f} HmIP-RF.XXXXXX:0.OPERATING_VOLTAGE = 2.800000 [RE]
  DPT {i} HmIP-RF.XXXXXX:0.OPERATING_VOLTAGE_STATUS = 0 [RE]
  DPT {n} HmIP-RF.XXXXXX:0.RSSI_DEVICE = 185 [RE]
  DPT {n} HmIP-RF.XXXXXX:0.RSSI_PEER = 0 [RE]
  DPT {b} HmIP-RF.XXXXXX:0.TEMPERATURE_OUT_OF_RANGE = false [RE]
  DPT {b} HmIP-RF.XXXXXX:0.UNREACH = false [RE]
  DPT {b} HmIP-RF.XXXXXX:0.UPDATE_PENDING = false [RE]
CHN XXXXXX:1 HmIP-STHO XXXXXX:1
  DPT {f} HmIP-RF.XXXXXX:1.ACTUAL_TEMPERATURE = 7.500000 [RE]
  DPT {i} HmIP-RF.XXXXXX:1.ACTUAL_TEMPERATURE_STATUS = 0 [RE]
  DPT {i} HmIP-RF.XXXXXX:1.HUMIDITY = 98 [RE]
  DPT {i} HmIP-RF.XXXXXX:1.HUMIDITY_STATUS = 0 [RE]

StateDatapoint = .
ControlDatapoint = .

Device XXXXXX HM-Temperatur-Aussen-Carport [HmIP-STHO]
  AES_ACTIVE: 1
  AVAILABLE_FIRMWARE: 0.0.0
  CHILDREN: XXXXXX:0,XXXXXX:1,XXXXXX:2,XXXXXX:3
  DIRECTION: NONE
  FIRMWARE: 1.0.6
  FIRMWARE_UPDATE_STATE: UP_TO_DATE
  FLAGS: Visible
  PARAMSETS: MASTER,SERVICE
  RF_ADDRESS: 5565695
  ROAMING: 0
  RX_MODE: CONFIG
  SUBTYPE: STHO
  UPDATABLE: 1
Channel XXXXXX:0 HM-Temperatur-Aussen-Carport:0 [MAINTENANCE]
  AES_ACTIVE: 1
  DIRECTION: NONE
  FLAGS: Visible
  PARAMSETS: MASTER,VALUES,SERVICE
  PARENT: XXXXXX
  PARENT_TYPE: HmIP-STHO
  RF_ADDRESS: 0
  ROAMING: 0
  RX_MODE:
  UPDATABLE: 1
Channel XXXXXX:1 HmIP-STHO XXXXXX:1 [CLIMATE_TRANSCEIVER]
  AES_ACTIVE: 1
  DIRECTION: NONE
  FLAGS: Visible
  PARAMSETS: MASTER,VALUES,SERVICE
  PARENT: XXXXXX
  PARENT_TYPE: HmIP-STHO
  RF_ADDRESS: 0
  ROAMING: 0
  RX_MODE:
  UPDATABLE: 1
Channel XXXXXX:2 HmIP-STHO XXXXXX:2 [COND_SWITCH_TRANSMITTER]
  AES_ACTIVE: 1
  DIRECTION: SENDER
  FLAGS: Visible
  LINK_SOURCE_ROLES: CONDITIONAL_SWITCH
  PARAMSETS: MASTER,VALUES,LINK,SERVICE
  PARENT: XXXXXX
  PARENT_TYPE: HmIP-STHO
  RF_ADDRESS: 0
  ROAMING: 0
  RX_MODE:
  UPDATABLE: 1
Channel XXXXXX:3 HmIP-STHO XXXXXX:3 [COND_SWITCH_TRANSMITTER]
  AES_ACTIVE: 1
  DIRECTION: SENDER
  FLAGS: Visible
  LINK_SOURCE_ROLES: CONDITIONAL_SWITCH
  PARAMSETS: MASTER,VALUES,LINK,SERVICE
  PARENT: XXXXXX
  PARENT_TYPE: HmIP-STHO
  RF_ADDRESS: 0
  ROAMING: 0
  RX_MODE:
  UPDATABLE: 1


Values:

Device XXXXX
  Channel 0 [VALUES]
    CONFIG_PENDING = false
    DUTY_CYCLE = false
    ERROR_CODE = 0
    LOW_BAT = ok
    OPERATING_VOLTAGE = 2.8
    OPERATING_VOLTAGE_STATUS = NORMAL
    RSSI_DEVICE = -71
    TEMPERATURE_OUT_OF_RANGE = false
    UNREACH = alive
    UPDATE_PENDING = false
  Channel 1 [VALUES]
    ACTUAL_TEMPERATURE = 7.5
    ACTUAL_TEMPERATURE_STATUS = NORMAL
    HUMIDITY = 98
    HUMIDITY_STATUS = NORMAL
Migriere derzeit zu Home Assistant

kjmEjfu

Und noch was:

Bei dem Device handelt es sich um ein HmIP-BDT.
Vor dem "set defaults reset" sahen die Attribute so aus:

attr Licht_OG_Badezimmer IODev d_ccu
attr Licht_OG_Badezimmer alias Licht Badezimmer
attr Licht_OG_Badezimmer ccureadingfilter (ERROR_CODE|ERROR_OVERHEAT|ACTUAL_TEMPERATURE|ACTIVITY_STATE|LEVEL)
attr Licht_OG_Badezimmer ccuscaleval LEVEL:0:1:0:100
attr Licht_OG_Badezimmer controldatapoint 3.LEVEL
attr Licht_OG_Badezimmer event-on-change-reading .*
attr Licht_OG_Badezimmer genericDeviceType light
attr Licht_OG_Badezimmer group Licht
attr Licht_OG_Badezimmer hmstatevals ACTUAL_TEMPERATURE_STATUS!2:tempOverflow,3:tempUnderflow;;ERROR_OVERHEAT!(1|true):overheat
attr Licht_OG_Badezimmer room Badezimmer,Homematic
attr Licht_OG_Badezimmer statedatapoint 4.LEVEL
attr Licht_OG_Badezimmer statevals on:100,off:0
attr Licht_OG_Badezimmer stripnumber 1
attr Licht_OG_Badezimmer substexcl control
attr Licht_OG_Badezimmer substitute LEVEL!#0-0:off,#1-100:on;;ACTIVITY_STATE!0:unknown,1:up,2:down,3:stop;;ERROR_OVERHEAT!(0|false):no,(1|true):yes;;ACTUAL_TEMPERATURE_STATUS!0:normal,1:unknown,2:overflow,3:underflow
attr Licht_OG_Badezimmer webCmd control:on:off
attr Licht_OG_Badezimmer widgetOverride control:slider,0,10,100


Jetzt sieht es so aus:

attr Licht_OG_Badezimmer IODev d_ccu
attr Licht_OG_Badezimmer alias Licht Badezimmer
attr Licht_OG_Badezimmer ccureadingfilter (ERROR_CODE|ERROR_OVERHEAT|ACTUAL_TEMPERATURE|ACTIVITY_STATE|LEVEL)
attr Licht_OG_Badezimmer controldatapoint 3.LEVEL
attr Licht_OG_Badezimmer event-on-change-reading .*
attr Licht_OG_Badezimmer genericDeviceType light
attr Licht_OG_Badezimmer group Licht
attr Licht_OG_Badezimmer hmstatevals ACTUAL_TEMPERATURE_STATUS!2:tempOverflow,3:tempUnderflow;;ERROR_OVERHEAT!(1|true):overheat
attr Licht_OG_Badezimmer room Badezimmer,Homematic
attr Licht_OG_Badezimmer statedatapoint 4.LEVEL
attr Licht_OG_Badezimmer statevals on:100,off:0
attr Licht_OG_Badezimmer stripnumber 1
attr Licht_OG_Badezimmer substexcl control


Im set habe ich kein off/on mehr. Auch der Slider für den Dimmer ist verschwunden.

Ein "get defaults" für das Device zeigt mir an:

ccuscaleval = LEVEL:0:1:0:100
statevals = on:100,off:0
controldatapoint = 4.LEVEL
statedatapoint = 4.LEVEL
widgetOverride = control:slider,0,10,100
hmstatevals = ACTUAL_TEMPERATURE_STATUS!2:tempOverflow,3:tempUnderflow;ERROR_OVERHEAT!(1|true):overheat
substitute = LEVEL!#0-0:off,#1-100:on;ACTIVITY_STATE!0:unknown,1:up,2:down,3:stop;ERROR_OVERHEAT!(0|false):no,(1|true):yes;ACTUAL_TEMPERATURE_STATUS!0:normal,1:unknown,2:overflow,3:underflow
webCmd = control:on:off
substexcl = control
ccureadingfilter = (ERROR_CODE|ERROR_OVERHEAT|ACTUAL_TEMPERATURE|ACTIVITY_STATE|LEVEL)
stripnumber = 1


Es sind also ein paar Attribute gelöscht worden. Ein paar sind anders als der default vorgibt (z.B. controldatapoint 3.LEVEL).
Was läuft da schief?

Soweit meine Tests für heute :-)
Migriere derzeit zu Home Assistant