Neues Modul HMCCU für Homematic CCU

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

Vorheriges Thema - Nächstes Thema

zap

#480
Das sieht von RPC-Server Seite her gut aus. Alles wie es sein soll. Vielleicht stimmt etwas bei der Device Definition des Fensters nicht. Schick mal bitte die Ausgabe von list <Fensterdev-Name>.

Ich nehme mal an, Du hast mehr als ein CCU Geräte Device definiert. Wird bei keinem davon ein Reading aktualisiert?

Gehe ins Verzeichnis /tmp und führe mehrmals hintereinander den Befehl "ls -lrt" aus. Die Datei ccuqueue_2001.dat sollte immer wieder aktualisiert werden und die Größe sollte zwischen 0 und wenigen 100 Byte wechseln.

Dass der RPC Server irgendwann aufhört Daten zu schicken ist sehr ungewöhnlich. Entweder geht gleich der Start oder die Initialisierung in die Hose oder er läuft ... bei mir wochenlang ohne Probleme (ich habe sogar 3 parallel laufen)
2xCCU3 mit ca. 100 Aktoren, Sensoren
Entwicklung: FHEM auf Proxmox Debian VM
Produktiv inzwischen auf Home Assistant gewechselt.
Maintainer: HMCCU, (Fully, AndroidDB)

Nic0205

list-ausgabe:

Internals:
   CHANGED
   DEF        MEQ0723295:1 readonly
   IODev      d_ccu
   NAME       WZ_vorn_Fenster
   NR         54
   STATE      closed
   TYPE       HMCCUCHN
   ccuaddr    MEQ0723295:1
   ccudevstate Active
   ccuif      BidCos-RF
   ccuname    Fenster Wohnzimmer vorn
   ccutype    HM-Sec-SCo
   channels   1
   statevals  readonly
   Readings:
     2016-04-22 06:46:16   Fenster_Wohnzimmer_vorn.ERROR 0
     2016-04-22 06:46:16   Fenster_Wohnzimmer_vorn.LOWBAT no
     2016-04-22 06:46:16   Fenster_Wohnzimmer_vorn.STATE closed
     2016-04-22 06:46:16   state           closed
Attributes:
   IODev      d_ccu
   ccureadingfilter (ERROR|LOWBAT|STATE)
   devStateIcon closed:10px-kreis-gruen open:10px-kreis-rot
   event-on-change-reading .*
   substitute STATE!(0|false):closed,(1|true):open;LOWBAT!(0|false):no,(1|true):yes



bei ls -lrt ändert sich nichts - ccuqueue_2001.dat ist 0 Byte groß und bleibt es auch:

pi@LiNaDo_Home:/tmp $ ls -lrt
insgesamt 16
drwx------ 2 pi   pi      4096 Apr 19 21:08 ssh-9y9gPWkUWLjn
drwxr-xr-x 2 pi   pi      4096 Apr 19 21:08 hsperfdata_pi
drwx------ 2 pi   pi      4096 Apr 19 21:08 ssh-00DJdDNk0bYV
srwxr-xr-x 1 pi   pi         0 Apr 19 21:08 libdhcpcd-wpa-1097.1
srwxr-xr-x 1 pi   pi         0 Apr 19 21:08 libdhcpcd-wpa-1097.0
-rw-rw-rw- 1 fhem dialout    1 Apr 22 21:36 ccuqueue_2001.idx
-rw-rw-rw- 1 fhem dialout    0 Apr 22 21:36 ccuqueue_2001.dat
pi@LiNaDo_Home:/tmp $ ls -lrt
insgesamt 16
drwx------ 2 pi   pi      4096 Apr 19 21:08 ssh-9y9gPWkUWLjn
drwxr-xr-x 2 pi   pi      4096 Apr 19 21:08 hsperfdata_pi
drwx------ 2 pi   pi      4096 Apr 19 21:08 ssh-00DJdDNk0bYV
srwxr-xr-x 1 pi   pi         0 Apr 19 21:08 libdhcpcd-wpa-1097.1
srwxr-xr-x 1 pi   pi         0 Apr 19 21:08 libdhcpcd-wpa-1097.0
-rw-rw-rw- 1 fhem dialout    1 Apr 22 21:36 ccuqueue_2001.idx
-rw-rw-rw- 1 fhem dialout    0 Apr 22 21:36 ccuqueue_2001.dat
pi@LiNaDo_Home:/tmp $ ls -lrt
insgesamt 16
drwx------ 2 pi   pi      4096 Apr 19 21:08 ssh-9y9gPWkUWLjn
drwxr-xr-x 2 pi   pi      4096 Apr 19 21:08 hsperfdata_pi
drwx------ 2 pi   pi      4096 Apr 19 21:08 ssh-00DJdDNk0bYV
srwxr-xr-x 1 pi   pi         0 Apr 19 21:08 libdhcpcd-wpa-1097.1
srwxr-xr-x 1 pi   pi         0 Apr 19 21:08 libdhcpcd-wpa-1097.0
-rw-rw-rw- 1 fhem dialout    1 Apr 22 21:36 ccuqueue_2001.idx
-rw-rw-rw- 1 fhem dialout    0 Apr 22 21:36 ccuqueue_2001.dat
pi@LiNaDo_Home:/tmp $ ls -lrt
insgesamt 16
drwx------ 2 pi   pi      4096 Apr 19 21:08 ssh-9y9gPWkUWLjn
drwxr-xr-x 2 pi   pi      4096 Apr 19 21:08 hsperfdata_pi
drwx------ 2 pi   pi      4096 Apr 19 21:08 ssh-00DJdDNk0bYV
srwxr-xr-x 1 pi   pi         0 Apr 19 21:08 libdhcpcd-wpa-1097.1
srwxr-xr-x 1 pi   pi         0 Apr 19 21:08 libdhcpcd-wpa-1097.0
-rw-rw-rw- 1 fhem dialout    1 Apr 22 21:36 ccuqueue_2001.idx
-rw-rw-rw- 1 fhem dialout    0 Apr 22 21:36 ccuqueue_2001.dat
pi@LiNaDo_Home:/tmp $ ls -lrt
insgesamt 16
drwx------ 2 pi   pi      4096 Apr 19 21:08 ssh-9y9gPWkUWLjn
drwxr-xr-x 2 pi   pi      4096 Apr 19 21:08 hsperfdata_pi
drwx------ 2 pi   pi      4096 Apr 19 21:08 ssh-00DJdDNk0bYV
srwxr-xr-x 1 pi   pi         0 Apr 19 21:08 libdhcpcd-wpa-1097.1
srwxr-xr-x 1 pi   pi         0 Apr 19 21:08 libdhcpcd-wpa-1097.0
-rw-rw-rw- 1 fhem dialout    1 Apr 22 21:36 ccuqueue_2001.idx
-rw-rw-rw- 1 fhem dialout    0 Apr 22 21:36 ccuqueue_2001.dat
pi@LiNaDo_Home:/tmp $ ls -lrt
insgesamt 16
drwx------ 2 pi   pi      4096 Apr 19 21:08 ssh-9y9gPWkUWLjn
drwxr-xr-x 2 pi   pi      4096 Apr 19 21:08 hsperfdata_pi
drwx------ 2 pi   pi      4096 Apr 19 21:08 ssh-00DJdDNk0bYV
srwxr-xr-x 1 pi   pi         0 Apr 19 21:08 libdhcpcd-wpa-1097.1
srwxr-xr-x 1 pi   pi         0 Apr 19 21:08 libdhcpcd-wpa-1097.0
-rw-rw-rw- 1 fhem dialout    1 Apr 22 21:36 ccuqueue_2001.idx
-rw-rw-rw- 1 fhem dialout    0 Apr 22 21:36 ccuqueue_2001.dat
pi@LiNaDo_Home:/tmp $ ls -lrt
insgesamt 16
drwx------ 2 pi   pi      4096 Apr 19 21:08 ssh-9y9gPWkUWLjn
drwxr-xr-x 2 pi   pi      4096 Apr 19 21:08 hsperfdata_pi
drwx------ 2 pi   pi      4096 Apr 19 21:08 ssh-00DJdDNk0bYV
srwxr-xr-x 1 pi   pi         0 Apr 19 21:08 libdhcpcd-wpa-1097.1
srwxr-xr-x 1 pi   pi         0 Apr 19 21:08 libdhcpcd-wpa-1097.0
-rw-rw-rw- 1 fhem dialout    1 Apr 22 21:36 ccuqueue_2001.idx
-rw-rw-rw- 1 fhem dialout    0 Apr 22 21:36 ccuqueue_2001.dat
pi@LiNaDo_Home:/tmp $ ls -lrt
insgesamt 16
drwx------ 2 pi   pi      4096 Apr 19 21:08 ssh-9y9gPWkUWLjn
drwxr-xr-x 2 pi   pi      4096 Apr 19 21:08 hsperfdata_pi
drwx------ 2 pi   pi      4096 Apr 19 21:08 ssh-00DJdDNk0bYV
srwxr-xr-x 1 pi   pi         0 Apr 19 21:08 libdhcpcd-wpa-1097.1
srwxr-xr-x 1 pi   pi         0 Apr 19 21:08 libdhcpcd-wpa-1097.0
-rw-rw-rw- 1 fhem dialout    1 Apr 22 21:36 ccuqueue_2001.idx
-rw-rw-rw- 1 fhem dialout    0 Apr 22 21:36 ccuqueue_2001.dat
pi@LiNaDo_Home:/tmp $ ls -lrt
insgesamt 16
drwx------ 2 pi   pi      4096 Apr 19 21:08 ssh-9y9gPWkUWLjn
drwxr-xr-x 2 pi   pi      4096 Apr 19 21:08 hsperfdata_pi
drwx------ 2 pi   pi      4096 Apr 19 21:08 ssh-00DJdDNk0bYV
srwxr-xr-x 1 pi   pi         0 Apr 19 21:08 libdhcpcd-wpa-1097.1
srwxr-xr-x 1 pi   pi         0 Apr 19 21:08 libdhcpcd-wpa-1097.0
-rw-rw-rw- 1 fhem dialout    1 Apr 22 21:36 ccuqueue_2001.idx
-rw-rw-rw- 1 fhem dialout    0 Apr 22 21:36 ccuqueue_2001.dat
pi@LiNaDo_Home:/tmp $ ls -lrt
insgesamt 16
drwx------ 2 pi   pi      4096 Apr 19 21:08 ssh-9y9gPWkUWLjn
drwxr-xr-x 2 pi   pi      4096 Apr 19 21:08 hsperfdata_pi
drwx------ 2 pi   pi      4096 Apr 19 21:08 ssh-00DJdDNk0bYV
srwxr-xr-x 1 pi   pi         0 Apr 19 21:08 libdhcpcd-wpa-1097.1
srwxr-xr-x 1 pi   pi         0 Apr 19 21:08 libdhcpcd-wpa-1097.0
-rw-rw-rw- 1 fhem dialout    1 Apr 22 21:36 ccuqueue_2001.idx
-rw-rw-rw- 1 fhem dialout    0 Apr 22 21:36 ccuqueue_2001.dat
pi@LiNaDo_Home:/tmp $ ls -lrt
insgesamt 16
drwx------ 2 pi   pi      4096 Apr 19 21:08 ssh-9y9gPWkUWLjn
drwxr-xr-x 2 pi   pi      4096 Apr 19 21:08 hsperfdata_pi
drwx------ 2 pi   pi      4096 Apr 19 21:08 ssh-00DJdDNk0bYV
srwxr-xr-x 1 pi   pi         0 Apr 19 21:08 libdhcpcd-wpa-1097.1
srwxr-xr-x 1 pi   pi         0 Apr 19 21:08 libdhcpcd-wpa-1097.0
-rw-rw-rw- 1 fhem dialout    1 Apr 22 21:36 ccuqueue_2001.idx
-rw-rw-rw- 1 fhem dialout    0 Apr 22 21:36 ccuqueue_2001.dat
pi@LiNaDo_Home:/tmp $ ls -lrt
insgesamt 16
drwx------ 2 pi   pi      4096 Apr 19 21:08 ssh-9y9gPWkUWLjn
drwxr-xr-x 2 pi   pi      4096 Apr 19 21:08 hsperfdata_pi
drwx------ 2 pi   pi      4096 Apr 19 21:08 ssh-00DJdDNk0bYV
srwxr-xr-x 1 pi   pi         0 Apr 19 21:08 libdhcpcd-wpa-1097.1
srwxr-xr-x 1 pi   pi         0 Apr 19 21:08 libdhcpcd-wpa-1097.0
-rw-rw-rw- 1 fhem dialout    1 Apr 22 21:36 ccuqueue_2001.idx
-rw-rw-rw- 1 fhem dialout    0 Apr 22 21:36 ccuqueue_2001.dat
pi@LiNaDo_Home:/tmp $ cat ccuqueue_2001.idx
0pi@LiNaDo_Home:/tmp $ cat ccuqueue_2001.dat
pi@LiNaDo_Home:/tmp $ cat ccuqueue_2001.dat
pi@LiNaDo_Home:/tmp $


Kann ich irgendwo so was wie ein erweitertes Logging aktivieren?

zap

Und der RPC-Prozess läuft?

ps -ef | grep ccurpc
2xCCU3 mit ca. 100 Aktoren, Sensoren
Entwicklung: FHEM auf Proxmox Debian VM
Produktiv inzwischen auf Home Assistant gewechselt.
Maintainer: HMCCU, (Fully, AndroidDB)

Nic0205

ja, sieht so aus:

pi@LiNaDo_Home:/tmp $ ps -ef | grep ccurpc
fhem      2199  2180  0 06:16 ?        00:01:25 /usr/bin/perl ./FHEM/ccurpcd.pl 192.168.178.101 2001 /tmp/ccuqueue_2001 ./log/ccurpcd_2001.log
pi        3630 24103  0 22:51 pts/0    00:00:00 grep --color=auto ccurpc
p

Achiim

#484
ZitatEines könntest Du noch testen: Das Attribut ccuverify auf 1 setzen und das Attribut ccuget auf "State". Letzteres bewirkt, dass das Abfragen von Datenpunkten direkt an den Aktor geht. Default ist hier "Value": da werden die Datenpunkte aus der CCU gelesen. State ist etwas langsamer als Value und belastet die Batterien beim Aktor (was aber beim Rolladen eh keine Rolle spielt).

Damit kann ich auch keinen Unterschied im Verhalten feststellen. der Slider springt immer während der Fahrt auf 0.0 und wenn die Fahrt zu Ende ist, springt er ein paar Sekunden danach auf den zuvor eingestellten Wert.

Wenn das okay ist, solltest du die vorgeschlagene Lösung mit dem Setzten des Readings "auf Verdacht" einbauen, bis eine  bessere Lösung identifiziert ist. Ich stehe hierzu wieder zum Testen bereit.
3x Raspberry PI, 2x DUB-H7, 3x CUL868, 2x CUL433, 1x RFXTRX, 1x Jeelink, Max! 8x Wand- + 14x Heizkörperthermostate + 13x Fensterkontakte, 3x HM Schaltaktoren + Dimmer + Leistungsmessung, 8x HM Rauchmelder, Intertechno, LW12, LED Strip 5050, Foscam, FS20 Dim-Slider FS20DIS, FS20 Bewegungsmelder

bunni

Habe alles installiert, und trotzdem bekomme ich ich die Meldung Cannot load HMCCU Modul, rechte sind auch gesetzt! Was mache ich falsch?

zap

Zitat von: bunni am 23 April 2016, 11:29:47
Habe alles installiert, und trotzdem bekomme ich ich die Meldung Cannot load HMCCU Modul, rechte sind auch gesetzt! Was mache ich falsch?

Dazu gibt es vermutlich eine Fehlermeldung im fhem Logfile. Die brauche ich, dann kann ich Dir wahrscheinlich mehr zur Ursache sagen
2xCCU3 mit ca. 100 Aktoren, Sensoren
Entwicklung: FHEM auf Proxmox Debian VM
Produktiv inzwischen auf Home Assistant gewechselt.
Maintainer: HMCCU, (Fully, AndroidDB)

bunni

Liege leider zur Zeit im Krankenhaus, sobald ich zu Hause bin werde ich das Log File posten! Danke Dir!

zap

Das tut mir leid. Dann wünsche ich Dir baldige Genesung!
2xCCU3 mit ca. 100 Aktoren, Sensoren
Entwicklung: FHEM auf Proxmox Debian VM
Produktiv inzwischen auf Home Assistant gewechselt.
Maintainer: HMCCU, (Fully, AndroidDB)

Nic0205

Hallo zap,

Zitatja, sieht so aus:

Code: [Auswählen]
pi@LiNaDo_Home:/tmp $ ps -ef | grep ccurpc
fhem      2199  2180  0 06:16 ?        00:01:25 /usr/bin/perl ./FHEM/ccurpcd.pl 192.168.178.101 2001 /tmp/ccuqueue_2001 ./log/ccurpcd_2001.log
pi        3630 24103  0 22:51 pts/0    00:00:00 grep --color=auto ccurpc
p
Beitrag editieren

der pc server scheint ja vermeintlich noch zu laufen. Ich habe heute morgen einmal hem restarted. Daraufhin leif alles super bis ca. 17.35.

Ich vermute, dass es genau ab diese Meldung im Log nicht mehr geht:

HMCCU: Received no events from CCU since 300 seconds

Kannst Du dadurch das Problem eingrenzen?

Grüße
Nic

Nic0205

#490
Hallo nochmal,

etwas ist mir noch aufgefallen:

Ich habe hier einen alten Thermostaten konfiguriert (mit Absicht mal ganz rudimentär):

IODev
d_ccu
NAME
Bad_Heizung
NR
155
STATE
Initialized
TYPE
HMCCUDEV
ccuaddr
HEQ0508540
ccudevstate
Active
ccuif
BidCos-RF
ccuname
Heizung Bad
ccutype
HM-CC-TC
channels
4
statevals
devstate
Readings
Raumklima_Bad.HUMIDITY
53
2016-04-24 11:48:27
Raumklima_Bad.TEMPERATURE
18.600000
2016-04-24 11:48:27
Soll_Temperatur_Bad.ADJUSTING_COMMAND
0
2016-04-24 11:48:48
Soll_Temperatur_Bad.ADJUSTING_DATA
0
2016-04-24 11:48:48
state
Initialized
2016-04-24 11:42:34


Ich bekomme diesen aber nie vom state "initialized" weg.

Durch die Attribute:

statechannel 1

statedatapoint Raumklima_Bad.TEMPERATURE


sollte doch eigentlich der State gleich TEMPERATURE sein. Ich habe das Gefühl (kann mich aber auch täuschen), dass das den RPC Server auch in den "Wahnsinn" treibt und deswegen nicht immer alle Statusänderungen verarbeitet werden.

Bei einem get Bad_Heizung update werden auch alle Readings aktualisiert, aber eben state ändert sich nichts.


die Readings sehen so aus:

Heizung_Bad.0.CONFIG_PENDING
false
2016-04-24 11:48:03
Heizung_Bad.0.LOWBAT
false
2016-04-24 11:48:03
Heizung_Bad.0.RSSI_DEVICE
1
2016-04-24 11:48:03
Heizung_Bad.0.RSSI_PEER
188
2016-04-24 11:48:03
Heizung_Bad.0.STICKY_UNREACH
false
2016-04-24 11:48:03
Heizung_Bad.0.UNREACH
false
2016-04-24 11:48:03
Raumklima_Bad.HUMIDITY
53
2016-04-24 11:54:20
Raumklima_Bad.TEMPERATURE
18.600000
2016-04-24 11:54:20
Soll_Temperatur_Bad.ADJUSTING_COMMAND
0
2016-04-24 11:54:40
Soll_Temperatur_Bad.ADJUSTING_DATA
0
2016-04-24 11:54:40
Soll_Temperatur_Bad.SETPOINT
1.000000
2016-04-24 11:48:03
Soll_Temperatur_Bad.STATE
N/A
2016-04-24 11:48:03
state
Initialized
2016-04-24 11:42:34

Hat jemand noch einen Tip für mich? Kann es sein, dass es das Attribut "State" im Thermostaten einfach nicht gibt, HMCCU aber verzweifelt versucht dieses Attribut auf "State" in FHEM zu mappen?

zap

#491
Hallo Nic,

Du darfst bei statedatapoint nur den Datenpunkt angeben, also z.B. TEMPERATURE. Der entsprechende Kanal (Nummer) wird über statechannel festgelegt. HMCCU mappt diesen Datenpunkt auf STATE. Das beeinträchtigt den RPC Server nicht.
Das ist leider noch etwas unschön, zumal bei controldatapoint die Kanalnummer und der Datenpunkt zusammen angegeben werden. Ist leider nicht so einfach zu ändern, ohne die Kompatibilität zu verlieren.

Zu Deinem RPC Server Problem: Du hast also FHEM morgens gestartet und damit auch den RPC Server. Dann wurden bis nach 17:00 Uhr auch die Readings immer wieder automatisch aktualisiert, nicht nur einmalig beim Starten?? Und dann hat die Aktualisierung plötzlich aufgehört?

Die Meldung im Log "received no events since 300 seconds besagt nur, dass seit 5 Minuten keine Aktualisierung von der CCU mehr über den RPC Server in FHEM ankam. Das ist also das Symptom, nicht die Ursache.

Falls möglich schau Dir mal /var/log/messages in der CCU an. Gibt es da Fehlermeldungen?
2xCCU3 mit ca. 100 Aktoren, Sensoren
Entwicklung: FHEM auf Proxmox Debian VM
Produktiv inzwischen auf Home Assistant gewechselt.
Maintainer: HMCCU, (Fully, AndroidDB)

Nic0205

Hallo zap,

ZitatDu darfst bei statedatapoint nur den Datenpunkt angeben, also z.B. TEMPERATURE. Der entsprechende Kanal (Nummer) wird über statechannel festgelegt. HMCCU mappt diesen Datenpunkt auf STATE. Das beeinträchtigt den RPC Server nicht.
Das ist leider noch etwas unschön, zumal bei controldatapoint die Kanalnummer und der Datenpunkt zusammen angegeben werden. Ist leider nicht so einfach zu ändern, ohne die Kompatibilität zu verlieren.

Das war es - jetzt funktioniert auch das Mapping - danke!

Hast Du noch einen Tip für mich, wie ich jetzt z.B. TEMPERATURE in FHEM-Tablet-UI anspreche (was nehme ich denn als data-device)?

ZitatZu Deinem RPC Server Problem: Du hast also FHEM morgens gestartet und damit auch den RPC Server. Dann wurden bis nach 17:00 Uhr auch die Readings immer wieder automatisch aktualisiert, nicht nur einmalig beim Starten?? Und dann hat die Aktualisierung plötzlich aufgehört?

Die Meldung im Log "received no events since 300 seconds besagt nur, dass seit 5 Minuten keine Aktualisierung von der CCU mehr über den RPC Server in FHEM ankam. Das ist also das Symptom, nicht die Ursache.

Falls möglich schau Dir mal /var/log/messages in der CCU an. Gibt es da Fehlermeldungen?

Ja genau so war es. Leider ist var/log/messages bei mir nur 1 Tag - und heute habe ich schon zig mal restarted. Ich beobachte das mal.



Gruß
Nic

zap

Zitat von: Nic0205 am 24 April 2016, 15:13:43
Hast Du noch einen Tip für mich, wie ich jetzt z.B. TEMPERATURE in FHEM-Tablet-UI anspreche (was nehme ich denn als data-device)?

Du gibst als data-device den Namen des FHEM-Devices an, dessen Reading Du darstellen möchtest. In Deinem vorherigen Beispiel wäre das "Bad_Heizung".


2xCCU3 mit ca. 100 Aktoren, Sensoren
Entwicklung: FHEM auf Proxmox Debian VM
Produktiv inzwischen auf Home Assistant gewechselt.
Maintainer: HMCCU, (Fully, AndroidDB)

Nic0205

ZitatDu gibst als data-device den Namen des FHEM-Devices an, dessen Reading Du darstellen möchtest. In Deinem vorherigen Beispiel wäre das "Bad_Heizung".

Das funktioniert für TEMPERATURE prima, wenn ich jetzt aber z.B. "HUMIDITY" anzeigen will, klappt das nicht.

<div data-type="label" class="narrow darker" data-device="Bad_Heizung.HUMIDITY"></div>
zeigt einfach nichts.
<div data-type="label" class="narrow darker" data-device="Bad_Heizung"></div>
zeigt mir TEMPERATURE