Forum: Haus & Smart Home DNT Funk-Raumklimastation RoomLogg von Pollin


von Markus W. (dl8mby)


Angehängte Dateien:

Lesenswert?

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
Noch kein Account? Hier anmelden.