Hallo liebe FHEM-Gemeinde,
ich möchte - nach Einrichtung mehrere Homematic Thermostate - diese nun auslesen um IST-Temperatur und Zustand Venti (wieviel geöffnet) zu erhalten.
Dazu habe ich mich in den letzten 3 Wochen mit FHEM beschäftigt.
Ich setze den USB-Adapter (http://www.elv.de/homematic-usb-konfigurations-adapter-1.html) ein.
Ich verwende normalerweise Windows. Dort meldete FHEM jedoch bei der Ausführung von usb scan + usb create, dass Windows nicht unterstützt wird. Ich habe daher nach Anleitung hmlan in einer VM zum Laufen gebracht.
- FHEM in Windows (auf Host) -> hmlan in Debian (in VM)
- FHEM in Ubuntu (in VM) -> hmlan in Ubuntu
Ich sah zwischenzeitlich auch mindestens einmal entsprechende Temperaturwerte eines Thermostats (per Hand/ID gepairt). Jedoch stürzte FHEM unmotiviert fast immer ab, wenn ich das Thermostat in FHEM öffnete.
Ich habe nun einige Male neu begonnen. Grundproblem ist offenbar, dass hmlan mit Schalter "-D" Fehlermeldungen ausgibt wie
write: Broken pipe
Can't send null frame: Operation timed out
FHEM sagt u.a.
D-firmware 0.967
Xmit-Events disconnected:131970 init:131970 timeout:106
Ich vermute daher, dass die Kommunikation zwischen FHEM und hmlan immer wieder zusammen bricht.
Ich tippe etwas auf eine noch vorhandene Verschlüsselung? Aber ich konnte ja bereits Werte auslesen. Ich sehe aber auch nicht den USB-Adapter unter der Homematic eigenen Software "HomeMatic-Lan-Interface konfigurieren". Die Thermostate lassen sich ansonsten hervorragend per "HomeMatic-Komponenten konfigurieren" steuern/programmieren.
Ist ggf. die Verwendung des USB-Sticks in der VM ein Problem?
Letztlich lassen sich die Thermostate nicht per set HmUsb hmPairForSec 60 pairen.
Ich bin daher auf Eure Hilfe angewiesen.
Vielen Dank für die tolle Arbeit und die tollen Tutorials.
Robert
Teilausgabe von hmlan:
2015-01-19 01:21:25.747268: Client 192.168.1.104 connected!
USB > 0x0000: 49 00 00 00 00 00 00 25 55 ea ff ff c8 0f 44 86 I......%U.....D.
USB > 0x0010: 10 2e 91 15 00 00 00 0a 98 cd 10 00 00 57 00 24 .............W.$
USB > 0x0020: fa 59 00 00 01 00 00 00 00 00 00 00 00 00 00 00 .Y..............
USB > 0x0030: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
USB > 0x0000: 45 2e 9d 71 00 00 00 26 1c f5 ff ff d3 0f ff 86 E..q...&........
USB > 0x0010: 10 2e 9d 71 00 00 00 0a 98 cd 0f 00 00 57 00 24 ...q.........W.$
USB > 0x0020: fa 59 00 00 01 00 00 00 00 00 00 00 00 00 00 00 .Y..............
USB > 0x0030: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
USB > 0x0000: 48 09 48 4d 2d 55 53 42 2d 49 46 03 c7 0a 4c 45 H.HM-USB-IF...LE
USB > 0x0010: 51 31 31 39 37 36 33 32 30 84 57 30 84 57 00 26 Q11976320.W0.W.&
USB > 0x0020: 34 66 00 00 01 00 00 00 00 00 00 00 00 00 00 00 4f..............
USB > 0x0030: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
2015-01-19 01:21:25.841550: LAN < HHM-LAN-IF,03C7,LEQ1197632,308457,308457,00263466,0000
2015-01-19 01:21:25.841713: LAN < I00,00,00,00
write: Broken pipe
2015-01-19 01:21:25.841754: LAN < E2E9D71,0000,00261CF5,FF,FFD3,FF86102E9D710000000A98CD0F0000
write: Broken pipe
USB > 0x0000: 48 09 48 4d 2d 55 53 42 2d 49 46 03 c7 0a 4c 45 H.HM-USB-IF...LE
USB > 0x0010: 51 31 31 39 37 36 33 32 30 84 57 30 84 57 00 26 Q11976320.W0.W.&
USB > 0x0020: 5b a6 00 00 01 00 00 00 00 00 00 00 00 00 00 00 [...............
USB > 0x0030: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
2015-01-19 01:21:25.870270: LAN < HHM-LAN-IF,03C7,LEQ1197632,308457,308457,00265BA6,0000
write: Broken pipe
USB < 0x0000: 4b 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 K...............
USB < 0x0010: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
USB < 0x0020: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
USB < 0x0030: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
Can't send null frame: Operation timed out
2015-01-19 01:21:45.794471: LAN > A308457
USB < 0x0000: 41 30 84 57 00 00 00 00 00 00 00 00 00 00 00 00 A0.W............
USB < 0x0010: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
USB < 0x0020: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
USB < 0x0030: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
Can't send null frame: Operation timed out
2015-01-19 01:21:55.930576: LAN > C
USB < 0x0000: 43 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 C...............
USB < 0x0010: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
USB < 0x0020: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
USB < 0x0030: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
Can't send null frame: Operation timed out
2015-01-19 01:22:05.955668: LAN > Y01,00,
USB < 0x0000: 59 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 Y...............
USB < 0x0010: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
USB < 0x0020: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
USB < 0x0030: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
Can't send null frame: Operation timed out
2015-01-19 01:22:16.024815: LAN > Y02,00,
USB < 0x0000: 59 02 00 00 00 00 00 00 00 00 00 00 00 00 00 00 Y...............
USB < 0x0010: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
USB < 0x0020: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
USB < 0x0030: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
FHEM:
Internals
CFGFN
DEF 192.168.1.104:1000
DeviceName 192.168.1.104:1000
FD 4
HmUsb_MSGCNT 19
HmUsb_TIME 2015-01-19 00:30:04
NAME HmUsb
NR 27
NTFY_ORDER 50-HmUsb
PARTIAL
RAWMSG E2E90F3,0000,0000507B,FF,FFC7,7D86102E90F30000000A70BD100000
RSSI -57
STATE opened
TYPE HMLAN
XmitOpen 0
assignedIDsCnt 0
msgKeepAlive dlyMax:0.027 bufferMin:4
msgLoadEst 1hour:0% 10min steps: 0/0/0/0/0/0
owner 8D0C2D
uptime 000 00:00:20.603
Readings
D-HMIdAssigned 308457 2015-01-19 01:06:14
D-HMIdOriginal 308457 2015-01-19 01:06:14
D-firmware 0.967 2015-01-19 01:06:14
D-serialNr LEQ1197632 2015-01-19 01:06:14
Xmit-Events disconnected:132029 init:132029 timeout:165 2015-01-19 01:54:54
cond init 2015-01-19 01:54:54
prot_disconnected last 2015-01-19 01:54:54
prot_init last 2015-01-19 01:54:54
prot_timeout last 2015-01-19 01:54:54
state opened 2015-01-19 00:58:22
Attributes
hmId 308457
hmLanQlen 1_min
room Arbeitszimmer
attr global userattr devStateIcon devStateStyle icon sortby webCmd widgetOverride
attr global autoload_undefined_devices 1
attr global logfile ./log/fhem-%Y-%m.log
attr global modpath .
attr global motd SecurityCheck:\
\
WEB,WEBphone,WEBtablet has no basicAuth attribute.\
telnetPort has no password/globalpassword attribute.\
Running with root privileges.\
Restart FHEM for a new check if the problem is fixed,\
or set the global attribute motd to none to supress this message.\
attr global statefile ./log/fhem.save
attr global updateInBackground 1
attr global verbose 3
define telnetPort telnet 7072 global
define WEB FHEMWEB 8083 global
define WEBphone FHEMWEB 8084 global
attr WEBphone stylesheetPrefix smallscreen
define WEBtablet FHEMWEB 8085 global
attr WEBtablet stylesheetPrefix touchpad
# Fake FileLog entry, to access the fhem log from FHEMWEB
define Logfile FileLog ./log/fhem-%Y-%m.log fakelog
define autocreate autocreate
attr autocreate filelog ./log/%NAME-%Y.log
define eventTypes eventTypes ./log/eventTypes.txt
# Disable this to avoid looking for new USB devices on startup
define initialUsbCheck notify global:INITIALIZED usb create
define HmUsb HMLAN 192.168.1.104:1000
attr HmUsb hmId 308457
attr HmUsb hmLanQlen 1_min
attr HmUsb room Arbeitszimmer
Guten Abend,
ich hatte endlich ein AC auf dem Display des Thermostats stehen.
Das letzte was ich an meinem Vorgehen änderte war:
- statt der vorgegebenen hmid 308457 (aus D-HMIdOriginal) eine andere verwendet, z.B. 754803
- statt set HmUsb hmPairForSec 60 + Anlerntaste (auf dem Gerät) stattdessen Anlerntaste + set HmUsb hmPairForSec 60
- das Gerät wurde gefunden, eingerichtet
- aber weiter passierte nichts (CMDs_pending, wartendende CMDs stiegen weiter an, rssi_at_HmUsb war cnt: 1, R-pairCentral nach erstem Anlernen nicht gelistet, nach Löschen und zweitem Anlernen set_0x754803)
- in Ausgabe hmland immer wieder > Can't send null frame: Operation timed out - dazwischen > write: Broken pipe
- von http://forum.fhem.de/index.php/topic,13071.75.html irritiert, dass alle ein "usb-transfer took ...ms!" sehen, außer ich, wälzte ich den Code und kommentierte schließlich unsicherheitshalber hmcfgusb_send_null_frame() aus - seit dem
- rssi_at_HmUsb zählt langsam aber stetig hoch (cnt: 76), protState ist inzwischen sogar CMDs_done, R-pairCentral ist 0x754803
- Thermostat zeigte zum ersten Mal "AC" und anschließend das Antennensymbol
- FHEM liest stetig Temperatur usw. aus
- hmland gibt aus > usb-transfer took 28ms!
- aber auch immer noch > write: Broken pipe
Zur Sicherheit nachgefragt: Verbrenn ich da grad meinen USB-Stick?
Bei Bedarf kann ich gerne morgen weitere Details zusammen tragen.
Probier mal die Windows Version von hmland, hat vor kurzen jemand hier im Forum veröffentlicht. Fhem kannst du weiterhin in der VM betreiben.
> - statt der vorgegebenen hmid 308457 (aus D-HMIdOriginal) eine andere verwendet, z.B. 754803
Die hmid ist offenbar egal. Pairen funktionierte - mit etwas Mühe - auch mit hmid 308457 (aus D-HMIdOriginal) (attr HmUsb hmId 308457).
> - statt set HmUsb hmPairForSec 60 + Anlerntaste (auf dem Gerät) stattdessen Anlerntaste + set HmUsb hmPairForSec 60
Das ist offenbar wichtig. Andersherum hatte das Pairen nie funktioniert.
-> Im Homematic Konfigurator muss man zuerst den Stick und anschließend die Thermostate in den Anlernmodus versetzen.
-> Anleitung sagt zuerst am Thermostat, dann an Zentrale - also den Stick.
Das Pairen hatte seltsamerweise auch nie funktioniert, wenn FHEM das Gerät bereits kennt. Der Eindruck kann aber auch täuschen.
---
Ich vermute du meinst dieses.
http://forum.fhem.de/index.php/topic,29441.msg232234/topicseen.html
Bin auf dem Weg... der erste Ansatz (vor 2 Wochen) mit msys endete mit
> hmland.c:31:18: fatal error: poll.h: No such file or directory
Cygwin aufsetzen scheiterte in den letzten 3 Jahren mehrere Male an nicht verfügbaren Paketen und meiner Ahnungslosigkeit.
Die von vbs zur Verfügung gestellte Binary ist in diesem Fall daher Gold wert. Vielen Dank hierfür!
Obwohl sich die Verbindung zuletzt besserte, war sie immer noch leicht lückenhaft. Die VM und auch das Hostsystem ließen sich auch nicht mehr herunterfahren bzw. blieb darin stecken, USB-Stick blinkte im Dauerzustand.
Offenbar ist also das Weiterreichen des Sticks in die Virtualisierung ein Problem.
Anlernen und Ablernen funktionieren nun problemlos. Sogar das Absetzen einer Solltemperatur kam nach einiger Wartezeit durch :).
FHEM ist inzwischen wieder nach Windows gezogen, so, dass ich mir nun auch wieder die VM erspare.