Hallo,
ich versuche fhem 5.8 zusammen mit Homegear 0.6.14-874 zu nutzen.
Homegear "simuliert" eine CCU2. In fhem läßt sich per HMCCU eine Verbindung zu Homegear herstellen; per HMCCUDEV die Device Verbindung zum HMCCU.
Nur leider hält dieses Konstrukt keinen Restart von Fhem aus, da HMCCU sich 12 Sekunden Zeit zur Initialisierung läßt, während der HMCCUDEV entnervt "Cannot detect IO device" murmelt um dann aufzugeben. Das Ganze flankiert von der ein oder anderen "Use of uninitialized value" Meldung.
Deshalb die Frage: was tun ? Ist das ein beabsichtiges Verhalten von HMCCU / HMCCUDEV ?
Fhem config:
define Homegear HMCCU 192.168.100.80
attr Homegear ccudef-readingfilter ^(LOW_?BAT|UNREACH)$
attr Homegear ccudef-readingformat datapoint
attr Homegear ccudef-readingname ^(.+\.)?AES_KEY$:sign;;^(.+\.)?LOW_?BAT$:battery;;^(.+\.)?BATTERY_STATE$:batteryLevel;;^(.+\.)?UNREACH$:Activity;;^(.+\.)?TEMPERATURE$:+temperature;;^(.+\.)?SET_TEMPERATURE$:+desired-temp;;^(.+\.)?HUMIDITY$:+humidity;;^(.+\.)?LEVEL$:+pct;;^(.+\.)?CONTROL_MODE$:+controlMode
attr Homegear ccudef-substitute AES_KEY!(0|false):off,(1|true):on;;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 Homegear ccureadings 1
attr Homegear icon 1
attr Homegear room Homegear,3Raum
attr Homegear rpcinterfaces Homegear
attr Homegear rpcinterval 10
attr Homegear rpcport 2003
attr Homegear rpcqueue /tmp/ccuqueue
attr Homegear rpcserver on
attr Homegear stateFormat rpcstate/state
attr Homegear substitute false:closed,true:open
attr Homegear verbose 5
define HM_Termostat_Bad_1 HMCCUDEV Homegear.LEQ0400034 1
attr HM_Termostat_Bad_1 IODev Homegear
attr HM_Termostat_Bad_1 statechannel 1
Fhem Log:
2017.03.06 22:29:53 1: HMCCU: HMScript failed. 500 Can't connect to 192.168.100.80:8181
2017.03.06 22:29:53 1: define HM_Termostat_Bad_1 HMCCUDEV Homegear.LEQ0400034 1: Cannot detect IO device
2017.03.06 22:29:53 1: PERL WARNING: Use of uninitialized value in string eq at fhem.pl line 2764, <$fh> line 108.
2017.03.06 22:29:53 1: configfile: Cannot detect IO device
2017.03.06 22:29:53 0: HMCCU: Start of RPC server after FHEM initialization in 12 seconds
2017.03.06 22:29:53 2: Messages collected while initializing FHEM: configfile: Cannot detect IO device
2017.03.06 22:29:53 0: Featurelevel: 5.8
2017.03.06 22:29:53 0: Server started with 23 defined entities (fhem.pl:13622/2017-03-05 perl:5.022003 os:linux user:fhem pid:3163)
2017.03.06 22:30:05 2: HMCCU: Create child process with timeouts 0.01 and 0.25
2017.03.06 22:30:05 0: HMCCU: Child process for server CB2003 started with PID 3176
2017.03.06 22:30:05 0: CCURPC: CB2003 Creating file queue /tmp/ccuqueue_2003_1
2017.03.06 22:30:05 0: CCURPC: Initializing RPC server CB2003
2017.03.06 22:30:05 0: RPC server(s) starting
2017.03.06 22:30:05 0: CCURPC: Callback server created listening on port 7413
2017.03.06 22:30:05 1: CCURPC: CB2003 Adding callback for events
2017.03.06 22:30:05 1: CCURPC: CB2003 Adding callback for new devices
2017.03.06 22:30:05 1: CCURPC: CB2003 Adding callback for deleted devices
2017.03.06 22:30:05 1: CCURPC: CB2003 Adding callback for modified devices
2017.03.06 22:30:05 1: CCURPC: CB2003 Adding callback for replaced devices
2017.03.06 22:30:05 1: CCURPC: CB2003 Adding callback for readded devices
2017.03.06 22:30:05 1: CCURPC: CB2003 Adding callback for list devices
2017.03.06 22:30:05 1: CCURPC: CB2003 Adding callback for event query
2017.03.06 22:30:05 0: CCURPC: CB2003 Entering server loop
2017.03.06 22:30:15 0: HMCCU: Received SL event. RPC server CB2003 enters server loop
2017.03.06 22:30:22 1: HMCCU: Registering callback http://192.168.100.80:7413/fh2003 with ID CB2003 at http://192.168.100.80:2003/
2017.03.06 22:30:22 1: HMCCU: RPC callback with URL http://192.168.100.80:7413/fh2003 initialized
2017.03.06 22:30:23 1: CCURPC: CB2003 ListDevices. Sending init to HMCCU
2017.03.06 22:30:23 2: CCURPC: CB2003 NewDevice received 32 device specifications
2017.03.06 22:30:32 0: HMCCU: Received IN event. RPC server CB2003 initialized.
2017.03.06 22:30:32 2: HMCCU: Updated devices. Success=0 Failed=0
2017.03.06 22:30:32 1: HMCCU: All RPC servers running
2017.03.06 22:30:32 1: PERL WARNING: Use of uninitialized value in hash element at ./FHEM/88_HMCCU.pm line 1995.
2017.03.06 22:30:32 1: PERL WARNING: Use of uninitialized value $cc in numeric lt (<) at ./FHEM/88_HMCCU.pm line 1999.
In freudiger Erwartung grüßt
fhemputty
Bei der Definition des IO Device versucht HMCCU sich die Liste der Geräte von CCU bzw Homegear zu holen. Das geht schief bzw läuft in einen Timeout. Deshalb dauert auch die Initialisierung so lange.
Ich vermute, dass Homegear hier nicht vollständig eine CCU abbildet und z.B. kein HomeMatic Script oder die tclrega Schnittstelle unterstützt.
Wenn dann HMCCUDEV ein Device definieren möchte, sucht es nach einem IO Device, das dieses Gerät kennt. Da aber HMCCU sich keine Geräte holen könnte, gibt es die Fehlermeldung mit dem IO Device. Diese könnte aber tatsächlich etwas sprechender sein.
Hallo zap,
ich teile deine Einschätzung dass Homegear keine vollwertige CCU2 abbildet. Wobei beispielsweise das Homematic Tool "Homematic Konfigurator" schmerzfrei das Homegear als "entfernter BidCos Service" akzepiert.
ABER: definiere ich die HMCCUDEV nach FHEM & HMCCU Start "per Hand" kann ich ebenfalls ohne Probleme auf die Homematic Device zugreifen. HMCCU wird auch sauber per RFC über Statiänderungen informiert. Klicke ich auf das Device "HCCU" sind dort alle Devices verzeichnet die (ich zumindest) definiert habe.
Wäre es möglich da einen "Homegear != CCU2" Workaround zu bauen, der die Script Ausführung (dürfte "get devlist" sein) unterbindet ?
Zumal das relativ elegant am Attribut "rfcinterface = Homegear" abgefragt werden könnte ?
[ich kann mal im Homegear versuchen herauszubekommen worin der Unterschied von HMCCU und dem "Homematic Konfigurator" liegt.
Was meinst du ?
Viele Grüße
Es ist mir ein Rätsel, wie Du mit HMCCUDEV ein Device definieren kannst, wenn sich HMCCU keine Devices holen kann.
Hast Du auf 192.168.100.80 eine Firewall aktiv, die Port 8181 blockiert?
Servus.
Die Gerätschaften sind alle im gleichen lokalen Netz.
Ich bin mir nicht 100% sicher, aber als ich "set defaults" für das HMCCU abgesetzt hatte war´s ´rum mit schönen Datapoints im HMCCUDEV.
Aber funktioniert.
Welche Daten kann / soll ich dir zur Verfügung stellen ?
Die Ausgabe von "list IODevice" wäre hilfreich (IODevice natürlich ersetzt durch den Namen deines IODevice)
Variante mit nachdefiniertem HMCCUDEV.
list Homegear
Internals:
CCUNum 1
ChnCount
Clients :HMCCUDEV:HMCCUCHN:
DEF 192.168.100.80
DelDevices 0
DevCount -1
NAME Homegear
NR 52
NTFY_ORDER 50-Homegear
NewDevices 32
RPCPID 8616
RPCPRC internal
RPCState running
STATE running/OK
TYPE HMCCU
ccutype CCU2
host 192.168.100.80
version 3.9.006
Readings:
2017-03-07 20:45:56 rpcstate running
2017-03-07 20:45:56 state OK
Hmccu:
evtime 1488916069
evtimeout 0
localaddr 192.168.100.80
rpccount 1
rpcinit 1
rpcports 2003
updatetime 0
Adr:
:
valid 1
Agg:
Dev:
Leq0400034:
chntype HM-CC-RT-DN
valid 1
Leq0400034:0:
chntype MAINTENANCE
valid 1
Leq0400034:1:
chntype WEATHER_RECEIVER
valid 1
Leq0400034:2:
chntype CLIMATECONTROL_RECEIVER
valid 1
Leq0400034:3:
chntype WINDOW_SWITCH_RECEIVER
valid 1
Leq0400034:4:
chntype CLIMATECONTROL_RT_TRANSCEIVER
valid 1
Leq0400034:5:
chntype CLIMATECONTROL_RT_RECEIVER
valid 1
Leq0400034:6:
chntype REMOTECONTROL_RECEIVER
valid 1
Leq0777313:
chntype HM-CC-RT-DN
valid 1
Leq0777313:0:
chntype MAINTENANCE
valid 1
Leq0777313:1:
chntype WEATHER_RECEIVER
valid 1
Leq0777313:2:
chntype CLIMATECONTROL_RECEIVER
valid 1
Leq0777313:3:
chntype WINDOW_SWITCH_RECEIVER
valid 1
Leq0777313:4:
chntype CLIMATECONTROL_RT_TRANSCEIVER
valid 1
Leq0777313:5:
chntype CLIMATECONTROL_RT_RECEIVER
valid 1
Leq0777313:6:
chntype REMOTECONTROL_RECEIVER
valid 1
Leq0777386:
chntype HM-CC-RT-DN
valid 1
Leq0777386:0:
chntype MAINTENANCE
valid 1
Leq0777386:1:
chntype WEATHER_RECEIVER
valid 1
Leq0777386:2:
chntype CLIMATECONTROL_RECEIVER
valid 1
Leq0777386:3:
chntype WINDOW_SWITCH_RECEIVER
valid 1
Leq0777386:4:
chntype CLIMATECONTROL_RT_TRANSCEIVER
valid 1
Leq0777386:5:
chntype CLIMATECONTROL_RT_RECEIVER
valid 1
Leq0777386:6:
chntype REMOTECONTROL_RECEIVER
valid 1
Leq0778063:
chntype HM-CC-RT-DN
valid 1
Leq0778063:0:
chntype MAINTENANCE
valid 1
Leq0778063:1:
chntype WEATHER_RECEIVER
valid 1
Leq0778063:2:
chntype CLIMATECONTROL_RECEIVER
valid 1
Leq0778063:3:
chntype WINDOW_SWITCH_RECEIVER
valid 1
Leq0778063:4:
chntype CLIMATECONTROL_RT_TRANSCEIVER
valid 1
Leq0778063:5:
chntype CLIMATECONTROL_RT_RECEIVER
valid 1
Leq0778063:6:
chntype REMOTECONTROL_RECEIVER
valid 1
Ev:
DD 0
EV 27
EX 0
IN 1
ND 32
RA 0
RD 0
SL 1
ST 0
UD 0
total 61
Rpc:
Cb2003:
cbport 7413
cburl http://192.168.100.80:7413/fh2003
clurl http://192.168.100.80:2003/
loop 2
pid 8616
port 2003
queue /tmp/ccuqueue_2003_1
state running
Attributes:
ccureadings 1
icon 1
room Homegear,3Raum
rpcinterfaces Homegear
rpcinterval 10
rpcport 2003
rpcqueue /tmp/ccuqueue
rpcserver on
stateFormat rpcstate/state
substitute false:closed,true:open
verbose 5