Wetterstation Auslesen mit Raspberry Pi und IPS

Ich habe eine Ventus W831 Wetterstation, die ich bisher nicht über USB auslesen konnte. Das mitgelieferte Programm ist ein Witz.
Nachdem ich diese Woche von Pollin einen Raspberry Pi bekam und zeitgleich im Internet Linux-Sourcen zum Auslesen über USB gefunden habe, habe ich das mal zusammengeführt, ein IPS-Script dafür gebaut und wie immer auf einer Projektseite abgelegt: http://www.tdressler.net/ipsymcon/te923.html
Damit man man auch andere baugleiche Modelle auslesen könne wie TFA Nexus, Mebus TE923,IROX Pro X und ggfls. weitere, da das Basismodell TE923 an verschiedene Hersteller verkauft wurde.

Tommi

die aktuelle Version 0.3 beinhaltet jetzt auch einen Tagessummenzähler und korrigiert Fehler bei der Berechnung von Windstärke und Regensummen.

Tommi

Ich habe noch eine WS3600 im Einsatz. Die wird noch über eine RS232-Schnittstelle an den PC gekoppelt, hat aber eine blöde Ansteuerung nicht über TX/RX, sondern über eine der Steuerleitungen DSR, DTR oder was auch immer, sodass ein USB-Umsetzer nicht in Frage kam. Ich hatte das mal verfolgt, aber damals nicht zu Ende gebracht.
Allerdings zeigt das Terminal immer mehr Schwächen, da es schon einige Wasserschäden hat.
Im Frühjahr werde ich mir neben der KS300 noch mal was anderes zulegen. Die Ventus W831 könnte für meinen Zweck geeignet sein.

Was ich nicht gefunden habe, ist auf welcher Frequenz sie arbeitet.

Das ist auch eine 433Mhz Wetterstation. Und im Gegensatz zu den WS2000 Sensoren gibt es sie nur mit Stromversorgung durch Batterien. Bei ELV ist sie allerdings schon wieder aus dem Sortiment geflogen. Ich habe eine W831 bei Ezcontrol.de bekommen. Es gibt aber noch verschiedene Derivate bei verschiedenen Händlern unter anderen Namen wie TFA Nexus oder Mebus 923.

Tommi

Hallo zusammen,

es ist zwar schon eine Weile her, aber anscheinend hat jemand die Ventus W831 schon einmal erfolgreich an IP-Symcon angebunden.

Ich habe folgendes Problem:

Bin nach dem tdressler Howto vorgegangen und kann über den Konsolenbefehl innerhalb der Konsole auch Werte auslesen.
Leider habe ich es bisher nicht hinbekommen, dass diese Daten über den Apache im Browser angezeigt werden.
Sowohl im IE als auch im Firefox wird mir bei Aufruf der CGI eine leere Seite angezeigt.

Habt ihr dafür einen Rat?

Die Frage hatte ich diese Woche schon einmal per PN. Bitte alle Punkte aus meiner Antwort prüfen

Frage

[QUOTE]Ich habe leider das Problem, dass das CGI-Script nicht ausgibt (Quelltext ist leer).
Das Programm te923con funktioniert als root wie gewünscht.

Antwort

da gibt es mehrere Möglichkeiten. Zunächst muss das Script ausführbar für alle sein (chmod a+x <scriptname>).
Dann muss die Ausführung durch den Apache zugelassen und das Script auch in diesem Verzeichnis sein

In /etc/apache2/sites-enabled steht normalerweise das
ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
<Directory „/usr/lib/cgi-bin“>
AllowOverride None
Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
Order allow,deny
Allow from all
</Directory>

also sollte das Script dort liegen:
ls -l /usr/lib/cgi-bin/
insgesamt 4
-rwxr-xr-x 1 root root 500 Dez 24 2012 get_data.cgi

Dann wie im Script beschrieben muss die udev-rule in /etc/udev/rules.d liegen
ls -l /etc/udev/rules.d
insgesamt 8
-rw-r–r-- 1 root root 617 Jan 1 1970 70-persistent-net.rules
-rw-r–r-- 1 root root 151 Dez 24 2012 99-te923.rules
cat 99-te923.rules
ATTRS{idVendor}==„1130“, ATTRS{idProduct}==„6801“, MODE=„0660“, GROUP=„plugdev“, RUN="/bin/sh -c 'echo -n $id:1.0 > /sys/bus/usb/drivers/usbhid/unbind

und der user www-data muss in /etc/group der Gruppe plugdev zugeordnet sein
plugdev:x:46:www-data

Rückmeldung:

Ich konnte das Problem dann finden. Beim Erstellen der Device-Rule ist mir ein Kopierfehler unterlaufen.
Statt „ATTRS“ stand nur „TTRS“ am Anfang, damit konnte es nicht funktionieren.
Nun läuft das Auslesen wunderbar

[/QUOTE]
Im Browser kann man die Daten so sehen: http://rasbpi/cgi-bin/get_data.cgi?data

1390506574:20.60:38:4.70:85:5.90:78:i:i:i:i:i:i:1003.9:i:5:0:12:0.6:0.7:3.0:1352

Hallo,

das Skript funktioniert nun auch mit dem Apache.
Die CGI war für den Apache noch nicht verfügbar.
Jetzt habe ich leider noch ein kleines Problem beim IP-Symcon.

In Zeile 13 des Skripts wird mir ein Syntax Error angezeigt.
Ich habe hier die Zeile folgendermaßen angepasst:

Vorhandene Zeile: $host = #http://rasbpi2’;

Neue Zeile: $host = #http://192.168.xxx.xxx’;

Wird da etwas anderes von mir verlangt?
DIese wird mir als Fehler gemeldet.

Gruß und schon mal Danke für den ersten Hinweise mit der Apache Problematik!

Volker

Also eigentlich sollte da stehen

//base data
$host = ‚http://rasbpi2‘;

bei Dir muss vor dem http statt dem # ein Hochkomma rein

Tommi

Hallo Tommi,

das hatte ich selber natürlich schon ersetzt. Jedoch kommt immer folgende Meldung:

Parse error: syntax error, unexpected ‚$host‘ (T_VARIABLE) in [ xxx \ Wetterstation] on line 13

Da muss irgendwo ein CopyPaste-Fehler sein. Fehlt davor ein Semikolon? Bei mir tut das alles. Schicke mir doch mal Deine Version des Scriptes
Tommi

Die Übersetzung von „unexpected“ heisst: Vorher fehlt irgendwas. Beliebt Klammer zu, Strichpunkt, … sollte bei 13 Zeilen leicht findbar sein.

Hallo Leute,

hab den Fehler gefunden…

falsch: <?
php

richtig: <?php

:smiley:

Jetzt läuft es wie geschmiert…

Besten Dank für die tatkräftige Unterstützung.

Gruß

Volker

Hallo,

auf meinem RPI2 habe ich das Script zum Auslesen der Sensordaten aus dem Beitrag, sowie IPS parallel installiert.
Das Auslesen der Daten aus der Wetterstation, sowie das visualisieren des Datenstring über Putty funktioniert soweit.
D.h. die Daten liegen auf dem RPI soweit vor:

pi@raspberrypi:~ $ export QUERY_STRING=data
pi@raspberrypi:~ $ /usr/lib/cgi-bin/get_data.cgi
Content-type: text/plain

1456065733:24.55:42:6.70:91:22.10:53:22.60:51:i:i:i:i:1023.4:i:5:0:1:3.0:2.5:4.7:5994

Nun möchte ich diese Datenstring direkt in IPS einlesen und weiterverarbeiten.
Ich habe schon versucht in dem Script für IPS die IP Adresse 127.0.0.1 zu verwenden.
Das hat aber nicht funktioniert.

Hat jemand eine Tipp wie sich das realisieren lässt?

Gruß Tobias

Auf dem Raspberry muss man als root das CGI-Modul erst aktiveren, wenn es wie in Jessi standardmäßig aus ist.

a2enmod cgi
a2enconf serve-cgi-bin

Falls es ein noch Problem mit IPv4 vs. IPv6 gibt, kann man den Apache auch auf IPv4 zwingen, indem man in /etc/apache2/ports.conf die Listen Anweisung anpasst

Listen 0.0.0.0:80

Dann den Apache durchstarten

service apache2 restart

Tommi

Wie zufrieden seit Ihr mit euren Wetterstationen aus diesem Thread?
Meine Oregon WMR180 macht nach 1 Jahr schon Probleme… Der Windsensor + Regenmesse möchte nicht mehr.
Pollin bietet mir nur die Komplettrücknahme an…:mad:

Daher bin ich auf der Suche nach einer Alternative mit PC (Windows oder Raspi) Anbindung.
Wind/Regen/Temp/Feuchte.

Ich habe im Dezember 2012 die TFA Dostmann 35.1095 „Sinus“ Funk-Wetterstation bei mir installiert.

Die Station ist direkt über USB am RPI angeschlossen und funktioniert tadellos.
Über IPS werden dann die Daten visualisiert und geloggt.

[ul]
[li]Lokale Außentemperatur und Luftfeuchtigkeit über Sender
[/li][li]Lokale Windstärke und -richtung über Windmesser
[/li][li]Lokale Regenmenge über Regenmesser
[/li][li]Überwachung des Raumklimas mit Innentemperatur und Luftfeuchtigkeit
[/li][/ul]

Gruß Tobias

Hallo Tobias ,
kennst du zufällig Eusoport , das läuft auch auf dem Raspi.

Über IP-Adresse ist das Webfront erreichbar , nur ich weis nicht wie ich die Daten ins Symcon bekomme.

Ich habe dazu das Modul von Tommi2Day verbaut, ich komme nicht weiter . Kannst du mir einen Tip geben ?
Danke Michael

Hallo,

Zunächst muss auf dem Raspberry das te923con und das CGI laufen.(siehe PHP Modules by Tommi2Day Abschnitt TE923)

In IPS stellst Du dann bei URL den Pfad zum CGI ein , z.B.

http://rasbpi/cgi-bin/get_data.cgi

Tommi

Hallo ,
Danke für deine Antwort . Aber ich glaube nicht das ich auf meinem System ( Eusoport / Eusotec ) noch irgend welche Dateien installieren kann. Ich habe gedacht ich müsste einfach eine Ip angeben und Ipsymcon würde sich die csv Datei selber holen.:kissing_closed_eyes:aber das wäre zueinfach.
Danke