Ich betreibe mein fhem in einer virtuellen Maschine und hatte einige Problem mit der USB-Latenz bei Nutzung von einem HM-CFG-USB zusammen mit dem "hmland". Mein Host-System, an dem der USB-Stick steckt, ist ein Windows 8.1 und mein fhem läuft unter TinyCore-Linux in VMWare. Mein Verdacht war, dass die Latzenz wegen dem "VM-Umgweg" so schlecht ist. Die Latenz schwankte zwischen 40 und 500 ms.
Ich habe auch mal versucht, die VM unter Virtualbox laufen zu lassen, aber dort war die Latenz noch schlechter und war permanent >500 ms.
Die Idee war nun, den HM-CFG-USB nicht mehr mit der VM zu verbinden, sondern direkt mit dem Windows-Host-System, und dann fhem aus der VM heraus per (virtuellem) Netzwerk mit dem USB-Stick reden zu lassen. Leider funktionierte das hmland nicht von Haus aus unter Windows, wegen der libusb.
Lange Rede, kurzer Sinn: Ich habe etwas an dem hmland rumgebastelt, um ihn unter Windows (cygwin) kompilieren und laufen lassen zu können. Vielleicht hat ja auch jemand anders Verwendung dafür. Kritik bzw. Rückmeldung ist natürlich gerne gesehen.
(Der Code kompiliert und läuft übrigens soweit ich weiß auch weiterhin unter Linux)
Ich habe das Ganze jetzt bei mir unter Windows 8.1 auf einem i5 laufen und eigentlich immer Latenzen <50 ms und es scheint bisher im Zusammenspiel mit fhem stabil und vor allem schnell zu laufen. Also das Latenz-Problem tritt damit bei mir nicht mehr auf.
(Ich nutze nur die hmland.exe. Die anderen Programme (flash und sniff) habe ich noch nicht benutzt, sind aber enthalten)
Source Code:
https://github.com/verybadsoldier/hmcfgusb/tree/cygwin
Binaries finden sich im Anhang.
Außerdem muss der entsprechende Treiber für den Stick installiert werden. Am einfachsten mit dem Tool: http://zadig.akeo.ie/
hiho,
also kann ich einfach die hmland.exe per cmd starten ? ohne irgendwas von cygwin oder dergleichen installieren zu muessen ?
Ich habe jetzt per Zadig den hm-cfg-usb auf WINusb gewechselt und dann die hmland.exe versucht mit den folgenden Argumenten zu starten:
hmland -p 1000
hmland -p 1000 -D
hmland -i
hmland
leider bekomme ich immer folgenden Fehler !
C:\Users\Administrator\Desktop\xx\hmcfgusb>hmland -p 1000
Can't open device: Operation not supported or unimplemented on this platform
Can't find/open hmcfgusb!
Can't initialize HM-CFG-USB!
System = Laptop - i5, Win7x64 pro
im hmcfgusb-Ordner befinden sich die 7 Dateien aus deinem Anhang.
danke schonmal für Hilfe !
gruß ogglobi
Also die cygwin-DLLs, die beim Ausführen gebraucht werden sind dabei. Cygwin musst du nur installieren, wenn du den Quellcode selbst übersetzen willst.
Zu dem Problem:
Hast du den Treiber für den Stick korrekt installiert? Ich nutze im den WinUSB. Evtl. dann nochmal im Geräte-Manager gucken, ob der Treiber auch dort angezeigt wird.
geschafft :-)
habe es erst auf einem frischen Win8 ausprobiert - hat funktioniert. !
dann den eigentlichen "Win7-Server" nochmal komplett bereinigt und paar mal neu gestartet.
jetzt funktioniert alles !!
vielen Dank !! und schönen Abend.
gruß ogglobi
ich schon wieder :-)
habe jetzt das ganze noch versucht durch ein USB-over-IP Tool laufen zu lassen, um den HM-CFG-USB auf einem Hyper-V 2012 Server-Client mit Windows 7x64pro laufen zu lassen ... leider ohne Erfolg bisher :-( - habe es als HidUsb und WinUsb versucht zu sharen aber bekomme immer :
Can't find/open hmcfgusb!
Can't initialize HM-CFG-USB!
im Device-Manager vom Client Win7 bekomme ich den HM-CFG-USB als Universal Serial Bus Devices angezeigt, aber hmland findet ihn irgendwie nicht ... irgendwelche tips noch ?
gruß ogglobi
Zu dem USB-over-IP kann ich leider nix sagen, aber warum brauchst du das überhaupt. Per hmland ist doch das HMUSB sowieso netzwerkweit als HMLAN erreichbar. Oder was hast du vor?
Zitat von: vbs am 18 Dezember 2014, 15:42:44
Per hmland ist doch das HMUSB sowieso netzwerkweit als HMLAN erreichbar. Oder was hast du vor?
das stimmt schon, dennoch wollte ich falls möglich hmland nicht auf dem Hypervisor laufen lassen, sondern lieber über USB-over-IP in der virtuellen Maschine von Hyper-V.
mein Motto - "keep the Hypervisor clean" - (soweit es geht) :-)
vielleicht fällt jmd. anders ja noch was ein.
dennoch vielen Dank dir nochmal ! - deine hmland.exe läuft bisher spitze !
gruß ogglobi
Bei dem Ansatz ist IMHO aber ein anderes wichtiges Motto, was rede ich, Grundprinzip in der IT verletzt: KISS
Sorry - couldn't resist.
Tobi
Hi,
sag mal könnte man mit deiner Lösung den USB-Adapter auch mit eine Windows-Fhem-Installation betreiben? Das geht ja offensichtlich aktuell noch nicht, soweit ich die ganzen Threads verstanden habe...
Viele Grüße
doc
Ja, das sollte gehen. Der hmland ist ja ein eigener Prozess der über Netzwerk angesprochen wird. Das heißt, dem ist es egal ob ein Windows-FHEM oder ein Linux-FHEM anfragt.
Coole Sache, sollte ich das ausprobieren müssen - weil ich zur Zeit kein Glück mit den HM-LANs habe - werde ich berichten! Wenn der nächste HM-LAN auch spinnt (kommt am Dienstag) versuche ich es mit einem USB-Stick.
Viele Grüße
doc
ZitatWenn der nächste HM-LAN auch spinnt
@docb
was tut denn nicht? beim HMLan
den HMUSB mußt du genauso streicheln alle 25 sekunden
Den erstem beim Firmware-Update geschrottet und Nr. 2 und 3 (die als Ersatz gekommen sind) konnte ich nicht konfigurieren, weil die Konfig-Software den aufgedruckte AES-Key nicht akzeptiert hat. Nachdem ich fast nicht glaube, dass zwei HM-Lans einen falsch programmierten AES-Key haben, befürchte ich, dass das vielleicht an der HM-Software liegt, die trotz mehrfacher Neuinstallation und verschiedener Versionen (1.515 und 1.517) noch irgendwas in der Registry hinterlassen hat. Aber ich habe keine Lust deswegen einer meiner zwei Rechner, von den aus ich das versucht habe, platt zumachen um die HM-Software nochmal sauber aufzusetzen. Echt nervig!
Viele Grüße
Hallo vbs,
gerhardg verwies mich in meinem Problem-Thread (http://forum.fhem.de/index.php?topic=32410.msg249126) auf deine Bemühungen den HM-CFG-USB in Windows zum Laufen zu bringen.
Ich habe die letzten 3 Wochen viel Energie in FHEM gesteckt, konnte jedoch den Stick bisher nicht ohne größere Probleme zum Laufen bringen. Bis heute :)
Vielen Dank für deine Arbeit!
Ggf. solltest du auf die Treiberinstallation mit zadig noch etwas eingehen. Vor allem die Tatsache, dass das Gerät zunächst nicht gelistet wird, da bereits installiert, verwirrte. Auch die Ungewissheit ob man z.B. WinUSB noch besorgen muss, plagte mich. Bei mir wurde das Gerät letztlich als USB-HID gelistet und mischte sich damit unter drei Treiber der USB-Tastatur. Unterscheiden konnte ich sie durch die Angabe Ort und Vergleich der Ausgben in zadig.
Ich habe nun immer noch ab und an Meldungen, welche jedoch wie nach dem beschrieben Neustart des USB-Sticks aussehen? (wie in hmland unter Linux auch, nur mit anderen Meldungen??). Davor und danach ist alles i.O..
Interrupt transfer not completed: Unknown error code 1 / 0x01!
closing device-connection due to error 5
closing device-connection due to error 5
closing device-connection due to error 5
Timings waren bei mir übrigens während der Anbindung per VM ganz i.O.. Aber erst als ich Teile von hmland auskommentierte, behob ich damit zumindest die letzte der folgenden Meldungen und bekam die Anbindung in FHEM teilweise zum Laufen. Mehr dazu in dem Problem-Thread (http://forum.fhem.de/index.php?topic=32410.msg249126).
write: Broken pipe
Can't send null frame: Operation timed out
Viele Grüße,
Robert
Freut mich, wenn jemand etwas damit anfangen kann. Zu deinem Problem hab ich leider keine Ideen, sorry :( Kann nur sagen, dass das bei mir noch nicht aufgefallen ist.
Die Probleme kamen seit jeher nicht wieder. Vielen Dank!
Im ersten Post die aktuelle Version (Stand heute) von hmland für Windows. Außerdem das git-Repo neu (sauber) aufgesetzt, so dass die originale Historie enthalten ist.
Kennt jemand evtl. eine Möglichkeit, hmland als Dienst laufen zu lassen?
Meine Versuche, mittels sc.exe die .exe als Dienst zu registrieren scheiterten immer damit dass der Dienstmanager entweder meinte, dass der Dienst "nicht rechtzeitig auf eine Steuerantwort reagierte" oder ewig im Status "wird gestartet" hängen bleibt.
Das könnte etwas für dich sein: http://www.firedaemon.com/
Wenn du den Dienst mit sc erstellst und den Parameter -d dranhängst, wird hmland.exe trotzdem bei jedem Start als Dienst (bzw. laut Parameter als Deamon) ausgeführt, auch wenn im Ereignisprotokoll ein Fehler kommt, dass der Dienst nicht gestartet werden konnte. Unschön, aber läuft.
Meine Konfiguration auf einem Win Server 2012 R2:
- Mit sc.exe create "HMCFGUSB" binPath= "C:\hmcfgusb\hmland.exe -d" den Dienst erstellen.
- In den Diensteinstellungen unter Allgemein ->Starttyp -> Automatisch und unter Anmelden -> Lokales Systemkonto & Datenaustausch zwischen Dienst und Desktop zulassen.
Ich lasse es bei mir mal laufen, beobachte und hoffe, dass hmland nicht abstürzt, denn die Fehlererkennung, ob ein Dienst läuft oder nicht funktioniert aufgrund der o.g. Fehlermeldung nicht. Sollte es Probleme geben, werde ich mit der Aufgabenplanung rumspielen.
Viele Grüße
Bogdan
Moin moin,
ich habe die letzten Tage FHEM umgezogen von XP auf Win 8. Mit etwas Schmerzen scheint es soweit zu laufen.
Problem msgLoadHistory leer
Seit etwa r8793 svn://svn.code.sf.net/p/fhem/code/trunk/fhem wurde aus msgLoadEst msgLoadHistory.
msgLoadHistory zeigt nun nur noch "5min steps: 0/0/0/0/0/-/-/-/-/-/-/-" obwohl Load vorhanden.
Nach Code wird $mFld[7] erwartet, es kommen jedoch nur Felder bis $mFld[6]. (00_HMLAN.pm->HMLAN_Parse)
Nach https://forum.fhem.de/index.php/topic,39140.msg312871.html#msg312871 zu urteilen könnte es ein Firmwareproblem sein, wobei dort ein Wechsel von 0.964 gemacht wurde.
Ich habe seit jeher am Laufen:
> D-firmware 0.967
> hmland 0.097-git
Könnte bei mir auch daran liegen, dass hmland und/oder Firmware zu alt sind? Enthält die Zip aus Post 1 bereits die aktuelle hmland? (vermutlich nach Datum zu urteilen eher nicht?)
Ich bin nun bei der Recherche auch über die Möglichkeit culfw auf HM-CFG-USB-2 gestoßen. https://forum.fhem.de/index.php/topic,38404.0.html Ist das etwas?
Vielen Dank.
Gruß,
Robert
Hm, kann ich erstmal nix zu sagen. Hat vermutlich nix mit der Windows-Portierung im Speziellen zu tun, oder? Frag mal besser im allgemeinen Bereich nach.
Ich hatte Hänger in FHEM und hmland nach ~30 min mit 25% Auslastung (4 Kerne) nach dem Wechsel von XP auf Win 8.
Log meldet(e) Can't fork. Das reduzierte sich mit dem Update des 2 Jahre alten Rollouts (hatte Änderungen aufgrund https://forum.fhem.de/index.php/topic,34357.0/topicseen.html und weiteren Notwendigkeiten). Can't fork habe ich durch Umlegen einiger Parameter weg"optimiert" und nun bleibt nur noch das Hängen.
Wie auch immer. Liegt vermutlich an meiner Ignoranz das BS zu wechseln.
Hast du Möglichkeiten die hmcfgusb.zip aus Post 1 spontan zu aktualisieren? Oder gibt es ein Tut? Ich würde das Update gerne mal wagen.
Vielen Dank für deine zeitnahe Reaktion :)
Edit: Ich leier grad die Cygwin-Installation durch. Wird Zeit. Die letzten 2 Male prägten reichlich...