DNT Funk-Raumklimastation RoomLogg von Pollin

OP #7214781
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);
Angehängte Dateien:

Antwort schreiben

Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt. Bitte hier nur auf die ursprüngliche Frage antworten, für neue Fragen einen neuen Beitrag erstellen.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.