Wetterdaten in APRS-Nachricht per TCP verschicken?

Begonnen von dl9sec, 05 Februar 2018, 15:37:12

Vorheriges Thema - Nächstes Thema

dl9sec

Hallo zusammen,

ich betreibe ein kleines FHEM-System mit dem ich hauptsächlich Sensordaten (Tempertauren, Luftfeuchte) sammle und anzeige.
Ich habe auch eine KS300 ELV-Wetterstation intergriert.
Die Daten der Wetterstation würde ich nun gerne zyklisch als APRS-Nachricht direkt an einen APRS-Server (siehe http://4x5mg.inphoto.co.il/2016/05/02/sending-information-aprs-server/) schicken. Hierzu muss vorher noch ein wenig Vorverarbeitung erfolgen (z.B. Umrechnung der Temperatur in Fahrenheit, diverse Regenmengen, usw.), dann kann die Nachricht zusammengebaut und verschickt werden.

Hat jemand sowas schon einmal gemacht und eventuell entsprechende Module programmiert?

Vielen Dank.

Gruß, Thorsten

dl9sec

Hallo zusammen,

ich habe mal ein bisschen weiter recherchiert und bin auf eine potenzielle Lösung gestoßen, bei der sich die Java-Apllikation javAPRSSrvr darum kümmert die Wetterdaten, die in einer Datei Wxnow.txt zyklisch zusammengefasst werden, als APRS-Nachricht an einen APRS-IS zu senden.

Damit ändert sich für mich die Fragestellung etwas:

Wie bekomme ich die Daten meiner KS300 vorverarbeitet aus FHEM heraus in eine Datei Wxnow.txt (siehe http://wiki.sandaysoft.com/a/Wxnow.txt)?

Ich habe leider keinerlei Erfahrung mit Perl selbst.
Vielleicht hat jemand den einen oder anderen Tipp oder Codeschnipsel...

Vielen Dank.

Gruß, Thorsten

dev0

Wenn alle notwendigen Werte (Readings) vorhanden sind, dann ein at oder notify definieren, dass die Werte in ein file schreibt.

https://www.google.de/search?q=perl+write+file
http://perldoc.perl.org/functions/open.html
https://fhem.de/commandref.html#perl (für die ReadingsVal Syntax)

ZitatIch habe leider keinerlei Erfahrung mit Perl selbst.
Das kannst Du ändern, wenn Du möchtest.

dl9sec

Zitat von: dev0 am 06 Februar 2018, 16:49:14
Wenn alle notwendigen Werte (Readings) vorhanden sind, dann ein at oder notify definieren, dass die Werte in ein file schreibt.

https://www.google.de/search?q=perl+write+file
http://perldoc.perl.org/functions/open.html
https://fhem.de/commandref.html#perl (für die ReadingsVal Syntax)
Vielen Dank. Schau ich mir an...

Zitat
Das kannst Du ändern, wenn Du möchtest.
Ja klar, mach ich ja auch. Allerdings ist auch meine Lebenszeit begrenzt und hilfreiche Hinweise in die richtige Richtung sparen einfach Zeit und Energie  ;)

magomme

Hallo dl9sec
hattest Du hier einen Erfolg ? Das Thema würde mich auch interessieren.
Grüsse

magomme

#5
Hab es jetzt selbst hinbekommen,
ich schreibe alle meine zu übertragenden Werte mit SingelFileLog in eine Datei.
define <name> SingleFileLog <filename> <regexp>
Dann lese ich die Werte aus den LogFiles und sende diese zum APRS Server.
#!/bin/bash
#Define login info
user=yourHAMSIGN
password=yourPasscode

#Define object user info
senduser=yourHAMSIGN

#Define APRS-IS server
server=austria.aprs2.net
port=14580

#Define station location
lat=xxxx.xxN
lon=xxxxx.xxE

#Read value from file
temp=$(head -n5 yourfile.txt|tail -n1)
hum=$(head -n5 yourfile.txt|tail -n1)
pres=$(head -n5 yourfile.txt|tail -n1)
#echo $temp $hum $pres

#Define data
comment="QTH"
data="$senduser>APN100,TCPIP*:=${lat}/${lon}-${comment} ${temp}°C ${hum}% ${pres}hPA"

#Authentication variable
aprsauth="user $user pass $password"

#Send data
printf "%s\n" "$aprsauth" "$data" | ncat --send-only $server $port

Dann noch alle zwei Minuten das Script ausführen. Fertig.
defmod TX_FHEMtoAPRS at +*00:02:00 { system("yourscript.sh") }