Code-Quickie: FHEM und 1-Wire mit OWX-ASYNC

OWX async Banner

Update 01.11.2017
Gerade habe ich im FHEM-Forum gelesen, das die Entwicklung des Moduls OWX_ASYNC eingestellt wurde. Zum Ausgleich wurde im OWX-Modul das Attribut "asynchronous" hinzugefügt.


Eines ist selber gebaut wie im Bild links zu sehen ist:



Eines ist fertig zusammengebaut (etwas verdeckt, mittiger grüner Anschlussblock) gekauft worden:



Beide funktionieren eigentlich problemlos. Eigentlich, denn mit der Zeit habe ich leichte Performance-Schwächen entdecken können, die meine beiden FHEM-Systeme ausgebremst haben. Schlechte Performance nervt mich - siehe dazu den Beitrag "Die Smart-Home Psychologie".

Um Performance-Probleme in FHEM entdecken zu können verwende ich in der Regel "apptime" sowie das zusätzliche zu installierende Modul "perfmon". "perfmon" protokolliert in meinem Haupt-LogFile entdeckte Performance Probleme, welche dann mit apptime im Folgenden feiner untersucht werden können.



So konnte ich nun schlussendlich entecken, das jeweils beim eingestellten Abfrageintervall des 1-Wire Busmasters das System kurz für 1-3 Sekunden einfriert.

Nach etwas Suchen sah ich dann, das das FHEM-Modul "OWX", welches auf den 1-Wire Busmaster zugreift, schuld ist. Kurz im FHEM-Forum nachgeschaut sah ich, das ich nicht der einzige mit diesem Problem war. In einigen Beiträgen wurde auch von einem Modul mit dem Namen "OWX_ASYNC" gesprochen, das ich das auch gleich ausprobierte. Das Modul wird standardmäßig mit FHEM mitgeliefert, was heißt man muss nur die Definition abändern von

Code
  1. define OneWire OWX /dev/serial/by-id/usb-FTDI_FT232R_USB_UART_AK05EBV8-if00-port0

in

Code
  1. define OneWire OWX_ASYNC /dev/serial/by-id/usb-FTDI_FT232R_USB_UART_AK05EBV8-if00-port0

Hier noch meine vollständige Definiton inklusive Attribute:

Erwähnenswert sind hier noch die Attribute "Buspower" sowie "dokick", dessen Bedeutungen in der comandref nachgelesen werden können. Worin sich die beiden Module letztendlich unterscheiden konnte ich leider weder der commandref noch aus dem FHEM-Wiki entnehmen.

Trotzdem brachte das neue Modul bei mir die Lösung und ich hatte keine Hänger oder Freezes des FHEM-Systems mehr. Allerdings hängte sich nun der 1-Wire Busmaster regelmäßig nach 1-2 Tagen auf. Anscheinend reagierte der Busmaster anders bzw. empfindlicher auf das "OWX_ASYNC"-Modul als wie auf das "OWX"-Modul. Nach etwas Recherche stellte sich heraus, das meine Spannung mit 4,8V etwas zu niedrig und der Auslöser des Problems war. Meine beiden Busmaster werden ja direkt von der USB-Schnittstelle des RaspberryPi versorgt. Also die Plus- und Minus-Leitungen direkt am Meanwell 5V-Netzteil angeklemmt, funktioniert es seither ohne Probleme.

Wer also Probleme, damit meine ich vor allem Performance-Probleme, mit dem normalen "OWX"-Modul hat, sollte mal einen Blick auf das "OWX_ASYNC"-Modul werfen.

    Über den Autor

    Autor von worldoftech.de. Smart-Home-Verrückter.


    Nutzt Zuhause FHEM zusammen mit HomeMatic, JeeLink, 1-Wire, Flammtronik / Atmos HV, Buderus KM271, Philips HUE, Xiaomi Yeelight, Alexa, Sonos, FritzBox, Ubiquiti UniFi APs, APC UPS, APC PDU, IPMI. MariaDB, InfluxDB und Grafana zur Auswertung. Als Hardware-Untersatz kommen mehrere RaspberryPis und Supermicro Serverhardware zum Einsatz. Softwareseitig werden hauptsächlich Raspbian, Ubuntu, ESXi und Docker verwendet.

    Reinhard Team

    Kommentare