FHEM Forum

FHEM => Sonstiges => Thema gestartet von: scholty am 27 Juli 2014, 15:48:55

Titel: Server für Applied Sensors iAM (Voltcraft) CO-20 Luftgütesensor
Beitrag von: scholty am 27 Juli 2014, 15:48:55
Hallo Gemeinde,

im Thread http://forum.fhem.de/index.php/topic,13166.0.html (http://forum.fhem.de/index.php/topic,13166.0.html) wurde ja ein Modul (CO20) entwickelt,
das den Luftgütesensor von Applied Sensors (erhältlich derzeit bei Velux) für FHEM zugreifbar macht.

Das klappt bestens, hat aber für mich zwei Nachteile
1) Man benötigt libusb und den Perl Wrapper Device::USB
2) Der Sensor funktioniert nur auf dem Server, auf dem FHEM läuft

Nachteil 1 trifft mich, da ich eine Fritz!Box als Server verwende. Dort gelang es mich nicht, das nötige Perl Modul zu installieren.
Leider habe ich von Perl gar keine Ahnung und daher habe ich keine Idee, wie man den von "Inline" erzeugten wrapper Code cross-compilieren könnte.
Außerdem möchte ich sowieso mehrere Räume überwachen und benötige daher eine Möglichkeit, remote auf einen Sensor zugreifen zu können.

Daher habe ich mich ans Werk gemacht und zwei Dinge geschaffen

1) Einen Server, der auf den Sensor zugreift und die Daten über eine TCP Verbindung abrufbar macht. Der benötigt zwar libusb (zumindest zum compilieren), aber keinen perl wrapper. Der kann also auf Fritz!Boxen oder anderen Maschinen laufen. Einfach mit -h aufrufen und es gibt eine Hilfe, wie er zu starten ist. Beachtet dabei auch die Hinweise im Original Thread, was die Zugriffsrechte (udev) betrifft.
Man kann sich dann mit netcat oder telnet an den Server verbinden. Das Kommando "help" erläutert die vorhandenen Befehle.
Mit "value" kann man z.B. den Sensor abfragen.

Also Server starten mit z.B. airsensor_box_s -p 4040
Dann telnet <host> 4040
Nun z.B. version eingeben.

2) Ein FHEM Moul namens CO20_net, das auf diesen Server zugreift. Syntax:
    define <name> CO20_net <hostname>:<port>

    Dies ist in großen Teilen identisch mit dem CO20 Modul, greift zum Lesen der Daten aber auf den Server zu.
    Ansonsten tut es das, was auch das CO20 Modul tut (hoffe ich).

Mir wäre es lieber gewesen, das in das originale CO20 Modul zu packen, aber da ich (wie gesagt) von Perl keine Ahnung habe, hatte ich Bedenken wegen der "Uses Device:USB" Anweisung. Da ich auf den Wrapper verzichten wollte, habe ich mich für ein zweites Modul entschieden. Ist auch zum Testen einfacher.
Vielleicht kann ja ein Perl-Kenner die zwei verheiraten bevor es nach FHEM geht.  ;D

Das Ganze ist gehostet bei sourceforge https://sourceforge.net/projects/airsensornet/ (https://sourceforge.net/projects/airsensornet/).
Da könnt Ihr die Sourcen, das FHEM Modul und ein statisch gelinktes Binary des Servers für die Fritz!Box 7390 herunterladen.
Letzteres sollte off-the-shelf auf jeder 7330/7390 laufen. Einfach per ftp hochladen und per telnet starten.

Bin gespannt, was Ihr davon haltet.

Grüße

scholty

Titel: Antw:Server für Applied Sensors iAM (Voltcraft) CO-20 Luftgütesensor
Beitrag von: volschin am 27 Juli 2014, 16:09:35
Hört sich für mich spannend an. Ich habe eine ähnliche Situation. Ich werde Deine Lösung demnächst mal testen.

Gruß
Veit
Titel: Antw:Server für Applied Sensors iAM (Voltcraft) CO-20 Luftgütesensor
Beitrag von: justme1968 am 27 Juli 2014, 16:22:02
das ganze mit ins normale modul einzubauen ist kein problem.

wenn das abfragen des sensors schon in einen server ausgelagert ist wäre es vielleicht geschickt den sensor aktiv schicken zu lassen. das ist vielleicht vom timing her besser und entlastet fhem noch etwas.

also etwa so: das fhem modul baut die Verbindung zum server auf, sendet das intervall und der server sendet dann von sich aus in diesem intervall die werte auf der offenen verbindung.

gruss
  andre
Titel: Antw:Server für Applied Sensors iAM (Voltcraft) CO-20 Luftgütesensor
Beitrag von: scholty am 27 Juli 2014, 16:32:45
Zitat von: justme1968 am 27 Juli 2014, 16:22:02
das ganze mit ins normale modul einzubauen ist kein problem.
Das höre ich gerne  :)

Zitat von: justme1968 am 27 Juli 2014, 16:22:02
[...] wäre es vielleicht geschickt den sensor aktiv schicken zu lassen.
Das in den Server einzubauen wäre kein Problem. Allerdings hätte das erfordert, das CO20 Modul in seiner Struktur zu ändern.
Und da ich nicht nur von Perl, sondern auch von FHEM-Programmierung keine Ahnung habe, bin ich davor zurück geschreckt.

Wenn gewünscht, kann ich gerne ein Kommando einbauen, das regelmäßig einen Messwert verschickt.

Grüße

scholty
Titel: Antw:Server für Applied Sensors iAM (Voltcraft) CO-20 Luftgütesensor
Beitrag von: scholty am 03 August 2014, 15:33:33
Hallo, allerseits,

gibt es inzwischen Testergebnisse?
Ich selber hatte ein paar kleinere Probleme nach der Portierung auf den RasPi der in Zukunft der Server in meinem Schlafzimmer sein wird.
Die fixes habe ich im SVN bereits eingespielt.
Gerne würde ich eine abschließende Version 1.0 (zumindest des Servers) erstellen. Wenn Ihr also noch Input habt, wäre ich daran interessiert.
Die automatischen Updates habe ich im Server übrigens auch drin, das Modul nutzt sie jedoch nicht.

Grüße

scholty
Titel: Antw:Server für Applied Sensors iAM (Voltcraft) CO-20 Luftgütesensor
Beitrag von: volschin am 22 September 2014, 22:24:50
Hallo scholty,
da ich mich entschlossen habe, von der FritzBox auf Raspi zu wechseln, hat sich die Notwendigkeit für mich erledigt. Ich setze für die weiteren Sensoren auf FHEM2FHEM.

Gruß,
Veit