Hallo Forum, ich spiele mich gerade mit der o.g. Wetter-Station, die ich bei Pollin gekauft habe (die gibt es eventuell auch noch bei ELV). Habe dieses Modell gewählt, weil es dazu github Code für Linux gibt. Auf der Seite von Jürgen Rocks gibt es eine schöne Beschreibung zur Kommunikation mit den externen Sensoren. https://juergen.rocks/blog/articles/elv-raumklimastation-rs500-webinterface.html Obwohl Jürgen tolle Arbeit geleistet hat, konnte ich doch seine Python-Variante bei mir nicht erfolgreich installieren, da bei mir das hid Modul partout nicht laufen wollte. Liegt aber eventuell auch an meiner unzureichenden Python Erfahrung. Jedenfalls konnte ich es nicht unter Python 3.8 und 3.10 und auch in einer virtuellen Umgebung installieren. Ausgehend von dem Code in der hid-example.c zum direkten Lesen der USB HID Devices unter Linux, habe ich read_roomlog.c nach Jürgens Vorbild erzeugt. (quick and dirty - also bitte mich nicht gleich nieder- knüppeln - konstruktive Anregungen sind aber willkommen.) Compilierung mit: gcc -o read_roomlog read_roomlog.c Schnittstelle für User-Bereich freigeben (unsicher!) chmod 666 /dev/hidraw1 oder den Nutzer in die Gruppe dailout oder sys aufnehmen. Eingestellt ist das Programm defaultmäßig auf hidraw1 kann aber mit dem ersten Parameter auf jede beliebige Schnittstelle angepasst werden. Z.B. '/dev/hidraw0' Dann kann man es in Jürgens Python Umgebung weiter verwenden oder seine Eigene Darstellung und Archivierung der Daten entwickeln. Hoffe der Code ist hilfreich und erleichtert den Einstig auch von C aus. LG Markus Nachtrag: udev rules File erzeugen /etc/udev/rules.d/91-hid.rules mit Inhalt: SUBSYSTEM=="usb", ATTR{idVendor}=="0483", ATTR{idProduct}=="5750", MODE="0666" und udev Damon als root triggern, damit der die neue Config lädt: udevadm control --reload Nachtrag2: (Kanalweises Auslesen der Werte) read_roomlog.sh #! /usr/bin/bash ./read_roomlog | grep '^ ' | awk '{if ($1=="'$1'") print $1,$2,$3}' und Ergänzung des Codes um das Celcius-Zeichen bei der Temperatur in Zeile 94. printf("% 5d %04.1f°C %2.2d\%\n",chan,t/10.0,hu);
:
Bearbeitet durch User
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.