HMCCU: Status immer auf Initialized

Begonnen von texel, 30 März 2019, 10:55:46

Vorheriges Thema - Nächstes Thema

texel

Hallo zusammen,

ich habe heute auf den externen RPC umgestellt und bin am verzweifeln. Mittlerweile habe ich alle Gerätedefinitionen entfernt und alles neu konfiguriert.

Die RPC-Server laufen stabil. Habe 4 Beispielchannel angelegt. Diese funktionieren auch Richtung Homematic .. .nur ich bekomme keine Wert zurück. STATE ist immer auf Initialized. Auch get update etc. bringt nix. Schalten funktioniert aber gut.

Ich habe folgende Konfiguration:

defmod d_ccu HMCCU 192.168.xxx.xxx
attr d_ccu ccuReqTimeout 50
attr d_ccu ccuaggregate name:battery,filter:name=^HM_.*,read:battery,if:any=low,else:ok,prefix:battery_,coll:comment!Batterien OK;;\
name:voltage,filter:type=(HM-CC-RT-DN|HM-TC-IT-WM-W-EU),read:BATTERY_STATE,if:le=2.2,else:0,prefix:voltage_,coll:comment!Batteriespannung OK;;\
name:lock,filter:name=^HM_TF.*,read:state,if:any=open,else:closed,prefix:lock_,coll:comment!Alle Fenster/Türen geschlossen;;\
name:lockroof,filter:group=Dachfenster,read:state,if:any=open,else:closed,prefix:lockroof_,coll:comment!Alle Dachfenster geschlossen;;\
name:lockwin,filter:name=^HM_TF.*!Haustuer$,read:state,if:any=open,else:closed,prefix:lockwin_,coll:comment!Alle Fenster/Türen geschlossen;;\
name:hummax,filter:name=^HM_KL.*,read:HUMIDITY,if:ge=60,else:0,prefix:hummax_,coll:alias!Luftfeuchte OK;;\
name:unreach,filter:name=^HM_.*,read:activity,if:any=dead,else:alive,prefix:unreach_,coll:comment!Alle Devices erreichbar
attr d_ccu ccudef-readingfilter ^(LOW_?BAT|UNREACH)$
attr d_ccu ccudef-readingname ^(.+\.)?LOW_?BAT$:battery;;^(.+\.)?UNREACH$:activity
attr d_ccu ccudef-substitute LOWBAT,LOW_BAT!(0|false):ok,(1|true):low;;UNREACH!(0|false):alive,(1|true):dead;;MOTION!(0|false):noMotion,(1|true):motion;;DIRECTION!0:stop,1:up,2:down,3:undefined;;WORKING!0:false,1:true;;INHIBIT!(0|false):unlocked,(1|true):locked
attr d_ccu ccuflags procrpc
attr d_ccu cmdIcon on:general_an off:general_aus
attr d_ccu event-on-change-reading .*
attr d_ccu eventMap /rpcserver on:on/rpcserver off:off/
attr d_ccu room Homematic
attr d_ccu rpcinterfaces BidCos-RF,BidCos-Wired,CUxD
attr d_ccu rpcport 2001,2000,8701
attr d_ccu rpcserver on
attr d_ccu stateFormat rpcstate/state
attr d_ccu stripnumber 1

setstate d_ccu running/OK
setstate d_ccu 2019-03-30 10:41:47 count_channels 302
setstate d_ccu 2019-03-30 10:41:47 count_devices 23
setstate d_ccu 2019-03-30 10:41:47 count_groups 0
setstate d_ccu 2019-03-30 10:41:47 count_interfaces 5
setstate d_ccu 2019-03-30 10:41:47 count_programs 48
setstate d_ccu 2019-03-30 10:42:10 rpcstate running
setstate d_ccu 2019-03-30 10:42:10 state OK
setstate d_ccu 2019-03-30 10:43:13 unreach_count 4
setstate d_ccu 2019-03-30 10:43:13 unreach_list Alle Devices erreichbar
setstate d_ccu 2019-03-30 10:43:13 unreach_match 0
setstate d_ccu 2019-03-30 10:43:13 unreach_state alive



und den Channel:

defmod HM_Bewaesserung__Garten HMCCUCHN IEQ0024022:14
attr HM_Bewaesserung__Garten IODev d_ccu
attr HM_Bewaesserung__Garten room Homematic

setstate HM_Bewaesserung__Garten 2019-03-30 10:42:10 activity alive
setstate HM_Bewaesserung__Garten 2019-03-30 10:42:10 hmstate Initialized
setstate HM_Bewaesserung__Garten 2019-03-30 10:41:47 state Initialized




Ergebnis:

activity alive 2019-03-30 10:42:10
hmstate Initialized 2019-03-30 10:42:10
state Initialized 2019-03-30 10:41:47


Ein get deviceinfo bringt mir alle Daten und auch die States der Channels (true/false) es scheint nur nicht in STATE übernommen zu werden?


Weiss jemand Rat?

viele Grüße,

Texel

texel

Hi, hab den Fehler gefunden. Es war das Filter Attribut welches ich aus dem Best Practice Wiki übernommen habe:

attr d_ccu ccudef-readingfilter ^(LOW_?BAT|UNREACH)$

Habe den Filter gelöscht, nun funktioniert das Lesen der Readings einwandfrei.

Hat sich hier etwas im Code geändert, dass der Filter nicht mehr funktioniert, bzw. kann jemand das Wiki anpassen?

Viele Grüße, Texel

zap

Das ist eigentlich kein Fehler. Die Readingfilter sind opt in, wenn du im IO Device ccudef-readingfilter setzt, d.h. Du musst mit dem Attribut ccureadingfilter im jeweiligen Device festlegen, welche Readings du haben möchtest.

Wenn ccudef-readingfilter nicht gesetzt ist, werden alle Readings angezeigt. Ich ändere dieses Verhalten im nächsten Release, da es offenbar zu sehr verwirrt.
2xCCU3 mit ca. 100 Aktoren, Sensoren
Entwicklung: FHEM auf Proxmox Debian VM
Produktiv inzwischen auf Home Assistant gewechselt.
Maintainer: HMCCU, (Fully, AndroidDB)