Skip to content
  • Home
  • Recent
  • Tags
  • 0 Unread 0
  • Categories
  • Unreplied
  • Popular
  • GitHub
  • Docu
  • Hilfe
Skins
  • Light
  • Brite
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Default (No Skin)
  • No Skin
Collapse
ioBroker Logo

Community Forum

donate donate
  1. ioBroker Community Home
  2. Deutsch
  3. Praktische Anwendungen (Showcase)
  4. [Linux Shell-Skript] WLAN-Wetterstation

NEWS

  • Jahresrückblick 2025 – unser neuer Blogbeitrag ist online! ✨
    BluefoxB
    Bluefox
    16
    1
    1.8k

  • Neuer Blogbeitrag: Monatsrückblick - Dezember 2025 🎄
    BluefoxB
    Bluefox
    13
    1
    890

  • Weihnachtsangebot 2025! 🎄
    BluefoxB
    Bluefox
    25
    1
    2.1k

[Linux Shell-Skript] WLAN-Wetterstation

Scheduled Pinned Locked Moved Praktische Anwendungen (Showcase)
linuxshell-scriptwetterstationwlan-wetterstation
5.7k Posts 155 Posters 3.9m Views 137 Watching
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • SBorgS SBorg

    @gerald123 Da die Hardwareanforderungen gering sind, würde auch ein x-beliebiger Raspberry PI im Netzwerk genügen. Es sollte sogar ein Orange PI für ~17,- € langen. Oder es findet sich jemand der einen Adapter schreibt, oder es per Perl, Python etc. umsetzt.

    EisbaeeerE Offline
    EisbaeeerE Offline
    Eisbaeeer
    Developer
    wrote on last edited by
    #110

    @SBorg Ein Adapter wäre doch sinnvoll. Spendiert mir einer eine Wetterstation? ;-)
    Grüße Eisbaeeer

    Kein support per PM. Bitte im Forum Fragen stellen!

    SBorgS 1 Reply Last reply
    0
    • EisbaeeerE Eisbaeeer

      @SBorg Ein Adapter wäre doch sinnvoll. Spendiert mir einer eine Wetterstation? ;-)
      Grüße Eisbaeeer

      SBorgS Offline
      SBorgS Offline
      SBorg
      Forum Testing Most Active
      wrote on last edited by
      #111

      @Eisbaeeer :grinning: Ich habe ja auch keine, noch dazu nie einen Adapter gebaut. Wollte zwar immer mal wieder anfangen, aber ohne kriege ich es einfach schneller umgesetzt ;)

      LG SBorg ( SBorg auf GitHub)
      Projekte: Lebensmittelwarnung.de | WLAN-Wetterstation | PimpMyStation

      EisbaeeerE GlasfaserG 2 Replies Last reply
      0
      • SBorgS SBorg

        @Eisbaeeer :grinning: Ich habe ja auch keine, noch dazu nie einen Adapter gebaut. Wollte zwar immer mal wieder anfangen, aber ohne kriege ich es einfach schneller umgesetzt ;)

        EisbaeeerE Offline
        EisbaeeerE Offline
        Eisbaeeer
        Developer
        wrote on last edited by
        #112

        @SBorg sagte in [Linux Shell-Skript] WLAN-Wetterstation:

        @Eisbaeeer :grinning: Ich habe ja auch keine, noch dazu nie einen Adapter gebaut. Wollte zwar immer mal wieder anfangen, aber ohne kriege ich es einfach schneller umgesetzt ;)

        Naja, die Arbeit ist ja schon gemacht. Alles andere ist ja nur noch Fleißarbeit und ein wenig Erfahrung. Dann ist der Adapter schon fertig. Aber ich habe leider keine Zeit.

        Kein support per PM. Bitte im Forum Fragen stellen!

        1 Reply Last reply
        0
        • R Offline
          R Offline
          Rushmed
          Most Active
          wrote on last edited by
          #113

          Jaa, ich bin auch für einen Adapter!

          1 Reply Last reply
          0
          • G Offline
            G Offline
            gerald123
            wrote on last edited by
            #114

            Ein Adapter währe für mich die ideale Lösung, vielleicht wird es ja noch :blush:

            Synology 918+ 4GB; ioBroker auf RPI4; Zigbee; Sonoff

            1 Reply Last reply
            0
            • SBorgS SBorg

              @Eisbaeeer :grinning: Ich habe ja auch keine, noch dazu nie einen Adapter gebaut. Wollte zwar immer mal wieder anfangen, aber ohne kriege ich es einfach schneller umgesetzt ;)

              GlasfaserG Offline
              GlasfaserG Offline
              Glasfaser
              wrote on last edited by Glasfaser
              #115

              @SBorg

              Hier mal meine Änderung/Anpassung auf die Froggit WH4000SE.

              1.JPG

              wetterstation.conf

              ### Settings V0.1.2 -------Froggit WH4000SE----------------------------------------------------
              #Debuging einschalten [true/false] / default false / Ausgabe der Messwerte
               debug=false
              
              #ioBroker-IP und Port der Simple-Restful-API [xxx.xxx.xxx.xxx:xxxxx]
               IPP=192.168.178.11:8087               
              
              #Port der Wetterstation
               WS_PORT=9999
              
              #Pollintervall der Wetterstation in Sekunden (min 30 Sekunden)
               WS_POLL=16
              
              #Name/ID der Wetterstation
               WS_ID=xxxxx
              
              #wo sollen die Datenobjekte abgelegt werden
               PRE_DP=javascript.0.Wetterstation
              
              #Bezeichnung der Datenpunkte
               DP_TEMP_INNEN=${PRE_DP}.Innentemperatur
               DP_TEMP_AUSSEN=${PRE_DP}.Aussentemperatur
               DP_TAUPUNKT=${PRE_DP}.Taupunkt
               DP_CHILL=${PRE_DP}.Chillfaktor
               DP_FEUCHTE_INNEN=${PRE_DP}.Innenfeuchtigkeit
               DP_FEUCHTE_AUSSEN=${PRE_DP}.Aussenfeuchtigkeit
               DP_WIND=${PRE_DP}.Wind
               DP_WIND_MAX=${PRE_DP}.Wind_max
               DP_WIND_DIR=${PRE_DP}.Windrichtung
               DP_DRUCK_ABS=${PRE_DP}.Druck_absolut
               DP_DRUCK_REL=${PRE_DP}.Druck_relativ
               DP_REGEN_AKT=${PRE_DP}.Regen_aktuell
               DP_REGEN_TAG=${PRE_DP}.Regen_Tag
               DP_REGEN_WOCHE=${PRE_DP}.Regen_Woche
               DP_REGEN_MONAT=${PRE_DP}.Regen_Monat
               DP_REGEN_JAHR=${PRE_DP}.Regen_Jahr
               DP_SONNE=${PRE_DP}.Sonnenstrahlung
               DP_UV_INDEX=${PRE_DP}.UV_Index
               DP_ZEITSTEMPEL=${PRE_DP}.Zeitstempel
               DP_KOMFEHLER=${PRE_DP}._Kommunikationsfehler
              
              ###  Ende Usereinstellungen  
              ###  Farbdefinition
                   GR='\e[1;32m'
                   GE='\e[1;33m'
                   WE='\e[1;37m'
                   BL='\e[1;36m'
                   RE='\e[1;31m'
              
              ###-------------------------------------------------------------------------###
              ###  Subroutinen - KEINE ÃNDERUNGEN NÖTIG !                                 ###
              ###-------------------------------------------------------------------------###
              
              debuging() {
               #Messwerteblock
                echo -e "\n\n${WE}Messwerteblock: $GR${MESSWERTERAW[*]}$WE"
              
               #Datenfelder ausgeben
                echo -e "\n\nTemperatur Innen\t: $GR${MESSWERTE[0]}$WE °C"
                echo -e "Temperatur Aussen\t: $GR${MESSWERTE[1]}$WE °C"
                echo -e "Taupunkt\t\t: $GR${MESSWERTE[2]}$WE °C"
                echo -e "Chill-Faktor\t\t: $GR${MESSWERTE[3]}$WE °C"
                echo -e "Luftfeuchte Innen\t: $GR${MESSWERTE[4]}$WE %"
                echo -e "Luftfeuchte Aussen\t: $GR${MESSWERTE[5]}$WE %"
                echo -e "Windgeschwindkeit\t: $GR${MESSWERTE[6]}$WE km/h"
                echo -e "max. Windgeschwindkeit\t: $GR${MESSWERTE[7]}$WE km/h"
                echo -e "Windrichtung\t\t: $GR${MESSWERTE[8]}$WE °"
                echo -e "Luftdruck absolut\t: $GR${MESSWERTE[9]}$WE hPa"
                echo -e "Luftdruck relativ\t: $GR${MESSWERTE[10]}$WE hPa"
                echo -e "Regen aktuell\t\t: $GR${MESSWERTE[11]}$WE mm"
                echo -e "Regen Tag\t\t: $GR${MESSWERTE[12]}$WE mm"
                echo -e "Regen Woche\t\t: $GR${MESSWERTE[13]}$WE mm"
                echo -e "Regen Monat\t\t: $GR${MESSWERTE[14]}$WE mm"
                echo -e "Regen Jahr\t\t: $GR${MESSWERTE[15]}$WE mm"
                echo -e "Sonnenstrahlung\t\t: $GR${MESSWERTE[16]}$WE W/m²"
                echo -e "UV-Index\t\t: $GR${MESSWERTE[17]}$WE"
                echo -e "Zeitstempel\t\t: $GR${MESSWERTE[18]}$WE"
                
                echo -e "\n\nDatenstring für ioBroker:\n$GR$IOB_DATA$WE\n"
              
                echo -e "\nDATA von Wetterstation(Passwort auskommentieren!):\n$GR${DAT}$WE\n"
              
                echo -e "\nDebug VAR:"
                echo -e "Installationsverzeichnis: $GE$DIR$WE"
                echo -e "IPP: $GE${IPP}$WE\tWS_PORT: $GE${WS_PORT}$WE\t\tWS_POLL: $GE${WS_POLL}$WE\tPRE_DP: $GE${PRE_DP}$WE"
                echo -e "Script-Version: $GE$SH_VER$WE\tConfig-Version: $GE${CONF_V}$WE"
              
               #Shell-Skript mit Fehler beenden
                 exit 1
              }
              
              ### ioB-Daten senden
              iob_send() {
                #build Data-String
                 IOB_DATA=$(cat <<-EOD
                 ${DP_TEMP_INNEN}=${MESSWERTE[0]}
                 &${DP_TEMP_AUSSEN}=${MESSWERTE[1]}
                 &${DP_TAUPUNKT}=${MESSWERTE[2]}
                 &${DP_CHILL}=${MESSWERTE[3]}
                 &${DP_FEUCHTE_INNEN}=${MESSWERTE[4]}
                 &${DP_FEUCHTE_AUSSEN}=${MESSWERTE[5]}
                 &${DP_WIND}=${MESSWERTE[6]}
                 &${DP_WIND_MAX}=${MESSWERTE[7]}
                 &${DP_WIND_DIR}=${MESSWERTE[8]}
                 &${DP_DRUCK_ABS}=${MESSWERTE[9]}
                 &${DP_DRUCK_REL}=${MESSWERTE[10]}
                 &${DP_REGEN_AKT}=${MESSWERTE[11]}
                 &${DP_REGEN_TAG}=${MESSWERTE[12]}
                 &${DP_REGEN_WOCHE}=${MESSWERTE[13]}
                 &${DP_REGEN_MONAT}=${MESSWERTE[14]}
                     &${DP_REGEN_JAHR}=${MESSWERTE[15]}
                 &${DP_SONNE}=${MESSWERTE[16]}
                 &${DP_UV_INDEX}=${MESSWERTE[17]}
                 EOD
                  )
                
                #Leerzeichen entfernen + Zeitstempel wg. Leerzeichen erst hier anhängen
                 IOB_DATA=$(echo $IOB_DATA|tr -d " ")
                 IOB_DATA=${IOB_DATA}\&${DP_ZEITSTEMPEL}=${MESSWERTE[18]}
              
              
                #Daten an den ioB schicken
                 if [ $debug == "true" ]; then 
                 curl --data "$IOB_DATA&prettyPrint" http://${IPP}/setBulk
                   else
                 curl --data "$IOB_DATA" http://${IPP}/setBulk >/dev/null 2>&1
                 fi
              }
              
              
              
              ### Daten holen und Integritätscheck
              function get_DATA(){
               #auf Daten der Wetterstation warten
                DATA=$(timeout 10 nc -lv -p ${WS_PORT}|sed '3 p')
                STRLEN=$(echo -n $DATA | wc -m)
              
               #check auf Datenintigrität
                if [ "$STRLEN" -gt "400" ] && [[ "$DATA" =~ "/weatherstation/updateweatherstation.php?ID=${WS_ID}" ]] ; then return 0; else return 1; fi
              }
              
              
              
              ### Datenkonvertierungen
              convertFtoC() { 
                 MESSWERTE[$i]=`echo "scale=2;(${MESSWERTE[$i]}-32)*5/9" | bc -l`
              }
              
              convertMPHtoKMH() {
                 MESSWERTE[$i]=`echo "scale=2;(${MESSWERTE[$i]}*16094/10000)" | bc -l`
              }
              
              convertLuftdruck() {
                 MESSWERTE[$i]=`echo "scale=2;${MESSWERTE[$i]}*33864/1000" | bc -l`
              }
              
              convertInchtoMM() { 
                 MESSWERTE[$i]=`echo "scale=1;${MESSWERTE[$i]}*254/10" | bc -l`
              }
              
              convertTime() {
                 	MESSWERTE[$i]=$(echo ${MESSWERTE[$i]}|sed -e 's/%20/ /')
                 	MESSWERTE[$i]=$(date --date="${MESSWERTE[$i]} UTC" +'%d.%m.%Y %H:%M:%S')
                 #MESSWERTE[$i]=$(echo ${MESSWERTE[$i]}|awk -F'-|%20' '{printf "%02s.%02s.%s %s", $3, $2, $1, $4}')
              }
              
              
              
              ###Befehlszeilenparameter
              usage() {
                 echo "usage: wetterstation [[--debug] | [-v] | [-h]"
                 echo " --debug    einmaliger Testdurchlauf mit Ausgabe"
                 echo " -v         Ausgabe der Versionsnummer"
                 echo " -h         dieses Hilfemenue"
              }
              
              version() {
                 echo -e "$BL ${SH_VER} - (c) 2019-2020 SBorg"
              }
              
              ###EoF
              

              Wetterstation .sh

              #!/bin/bash
              
              # V0.1.2 - 24.01.2020 (c) 2019-2020 SBorg
              #    Froggit WH4000SE
              # wertet ein Datenpaket einer WLAN-Wetterstation im Wunderground-Format aus, konvertiert diese und überträgt
              # die Daten an den ioBroker
              #
              # benötigt den 'Simple RESTful API'-Adapter im ioBroker und 'bc' unter Linux
              #
              # V0.1.2 / 24.01.2020 - + Prüfung auf Datenintegrität
              #                       + neuer Datenpunkt bei Kommunikationsfehler
              #                       + Ausgabe Datenpaket der Wetterstation bei Debug
              # V0.1.1 / 01.01.2020 - + UTC-Korrektur
              #			+ Config-Versionscheck
              #			+ Shell-Parameter -v/-h/--debug
              # V0.1.0 / 29.12.2019 - erstes Release
              
              
              SH_VER="V0.1.2"
              CONF_V="V0.1.2"
              
              
              #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$WE"
                 exit 1
               fi
              
              #Konfiguration lesen
               . ${DIR}/wetterstation.conf
              
              #gibt es Parameter?
               while [ "$1" != "" ]; do
                 case $1 in
                 --debug	)		debug=true   #override
                 			;;
                 -v | --version )	version
                 			exit
                 			;;
                     -h | --help )		usage
                 			exit
                                             ;;
                     * )			usage
                                             exit 1
                 esac
                 shift
               done
              
              
              declare -a MESSWERTE
              declare -a MESSWERTERAW
              
              #Check ob Pollintervall grösser 30 Sekunden
               if [ ${WS_POLL} -lt "30" ]; then WS_POLL=30; fi
              
              #Fehlermeldungen resetten
               curl http://${IPP}/set/${DP_KOMFEHLER}?value=false >/dev/null 2>&1
              
              
              #Endlosschleife
              while true
              do
              
               #Kommunikation herstellen und Daten empfangen
                get_DATA
              
               #KOM-Fehler?
               if [ "$?" -eq "0" ]; then
              
                #DATA zerlegen (Messwerte Block #3-#21)
                ii=2
                for ((i=0; i<19; i++))
                 do
                  let "ii++"
                  MESSWERTERAW[$i]=$(echo ${DATA}|cut -d'&' -f${ii} | cut -d"=" -f2)
                  MESSWERTE[$i]=${MESSWERTERAW[$i]}
                   if [ "$i" -ge "0" ] && [ "$i" -lt "4" ]; then convertFtoC; fi
                   if [ "$i" -eq "6" ] || [ "$i" -eq "7" ]; then convertMPHtoKMH; fi
                   if [ "$i" -eq "9" ] || [ "$i" -eq "10" ]; then convertLuftdruck; fi
                   if [ "$i" -ge "11" ] && [ "$i" -lt "16" ]; then convertInchtoMM; fi
                   if [ "$i" -eq "18" ]; then convertTime; fi
                 done
              
                #Daten an ioB schicken
                 iob_send
              
              
               else
                let "KOMFEHLER++"
                if [ "$KOMFEHLER" -eq "5" ]; then curl http://${IPP}/set/${DP_KOMFEHLER}?value=true&prettyPrint&ack=true >/dev/null 2>&1;fi
               fi
              
              
               #Debug eingeschaltet?
                if [ $debug == "true" ]; then debuging; fi
              
               #...und schlafen gehen
                let "schlafe=WS_POLL-5"
                sleep $schlafe
              
              done
              
              ###EoF
              
              
              


              wetterstation.js

              ///Wetterstation Datenpunkte anlegen
              let DP="javascript.0.Wetterstation."
               createState(DP+"Innentemperatur"      ,"", {name: "Temperatur im Haus",          type: "number", role: "state", unit: "°C" });
               createState(DP+"Aussentemperatur"     ,"", {name: "Temperatur Außen",            type: "number", role: "state", unit: "°C" });
               createState(DP+"Taupunkt"             ,"", {name: "Taupunkt",                    type: "number", role: "state", unit: "°C" });
               createState(DP+"Chillfaktor"          ,"", {name: "Chillfaktor",                 type: "number", role: "state", unit: "°C" });
               createState(DP+"Innenfeuchtigkeit"    ,"", {name: "Luftfeuchtigkeit Innen",      type: "number", role: "state", unit: "%" });
               createState(DP+"Aussenfeuchtigkeit"   ,"", {name: "Luftfeuchtigkeit Außen",      type: "number", role: "state", unit: "%" });
               createState(DP+"Wind"                 ,"", {name: "Windgeschwindigkeit",         type: "number", role: "state", unit: "km/h" });
               createState(DP+"Wind_max"             ,"", {name: "Windgeschwindigkeit maximal", type: "number", role: "state", unit: "km/h" });
               createState(DP+"Windrichtung"         ,"", {name: "Windrichtung",                type: "number", role: "state", unit: "°" });
               createState(DP+"Druck_absolut"        ,"", {name: "Luftdruck absolut",           type: "number", role: "state", unit: "hPa" });
               createState(DP+"Druck_relativ"        ,"", {name: "Luftdruck relativ",           type: "number", role: "state", unit: "hPa" });
               createState(DP+"Regen_aktuell"        ,"", {name: "aktuelle Regenmenge",         type: "number", role: "state", unit: "mm" });
               createState(DP+"Regen_Tag"            ,"", {name: "Regenmenge Heute",            type: "number", role: "state", unit: "mm" });
               createState(DP+"Regen_Woche"          ,"", {name: "Regenmenge Woche",            type: "number", role: "state", unit: "mm" });
               createState(DP+"Regen_Monat"          ,"", {name: "Regenmenge Monat",            type: "number", role: "state", unit: "mm" });
               createState(DP+"Regen_Jahr"          ,"", {name: "Regenmenge Jahr",            type: "number", role: "state", unit: "mm" });
               createState(DP+"Sonnenstrahlung"      ,"", {name: "Sonnenstrahlung",             type: "number", role: "state", unit: "W/m²" });
               createState(DP+"UV_Index"             ,"", {name: "UV Index",                    type: "number", role: "state" });
               createState(DP+"Zeitstempel"          ,"", {name: "von wann ist die Messung",    type: "string", role: "state" });
               createState(DP+"_Kommunikationsfehler","", {name: "liegt ein Problem vor",       type: "boolean",role: "state" });
              
              

              Ausgabe mit nc -lv -p 9999

              root@raspberrypi:/home/pi# sudo nc -lv -p 9999
              Listening on [0.0.0.0] (family 0, port 9999)
              Connection from 192.168.178.42 14965 received!
              GET /weatherstation/updateweatherstation.php?ID=xxxxxxx&PASSWORD=xxxxxxxxx&indoortempf=59.4&tempf=72.5&dewptf=55.9&windchillf=72.5&indoorhumidity=66&humidity=56&windspeedmph=0.0&windgustmph=0.0&winddir=307&absbaromin=29.534&baromin=29.534&rainin=0.000&dailyrainin=0.012&weeklyrainin=0.012&monthlyrainin=0.012&yearlyrainin=0.012&solarradiation=0.00&UV=0&dateutc=2020-01-30%2022:08:28&softwaretype=EasyWeatherV1.4.4&action=updateraw&realtime=1&rtfreq=5 HTTP/1.0
              Host: 192.168.178.41
              Accept:*/*
              Connection: Close
              
              

              Synology 918+ 16GB - ioBroker in Docker v9 , VISO auf Trekstor Primebook C13 13,3" , Hikvision Domkameras mit Surveillance Station .. CCU RaspberryMatic in Synology VM .. Zigbee CC2538+CC2592 .. Sonoff .. KNX .. Modbus ..

              1 Reply Last reply
              1
              • SBorgS Offline
                SBorgS Offline
                SBorg
                Forum Testing Most Active
                wrote on last edited by
                #116

                @Glasfaser Supi, danke dir für den String :)
                Die Änderungen für die 4000er hatte ich schon in die V0.1.3 eingecheckt (kamen von @unltdnetworx per Pull Request) nur fehlte mir der String, um es dann für alle Stationen zu implementieren.
                Dir ist aber noch ein kleiner Fehler unterlaufen, denn deine Jahresregenmenge ist kleiner als die Monatsregenmenge. Du rechnest die Inch nicht in mm um. Ändere noch in der wetterstation.sh Zeile #85 :

                if [ "$i" -ge "11" ] && [ "$i" -lt "16" ]; then convertInchtoMM; fi
                

                LG SBorg ( SBorg auf GitHub)
                Projekte: Lebensmittelwarnung.de | WLAN-Wetterstation | PimpMyStation

                GlasfaserG unltdnetworxU 2 Replies Last reply
                1
                • SBorgS SBorg

                  @Glasfaser Supi, danke dir für den String :)
                  Die Änderungen für die 4000er hatte ich schon in die V0.1.3 eingecheckt (kamen von @unltdnetworx per Pull Request) nur fehlte mir der String, um es dann für alle Stationen zu implementieren.
                  Dir ist aber noch ein kleiner Fehler unterlaufen, denn deine Jahresregenmenge ist kleiner als die Monatsregenmenge. Du rechnest die Inch nicht in mm um. Ändere noch in der wetterstation.sh Zeile #85 :

                  if [ "$i" -ge "11" ] && [ "$i" -lt "16" ]; then convertInchtoMM; fi
                  
                  GlasfaserG Offline
                  GlasfaserG Offline
                  Glasfaser
                  wrote on last edited by
                  #117

                  @SBorg

                  Jipp …. habe ich vergessen auf "16" zu ändern ;)
                  Wurde oben korrigiert .

                  Synology 918+ 16GB - ioBroker in Docker v9 , VISO auf Trekstor Primebook C13 13,3" , Hikvision Domkameras mit Surveillance Station .. CCU RaspberryMatic in Synology VM .. Zigbee CC2538+CC2592 .. Sonoff .. KNX .. Modbus ..

                  1 Reply Last reply
                  0
                  • SBorgS Offline
                    SBorgS Offline
                    SBorg
                    Forum Testing Most Active
                    wrote on last edited by SBorg
                    #118

                    Dank der Vorarbeit und des testens von @unltdnetworx und @Glasfaser steht die V0.1.3 zum testen bereit :)
                    Neuerungen zur V0.1.2 ist lediglich die Unterstützung für Wetterstationen mit Jahresgesamtregenmenge.
                    Extra dafür konfiguriert muss nichts werden, dies wird automatisch erkannt. Allerdings bleibt der neue Datenpunkt "Regen_Jahr" bei 0 stehen wenn es die Station nicht unterstützt, wen wundert das aber... ;)
                    Dafür könnte man aber ein Blockly hernehmen, welches am Monats ersten um 0:00 Uhr (oder wann die Monatsregenmenge noch verfügbar ist) den Wert aufaddiert und in den Datenpunkt schreibt.

                    Update:

                    • .sh und .conf ersetzen, wetterstation.conf entsprechend konfigurieren
                    • Javascript ersetzen und einmalig ausführen (neuer Datenpunkt "Regen_Jahr")

                    LG SBorg ( SBorg auf GitHub)
                    Projekte: Lebensmittelwarnung.de | WLAN-Wetterstation | PimpMyStation

                    1 Reply Last reply
                    1
                    • SBorgS SBorg

                      @Glasfaser Supi, danke dir für den String :)
                      Die Änderungen für die 4000er hatte ich schon in die V0.1.3 eingecheckt (kamen von @unltdnetworx per Pull Request) nur fehlte mir der String, um es dann für alle Stationen zu implementieren.
                      Dir ist aber noch ein kleiner Fehler unterlaufen, denn deine Jahresregenmenge ist kleiner als die Monatsregenmenge. Du rechnest die Inch nicht in mm um. Ändere noch in der wetterstation.sh Zeile #85 :

                      if [ "$i" -ge "11" ] && [ "$i" -lt "16" ]; then convertInchtoMM; fi
                      
                      unltdnetworxU Offline
                      unltdnetworxU Offline
                      unltdnetworx
                      Developer
                      wrote on last edited by
                      #119

                      @SBorg
                      Witzigerweise läuft es bei mir. Hab das wirklich nur für den Request vergessen

                      Gruß, Michael
                      Weitere Infos im Profil.
                      Wenn euch der Beitrag weitergeholfen hat, könnt ihr die Bewertung rechts unten im Beitrag nutzen.

                      SBorgS 1 Reply Last reply
                      0
                      • unltdnetworxU unltdnetworx

                        @SBorg
                        Witzigerweise läuft es bei mir. Hab das wirklich nur für den Request vergessen

                        SBorgS Offline
                        SBorgS Offline
                        SBorg
                        Forum Testing Most Active
                        wrote on last edited by
                        #120

                        @unltdnetworx :) Mal sehen ob es auch reibungslos auf den anderen Stationen läuft. Ich habe diverse Szenarien durchgespielt, bis mir eine simple Zweizeilerlösung für alle eingefallen ist. Die Stationen gar nicht großartig unterscheiden, sondern immer von der "größten" ausgehen. Ist der "yearlyrainin" nicht vorhanden, einfach in den Datenstring mit Wert "0" einpatchen :grin:

                        LG SBorg ( SBorg auf GitHub)
                        Projekte: Lebensmittelwarnung.de | WLAN-Wetterstation | PimpMyStation

                        R 1 Reply Last reply
                        0
                        • SBorgS SBorg

                          @unltdnetworx :) Mal sehen ob es auch reibungslos auf den anderen Stationen läuft. Ich habe diverse Szenarien durchgespielt, bis mir eine simple Zweizeilerlösung für alle eingefallen ist. Die Stationen gar nicht großartig unterscheiden, sondern immer von der "größten" ausgehen. Ist der "yearlyrainin" nicht vorhanden, einfach in den Datenstring mit Wert "0" einpatchen :grin:

                          R Offline
                          R Offline
                          Rushmed
                          Most Active
                          wrote on last edited by Rushmed
                          #121

                          Also bei meiner W830 kommt über "yearlyrainin" nichts im ioBroker an obwohl die Station selbst eine Gesamtregenmenge anzeigen kann.
                          Was sagt denn @CiroCool dazu?

                          "Kommunikationsfehler" scheint zu funktionieren.

                          R GlasfaserG SBorgS 3 Replies Last reply
                          0
                          • R Rushmed

                            Also bei meiner W830 kommt über "yearlyrainin" nichts im ioBroker an obwohl die Station selbst eine Gesamtregenmenge anzeigen kann.
                            Was sagt denn @CiroCool dazu?

                            "Kommunikationsfehler" scheint zu funktionieren.

                            R Offline
                            R Offline
                            Rushmed
                            Most Active
                            wrote on last edited by Rushmed
                            #122

                            gelöscht

                            1 Reply Last reply
                            0
                            • R Rushmed

                              Also bei meiner W830 kommt über "yearlyrainin" nichts im ioBroker an obwohl die Station selbst eine Gesamtregenmenge anzeigen kann.
                              Was sagt denn @CiroCool dazu?

                              "Kommunikationsfehler" scheint zu funktionieren.

                              GlasfaserG Offline
                              GlasfaserG Offline
                              Glasfaser
                              wrote on last edited by
                              #123

                              @Rushmed sagte in [Linux Shell-Skript] WLAN-Wetterstation:

                              Also bei meiner W830 kommt über "yearlyrainin" nichts im ioBroker an obwohl die Station selbst eine Gesamtregenmenge anzeigen kann.

                              Stelle SBorg dein String zur Verfügung !

                              Ausgabe mit 
                              nc -lv -p 9999  ( 9999 dein Port )
                              

                              Synology 918+ 16GB - ioBroker in Docker v9 , VISO auf Trekstor Primebook C13 13,3" , Hikvision Domkameras mit Surveillance Station .. CCU RaspberryMatic in Synology VM .. Zigbee CC2538+CC2592 .. Sonoff .. KNX .. Modbus ..

                              1 Reply Last reply
                              0
                              • R Rushmed

                                Also bei meiner W830 kommt über "yearlyrainin" nichts im ioBroker an obwohl die Station selbst eine Gesamtregenmenge anzeigen kann.
                                Was sagt denn @CiroCool dazu?

                                "Kommunikationsfehler" scheint zu funktionieren.

                                SBorgS Offline
                                SBorgS Offline
                                SBorg
                                Forum Testing Most Active
                                wrote on last edited by
                                #124

                                @Rushmed

                                @Glasfaser sagte in [Linux Shell-Skript] WLAN-Wetterstation:

                                Stelle SBorg dein String zur Verfügung !

                                Jepp :)
                                Wahrscheinlich sendet die Station aber kein "yearlyrainin" und das Display addiert einfach die Monatswerte auf.
                                Dabei kam mir gleich die Idee noch einen Shell-Parameter zu ergänzen. "--data" wird zukünftig das "Rohdatenpaket" so ausgeben wie es die Station sendet. Mit "--debug" wird das ggf. gepatchte Paket ausgegeben, enthält also immer auch yearlyrainin= ob es die Wetterstation sendet oder nicht ;)

                                @Rushmed sagte in [Linux Shell-Skript] WLAN-Wetterstation:

                                "Kommunikationsfehler" scheint zu funktionieren.

                                Weißt du zufällig durch was ausgelöst? Kommt das zu oft/zu schnell?
                                @ALL Sollte der Zähler ev. wieder runter zählen wenn ein Datenpaket iO war? Aktuell wird bei 5 aufaddierten Fehlern Alarm ausgelöst, egal über welchen Zeitraum diese auftraten.

                                LG SBorg ( SBorg auf GitHub)
                                Projekte: Lebensmittelwarnung.de | WLAN-Wetterstation | PimpMyStation

                                R 1 Reply Last reply
                                0
                                • SBorgS SBorg

                                  @Rushmed

                                  @Glasfaser sagte in [Linux Shell-Skript] WLAN-Wetterstation:

                                  Stelle SBorg dein String zur Verfügung !

                                  Jepp :)
                                  Wahrscheinlich sendet die Station aber kein "yearlyrainin" und das Display addiert einfach die Monatswerte auf.
                                  Dabei kam mir gleich die Idee noch einen Shell-Parameter zu ergänzen. "--data" wird zukünftig das "Rohdatenpaket" so ausgeben wie es die Station sendet. Mit "--debug" wird das ggf. gepatchte Paket ausgegeben, enthält also immer auch yearlyrainin= ob es die Wetterstation sendet oder nicht ;)

                                  @Rushmed sagte in [Linux Shell-Skript] WLAN-Wetterstation:

                                  "Kommunikationsfehler" scheint zu funktionieren.

                                  Weißt du zufällig durch was ausgelöst? Kommt das zu oft/zu schnell?
                                  @ALL Sollte der Zähler ev. wieder runter zählen wenn ein Datenpaket iO war? Aktuell wird bei 5 aufaddierten Fehlern Alarm ausgelöst, egal über welchen Zeitraum diese auftraten.

                                  R Offline
                                  R Offline
                                  Rushmed
                                  Most Active
                                  wrote on last edited by
                                  #125

                                  @SBorg sagte in [Linux Shell-Skript] WLAN-Wetterstation:

                                  Weißt du zufällig durch was ausgelöst? Kommt das zu oft/zu schnell?
                                  @ALL Sollte der Zähler ev. wieder runter zählen wenn ein Datenpaket iO war? Aktuell wird bei 5 aufaddierten Fehlern Alarm ausgelöst, egal über welchen Zeitraum diese auftraten.

                                  Nein, keine Ahnung. Ich sehe nur dass es am Sonntag mal einen gab und bis jetzt fehlerfrei läuft.

                                  Und hier ist mein String :joy: :

                                  pi@Servazamba:~ $ nc -lv -p 9999
                                  Listening on [0.0.0.0] (family 2, port 9999)
                                  Connection from ESP-4F2AD3.fritz.box 17361 received!
                                  GET /weatherstation/updateweatherstation.php?ID=Own&PASSWORD=1234&indoortempf=68.2&tempf=38.5&dewptf=33.4&windchillf=38.5&indoorhumid                                                                                                                                           ity=55&humidity=82&windspeedmph=1.1&windgustmph=1.1&winddir=144&absbaromin=29.616&baromin=29.625&rainin=0.000&dailyrainin=0.728&weekl                                                                                                                                           yrainin=1.000&monthlyrainin=1.071&solarradiation=0.00&UV=0&dateutc=2020-02-04%2018:03:00&softwaretype=EasyWeatherV1.4.4&action=update                                                                                                                                           raw&realtime=1&rtfreq=5 HTTP/1.0
                                  Host: 192.168.178.20
                                  Accept:*/*
                                  Connection: Close
                                  
                                  

                                  Da sieht nichts nach Jahres- oder Gesamtregenmenge aus. Dann rechnet die Station den Wert für "total" woh selbst aus.
                                  ...und ja, ich weiß dass die aktuelle Firmware 1.4.6 ist aber die wird mir immernoch nicht angeboten.

                                  SBorgS 1 Reply Last reply
                                  0
                                  • R Rushmed

                                    @SBorg sagte in [Linux Shell-Skript] WLAN-Wetterstation:

                                    Weißt du zufällig durch was ausgelöst? Kommt das zu oft/zu schnell?
                                    @ALL Sollte der Zähler ev. wieder runter zählen wenn ein Datenpaket iO war? Aktuell wird bei 5 aufaddierten Fehlern Alarm ausgelöst, egal über welchen Zeitraum diese auftraten.

                                    Nein, keine Ahnung. Ich sehe nur dass es am Sonntag mal einen gab und bis jetzt fehlerfrei läuft.

                                    Und hier ist mein String :joy: :

                                    pi@Servazamba:~ $ nc -lv -p 9999
                                    Listening on [0.0.0.0] (family 2, port 9999)
                                    Connection from ESP-4F2AD3.fritz.box 17361 received!
                                    GET /weatherstation/updateweatherstation.php?ID=Own&PASSWORD=1234&indoortempf=68.2&tempf=38.5&dewptf=33.4&windchillf=38.5&indoorhumid                                                                                                                                           ity=55&humidity=82&windspeedmph=1.1&windgustmph=1.1&winddir=144&absbaromin=29.616&baromin=29.625&rainin=0.000&dailyrainin=0.728&weekl                                                                                                                                           yrainin=1.000&monthlyrainin=1.071&solarradiation=0.00&UV=0&dateutc=2020-02-04%2018:03:00&softwaretype=EasyWeatherV1.4.4&action=update                                                                                                                                           raw&realtime=1&rtfreq=5 HTTP/1.0
                                    Host: 192.168.178.20
                                    Accept:*/*
                                    Connection: Close
                                    
                                    

                                    Da sieht nichts nach Jahres- oder Gesamtregenmenge aus. Dann rechnet die Station den Wert für "total" woh selbst aus.
                                    ...und ja, ich weiß dass die aktuelle Firmware 1.4.6 ist aber die wird mir immernoch nicht angeboten.

                                    SBorgS Offline
                                    SBorgS Offline
                                    SBorg
                                    Forum Testing Most Active
                                    wrote on last edited by
                                    #126

                                    @Rushmed Ne, deine Wetterstation sendet keine jährliche Regenmenge. Das "yearlyrainin" wäre zwischen "monthly..." + "solarradiation..."
                                    Bliebe ein Blockly, welches den Monatswert aufaddiert + in einen extra DP schreibt (nicht den der Wetterstation, der wird bei jedem übertragen ohne entsprechenden Wert genullt ;) )

                                    LG SBorg ( SBorg auf GitHub)
                                    Projekte: Lebensmittelwarnung.de | WLAN-Wetterstation | PimpMyStation

                                    R 1 Reply Last reply
                                    0
                                    • SBorgS SBorg

                                      @Rushmed Ne, deine Wetterstation sendet keine jährliche Regenmenge. Das "yearlyrainin" wäre zwischen "monthly..." + "solarradiation..."
                                      Bliebe ein Blockly, welches den Monatswert aufaddiert + in einen extra DP schreibt (nicht den der Wetterstation, der wird bei jedem übertragen ohne entsprechenden Wert genullt ;) )

                                      R Offline
                                      R Offline
                                      Rushmed
                                      Most Active
                                      wrote on last edited by
                                      #127

                                      @SBorg
                                      Okay!

                                      1 Reply Last reply
                                      0
                                      • crunchipC crunchip

                                        @Nashra wetterstation.txt

                                        M Offline
                                        M Offline
                                        manu96
                                        wrote on last edited by
                                        #128

                                        @crunchip said in [Linux Shell-Skript] WLAN-Wetterstation:

                                        @Nashra wetterstation.txt

                                        Könntest du mir kurz einen Tipp geben wie ich die JSON nun in ein View bekomme? Ich finde bei mir unter json im VIS Editor nur die Tabelle und da kann leider kein Code eingefügt werden.

                                        SBorgS 1 Reply Last reply
                                        0
                                        • M manu96

                                          @crunchip said in [Linux Shell-Skript] WLAN-Wetterstation:

                                          @Nashra wetterstation.txt

                                          Könntest du mir kurz einen Tipp geben wie ich die JSON nun in ein View bekomme? Ich finde bei mir unter json im VIS Editor nur die Tabelle und da kann leider kein Code eingefügt werden.

                                          SBorgS Offline
                                          SBorgS Offline
                                          SBorg
                                          Forum Testing Most Active
                                          wrote on last edited by
                                          #129

                                          @manu96 Dies ist kein JSON für eine VIS-View, sondern für Grafana. Da brauchst du eine InfluxDB und eben Grafana dafür. In der VIS wird dann die Grafana-Grafik mittels iFrame angezeigt.

                                          LG SBorg ( SBorg auf GitHub)
                                          Projekte: Lebensmittelwarnung.de | WLAN-Wetterstation | PimpMyStation

                                          M S 2 Replies Last reply
                                          0
                                          Reply
                                          • Reply as topic
                                          Log in to reply
                                          • Oldest to Newest
                                          • Newest to Oldest
                                          • Most Votes


                                          Support us

                                          ioBroker
                                          Community Adapters
                                          Donate

                                          584

                                          Online

                                          32.6k

                                          Users

                                          82.1k

                                          Topics

                                          1.3m

                                          Posts
                                          Community
                                          Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen | Einwilligungseinstellungen
                                          ioBroker Community 2014-2025
                                          logo
                                          • Login

                                          • Don't have an account? Register

                                          • Login or register to search.
                                          • First post
                                            Last post
                                          0
                                          • Home
                                          • Recent
                                          • Tags
                                          • Unread 0
                                          • Categories
                                          • Unreplied
                                          • Popular
                                          • GitHub
                                          • Docu
                                          • Hilfe