NEWS
[Linux Shell-Skript] WLAN-Wetterstation
-
@oliver1972
Ich habe es mir eben noch mal angeschaut ob ich da ev. die Werte/Sensoren falsch zugeordnet habe, konnte aber so nichts finden.
Kannst du nochmal einen aktuellen String (./wetterstation.sh --data
) posten (Passkey etc. kannst du kpl. löschen, ich brauche eigentlich nur den Teil mit den 16 Sensoren)? Dann kann ich mir Messwerte von 1-16 faken und sehe wo die Falschzuweisung erfolgt -
@mike77 sagte in [Linux Shell-Skript] WLAN-Wetterstation:
@sborg genau. Und wie vermutet... ECOWITT WS3900 funktioniert.
Danke für dein Skript
Mike
Immer gerne und nehme ich mit in die Liste auf
-
@sborg die Ecowitt WS3800 (A) kannst du auch gerne in die Liste aufnehmen
-
@sborg sagte in [Linux Shell-Skript] WLAN-Wetterstation:
mit
jetzt kommt nur noch das
Datenübertragung an windy.com: {"observations":[],"stations":[]}
aber es werden Daten geschickt (Vgl. mit den letzten 2 Tagen)
-
@sborg Habe mal alles kopiert (außer Versionsinfo), da ich mich hier Zuwenig auskenne..:
#Versionierung SH_VER="V3.5.0" CONF_V="V3.5.0" SUBVER="V3.5.0" #Installationsverzeichnis feststellen DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" >/dev/null 2>&1 && pwd )" #Config-Version prüfen VER_CONFIG=$(cat "${DIR}/wetterstation.conf"|grep '### Setting'|cut -d" " -f3) if [ $CONF_V != $VER_CONFIG ]; then echo -e "wetterstation: \e[31mERROR #000 - Config-Version mismatch!\n" echo -e "benutzt: $VER_CONFIG\t benötigt wird: $CONF_V \e[0m" exit 1 fi #Sub-Version prüfen SUB_CONFIG=$(cat "${DIR}/wetterstation.sub"|grep '### Subroutinen'|cut -d" " -f3) if [ $SUBVER != $SUB_CONFIG ]; then echo -e "wetterstation: \e[31mERROR #001 - Subroutinen-Version mismatch!\n" echo -e "benutzt: $SUB_CONFIG\t benötigt wird: $SUBVER \e[0m" exit 1 fi #Konfiguration lesen + Subroutinen laden . "${DIR}/wetterstation.conf" . "${DIR}/wetterstation.sub" #gibt es Parameter? while [ "$1" != "" ]; do case $1 in --debug ) version debug=true #override ;; --osem_reg ) osem_register exit ;; --windy_reg ) windy_register exit ;; --metsommer ) metsom_override=true metsommer exit ;; --influx_test) minmax24h DEBUG exit ;; -s | --show ) show_pwid=true ;; -d | --data ) setup ws_data exit ;; -v | --version ) version exit ;; -h | --help ) usage exit ;; * ) usage exit 1 esac shift done #Setup + Initial ausführen setup minmaxheute #Endlosschleife while true do #Kommunikation herstellen und Daten empfangen get_DATA #KOM-Fehler? if [ "$?" -eq "0" ]; then unset MESSWERTE; unset MESSWERTERAWIN MESSWERTERAWIN=(${DATA//&/ }) rawinlen=${#MESSWERTERAWIN[@]} j=35 for (( i=1; i<rawinlen; i++ )) do if [[ ${MESSWERTERAWIN[$i]} == tempinf=* ]] || [[ ${MESSWERTERAWIN[$i]} == indoortempf=* ]] then MESSWERTE[0]=$(echo ${MESSWERTERAWIN[$i]}|cut -d"=" -f2); INDOOR_TEMP=${MESSWERTE[0]}; convertFtoC 0; fi if [[ ${MESSWERTERAWIN[$i]} == tempf=* ]] then MESSWERTE[1]=$(echo ${MESSWERTERAWIN[$i]}|cut -d"=" -f2); TEMPF=${MESSWERTE[1]}; convertFtoC 1; do_trend_aussentemp; fi if [[ ${MESSWERTERAWIN[$i]} == dewptf=* ]] then MESSWERTE[2]=$(echo ${MESSWERTERAWIN[$i]}|cut -d"=" -f2); DEWPTF=${MESSWERTE[2]}; convertFtoC 2; fi if [[ ${MESSWERTERAWIN[$i]} == windchillf=* ]] then MESSWERTE[3]=$(echo ${MESSWERTERAWIN[$i]}|cut -d"=" -f2); convertFtoC 3; fi if [[ ${MESSWERTERAWIN[$i]} == humidityin=* ]] || [[ ${MESSWERTERAWIN[$i]} == indoorhumidity=* ]] then MESSWERTE[4]=$(echo ${MESSWERTERAWIN[$i]}|cut -d"=" -f2); fi if [[ ${MESSWERTERAWIN[$i]} == humidity=* ]] then MESSWERTE[5]=$(echo ${MESSWERTERAWIN[$i]}|cut -d"=" -f2); fi if [[ ${MESSWERTERAWIN[$i]} == windspeedmph=* ]] then MESSWERTE[6]=$(echo ${MESSWERTERAWIN[$i]}|cut -d"=" -f2); convertMPHtoKMH 6; fi if [[ ${MESSWERTERAWIN[$i]} == windgustmph=* ]] then MESSWERTE[7]=$(echo ${MESSWERTERAWIN[$i]}|cut -d"=" -f2); convertMPHtoKMH 7; fi if [[ ${MESSWERTERAWIN[$i]} == winddir=* ]] then MESSWERTE[8]=$(echo ${MESSWERTERAWIN[$i]}|cut -d"=" -f2); winddir 8; fi if [[ ${MESSWERTERAWIN[$i]} == baromabsin=* ]] || [[ ${MESSWERTERAWIN[$i]} == absbaromin=* ]] then MESSWERTE[9]=$(echo ${MESSWERTERAWIN[$i]}|cut -d"=" -f2); convertLuftdruck 9; fi if [[ ${MESSWERTERAWIN[$i]} == baromrelin=* ]] || [[ ${MESSWERTERAWIN[$i]} == baromin=* ]] then MESSWERTE[10]=$(echo ${MESSWERTERAWIN[$i]}|cut -d"=" -f2); convertLuftdruck 10; fi if [[ ${MESSWERTERAWIN[$i]} == rainratein=* ]] || [[ ${MESSWERTERAWIN[$i]} == rainin=* ]] || [[ ${MESSWERTERAWIN[$i]} == rrain_piezo=* ]] then MESSWERTE[11]=$(echo ${MESSWERTERAWIN[$i]}|cut -d"=" -f2); convertInchtoMM 11; fi if [[ ${MESSWERTERAWIN[$i]} == dailyrainin=* ]] || [[ ${MESSWERTERAWIN[$i]} == drain_piezo=* ]] then MESSWERTE[12]=$(echo ${MESSWERTERAWIN[$i]}|cut -d"=" -f2); convertInchtoMM 12; fi if [[ ${MESSWERTERAWIN[$i]} == weeklyrainin=* ]] || [[ ${MESSWERTERAWIN[$i]} == wrain_piezo=* ]] then MESSWERTE[13]=$(echo ${MESSWERTERAWIN[$i]}|cut -d"=" -f2); convertInchtoMM 13; fi if [[ ${MESSWERTERAWIN[$i]} == monthlyrainin=* ]] || [[ ${MESSWERTERAWIN[$i]} == mrain_piezo=* ]] then MESSWERTE[14]=$(echo ${MESSWERTERAWIN[$i]}|cut -d"=" -f2); convertInchtoMM 14; fi if [[ ${MESSWERTERAWIN[$i]} == yearlyrainin=* ]] || [[ ${MESSWERTERAWIN[$i]} == yrain_piezo=* ]] then MESSWERTE[15]=$(echo ${MESSWERTERAWIN[$i]}|cut -d"=" -f2); convertInchtoMM 15; fi if [[ ${MESSWERTERAWIN[$i]} == solarradiation=* ]] then MESSWERTE[16]=$(echo ${MESSWERTERAWIN[$i]}|cut -d"=" -f2); sonnenpuls 16; fi if [[ ${MESSWERTERAWIN[$i]} == uv=* ]] || [[ ${MESSWERTERAWIN[$i]} == UV=* ]] then MESSWERTE[17]=$(echo ${MESSWERTERAWIN[$i]}|cut -d"=" -f2); uv_belastung 17; fi if [[ ${MESSWERTERAWIN[$i]} == dateutc=* ]] then MESSWERTE[18]=$(echo ${MESSWERTERAWIN[$i]}|cut -d"=" -f2); convertTime 18; fi if [[ ${MESSWERTERAWIN[$i]} == stationtype=* ]] || [[ ${MESSWERTERAWIN[$i]} == softwaretype=* ]] then MESSWERTE[19]=$(echo ${MESSWERTERAWIN[$i]}|cut -d"=" -f2); fi if [[ ${MESSWERTERAWIN[$i]} == wh65batt=* ]] then MESSWERTE[20]=$(echo ${MESSWERTERAWIN[$i]}|cut -d"=" -f2); fi if [[ ${MESSWERTERAWIN[$i]} == maxdailygust=* ]] then MESSWERTE[21]=$(echo ${MESSWERTERAWIN[$i]}|cut -d"=" -f2); convertMPHtoKMH 21; fi if [[ ${MESSWERTERAWIN[$i]} == eventrainin=* ]] then MESSWERTE[22]=$(echo ${MESSWERTERAWIN[$i]}|cut -d"=" -f2); convertInchtoMM 22; fi if [[ ${MESSWERTERAWIN[$i]} == hourlyrainin=* ]] then MESSWERTE[23]=$(echo ${MESSWERTERAWIN[$i]}|cut -d"=" -f2); convertInchtoMM 23; fi if [[ ${MESSWERTERAWIN[$i]} == totalrainin=* ]] then MESSWERTE[24]=$(echo ${MESSWERTERAWIN[$i]}|cut -d"=" -f2); convertInchtoMM 24; fi if [[ ${MESSWERTERAWIN[$i]} == model=* ]] then MESSWERTE[25]=$(echo ${MESSWERTERAWIN[$i]}|cut -d"=" -f2); fi if [[ ${MESSWERTERAWIN[$i]} == winddir_avg10m=* ]] then MESSWERTE[26]=$(echo ${MESSWERTERAWIN[$i]}|cut -d"=" -f2); winddir 26; fi if [[ ${MESSWERTERAWIN[$i]} == windspdmph_avg10m=* ]] then MESSWERTE[27]=$(echo ${MESSWERTERAWIN[$i]}|cut -d"=" -f2); convertMPHtoKMH 27; fi if [[ ${MESSWERTERAWIN[$i]} == vpd=* ]] then MESSWERTE[30]=$(echo ${MESSWERTERAWIN[$i]}|cut -d"=" -f2); fi ### zusätzliche DPxxx-Sensoren ############################################################ if [ "${ANZAHL_DP10}" -gt "0" ]; then DP10; fi if [ "${ANZAHL_DP35}" -gt "0" ]; then DP35; fi if [ "${ANZAHL_DP40}" -gt "0" ]; then DP40; fi if [ "${ANZAHL_DP50}" -gt "0" ] || [ "${ANZAHL_DP100}" -gt "0" ]; then DP50_100; fi if [ "${ANZAHL_DP60}" -gt "0" ]; then DP60; fi if [ "${ANZAHL_DP70}" -gt "0" ]; then DP70; fi if [ "${ANZAHL_DP200}" -gt "0" ]; then DP200; fi if [ "${ANZAHL_DP250}" -gt "0" ]; then DP250; fi if [ "${ANZAHL_DP300}" -gt "0" ]; then DP300; fi ### zusätzliche DPxxx-Sensoren ################################################### ENDE ### ### zusätzliche WHxxx-Sensoren ############################################################ if [ "${ANZAHL_WH31}" -gt "0" ]; then WH31; fi ### zusätzliche WHxxx-Sensoren ################################################### ENDE ### ### zusätzliche WSxxx-Sensoren ############################################################ if [ "${ANZAHL_WS90}" -gt "0" ]; then WS90; fi ### zusätzliche WHxxx-Sensoren ################################################### ENDE ### ### zusätzliche Bresser-Sensoren ########################################################## if [ "${ANZAHL_7009999}" -gt "0" ]; then BR_001; fi ### zusätzliche WHxxx-Sensoren ################################################### ENDE ### ### zusätzliche Sainlogic oder Curconsa Sensoren, Station FT0300 ########################### if [ "${ANZAHL_DP50}" -eq "0" ] || [ "${ANZAHL_DP100}" -eq "0" ]; then if [[ ${MESSWERTERAWIN[$i]} == temp1f=* ]] then MESSWERTE[28]=$(echo ${MESSWERTERAWIN[$i]}|cut -d"=" -f2); convertFtoC 28; fi if [[ ${MESSWERTERAWIN[$i]} == humidity1=* ]] then MESSWERTE[29]=$(echo ${MESSWERTERAWIN[$i]}|cut -d"=" -f2); fi fi ### zusätzliche Sainlogic oder Curconsa Sensoren, Station FT0300 ################## ENDE ### done #Taupunkt und Windchill do_windchill #durchschnittliche Windgeschwindigkeit der letzten 10 Minuten if [[ ! "$DATA" =~ "windspdmph_avg10m=" ]]; then do_windspeed ${MESSWERTE[6]}; fi #Daten an ioB schicken if [ ${FIX_AUSSENTEMP} == "true" ] then if (( $(bc -l <<< "${MESSWERTE[1]} > -273") )) then iob_send if [ "${TEMPFIX_ERR}" -gt "0" ]; then let "TEMPFIX_ERR--"; fi else MELDUNG "unplausibler Messwert Aussentemperatur. Datenpaket verworfen..." let "TEMPFIX_ERR++" if [ "${TEMPFIX_ERR}" -gt "10" ] then MELDUNG "m%C3%B6glicherweise Batterie des Wettermastes schwach" SAPI "Single" "set/${DP_STATION_BATTERIE}?value=1&ack=true" fi fi else iob_send fi #Reset Kommfehler if [ ! -z "$KOMFEHLER" ] && [ "$KOMFEHLER" -gt "0" ]; then let "KOMFEHLER--" if [ "$KOMFEHLER" -eq "0" ] && [ $RESET_KOMFEHLER == "true" ]; then SAPI "Single" "set/${DP_KOMFEHLER}?value=false&ack=true"; fi fi else let "KOMFEHLER++" if [ "$KOMFEHLER" -eq "10" ]; then SAPI "Single" "set/${DP_KOMFEHLER}?value=true&ack=true"; fi if [ "$KOMFEHLER" -gt "10" ]; then KOMFEHLER=10; fi #Anzahl beschränken fi #Debug eingeschaltet? if [ $debug == "true" ]; then debuging; fi #Mitternachtjobs if [ $(date +%H) -ge "23" ] && [ $(date +%M) -ge "58" ] && [ -z $MIDNIGHTRUN ]; then rain #Jahresregenmenge firmware_check #neue Firmware reset_zaehler #Sonnenscheindauer, Solarenergie zurücksetzen (enthällt auch Speicherung Werte VorJahr) minmaxavg365d #Min-/Max-/Avg-Aussentemperatur vor einem Jahr metsommer #meteorologischer Sommer Durchschnittstemperatur und Regenmenge MELDUNG "Mitternachtjobs durchgef%C3%BChrt" fi if [ $(date +%H) -eq "0" ] && [ $(date +%M) -le "3" ]; then unset MIDNIGHTRUN if [ $(date +%Z) == "CEST" ]; then ZULU=22; else ZULU=23; fi fi #15-Minutenjobs: Wetterprognose; min/max Aussentemperatur der letzten 24h + heute DO_IT=$(date +%M) DO_IT=${DO_IT#0} if [ $(( $DO_IT % 15 )) -eq "0" ]; then if [ $(date +%s) -ge "$TIMER_SET" ]; then wetterprognose if [ ! -z ${INFLUX_BUCKET} ]; then minmax24h; minmaxheute; fi fi do_Wetterwarnung #stündlich Lebenszeichen if [ "$(date +%H)" -ne "${ALIVE}" ]; then ALIVE=$(date +%H); MELDUNG "Skript l%C3%A4uft..."; fi fi #6-Minutenjobs: WOW, Windy if [ $(( $DO_IT % 6 )) -eq "0" ] && [ ${block_6minjobs} -le "0" ]; then #Windy if [ ${use_windy} == "true" ]; then windy_update; fi #WOW if [ ${use_wow} == "true" ]; then wow_update; fi #run_onlyonce block_6minjobs=3; else let block_6minjobs-- fi #5-Minutenjobs: wetter.com; Wolkenbasis if [[ $(( $DO_IT % 5 )) -eq "0" && -z ${run_5minjobs_onlyonce} ]]; then #wetter.com / Wolkenbasis if [ ! -z ${WETTERCOM_ID} ]; then wettercom_update; fi do_wolkenbasis #Windböe max. für Stationen die keinen Wert (#21) liefern if [ ! -z ${INFLUX_BUCKET} ] && [ -z ${MESSWERTE[21]} ]; then windboeemax; fi #run only once run_5minjobs_onlyonce=true else if [ ${run_5minjobs_onlyonce} ]; then unset run_5minjobs_onlyonce; fi fi #Hitzeindex if (( $(bc -l <<< "${MESSWERTE[1]} > 20") )); then HITZEINDEX=$(round $(hitzeindex ${MESSWERTE[1]} ${MESSWERTE[5]}) 2) else HITZEINDEX= fi #openSenseMap if [ ${openSenseMap} == "true" ]; then opensensemap; fi #Wunderground if [ ${WUNDERGROUND_UPDATE} == "true" ]; then wunderground_update; fi #AWEKAS if [ ${use_awekas} == "true" ]; then awekas_update; fi #Logging eingeschaltet? if [ $logging == "true" ]; then logging; fi done ###EoF
Danke
-
@oliver1972
@sborg meinte die Kommandozeile./wetterstation.sh --data
ausführen und die Ausgabe der Sensoren, ohne den ganzen Krismkrams darum, posten:
Hier Feuchte-Sensor 1-5:-> soilmoisture1=30&soilad1=185&soilmoisture2=55&soilad2=230&soilmoisture4=11&soilad4=114&soilmoisture5=40&soilad5=224
Achja vor der Ausführung den Dienst stoppen (
systemctl stop wetterstation.service
) -
und wieder hat es mir nach einem Stromausfall den
0_userdata.0.Wetterstation.Regen_Tag
verhaun.bei 0-Regen hat er wieder 4,089 mm geschrieben.
Bring den Wert erst morgen aus der DB, da er direkt von der verkackten Station kommt.Der Wert stammt ursprünglich vom 27.6.25 (letzter Regen).
könnt ihr eine zuverlässlichere als die Froggit WH4000SE empfehlen?
-
@boronsbruder sagte in [Linux Shell-Skript] WLAN-Wetterstation:
@sborg meinte die Kommandozeile ./wetterstation.sh --data ausführen und die Ausgabe der Sensoren, ohne den ganzen Krismkrams darum, posten:
Ok, ich hoffe das sind nun die richtigen Werte...
soilmoisture1=50&soilad1=240&soilmoisture2=47&soilad2=249&soilmoisture3=35&soilad3=196&soilmoisture4=46&soilad4=245&soilmoisture5=50&soilad5=260&soilmoisture6=47&soilad6=247&soilmoisture7=41&soilad7=225&soilmoisture8=38&soilad8=222&soilmoisture9=50&soilad9=250&soilmoisture10=48&soilad10=238&soilmoisture11=58&soilad11=282&soilmoisture12=52&soilad12=248&soilmoisture13=54&soilad13=257&soilmoisture14=50&soilad14=239&soilmoisture15=53&soilad15=255&soilmoisture16=56&soilad16=261
Wenn ich das richtig verstehe, dann zeigt es hier, im Gegensatz zu den Werten in IoBroker, die richtigen Werte an.
Aktuell in IoBroker:
Danke für Eure Hilfe! -
heute hatte ich einen
error
derwetterstation.sh
.Nach restart ging es wieder.
woher ist der gekommen?
dietpi@DietPi:~$ sudo systemctl status wetterstation ● wetterstation.service - Service für ioBroker Wetterstation Loaded: loaded (/etc/systemd/system/wetterstation.service; enabled; vendor preset: enabled) Active: active (running) since Wed 2025-07-02 08:19:05 CEST; 1 day 23h ago Main PID: 280 (wetterstation.s) Tasks: 5 (limit: 264) Memory: 6.9M CGroup: /system.slice/wetterstation.service ├─ 280 /bin/bash /home/iobroker/wetterstation.sh ├─27383 /bin/bash /home/iobroker/wetterstation.sh ├─27384 timeout 38 nc -nlvw 1 -p 1080 ├─27385 tail -1 └─27386 nc -nlvw 1 -p 1080 Jul 03 21:25:09 DietPi wetterstation.sh[280]: (standard_in) 12: syntax error Jul 03 21:25:09 DietPi wetterstation.sh[280]: (standard_in) 1: syntax error Jul 03 21:25:41 DietPi wetterstation.sh[280]: (standard_in) 1: syntax error Jul 03 21:25:41 DietPi wetterstation.sh[280]: (standard_in) 1: syntax error Jul 03 21:26:11 DietPi wetterstation.sh[280]: (standard_in) 1: syntax error Jul 03 21:26:11 DietPi wetterstation.sh[280]: (standard_in) 1: syntax error Jul 03 21:26:42 DietPi wetterstation.sh[280]: (standard_in) 1: syntax error Jul 03 21:26:43 DietPi wetterstation.sh[280]: (standard_in) 1: syntax error Jul 03 21:27:13 DietPi wetterstation.sh[280]: (standard_in) 1: syntax error Jul 03 21:27:13 DietPi wetterstation.sh[280]: (standard_in) 1: syntax error
-
@negalein
Reines Gateway und lieber dazu ein Tablet mit einer schönen Vis oder Grafana
Ich hab hier das GW2000 (Lan und Wifi) und ein GW1100 (nur Wlan - ist nur für meine Bewässerung) am laufen.
Zur Stabilität bei Stromausfall kann ich nix sagen da das GW2000 über ein POE-Splitter am Switch mit USV hängt. -
Hallo,
Ich habe in der Statistik für einige Monate keine Daten (typo bei InfluxDB Namen).
Gibt es einen einfachen Weg an die Daten ranzukommem, oder muss ich die manuell aus der InfluxDB extrahieren?
Grüsse
-
Hallo zusammen,
habe das Update auf die V3.5.1 ausgeführt, seit dem läuft leider nichts mehr
Wenn ich ./.etterstation.sh -debug auisführe erhalte ich einen "endlos Liste" mit Fehlern ... bis ich es abbreche
admin@raspberrypi:~/wetterstation $ admin@raspberrypi:~/wetterstation $ ./wetterstation.sh --debug /home/admin/wetterstation/wetterstation.sub: Zeile 3: $'\r': Kommando nicht gefunden. /home/admin/wetterstation/wetterstation.sub: Zeile 4: $'\r': Kommando nicht gefunden. /home/admin/wetterstation/wetterstation.sub: Zeile 93: $'\r': Kommando nicht gefunden. /home/admin/wetterstation/wetterstation.sub: Zeile 94: $'\r': Kommando nicht gefunden. /home/admin/wetterstation/wetterstation.sub: Zeile 98: $'\r': Kommando nicht gefunden. /home/admin/wetterstation/wetterstation.sub: Zeile 99: $'\r': Kommando nicht gefunden. /home/admin/wetterstation/wetterstation.sub: Zeile 107: $'\r': Kommando nicht gefunden. /home/admin/wetterstation/wetterstation.sub: Zeile 109: Syntaxfehler beim unerwarteten Symbol »$'{\r'« 'home/admin/wetterstation/wetterstation.sub: Zeile 109: `debuging() { ./wetterstation.sh: Zeile 194: version: Kommando nicht gefunden. ./wetterstation.sh: Zeile 230: setup: Kommando nicht gefunden. ./wetterstation.sh: Zeile 231: minmaxheute: Kommando nicht gefunden. ./wetterstation.sh: Zeile 239: get_DATA: Kommando nicht gefunden. ./wetterstation.sh: Zeile 387: debuging: Kommando nicht gefunden. (standard_in) 1: syntax error ./wetterstation.sh: Zeile 239: get_DATA: Kommando nicht gefunden. ./wetterstation.sh: Zeile 387: debuging: Kommando nicht gefunden. (standard_in) 1: syntax error
Woran könnte das liegen?
Ordener Wetterstationb sieht aus wie immer:
mit ./wetterstation.sh --data erhalte ich:
admin@raspberrypi:~/wetterstation $ ./wetterstation.sh --data /home/admin/wetterstation/wetterstation.sub: Zeile 3: $'\r': Kommando nicht gefunden. /home/admin/wetterstation/wetterstation.sub: Zeile 4: $'\r': Kommando nicht gefunden. /home/admin/wetterstation/wetterstation.sub: Zeile 93: $'\r': Kommando nicht gefunden. /home/admin/wetterstation/wetterstation.sub: Zeile 94: $'\r': Kommando nicht gefunden. /home/admin/wetterstation/wetterstation.sub: Zeile 98: $'\r': Kommando nicht gefunden. /home/admin/wetterstation/wetterstation.sub: Zeile 99: $'\r': Kommando nicht gefunden. /home/admin/wetterstation/wetterstation.sub: Zeile 107: $'\r': Kommando nicht gefunden. /home/admin/wetterstation/wetterstation.sub: Zeile 109: Syntaxfehler beim unerwarteten Symbol »$'{\r'« 'home/admin/wetterstation/wetterstation.sub: Zeile 109: `debuging() { ./wetterstation.sh: Zeile 212: setup: Kommando nicht gefunden. ./wetterstation.sh: Zeile 213: ws_data: Kommando nicht gefunden.
Hoffe Ihr könnt mir helfen.
Danke -
@vmi
Lade dir von Github nochmals diewetterstation.sub
herunter und ersetze sie. Nach dem Start des Services sollte es wieder laufen.Problem: die *.sub lag mal wieder im DOS-Format (CR + LF) auf GitHub. Linux mag aber kein "CR"
-
@hoschi2007 sagte in [Linux Shell-Skript] WLAN-Wetterstation:
@sborg die Ecowitt WS3800 (A) kannst du auch gerne in die Liste aufnehmen
Danke, nehme ich mit auf
-
@negalein sagte in [Linux Shell-Skript] WLAN-Wetterstation:
jetzt kommt nur noch das
Datenübertragung an windy.com: {"observations":[],"stations":[]}
Keine direkte Fehlermeldung mehr. Kommen die Daten jetzt noch immer regelmäßig an?
-
Da ich einen gedanklichen Fehler bei der V3.5.0 bei der Erhöhung der Sensoranzahl auf 16 Stück beim DP100 hatte:
Neues Bugfix-Release des Wetterstation WLAN-Skriptes auf GitHub V3.5.1
- ~ Fix falsche Messwerte bei DP100 Sensor Nr.1 wenn mehr als 10 Sensoren vorhanden sind
Wie immer zu finden im GitHub
Update-Routine von Vorgängerversion:
- aktuellen WS-Updater nutzen
./ws_updater.sh
im Installationsverzeichnis ausführen- Menüpunkt "4" wählen und die Fragen beantworten
Update enthält lediglich einen Fix für mehr als 9 Stück DP100 Sensoren, ist also optional.
-
@shakira1972
siehe Update V3.5.1
Zumindest im Test hat es nun funktioniert. Ist aber immer so eine Sache ohne einen einzigen SensorProblem war, ohne zu sehr programmiertechnisch zu werden, dass zweistellige Sensoren in der Zuweisung immer auf Sensor #1 aufliefen. #10 bis #15 hast du garnicht bemerkt, es wurde immer nur der höchste (bei dir #16) in #1 angezeigt.
-
@negalein sagte in [Linux Shell-Skript] WLAN-Wetterstation:
heute hatte ich einen
error
derwetterstation.sh
.Nach restart ging es wieder.
woher ist der gekommen?
Der Fehler sagt so leider nichts aus, aber das passiert immer wenn ein Wert nur "NULL" ist. Es sind für ca. 2 Minuten 5 Datenpakete hintereinander. Mast --> Display // Display --> WLAN // kurzfristiges Übertragungsproblem (zerstückeltes Datenpaket) oder Problem mit dem Mast/Display.
Ich bin mit Ecowitt (falls du überhaupt noch ein Display willst, ich würde es eher wie von @Boronsbruder vorgeschlagen lösen) sehr zufrieden. Läuft seit 5 Jahren 24/7 ohne jegliches Problem.
-
@tritor sagte in [Linux Shell-Skript] WLAN-Wetterstation:
Hallo,
Ich habe in der Statistik für einige Monate keine Daten (typo bei InfluxDB Namen).
Gibt es einen einfachen Weg an die Daten ranzukommem, oder muss ich die manuell aus der InfluxDB extrahieren?
Grüsse
Das Skript verarbeitet immer nur den letzten Tag. Außer mittels Flux selbst zu extrahieren bleibt dir wenig übrig, außer ev. die Daten mittels des Explorers vorzuselektieren, als CSV zu exportieren, um es dann in Excel auszuwerten.
-
@sborg Super vielen Dank. Jetzt läuft es wieder
Noch eine Frage bekomme folgende Meldungen beim debug Test ... habe aber keine DP50 Sensoren?
Ist bisher nicht aufgefallen
{ "error": "datapoint \"0_userdata.0.Wetterstation.DP50.1.Temperatur\" not found" }, { "error": "datapoint \"0_userdata.0.Wetterstation.DP50.1.Feuchtigkeit\" not found" }, { "error": "datapoint \"0_userdata.0.Wetterstation.DP50.2.Temperatur\" not found" }, { "error": "datapoint \"0_userdata.0.Wetterstation.DP50.2.Feuchtigkeit\" not found" }, { "error": "datapoint \"0_userdata.0.Wetterstation.DP50.3.Temperatur\" not found" }, { "error": "datapoint \"0_userdata.0.Wetterstation.DP50.1.Batterie\" not found" }, { "error": "datapoint \"0_userdata.0.Wetterstation.DP50.2.Batterie\" not found" }, { "error": "datapoint \"0_userdata.0.Wetterstation.DP50.3.Batterie\" not found" },
Die zwei Aussentemeratur Sensoren habe ich nicht eingebunden, da nur ein DP40 unsterstützt wird, oder?
Kann es ein, das der Pool Thermometer von ecowitt WN36 und die WH31 als DP50 erkannt werden?
Hbae jetzt einfach mal die DP50 Datenpunkte angelegt und siehe da, die Daten sind da
Jetzte hatte das ganze Updatethema auch noch was gutes, habe jetzt alle Thermometer im ibroker
Vielen Dank und ein schönes Wochenende