Device sync zwischen CCU und FHEM wird nicht automatisch durchgeführt

Begonnen von rogerknop, 02 Dezember 2021, 14:15:26

Vorheriges Thema - Nächstes Thema

rogerknop

Hallo,

ich habe nun das Update von Homematic auf die Version 5 durchgeführt.
Die Geräte wurden bereits alle über createDev angelegt (Thermostate und Fenstersensoren)

Ich hatte dann ein paar Probleme mit dem rpcserver, der aber inzwischen wieder startet.

Nach einem FHEM Neustart oder Config Änderungen liefert get ccuDevices immer eine leere Liste zurück.
Ich muss also manuell get ccuConfig ausführen, damit ccuDevices was liefert.
Solange liefert der Thermostat keine Daten und kann auch nicht gesteuert werden - was auch logisch klingt.

Was muss ich tun, damit der Sync (get ccuConfig) beim Start automatisch ausgeführt wird?

Leider habe ich zusätzlich auch noch das Problem, dass ich weekprofile für die Wochenprofile im Thermostat nutze und das funktioniert nun nicht mehr, da die alten Devices vom Typ HMCCUDEV waren, was auch unterstützt wird. Die neuen Devices sind vom Typ HMCCUCHN und das ist in weekprofile nicht nutzbar :-(
Hierzu öffne ich einen eigenen Beitrag.

Hier noch das list ccu:

Internals:
   CCUNum     1
   Clients    :HMCCUDEV:HMCCUCHN:HMCCURPCPROC:
   DEF        192.168.1.98
   FUUID      5c8537b1-f33f-d8f3-b11e-e2a9dd1a1c9c6db9
   NAME       ccu
   NOTIFYDEV  global
   NR         30
   NTFY_ORDER 50-ccu
   RPCState   running
   STATE      running/OK
   TYPE       HMCCU
   ccuaddr    BidCoS-RF
   ccuchannels 71
   ccudevices 6
   ccuif      BidCos-RF
   ccuinterfaces VirtualDevices,BidCos-RF,HmIP-RF
   ccuip      192.168.1.98
   ccuname    CCU2
   ccustate   active
   ccutype    CCU2/3
   config     5.0
   firmware   2.41.8
   host       192.168.1.98
   prot       http
   version    5.0 213301607
   READINGS:
     2021-12-02 15:20:24   count_channels  71
     2021-12-02 15:20:24   count_devices   6
     2021-12-02 15:20:24   count_groups    0
     2021-12-02 15:20:24   count_interfaces 3
     2021-12-02 15:20:24   count_programs  0
     2021-12-02 15:20:12   rpcstate        running
     2021-12-02 15:20:12   state           OK
   hmccu:
     ccuDevList CCU2,FensterDachHinten,FensterDachTreppe,Leon_Thermostat,Tuerschloss,Vincent_Thermostat
     ccuSuppDevList FensterDachHinten,FensterDachTreppe,Leon_Thermostat,Tuerschloss,Vincent_Thermostat
     defaults   0
     evtime     0
     evtimeout  0
     rpccount   0
     rpcports   2010,9292,2001
     updatetime 1638454823


Danke & Grüße,
Roger

zap

Meinst Du den Fall: in der CCU wird ein neues Gerät angelernt und es erscheint nicht automatisch in FHEM?

Das geht aktuell noch nicht. Wenn man ein neues Gerät in der CCU anlernt, muss man einmal get ccuConfig ausführen (oder FHEM neu starten).

Wochenprofile: möchtest Du das Wochenprofil ändern?
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

rogerknop

Hallo Zap!


Zitat
Meinst Du den Fall: in der CCU wird ein neues Gerät angelernt und es erscheint nicht automatisch in FHEM?
Nein, das ist für mich OK. Aber nach jedem Neustart liefert ccuDevices eine leere Liste. Und es läßt sich kein Gerät steuern. Im Log taucht dann immer auf, dass er das Gerät nicht kennt - was ja auch stimmt.
Wenn ich dann einmal ein get ccuConfig mache, dann ist die Liste gefüllt und die Geräte lassen sich steuern.

Zitat
Wochenprofile: möchtest Du das Wochenprofil ändern?
Ja! Mit dem Modul weekprofile. Die ganze Familie passt das regelmäßig für das jeweilige eigene Zimmer an. Das Modul ist super praktisch. Ich glaube User ,,Risiko" wäre für eine Kooperation sehr dankbar.
Ich habe das separat in folgendem Beitrag erläutert: https://forum.fhem.de/index.php/topic,46117.msg1190661.html#msg1190661

Danke & Grüße,
Roger


rogerknop

Hallo ZAP,

wie kann ich denn mit dem set Befehl Zeiten direkt im Device ändern?

Der alte Befehl, wie es früher ging funktioniert nicht mehr:

set Leon_Thermostat config TEMPERATURE_MONDAY_1=16.0


Finde in der commandref auch keinen Hinweis.

Fehlermeldung:

HMCCUCHN [Leon_Thermostat] HMCCUCHN: Leon_Thermostat Paramset MASTER not supported by device or channel


Danke & Grüße, Roger

zap

Zitat von: rogerknop am 02 Dezember 2021, 19:51:36
Hallo Zap!

Nein, das ist für mich OK. Aber nach jedem Neustart liefert ccuDevices eine leere Liste. Und es läßt sich kein Gerät steuern. Im Log taucht dann immer auf, dass er das Gerät nicht kennt - was ja auch stimmt.
Wenn ich dann einmal ein get ccuConfig mache, dann ist die Liste gefüllt und die Geräte lassen sich steuern.
Ja! Mit dem Modul weekprofile. Die ganze Familie passt das regelmäßig für das jeweilige eigene Zimmer an. Das Modul ist super praktisch. Ich glaube User ,,Risiko" wäre für eine Kooperation sehr dankbar.
Ich habe das separat in folgendem Beitrag erläutert: https://forum.fhem.de/index.php/topic,46117.msg1190661.html#msg1190661

Danke & Grüße,
Roger

Hmm, vermutlich stimmt die Reihenfolge der Defintion in der fhem.cfg nicht. Mögliche Ursachen:
- Du hast das I/O Device mal gelöscht und später neu angelegt
- Du hast die fhem.cfg manuell editiert

Jedenfalls müsste es beim FHEM Start Fehlermeldungen im Log geben. Die wären hilfreich ...

Zu set config:

Bei HMCCUCHN Device beziehen sich die Befehle immer auf den Kanal. Um Device übergreifende Befehle zu verwenden, muss 'device' angegeben werden. Also:

set Leon_Thermostat config device TEMPERATURE_MONDAY_1=16.0

Steht auch so in der Commandref.

Und um den ganzen Kram auch als Readings bei einem "get config" zu bekommen:

attr ccuflags showDeviceReadings,showMasterReadings
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

rogerknop

Welches Device meinst Du? Die CCU selbst oder den Thermostat?
CCU ist seit Jahren nicht mehr geändert.
Die Thermostate sind alle neu über createDev angelegt.

Wie sollte man durch manuelles Editieren etwas beeinflussen?
Beziehungsweise was meinst Du mit Reihenfolge?

zap

Zitat von: rogerknop am 03 Dezember 2021, 15:08:03
Welches Device meinst Du? Die CCU selbst oder den Thermostat?
CCU ist seit Jahren nicht mehr geändert.
Die Thermostate sind alle neu über createDev angelegt.

Wie sollte man durch manuelles Editieren etwas beeinflussen?
Beziehungsweise was meinst Du mit Reihenfolge?

Die Reihenfolge, in der die "defines" in der fhem.cfg stehen. Wie gesagt: schau mal nach Fehlermeldungen von HMCCU, HMCCUCHN und HMCCUDEV im Log. Das würde weiterhelfen.

Zu set config siehe meine Ergänzung im vorherigen Beitrag
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

rogerknop

Hallo zap,

also das mit dem "device" hinter "config" funktioniert!
Allerdings sendet weekprofile alle Wocheneinstellungen an das Device in einem Set.
Wenn ich:

set Leon_Thermostat config device TEMPERATURE_MONDAY_1=16.0 ENDTIME_MONDAY_1=540

sende, dann wird aber nur die Temperatur 16 in Homematic gesetzt. Nicht aber die Zeit angepaßt.

Wie kann ich nun mehrere Werte setzen?


Habe verbose mal hochgesetzt und es kommen keine Fehlermeldungen.
Allerdings läuft nun auch der Sync anscheinend.
Keine Ahnung was ich da gemacht habe, aber Hauptsache es geht. Seltsam...
Da melde ich mich nochmal, wenn ich was finde.

Danke & Grüße,
Roger

rogerknop

Hallo zap,

es sieht so aus, als wenn es am Uhrzeitformat liegt.


set Leon_Thermostat config device TEMPERATURE_MONDAY_1=11.0 TEMPERATURE_TUESDAY_1=12.0

geht!

Aber

set Leon_Thermostat config TEMPERATURE_MONDAY_1=16.0 ENDTIME_MONDAY_1=540
set Leon_Thermostat config TEMPERATURE_MONDAY_1=16.0 ENDTIME_MONDAY_1=0540
set Leon_Thermostat config TEMPERATURE_MONDAY_1=16.0 ENDTIME_MONDAY_1=05:40

funktionieren alle nicht.

Hast Du hier noch einen Tipp?

Danke, Roger

zap

HMCCU unterstützt aktuell nicht die Definition von Wochenprofilen. In den 3 Befehlen in Deinem Beispiel fehlt wieder "device", aber es ist nicht gesagt, dass es damit funktioniert, denn normalerweise muss man einen Tag komplett an das Device übergeben. Zeit ist immer Minuten seit Mitternacht.
So ein Temperaturprofil stellt man ja auch nicht täglich um. Ich habe 2 Profile irgendwann vor 2 Jahren mal angelegt und seitdem nicht mehr geändert. Das ist im Webinterface der CCU eigentlich recht komfortabel abgebildet.
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

rogerknop

#10
Hallo zap,

das wiederum fehlende "device" war ein copy&paste Fehler. War in meinen Tests schon drin, sonst hätte ich ja wieder ne Fehlermeldung bekommen.

Den Hinweis, dass sich in den Profilen nichts ändert kann ich so nicht unterschreiben. In Zeiten von Homeoffice und ständig sich ändernden Stundenplänen (Uni, Schule etc.) paßt die Familie ständig den Heizplan an.
Das hat ja auch bei mir bis zum Update letzte Woche wunderbar funktioniert.

Desweiteren gibt es extra das Modul weekprofile was ich genial finde und die Familie ebenso. Jetzt einen Schritt zurückgehen und jeder soll ins das WebUI der CCU mit Anmeldung User und Passwort finde ich nicht sehr reizvoll. Es ist definitiv ein Rückschritt.
Und auch aus Nutzbarkeit hat meiner Meinung nach weekprofile die Nase vorn.

Nach etlichen Tests habe ich nun herausgefunden, wie die Daten an die CCU gesendet werden müssen:

set Leon_Thermostat config device TEMPERATURE_MONDAY_1=16.0 ENDTIME_MONDAY_1=540: TEMPERATURE_MONDAY_2=19.0 ENDTIME_MONDAY_2=1140: TEMPERATURE_MONDAY_3=16.0 ENDTIME_MONDAY_3=1440:

Die Minuten benötigen zum Abschluss einen Doppelpunkt.

Übrigens dein Hinweis, dass immer der komplette Tag gesendet werden muss ist, nicht korrekt. Bei fehlerhaften oder fehlenden Zeiten geht die CCU von 00:00-24:00 aus.

Solltest Du noch einen Änderung bzgl. Doppelpunkt planen, dann wäre ich vorher für eine Info dankbar.

Grüße, Roger

zap

Ich habe mir nochmal den Code angeschaut. Die Werte für Parameter im Format "ENDTIME_xxxxx" erwarten Uhrzeiten als Wert im Format HH:MM (daher die Geschichte mit dem Doppelpunkt). Ein Wert von 1000 wird also in 1000*60 = 60000 Minuten umgerechnet.

Ein korrekte Befehl wäre also

set Leon_Thermostat config device TEMPERATURE_MONDAY_1=16.0 ENDTIME_MONDAY_1=9:0 TEMPERATURE_MONDAY_2=19.0 ENDTIME_MONDAY_2=18:0

Ändert die Temperaturen um 9 und 18 Uhr
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

rogerknop

Solltest Du den Bug beheben, dann wäre eine Info hier sehr hilfreich.
Da das weekprofile Modul bereits darauf angepasst wurde und das muss dann wieder zurückgedreht werden.
Roger

zap

Das ist kein Bug, sondern ein Feature, das ich nur vergessen habe zu dokumentieren.

HMCCU macht aus einem Wert 10:20 den Wert 620 (also Minuten seit Mitternacht), wenn der Parametername mit ENDTiME beginnt.

Wenn Du also 800: angibst, führt das zu einem falschen timestamp
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

rogerknop

Das verstehe ich nicht.
Wie vorher beschrieben, habe ich jede Menge Tests mit set <device> config device gemacht.
10:20 nimmt er nicht
620 oder 800 nimmt er ebenfalls nicht.
Aber 620: und 800: funktioniert