Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Praktische Anwendungen (Showcase)
    4. [Linux Shell-Skript] WLAN-Wetterstation

    NEWS

    • Neuer Blog: Fotos und Eindrücke aus Solingen

    • ioBroker@Smart Living Forum Solingen, 14.06. - Agenda added

    • ioBroker goes Matter ... Matter Adapter in Stable

    [Linux Shell-Skript] WLAN-Wetterstation

    This topic has been deleted. Only users with topic management privileges can see it.
    • Negalein
      Negalein Global Moderator @SBorg last edited by Negalein

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

      ./ws_updater.beta --patch

      Hallo

      Bei mir funktioniert der ws_updater.beta nicht.

      dietpi@DietPi:~$ chmod +x ws_updater.beta
      chmod: Zugriff auf 'ws_updater.beta' nicht möglich: Datei oder Verzeichnis nicht gefunden
      dietpi@DietPi:~$ ./ws_updater.beta --patch
      -bash: ./ws_updater.beta: Datei oder Verzeichnis nicht gefunden
      dietpi@DietPi:~$
      

      0dae8c91-9c9f-424c-81e1-18b3b9c8c084-image.png

      #!/bin/bash
      
      UPDATE_VER=V2.21.0
      
      ###  Farbdefinition
            GR='\e[1;32m'
            GE='\e[1;33m'
            WE='\e[1;37m'
            BL='\e[1;36m'
            RE='\e[1;31m'
      
      
      echo -e "\n\n${BL}"
      echo -e '
          _       _______       __  __          __      __
         | |     / / ___/      / / / /___  ____/ /___ _/ /____  _____
         | | /| / /\__ \______/ / / / __ \/ __  / __ `/ __/ _ \/ ___/
         | |/ |/ /___/ /_____/ /_/ / /_/ / /_/ / /_/ / /_/  __/ /
         |__/|__//____/      \____/ .___/\__,_/\__,_/\__/\___/_/'  ${GE}${UPDATE_VER}${BL}
      echo -en '                           /_/'
      echo -e "${WE}\n"
      
      
       #Nicht als root...
       if [ $(whoami) = "root" ]; then echo -e "$RE Ausführung als \"root\" nicht möglich...!\n"; exit 1; fi
      
       #Verzeichnis feststellen + conf lesen
        DIR=$(pwd)
        if [ -f "${DIR}/wetterstation.conf" ]; then . "${DIR}/wetterstation.conf"; fi
      
      
       #Test ob Datei auf GitHub, sonst Fallback
       if [ "$1" = "" ] && ( ! curl -s https://raw.githubusercontent.com/SBorg2014/WLAN-Wetterstation/master/ws_updater.sh|grep -xq '404: Not Found' ); then
          echo -e "$WE Benutze neuste Version ${BL}$(curl -s https://raw.githubusercontent.com/SBorg2014/WLAN-Wetterstation/master/ws_updater.sh|grep -m 1 'UPDATE_VER='|cut -d"=" -f2)${WE} auf GitHub..."
          sleep 2
          source <(curl -s https://raw.githubusercontent.com/SBorg2014/WLAN-Wetterstation/master/ws_updater.sh) --menu
          exit 0
       fi
      
      
      
      checker() {
               #Test ob bc, jq, unzip, patch und dc installiert sind / Service im User-Kontext läuft
               #installierte Influx-Version
               #Rest-Api im ioB läuft
               #Service im User-Kontext?
               if [ ! $(cat /etc/systemd/system/wetterstation.service|grep User=) ]; then
                echo -e "\n$GE Service läuft nicht im User-Kontext sondern unter User ${RE}root${GE}..."
                jn_abfrage "\n$WE Soll nun auf User (empfohlen) umgestellt werden?"
                if [ -z $antwort ]; then echo -e "\n"; return; fi
                echo -e "\n"
                sudo sed -i '/[Service]/a User='$(whoami)'\nGroup='$(whoami) /etc/systemd/system/wetterstation.service
                echo -e "\n Done... Restarte Service...\n"
                sudo systemctl daemon-reload
                sudo systemctl restart wetterstation
               fi
               if [ ! -z ${INFLUX_API} ] && [ $(which influxd) ]; then check_prog influx; fi
               check_prog bc
               check_prog jq
               check_prog dc
               check_prog unzip
               check_prog patch
               check_prog restapi
               echo -e "\n"
      }
      
      
      check_prog() {
               if [ $1 == "influx" ]; then
                if [ ! $(influxd version|cut -d" " -f2|grep v1.) ]; then echo -e "${RE} Offizieller Support nur für Influx V1.x!\n\n${WE}"; sleep 5; fi
                return
               fi
               if [ $1 == "restapi" ]; then
                if [ "$(nc -vz $(echo "${RESTAPI_URL}" | grep -o '[\.0-9]*') &> /dev/null; echo $?)" -eq "0" ]; then RESTAPI=true
                  echo -e "\n Zugriff auf $GR'Rest-API'$WE im ioBroker: [$GR✓$WE]"
                 else
                  RESTAPI=false
                  echo -e "\n Zugriff auf $GR'Rest-API'$WE im ioBroker: [$RE✗$WE]"
                  echo -e "  (Dies ist kein Problem, es können nur keine neuen Datenpunkte bei Bedarf automatisch angelegt werden."
                  echo -e "  Dies muss im Fall neuer Datenpunkte per 'wetterstation.js' von Hand im ioBroker erfolgen.)"
                 fi
                return
               fi
               if [ $(which $1) ]; then
                 echo -e " $GR'$1'$WE installiert: [$GR✓$WE]"
                else
                 echo -e " $GR'$1'$WE installiert: [$RE✗$WE]"
                 echo -e "\n\n $RE Bitte zuerst '$1' installieren [sudo apt install $1]\n"
                 exit 1
               fi
      }
      
      backup() {
       echo -e "\n Lege Sicherungskopie der wetterstation.conf an..."
       cp ./wetterstation.conf ./wetterstation.conf.backup
      }
      
      FEHLER() {
       if [ "$UPDATE_VER" == "$VERSION" ]; then echo -e "\n$WE Version ist aktuell, nothing to do...\n"; exit 0; fi
       echo -e "\n  Updater ist ${RE}nur${WE} für Versionen ab V1.4.0 !\n"
       exit 1
      }
      
      patcher() {
               echo -en "\n${WE} Soll die ${RE}wetterstation.conf ${WE}nun auf eine neue Version gepatcht werden? [${GR}J/N${WE}]"
                 read -n 1 -p ": " JN
                 if [ "$JN" = "J" ] || [ "$JN" = "j" ]; then
                   echo -e "\n\n\n"
                  else
                   echo -e "\n\n\n"
                   echo -e " $RE Abbruch... ${WE}\n\n\n"; exit 1;
                 fi
      
        VERSION_SH=$(cat ./wetterstation.sh|grep "SH_VER"|cut -d"=" -f2|tr -d \")
      
        while [ "$VERSION_CONF" != "$VERSION_SH" ]
         do
          VERSION_CONF=$(cat ./wetterstation.conf|grep "### Settings V"|cut -d" " -f3)
      
          case ${VERSION_CONF} in
                 V1.4.0) PATCH140 ;;
                 V1.5.0) PATCH150 ;;
                 V1.6.0) PATCH160 ;;
                 V2.0.0) PATCH210 ;;
                 V2.1.0) PATCH220 ;;
                 V2.2.0) PATCH230 ;;
                 V2.3.0) PATCH240 ;;
                 V2.4.0) PATCH250 ;;
                 V2.5.0) PATCH260 ;;
                 V2.6.0) PATCH270 ;;
                 V2.7.0) PATCH280 ;;
                 V2.8.0) PATCH2100 ;;
                 V2.9.0) echo -e "$GE Kein Patch nötig...\n" ;;
                 V2.10.0) PATCH2110 ;;
                 V2.11.0) PATCH2111 ;;
                 V2.11.1) PATCH2120 ;;
                 V2.12.0) PATCH2121 ;;
                 V2.12.1) PATCH2130 ;;
                 V2.13.0) PATCH2140 ;;
                 V2.14.0) PATCH2150 ;;
                 V2.15.0) PATCH2160 ;;
                 V2.16.0) PATCH2170 ;;
                 V2.17.0) PATCH2180 ;;
                 V2.18.0) PATCH2190 ;;
                 V2.19.0) PATCH2200 ;;
                 V2.20.0) PATCH2210 && exit 0;;
                 V2.21.0) echo -e "$GE Version ist bereits aktuell...\n" && exit 0;;
                       *) FEHLER
          esac
      
         done
       exit 0
      }
      
      main() {
               #Wetterstation im Verzeichnis vorhanden
               if [ ! -f ./wetterstation.sh ]; then
                echo -e "\n$RE Keine Version von WLAN-Wetterstation im aktuellen Verzeichnis gefunden...\n"
                exit 1
               fi
      
               #aktuelle Version von GitHub holen
                GitHub=$(curl -sH "Accept: application/vnd.github.v3+json" https://api.github.com/repos/SBorg2014/WLAN-Wetterstation/releases/latest)
                akt_ver_long=$(echo ${GitHub} | jq -r '.name' | sed -e 's/-/vom/; s/\"//g')
                akt_version=$(echo ${GitHub} | jq -r '.tag_name')
                info_version=$(echo ${GitHub} | jq -r '.body' | tr -d '*\\')
      
                echo -e " Aktuelle Version (latest) auf GitHub: ${GR}$akt_ver_long$WE"
                VERSION=$(cat ./wetterstation.sh|grep "SH_VER"|cut -d"=" -f2|tr -d \")
                echo -e " Version im aktuellen Verzeichnis    : ${GR}$VERSION"
      
                if [ "$VERSION" == "$akt_version" ]; then echo -e "\n$GE Version ist bereits aktuell...\n"; exit 0; fi
      
                echo -e "\n$WE Informationen zum Release $akt_version:"
                echo -e " ─────────────────────────────────────────────────────────────"
                echo -e "\n$GE $info_version\n$WE"
      
                jn_abfrage "\n$WE Soll ein Update von WLAN-Wetterstation durchgeführt werden?"
                if [ -z $antwort ]; then echo -e "\n"; exit 0; fi
      
               #Update
                echo -e "\n\n$WE Führe Update aus...\n"
                DL_URL=$(echo ${GitHub} | jq -r '.assets | .[].browser_download_url')
                curl -LJ ${DL_URL} -o tmp.zip
                unzip -o tmp.zip -x wetterstation.conf
                sudo chmod +x wetterstation.sh ws_updater.sh
      
                rm tmp.zip
                source ./ws_updater.sh --patch
      
                jn_abfrage "\n ${WE}Update ausgeführt. Soll der Service nun neu gestartet werden?"
                if [ ! -z $antwort ]; then echo -e "\n"; sudo systemctl restart wetterstation.service; fi
      
      exit
      }
      
      ########################################################################################
      #Patch Version V1.4.0 auf V1.5.0
      PATCH140() {
       backup
       echo -e "\n Patche wetterstation.conf auf V1.5.0 ..."
       sed -i '/^.#Port der Wetterstation/i \ #Protokoll (HTTP oder HTTPS) \/ default: HTTP\n  WEB=HTTP\n\n #User-Authentifizierung falls benutzt; sonst leer lassen\n  AUTH_USER=\n  AUTH_PASS=\n' ./wetterstation.conf
       sed -i 's/### Settings V1.4.0/### Settings V1.5.0/' ./wetterstation.conf
       echo -e " Fertig...\n"
      }
      
      
      #Patch Version V1.5.0 auf V1.6.0
      PATCH150() {
       backup
       echo -e "\n Patche wetterstation.conf auf V1.6.0 ..."
       sed -i 's/### Settings V1.5.0/### Settings V1.6.0/' ./wetterstation.conf
       echo -e " Fertig...\n"
      }
      
      
      #Patch Version V1.6.0 auf V2.0.0
      PATCH160() {
       backup
       echo -e "\n Patche wetterstation.conf auf V2.0.0 ..."
       sed -i '/^.#Protokoll (HTTP oder HTTPS)/i \ #Protokoll der Wetterstation [1/2] \/ 1=Wunderground ; 2=Ecowitt \/ default: 1\n  WS_PROTOKOLL=1\n\n #Anzahl der vorhandenen DP50 Sensoren \/ default: 0\n  ANZAHL_DP50=0\n\n #HTTP Anzahl der vorhandenen DP100 Sensoren \/ default: 0\n  ANZAHL_DP100=0\n' ./wetterstation.conf
       sed -i 's/### Settings V1.6.0/### Settings V2.0.0/' ./wetterstation.conf
       echo -e " Fertig...\n"
      }
      
      
      #Patch Version V2.0.0 auf V2.1.0
      PATCH210() {
       backup
       echo -e "\n Patche wetterstation.conf auf V2.1.0 ..."
       sed -i 's/#Protokoll der Wetterstation [1\/2] \/ 1=Wunderground ; 2=Ecowitt \/ default: 1/#Protokoll der Wetterstation [1\/2\/9] \/ 1=Wunderground ; 2=Ecowitt ; 9=Sainlogic Profi \/ default: 1/' ./wetterstation.conf
       sed -i 's/### Settings V2.0.0/### Settings V2.1.0/' ./wetterstation.conf
       echo -e " Fertig...\n"
      }
      
      
      #Patch Version V2.1.0 auf V2.2.0
      PATCH220() {
       backup
       echo -e "\n Patche wetterstation.conf auf V2.2.0 ..."
       sed -i 's/Chillfaktor/gefühlte Temperatur/' ./wetterstation.conf
       sed -i 's/### Settings V2.1.0/### Settings V2.2.0/' ./wetterstation.conf
       echo -e " Fertig...\n"
      }
      
      
      #Patch Version V2.2.0 auf V2.3.0
      PATCH230() {
       backup
       echo -e "\n Patche wetterstation.conf auf V2.3.0 ..."
       sed -i '/#Anzahl der vorhandenen DP50/,/ANZAHL_DP100=/c\ #Anzahl der vorhandenen Zusatzsensoren \/ default: 0\n  ANZAHL_DP50=0\n  ANZAHL_DP60=0\n  ANZAHL_DP100=0' ./wetterstation.conf
       sed -i '/^.#letztes Regenereignis/i \ #InfluxDB-Konfiguration \/ ohne InfluxDB alles leer lassen\n  #IP und Port der API [xxx.xxx.xxx.xxx:xxxxx]\n   INFLUX_API=\n  #Name, User und Passwort der InfluxDB-Datenbank\n   INFLUX_DB=\n   INFLUX_USER=\n   INFLUX_PASSWORD=\n' ./wetterstation.conf
       sed -i 's/### Settings V2.2.0/### Settings V2.3.0/' ./wetterstation.conf
       echo -e " Fertig...\n"
       echo -e " ${GE}Eventuelle Zusatzsensoren DP50/60/100 müssen neu eingetragen werden!"
       echo -e " Neuen Configblock für Influx beachten/konfigurieren!\n"
      }
      
      
      #Patch Version V2.3.0 auf V2.4.0
      PATCH240() {
       backup
       echo -e "\n Patche wetterstation.conf auf V2.4.0 ..."
       sed -i '/^.*ANZAHL_DP100=.*/a \  ANZAHL_DP200=0' ./wetterstation.conf
       sed -i 's/### Settings V2.3.0/### Settings V2.4.0/' ./wetterstation.conf
       echo -e " Fertig...\n"
       echo -e " ${GE}Eventuelle Zusatzsensoren DP200 müssen eingetragen werden!\n"
      }
      
      
      #Patch Version V2.4.0 auf V2.5.0
      PATCH250() {
       backup
       echo -e "\n Patche wetterstation.conf auf V2.5.0 ..."
       sed -i '/^.*ANZAHL_DP100=.*/i \  ANZAHL_DP70=0' ./wetterstation.conf
       sed -i 's/### Settings V2.4.0/### Settings V2.5.0/' ./wetterstation.conf
       echo -e " Fertig...\n"
       echo -e " ${GE}Eventuelle Zusatzsensoren DP70 müssen eingetragen werden!\n"
      }
      
      
      #Patch Version V2.5.0 auf V2.6.0
      PATCH260() {
       backup
       echo -e "\n Patche wetterstation.conf auf V2.6.0 ..."
       patch_260 && patch ./wetterstation.conf < patch
       rm patch
       echo -e " ${GE}Windy kann nun mittels \033[30m\033[47m./wetterstation.sh --windy_reg\033[0m ${GE}eingerichtet werden !\n"
      }
      
      
      #Patch Version V2.6.0 auf V2.7.0
      PATCH270() {
       backup
       echo -e "\n Patche wetterstation.conf auf V2.7.0 ..."
       sed -i '/^.*ANZAHL_DP200=.*/a \  ANZAHL_DP250=0' ./wetterstation.conf
       sed -i 's/### Settings V2.6.0/### Settings V2.7.0/' ./wetterstation.conf
       echo -e " Fertig...\n"
       echo -e " ${GE}Eventueller Zusatzsensor DP250/WH45 muss eingetragen werden!\n"
      }
      
      
      #Patch Version V2.7.0 auf V2.8.0
      PATCH280() {
       backup
       echo -e "\n Patche wetterstation.conf auf V2.8.0 ..."
       sed -i '/^.*SONNENSCHEIN_TXTFORMAT=.*/a \ \n\n  #Daten an Wetter.com senden (leer lassen falls nicht gewünscht)?\n   WETTERCOM_ID=\n   WETTERCOM_PW=' ./wetterstation.conf
       sed -i 's/### Settings V2.7.0/### Settings V2.8.0/' ./wetterstation.conf
       echo -e " Fertig...\n"
       echo -e " ${GE}Falls die Übertragung der Wetterdaten an wetter.com erfolgen soll, nun aktivieren durch eintragen von User-ID und Passwort!\n"
      }
      
      
      #Patch Version V2.8.0 auf V2.10.0
      PATCH2100() {
       backup
       echo -e "\n Patche wetterstation.conf auf V2.10.0 ..."
       patch_2100 && patch ./wetterstation.conf < patch.dat
       rm patch.dat
       echo -e " Fertig...\n"
       echo -e " ${GE}Eventuelle Zusatzsensoren DP300/WS68, DP40/WH32 oder WH25/WH31 müssen eingetragen werden!\n"
      }
      
      
      #Patch Version V2.10.0 auf V2.11.0
      PATCH2110() {
       backup
       echo -e "\n Patche wetterstation.conf auf V2.11.0 ..."
       sed -i 's/### Settings V2.10.0/### Settings V2.11.0/' ./wetterstation.conf
       sed -i '/^.*debug=.*/a \ \n #Verhalten bei Kommunikationsfehler [true/false] / default: false / Soll der Datenpunkt automatisch resettet werden?\n  RESET_KOMFEHLER=false' ./wetterstation.conf
       echo -e " Fertig...\n"
       echo -e " ${GE}Parameter für Kommunikationsfehler ggf. ändern. Per Default verbleibt er im Zustand 'true' bei einem Fehler.\n"
      }
      
      
      #Patch Version V2.11.0 auf V2.11.1
      PATCH2111() {
       backup
       echo -e "\n Patche wetterstation.conf auf V2.11.1 ..."
       sed -i 's/### Settings V2.11.0/### Settings V2.11.1/' ./wetterstation.conf
       sed -i 's/Sainlogic Profi/DNS/' ./wetterstation.conf
       echo -e " Fertig...\n"
      }
      
      
      #Patch Version V2.11.1 auf V2.12.0
      PATCH2120() {
       backup
       echo -e "\n Patche wetterstation.conf auf V2.12.0 ..."
       sed -i 's/### Settings V2.11.1/### Settings V2.12.0/' ./wetterstation.conf
       sed -i '/^.*WETTERCOM_PW=.*/a \ \n #Fix aktivieren bei fehlerhafter Außentemperatur [true/false] / default: false\n #Bei unplausiblem Messwert wird kein Datenpaket an den ioB geschickt\n  FIX_AUSSENTEMP=false' ./wetterstation.conf
       echo -e " Fertig...\n"
       echo -e " ${GE}Parameter für FIX_AUSSENTEMP ggf. ändern. Per Default werden auch unplausible Messwerte an den ioB geschickt.\n"
      }
      
      
      #Patch Version V2.12.0 auf V2.12.1
      PATCH2121() {
       backup
       echo -e "${WE}\n Patche wetterstation.conf auf V2.12.1 ..."
       sed -i 's/### Settings V2.12.0/### Settings V2.12.1/' ./wetterstation.conf
       echo -e "${WE} Fertig...\n"
      }
      
      
      #Patch Version V2.12.1 auf V2.13.0
      PATCH2130() {
       backup
       echo -e "${WE}\n Patche wetterstation.conf auf V2.13.0 ..."
       sed -i 's/### Settings V2.12.1/### Settings V2.13.0/' ./wetterstation.conf
       sed -i '/^.*ANZAHL_WH31=.*/a \  ANZAHL_DP35=0' ./wetterstation.conf
       echo -e "${WE} Fertig...\n"
       echo -e " ${GE}Eventuelle Zusatzsensoren DP35 müssen eingetragen werden!\n"
      }
      
      
      #Patch Version V2.13.0 auf V2.14.0
      PATCH2140() {
       backup
       echo -e "${WE}\n Patche wetterstation.conf auf V2.14.0 ..."
       sed -i 's/### Settings V2.13.0/### Settings V2.14.0/' ./wetterstation.conf
       sed -i '/^.*WEB=HTTP.*/a \\n #Ignoriere Zertifikatsfehler bei der Simple-Restful-API [true/false] / default: false / nötig bei eigenen Zertifikaten\n  WEB_IGN_SSL_ERROR=false' ./wetterstation.conf
       echo -e "${WE} Fertig...\n"
      }
      
      
      #Patch Version V2.14.0 auf V2.15.0
      PATCH2150() {
       backup
       echo -e "${WE}\n Patche wetterstation.conf auf V2.15.0 ..."
       sed -i 's/### Settings V2.14.0/### Settings V2.15.0/' ./wetterstation.conf
       sed -i '/^.*WETTERCOM_PW=.*/a \\n\n #Daten an Wunderground.com senden? [true/false] / default: false\n   #Nur nötig und sinnvoll bei WS_PROTOKOLL=9 (DNS) wenn trotzdem auch Daten weiterhin an Wunderground.com gesendet werden sollen.\n   WUNDERGROUND_UPDATE=false' ./wetterstation.conf
       sed -i 's/#InfluxDB-Konfiguration/#InfluxDB-Konfiguration für Influx V1.x.x/' ./wetterstation.conf
       echo -e "${WE} Fertig...\n"
       echo -e " ${GE}Die Datenübertragung an Wunderground.com kann nun aktiviert werden!\n"
      }
      
      
      #Patch Version V2.15.0 auf V2.16.0
      PATCH2160() {
       backup
       echo -e "${WE}\n Patche wetterstation.conf auf V2.16.0 ..."
       sed -i 's/### Settings V2.15.0/### Settings V2.16.0/' ./wetterstation.conf
       sed -i '/^.*IPP=.*/a \\n #Protokoll, ioBroker-IP und Port der Rest-API [http(s)://xxx.xxx.xxx.xxx:xxxxx] / leer lassen falls nicht benutzt\n  RESTAPI_URL=\n  RESTAPI_USER=\n  RESTAPI_PW=' ./wetterstation.conf
       echo -e "${WE} Fertig...\n"
       echo -e " ${GE}Die Rest-API kann nun durch Eingabe der URL und den Zugangsdaten aktiviert werden!\n"
      }
      
      
      #Patch Version V2.16.0 auf V2.17.0
      PATCH2170() {
       backup
       echo -e "${WE}\n Patche wetterstation.conf auf V2.17.0 ..."
       sed -i 's/### Settings V2.16.0/### Settings V2.17.0/' ./wetterstation.conf
       sed -i '/^.*WUNDERGROUND_UPDATE=.*/a \\n #Windrichtung und -geschwindigkeit der letzten 10 Minuten anstelle aktueller Werte an\n #windy/OpenSenseMap/wetter.com übertragen? [true/false] / default: false\n  USE_AVG_WIND=false' ./wetterstation.conf
       if [ ${RESTAPI} == "true" ]; then make_objects ".Aussentemperatur_Trend" "Trend der Aussentemperatur der letzten Stunde" "number" "°C"; fi
       echo -e "${WE} Fertig...\n"
       echo -e " ${GE}Die alternative Datenübertragung von Windrichtung und -geschwindigkeit der letzten\n 10 Minuten an windy/OpenSenseMap/wetter.com kann nun aktiviert werden!"
       echo -e " Einstellung dafür in der wetterstation.conf: ${BL}USE_AVG_WIND=true\n${WE}"
      }
      
      
      #Patch Version V2.17.0 auf V2.18.0
      PATCH2180() {
       backup
       echo -e "${WE}\n Patche wetterstation.conf auf V2.18.0 ..."
       sed -i 's/### Settings V2.17.0/### Settings V2.18.0/' ./wetterstation.conf
       sed -i '/^.*ANZAHL_DP35=.*/i \  ANZAHL_DP10=0' ./wetterstation.conf
       if [ ${RESTAPI} == "true" ]; then
        make_objects ".Info.Wolkenbasis" "Höhe der Wolkenbasis" "number" "m"
        make_objects ".Info.Shellscriptversion" "Versionsnummer des Scriptes" "string"
        make_objects ".Windrichtung_Text_10min" "Windrichtung Durchschnitt 10 Minuten als Text" "string"
       fi
       echo -e "${WE} Fertig...\n"
       echo -e " ${GE}Eventuelle Zusatzsensoren DP10/WN35 können nun eingetragen werden!\n${WE}"
      }
      
      
      #Patch Version V2.18.0 auf V2.19.0
      PATCH2190() {
       backup
       echo -e "${WE}\n Patche wetterstation.conf auf V2.19.0 ..."
       sed -i 's/### Settings V2.18.0/### Settings V2.19.0/' ./wetterstation.conf
       sed -i '/^.*ANZAHL_WH31=.*/a \  ANZAHL_WS90=0' ./wetterstation.conf
       if [ ${RESTAPI} == "true" ]; then make_objects ".Info.Wetterwarnung" "mögliche Wetterereignisse" "string"
      #     #Abfrage starten zum Anlegen der DPs des WS90
      #     jn_abfrage "${WE} Sollen nun Datenpunkte für den WS90 angelegt werden...(nur sinnvoll wenn man auch einen hat ;-))?"
      #     if [ ! -z $antwort ]; then
      #      make_objects ".WS90" "WS90 Wittboy" "folder"
      #      make_objects ".WS90.1.aktuelle_Regenrate" "WS90 Kanal 1 aktuelle Regenrate" "number" "mm/h"
      #     fi
       fi
       echo -e "\n${WE} Fertig...\n"
       echo -e " ${GE}Eventueller Zusatzsensor WS90 kann nun eingetragen werden!${WE}"
      # if [ ${RESTAPI} != "true" ] || [ -z $antwort ]; then echo -e " ${GE}Dazu noch 'wetterstation.js' im ioB ersetzen, konfigurieren und einmalig ausführen.\n${WE}"; fi
       echo -e " ${GE}Dazu noch 'wetterstation.js' im ioB ersetzen, konfigurieren und einmalig ausführen.\n${WE}"
      }
      
      
      #Patch Version V2.19.0 auf V2.20.0
      PATCH2200(){
       backup
       echo -e "${WE}\n Patche wetterstation.conf auf V2.20.0 ..."
       sed -i 's/### Settings V2.19.0/### Settings V2.20.0/' ./wetterstation.conf
       echo -e "\n${WE} Fertig...\n"
      }
      
      
      #Patch Version V2.20.0 auf V2.21.0
      PATCH2210(){
       backup
       echo -e "${WE}\n Patche wetterstation.conf auf V2.21.0 ..."
       sed -i 's/### Settings V2.20.0/### Settings V2.21.0/' ./wetterstation.conf
       sed -i '/^.*Ende Usereinstellungen.*/i \\n #############################################################################################\n ###    AWEKAS - Einstellungen (nur nötig falls AWEKAS benutzt werden soll)                ###\n #############################################################################################' ./wetterstation.conf
       sed -i '/^.*Ende Usereinstellungen.*/i \\n  #AWEKAS aktivieren [true/false] / default: false\n   use_awekas=false\n\
        #AWEKAS Login Username und Password\n   AWEKAS_USER=\n   AWEKAS_PW=\n\
       #############################################################################################\
       ###    AWEKAS - Ende der Einstellungen    ###################################################\
       #############################################################################################\n' ./wetterstation.conf
       echo -e "\n${WE} Fertig...\n"
      }
      
      
      patch_260() {
      cat <<EoD >patch
      --- wetterstation.conf_250	2021-05-13 13:45:06.297750501 +0200
      +++ wetterstation.conf	2021-05-12 18:39:24.358821394 +0200
      @@ -1,4 +1,4 @@
      -### Settings V2.5.0 -----------------------------------------------------------
      +### Settings V2.6.0 -----------------------------------------------------------
        #Debuging einschalten [true/false] / default: false / Ausgabe der Messwerte
         debug=false
      @@ -112,5 +112,42 @@
        #############################################################################################
      +
      + #############################################################################################
      + ###    Windy - Einstellungen (nur nötig falls Windy benutzt werden soll)                  ###
      + #############################################################################################
      +
      +  #Windy aktivieren [true/false] / default: false
      +   use_windy=false
      +
      +  #Windy API-Key
      +   windy_APIKey=
      +
      +  #Station [number: 0 - 2147483647] / default: 0
      +   windy_Station=
      +
      +  #Name der Station [Text]
      +   windy_Name=
      +
      +  #Latitude/Breitengrad der Station
      +   windy_Latitude=
      +
      +  #Longitude/Längengrad der Station
      +   windy_Longitude=
      +
      +  #Elevation/Höhe ÜNN
      +   windy_Elevation=
      +
      +  #Montagehöhe Temperatursensor über Boden
      +   windy_Tempheight=
      +
      +  #Montagehöhe Windsensor über Boden
      +   windy_Windheight=
      +
      + #############################################################################################
      + ###    Windy - Ende der Einstellungen    ####################################################
      + #############################################################################################
      +
      +
       ###  Ende Usereinstellungen
       ###EoF
      EoD
      }
      
      patch_2100() {
      cat <<EofP >patch.dat
      --- wetterstation.org	2021-10-26 20:01:56.772982845 +0200
      +++ wetterstation.conf	2021-10-26 20:04:21.625615091 +0200
      @@ -1,7 +1,10 @@
      -### Settings V2.8.0 -----------------------------------------------------------
      +### Settings V2.10.0 -----------------------------------------------------------
        #Debuging einschalten [true/false] / default: false / Ausgabe der Messwerte
         debug=false
      + #Logging einschalten [true/false] / default: false / schreibt die Datenstrings der Station in eine Datei
      +  logging=false
      +
        #ioBroker-IP und Port der Simple-Restful-API [xxx.xxx.xxx.xxx:xxxxx]
         IPP=192.168.1.3:8087
      @@ -9,12 +12,15 @@
         WS_PROTOKOLL=1
        #Anzahl der vorhandenen Zusatzsensoren / default: 0
      +  ANZAHL_WH31=0
      +  ANZAHL_DP40=0
         ANZAHL_DP50=0
         ANZAHL_DP60=0
         ANZAHL_DP70=0
         ANZAHL_DP100=0
         ANZAHL_DP200=0
         ANZAHL_DP250=0
      +  ANZAHL_DP300=0
        #Protokoll (HTTP oder HTTPS) / default: HTTP
         WEB=HTTP
      EofP
      }
      
      jn_abfrage() {
               echo -en "\n$1 ${WE}[${GR}J/N${WE}]"
                 read -n 1 -p ": " JN
                 if [ "$JN" = "J" ] || [ "$JN" = "j" ]; then
                   antwort=true
                  else
                   unset antwort
                 fi
      
      }
      
      install() {
         #WLAN-Wetterstation Installationsroutine
          jn_abfrage "${WE}\n Möchten Sie ${BL}WLAN-Wetterstation${WE} im aktuellen Verzeichnis installieren?"
          if [ -z $antwort ]; then echo -e "\n ${RE}Abbruch...${WE}\n\n"; exit 1; fi
          unset antwort
      
          #aktuelle Version feststellen, downloaden und entpacken
           echo -e "\n\n\n Hole Daten von GitHub..."
           GitHub=$(curl -sH "Accept: application/vnd.github.v3+json" https://api.github.com/repos/SBorg2014/WLAN-Wetterstation/releases/latest)
           akt_version=$(echo ${GitHub} | jq -r '.name' | sed -e 's/-/vom/; s/\"//g')
           echo -e " Aktuelle Version: ${GR}${akt_version}${WE}"
           DL_URL=$(echo ${GitHub} | jq -r '.assets | .[].browser_download_url')
           echo -e " Lade Datei von GitHub herunter...\n"
           curl -LJ ${DL_URL} -o tmp.zip
           echo -e "\n Entpacke Dateien...\n"
           unzip -n tmp.zip
      
           echo -e "\n Lösche Dateidownload..."
           rm tmp.zip
      
           echo -e "\n Dateien ausführbar setzen..."
           chmod +x ws_updater.sh wetterstation.sh
      
           jn_abfrage "\n${WE} Soll WLAN-Wetterstation nun als Service eingerichtet werden?"
           if [ ! -z $antwort ]; then service; fi
      
          #Konfiguration öffnen
           jn_abfrage "\n${WE} Konfiguration nun öffnen?"
           if [ ! -z $antwort ]; then
             if [ ! -f ~/.selected_editor ]; then update-alternatives --config editor; fi
             $(cat ~/.selected_editor | grep SELECTED_EDITOR | cut -d"=" -f2 | tr -d \") wetterstation.conf
           fi
      
          #DPs im ioB anlegen...
           jn_abfrage "\n${BL} Nun mittels des Javascriptes ${GE}'wetterstation.js'${BL} die Datenpunkte im ioBroker anlegen! Fertig [\e[101m Nein=Abbruch \e[0m${BL}]?"
           if [ -z $antwort ]; then echo -e "\n"; exit 1; fi
           unset antwort
      
          #Testlauf starten
           jn_abfrage "\n${WE} Einmaligen Testdurchlauf im Debug-Modus starten...(empfiehlt sich)?"
           if [ ! -z $antwort ]; then ./wetterstation.sh --debug; fi
      
          #enable Service
           jn_abfrage "\n${WE} WLAN-Wetterstation Service nun starten?"
           if [ ! -z $antwort ]; then sudo systemctl start wetterstation.service; fi
      
          echo -e "\n\n Fertig..."
          echo -e " Wenn der Testlauf ausgeführt wurde und erfolgreich verlief, sollten nun aktuelle Daten\n der Wetterstation im ioBroker in den Datenpunkten stehen ;-)\n"
      }
      
      service() {
            #existiert der Service schon?
            if [ -f /etc/systemd/system/wetterstation.service ]; then
               echo -e "\n\n ${RE}Wetterstation-Service existiert bereits!${WE}\n"
               return 0
            fi
      
              sudo tee -a /etc/systemd/system/wetterstation.service > /dev/null <<-EoD
      	[Unit]
      	Description=Service für ioBroker Wetterstation
      	[Service]
      	User=$(whoami)
      	Group=$(whoami)
      	ExecStart=${DIR}/wetterstation.sh
      	[Install]
      	WantedBy=multi-user.target
      	EoD
      
            echo -e "\n Aktiviere den Service nun..."
            sudo systemctl daemon-reload
            sudo systemctl enable wetterstation.service
            echo -e "\n ${GE}Der Service kann nun mittels ${GR}systemctl start wetterstation${GE} gestartet werden..."
      
      }
      
      usage() {
              echo -e "\nusage: ws_updater [[--install] | [--patch] | [--service] | [-h|--help]]\n"
              echo -e " --install\tinstalliert WLAN-Wetterstation im aktuellen Verzeichnis"
              echo -e " --patch\tpatcht die 'wetterstation.conf' auf eine neue Version"
              echo -e " --service\trichtet WLAN-Wetterstation als Service ein"
              echo -e " -h | --help\tdieses Hilfemenue\n"
      }
      
      menu() {
              clear
              echo -e "$WE\n\n\n"
              echo -e "\t Auswahlmenü für WLAN-Wetterstation:"
              echo -e "\t_____________________________________\n\n"
              echo -e "\t [${BL}1${WE}] im aktuellen Verzeichnis installieren\n"
              echo -e "\t [${BL}2${WE}] als Service einrichten\n"
              echo -e "\t [${BL}3${WE}] Konfigurationsdatei patchen\n"
              echo -e "\t [${BL}4${WE}] Update ausführen\n\n"
              echo -e "\t [${BL}E${WE}] Exit\n\n\n"
              echo -en "\t Ihre Auswahl: [${GR}1-4,E${WE}]"
      
              read -n 1 -p ": " MENU_AUSWAHL
              echo -e "\n"
              case $MENU_AUSWAHL in
                 1)   source <(curl -s https://raw.githubusercontent.com/SBorg2014/WLAN-Wetterstation/master/ws_updater.sh) --install
                      exit 0 ;;
                 2)   source <(curl -s https://raw.githubusercontent.com/SBorg2014/WLAN-Wetterstation/master/ws_updater.sh) --service
                      exit 0 ;;
                 3)   source <(curl -s https://raw.githubusercontent.com/SBorg2014/WLAN-Wetterstation/master/ws_updater.sh) --patch
                      exit 0 ;;
                 4)   source <(curl -s https://raw.githubusercontent.com/SBorg2014/WLAN-Wetterstation/master/ws_updater.sh) --gitup
                      exit 0 ;;
                 e|E) exit 0 ;;
                 *) menu
              esac
      }
      
      make_objects(){
       #1: ID
       #2: name
       #3: type
       #4: unit
      
       echo -e "\n ${WE}Lege neues Object im ioBroker an: $BL${PRE_DP}$1$WE"
       local TOKEN=$(echo -n ${RESTAPI_USER}:${RESTAPI_PW} | base64)
      
       #build Data-String
        local DATA=$(cat <<-EOD
      	{
      	"_id": "${PRE_DP}$1",
      	"type": "state",
      	"common": {
      	"name": "$2",
      	"type": "$3",
      	"role": "state"
      	},
      	"native": {
      	"name": "$2",
      	"type": "$3",
      	"role": "state"
      	}
      	}
      	EOD
        )
      
        #Check 4 Units
         if [ "$4" != "" ]; then DATA=$(echo $DATA | sed "s|\"role\": \"state\"|\"role\": \"state\", \"unit\": \"$4\"|g"); fi
      
       local RESULT=$(curl -skX 'POST' \
        ${RESTAPI_URL}'/v1/object/'${PRE_DP}${1} \
        -H 'accept: application/json' \
        -H 'authorization: Basic '${TOKEN} \
        -H 'Content-Type: application/json' \
        --data "$DATA"
       )
      
        #Fehler beim anlegen?
        if [[ $RESULT == *"error"* ]]; then local FEHLER_ioB=$(echo ${RESULT} | jq -r '.error')
         echo -e "${RE} Fehlermeldung beim Anlegen des Datenpunktes: ${FEHLER_ioB}${WE}\n"
        fi
        if [ "$RESULT" == "" ]; then echo -e "${RE} Keine Antwort der Rest-API erhalten! Stimmt das Protokoll (http/https), IP-Adresse und der Port?${WE}\n"; fi
      
      }
      
      
        #gibt es Parameter?
        while [ "$1" != "" ]; do
          case $1 in
              --install )             checker
                                      install
                                      exit 0
                                      ;;
              --menu )                menu
                                      exit 0
                                      ;;
              --service )             service
                                      exit 0
                                      ;;
              --gitup )               checker
                                      main
                                      exit 0
                                      ;;
              --patch )               checker
                                      patcher
                                      exit 0
                                      ;;
              -h | --help )           usage
                                      exit 0
                                      ;;
              * )                     echo -e "\n${RE}\"$1\"${WE} wird nicht unterstützt...\n\n"
                                      usage
                                      exit 1
          esac
          shift
        done
      
      
      
        checker
        main
      

      was hab ich da wieder verwustelt?

      da_Woody 1 Reply Last reply Reply Quote 0
      • da_Woody
        da_Woody @Negalein last edited by

        @negalein richtiges verzeichniss?

        Negalein 1 Reply Last reply Reply Quote 0
        • Negalein
          Negalein Global Moderator @da_Woody last edited by

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

          richtiges verzeichniss?

          jep, in /home/iobroker

          6e7b4dcf-890e-4e64-89b4-87097ed1b054-image.png

          1 Reply Last reply Reply Quote 0
          • SBorg
            SBorg Forum Testing Most Active last edited by

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

            jep, in /home/iobroker

            Sieht aber lt. Bash-Auszug von oben nicht danach aus 😉
            User "dietpi" hat sein Home-Verzeichnis (sieht man an der Tilde "~") normalerweise unter /home/dietpi
            Man kann dies natürlich auch ändern, was aber schon gewisse Kenntnisse voraus setzt (="die wenigsten werden wissen wie...")
            Daraus resultiert dann Zeile #2 (er findet die Datei nicht) und dann logischerweise auch #4 (was er nicht findet kann er auch nicht ausführen).

            Versuch mal zuerst ein cd /home/iobroker und dann "chmod..." etc.
            Falls es dann immer noch nicht geht, was sagt denn ein ls -al ?

            da_Woody Negalein 2 Replies Last reply Reply Quote 1
            • da_Woody
              da_Woody @SBorg last edited by

              @sborg so meinte ich das...
              ein simples ls nach dem einloggen tuts ja schon um zu sehn, ob man richtig ist.
              ich hab die wetterstations geschichte halt in home/woody, ergo meinem verzeichniss.

              SBorg 1 Reply Last reply Reply Quote 0
              • SBorg
                SBorg Forum Testing Most Active @da_Woody last edited by

                @da_woody Zwar nicht "woody" aber in "meinem" Home-Verzeichnis. Ich bin wie die meisten faul, und "mein" Verzeichnis erreiche ich halt immer mittels der Tilde: cd ~
                Kürzer (=oder fauler) geht nicht 😊
                ...Unterordner habe ich aber auch noch, sonst wird das irgendwann unübersichtlich.

                da_Woody 1 Reply Last reply Reply Quote 0
                • Negalein
                  Negalein Global Moderator @SBorg last edited by

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

                  Versuch mal zuerst ein cd /home/iobroker und dann "chmod..." etc.

                  es ist echt verhext.
                  Gestern funktionierte es nicht. War definitiv in /home/iobroker
                  Heute hat es auf anhieb funktioniert.

                  1 Reply Last reply Reply Quote 0
                  • Negalein
                    Negalein Global Moderator @SBorg last edited by

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

                    Aktuell funktioniert der Luftdruck nicht, ebenso wie die Regenwerte

                    56ce372c-123c-4ee1-9e03-ff05226c26c6-image.png

                    es funktionieren allerdings mehrere Werte (zusätzlich zu Luftdruck und Regenwerte) nicht.

                    Temperatur: Graph stimmt, aber kein Wert
                    Luftfeuchtigkeit: beides fehlt
                    UV-Index: beides fehlt

                    SBorg 1 Reply Last reply Reply Quote 0
                    • da_Woody
                      da_Woody @SBorg last edited by

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

                      Kürzer (=oder fauler) geht nicht

                      doch, werd dort automatisch eingeloggt. 😄
                      b8282c54-9f01-4cf6-b144-94ab93ebbc3a-grafik.png a694dac5-5919-48ee-a1d3-46a3fb373fe9-grafik.png

                      SBorg 1 Reply Last reply Reply Quote 0
                      • SBorg
                        SBorg Forum Testing Most Active @Negalein last edited by

                        @negalein Passiert schnell mal, dass ein "/" fehlt oder Buchstabendreher und man nicht genau auf den Prompt achtet. Hauptsache funktioniert 🙂

                        Warte mit den Werten mal bis morgen, vieles geht erst nach einiger Zeit (gerade die Graphen brauchen mindestens 2 h, da diese nur Mittelwerte anzeigen und dazu immer 1h gemessen wird. Für die kürzeste Linie sind aber mindestens zwei Punkte nötig = 2h).
                        ...und solange (zB. UV-Index) du noch nie einen Wert übermittelt hast bedeutet dort ein Messwert von "0" nicht "0" sondern "NULL" (=also nicht vorhanden).

                        1 Reply Last reply Reply Quote 0
                        • SBorg
                          SBorg Forum Testing Most Active @da_Woody last edited by

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

                          doch, werd dort automatisch eingeloggt.

                          Ist auch bei Linux Standard, ich meinte aber eher wenn ich bspw. in "/etc/systemd/system" stehe brauche ich kein cd /home/sborg sondern nur cd ~ (faul eben 😊 )

                          V 1 Reply Last reply Reply Quote 1
                          • V
                            viper4iob @SBorg last edited by

                            @sborg
                            Erst einmal danke für das Einbauen des neuen Uploads zu AWEKAS.
                            Funktioniert mit den von dir genannten Einschränkungen:

                            2023-01-09_09-06-29__AWEKAS Automatisches Wetterkarten System.jpg

                            Ein Punkt noch:
                            Ich will ja deswegen nicht nerven, aber das Thema 10min Durchschnittswerte für den Wind 😉
                            Falls AWEKAS das bei den Graphen selbst mittelt, brauchen wir das da vielleicht gar nicht, ich hab es jetzt noch nicht länger beobachtet. In dem Fall sollte im Code ein Hinweis stehen, dass es da mit Absicht nicht eingebaut ist, weil es AWEKAS selbst mittelt.
                            Wenn nicht, müsste das noch rein, dass bei USE_AVG_WIND auf true die 10min Durchschnittswerte genommen werden, wie auch schon bei den anderen Wetterdiensten.

                            SBorg 1 Reply Last reply Reply Quote 0
                            • SBorg
                              SBorg Forum Testing Most Active @viper4iob last edited by

                              @viper4iob Hier nervt absolut niemand 😉
                              Ist ja auch ein erster Beta-Test, da sind Fehler zu erwarten. Pauschal achte ich zwar darauf möglichst nichts kaputt zu machen, aber dass was klemmt kommt bei der mittlerweile üppigen Fülle an Funktionen einfach vor. Ich nutze selbst auch viele der Funktionen gar nicht aktiv, deswegen fällt mir das noch weniger auf.
                              Hier ist es aber "einfach" so: ich habe es bis dato weder kontrolliert, noch hatte ich es schlichtweg auf dem Schirm (=also völlig vergessen).
                              Sieht mir aber so aus als bräuchte man es dort auch nicht:
                              Bild 001.png

                              Deswegen noch mal an dieser Stelle im Namen aller, Danke an alle Tester für das testen und melden von Fehlern, Verbesserungsvorschlägen, Kritik...
                              Ich bin auch Kritik fähig, wenn es was zu "meckern" gibt, solange sie konstruktiv ist. "Alles Schei*e hier...." ist keine Kritik, sondern die eigene suggestive Meinung 😉 (kam aber auch noch nie vor)

                              Ich bin nur eins: nicht mehr der Jüngste. Seht mir also die Vergesslichkeit im Alter bitte nach. Das ist aber auch der aktuellen Situation meinerseits geschuldet, ich habe einfach zu viel um die Ohren.

                              Nashra V 2 Replies Last reply Reply Quote 2
                              • Nashra
                                Nashra Most Active Forum Testing @SBorg last edited by

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

                                Ich bin nur eins: nicht mehr der Jüngste. Seht mir also die Vergesslichkeit im Alter bitte nach.

                                Willkommen im Club 😁

                                SBorg 1 Reply Last reply Reply Quote 0
                                • V
                                  viper4iob @SBorg last edited by

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

                                  @viper4iob Hier nervt absolut niemand 😉
                                  Ist ja auch ein erster Beta-Test, da sind Fehler zu erwarten. Pauschal achte ich zwar darauf möglichst nichts kaputt zu machen, aber dass was klemmt kommt bei der mittlerweile üppigen Fülle an Funktionen einfach vor. Ich nutze selbst auch viele der Funktionen gar nicht aktiv, deswegen fällt mir das noch weniger auf.
                                  Hier ist es aber "einfach" so: ich habe es bis dato weder kontrolliert, noch hatte ich es schlichtweg auf dem Schirm (=also völlig vergessen).
                                  Sieht mir aber so aus als bräuchte man es dort auch nicht:
                                  Bild 001.png

                                  Deswegen noch mal an dieser Stelle im Namen aller, Danke an alle Tester für das testen und melden von Fehlern, Verbesserungsvorschlägen, Kritik...
                                  Ich bin auch Kritik fähig, wenn es was zu "meckern" gibt, solange sie konstruktiv ist. "Alles Schei*e hier...." ist keine Kritik, sondern die eigene suggestive Meinung 😉 (kam aber auch noch nie vor)

                                  Ich bin nur eins: nicht mehr der Jüngste. Seht mir also die Vergesslichkeit im Alter bitte nach. Das ist aber auch der aktuellen Situation meinerseits geschuldet, ich habe einfach zu viel um die Ohren.

                                  Ich habs mir auch gerade nochmal angeschaut und gebe dir Recht, dass wir da keine Durchschnittswerte brauchen.
                                  Danke für die schnelle Rückmeldung.

                                  1 Reply Last reply Reply Quote 0
                                  • SBorg
                                    SBorg Forum Testing Most Active @Nashra last edited by

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

                                    Willkommen im Club 😁

                                    Wahrscheinlich in beiden: der nicht Jungen und der vergesslichen 😂


                                    @viper4iob Ich versuche wieder wenigstens 1x täglich hier zu sein.

                                    Auch muss ich mein derzeitiges Awekas-Konzept in Frage stellen. Rückmeldung zu Luftdruck und Regenwerten habe ich zwar noch keine, bei der derzeitigen Umsetzung wären aber sämtliche Zusatzsensoren (was Awekas unterstützt) außen vor bzw. nur mit nicht unerheblichem Aufwand möglich. Idee habe ich schon, nur die liebe Zeit...

                                    1 Reply Last reply Reply Quote 1
                                    • H
                                      Homer last edited by

                                      Nach vielen erfolglosem Lesen hier mal mein Problem: Ich mit dem ioBroker vom Raspi auf Docker auf dem Syno-NAS umgezogen. Das Skript für die Wetterstation lief auf dem Raspi seit Jahren problemlos. Der Umzug erfolgte, weil der Raspi wohl ein Hardwareproblem hat und gelegentlich unmotiviert abstürzt. Und das NAS werkelt sowieso 24h vor sich hin...

                                      Bis auf die Wetterstation hat beim Umzug alles gut geklappt, habe eine recht umfangreiche Installation.
                                      Die Wetterstation bekomme ich nur über die Konsole zum Laufen: Bei Aufruf von

                                      ./wetterstation.sh --debug
                                      

                                      bekomme ich bis auf zwei "kleine" Fehler (siehe unten) das Erwartete, aber nur ein einmaliges Schreiben der Werte in den ioBroker. Sprich mein Problem liegt prinzipiell darin, dass die Konfiguration offenbar passt, aber die Datenpunkte im ioBroker eben nicht aktualisiert werden.

                                      So sieht das aus:

                                      WLAN-Wetterstation V2.20.0 - (c)2019-2022 by SBorg                                                                                                                                                                                   
                                       Config-Version: V2.20.0                                                                                                                                                                                                              
                                       Sub-Version   : V2.20.0                                                                                                                                                                                                              
                                                                                                                                                                                                                                                                            
                                       'bc' installiert: [✓]                                                                                                                                                                                                               
                                       'jq' installiert: [✓]                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                            
                                       'dc' installiert: [✓]                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                            
                                      sudo: unable to resolve host iobrokerNAS1: Name or service not known                                                                                                                                                                  
                                       'nc' in der Openbsd-Variante installiert:  [✓]                                                                                                                                                                                      
                                       'netcat' in Openbsd-Variante aktiv, alles korrekt [✓] 
                                       Connection to 192.168.2.213 8087 port [tcp/*] succeeded!                                                                                                                                                                              
                                      [                                                                                                                                                                                                                                     
                                        {                                                                                                                                                                                                                                   
                                          "id": "javascript.0.Wetterstation.Innentemperatur",                                                                                                                                                                               
                                          "val": 20.72                                                                                                                                                                                                                      
                                        },                                                                                                                                                                                                                                  
                                        {                                                                                                                                                                                                                                   
                                          "id": "javascript.0.Wetterstation.Aussentemperatur",                                                                                                                                                                              
                                          "val": 6                                                                                                                                                                                                                          
                                        },                                                                                                                                                                                                                                  
                                        {                                                                                                                                                                                                                                   
                                          "id": "javascript.0.Wetterstation.Taupunkt",                                                                                                                                                                                      
                                          "val": -11.61                                                                                                                                                                                                                     
                                        },                                                                                                                                                                                                                                  
                                        {                                                                                                                                                                                                                                   
                                          "error": "datapoint \"javascript.0.Wetterstation.Gefuehlte_Temperatur\" not found"                                                                                                                                                
                                        },                                                                                                                                                                                                                                  
                                        {                                                                                                                                                                                                                                   
                                          "id": "javascript.0.Wetterstation.Innenfeuchtigkeit",                                                                                                                                                                             
                                          "val": 46                                                                                                                                                                                                                         
                                        },                                                                                                                                                                                                                                  
                                        {                                                                                                                                                                                                                                   
                                          "id": "javascript.0.Wetterstation.Aussenfeuchtigkeit",                                                                                                                                                                            
                                          "val": 27                                                                                                                                                                                                                         
                                        },                                                                                                                                                                                                                                  
                                        {                                                                                                                                                                                                                                   
                                          "id": "javascript.0.Wetterstation.Wind",                                                                                                                                                                                          
                                          "val": 13.03                                                                                                                                                                                                                      
                                        },                                                                                                                                                                                                                                  
                                        {                                                                                                                                                                                                                                   
                                          "id": "javascript.0.Wetterstation.Wind_max",                                                                                                                                                                                      
                                          "val": 14.8                                                                                                                                                                                                                       
                                        },                                                                                                                                                                                                                                  
                                        {                                                                                                                                                                                                                                   
                                          "id": "javascript.0.Wetterstation.Windrichtung",                                                                                                                                                                                  
                                          "val": 246                                                                                                                                                                                                                        
                                        },                                                                                                                                                                                                                                  
                                        {                                                                                                                                                                                                                                   
                                          "id": "javascript.0.Wetterstation.Druck_absolut",                                                                                                                                                                                 
                                          "val": 1009.11                                                                                                                                                                                                                    
                                        },                                                                                                                                                                                                                                  
                                        {                                                                                                                                                                                                                                   
                                          "id": "javascript.0.Wetterstation.Druck_relativ",                                                                                                                                                                                 
                                          "val": 1005.72                                                                                                                                                                                                                    
                                        }, 
                                        {                                                                                                                                                                                                                                   
                                          "id": "javascript.0.Wetterstation.Regenrate",                                                                                                                                                                                     
                                          "val": 0                                                                                                                                                                                                                          
                                        },                                                                                                                                                                                                                                  
                                        {                                                                                                                                                                                                                                   
                                          "id": "javascript.0.Wetterstation.Regen_Tag",                                                                                                                                                                                     
                                          "val": 0.203                                                                                                                                                                                                                      
                                        },                                                                                                                                                                                                                                  
                                        {                                                                                                                                                                                                                                   
                                          "id": "javascript.0.Wetterstation.Regen_Woche",                                                                                                                                                                                   
                                          "val": 7.289                                                                                                                                                                                                                      
                                        },                                                                                                                                                                                                                                  
                                        {                                                                                                                                                                                                                                   
                                          "id": "javascript.0.Wetterstation.Regen_Monat",                                                                                                                                                                                   
                                          "val": 19.989                                                                                                                                                                                                                     
                                        },                                                                                                                                                                                                                                  
                                        {                                                                                                                                                                                                                                   
                                          "id": "javascript.0.Wetterstation.Regen_Jahr",                                                                                                                                                                                    
                                          "val": 0                                                                                                                                                                                                                          
                                        },                                                                                                                                                                                                                                  
                                        {                                                                                                                                                                                                                                   
                                          "id": "javascript.0.Wetterstation.Sonnenstrahlung",                                                                                                                                                                               
                                          "val": 0                                                                                                                                                                                                                          
                                        },                                                                                                                                                                                                                                  
                                        {                                                                                                                                                                                                                                   
                                          "id": "javascript.0.Wetterstation.UV_Index",                                                                                                                                                                                      
                                          "val": 0                                                                                                                                                                                                                          
                                        },                                                                                                                                                                                                                                  
                                        {                                                                                                                                                                                                                                   
                                          "id": "javascript.0.Wetterstation.Zeitstempel",                                                                                                                                                                                   
                                          "val": "10.01.2023 19:51:01"                                                                                                                                                                                                      
                                        },                                                                                                                                                                                                                                  
                                        {                                                                                                                                                                                                                                   
                                          "id": "javascript.0.Wetterstation.Info.FW_Version",                                                                                                                                                                               
                                          "val": "EasyWeatherV1.5.9"                                                                                                                                                                                                        
                                        },                                                                                                                                                                                                                                  
                                        {                                                                                                                                                                                                                                   
                                          "id": "javascript.0.Wetterstation.Regenstatus",                                                                                                                                                                                   
                                          "val": "kein Regen"                                                                                                                                                                                                               
                                        },                                                                                                                                                                                                                                  
                                        {                                                                                                                                                                                                                                   
                                          "id": "javascript.0.Wetterstation.UV_Belastung",                                                                                                                                                                                  
                                          "val": "keine"                                                                                                                                                                                                                    
                                        },                                                                                                                                                                                                                                  
                                        {                                                                                                                                                                                                                                   
                                          "id": "javascript.0.Wetterstation.Windrichtung_Text",                                                                                                                                                                             
                                          "val": "WSW"                                                                                                                                                                                                                      
                                        },                                                                                                                                                                                                                                  
                                        {                                                                                                                                                                                                                                   
                                          "error": "datapoint \"javascript.0.Wetterstation.Info.Hitzeindex\" not found"                                                                                                                                                     
                                        }                                                                                                                                                                                                                                   
                                      ]                                                                                                                                                                                                                                     
                                         
                                      Messwerteblock: 20.72 6.00 -11.61 3.27 46 27 13.03 14.80 246 1009.11 1005.72 0 .203 7.289 19.989 0 0.00 0 10.01.2023%2019:51:01 EasyWeatherV1.5.9                                                                                     
                                                                                                                                                                                                                                                                            
                                                                                                                                                                                                                                                                            
                                      Nicht alle Werte werden unterstützt (abhängig vom Modell der Wetterstation und dem verwendeten Protokoll)!                                                                                                                           
                                                                                                                                                                                                                                                                            
                                      Temperatur Innen        : 20.72 °C                                                                                                                                                                                                    
                                      Temperatur Aussen       : 6.00 °C                                                                                                                                                                                                     
                                      Taupunkt                : -11.61 °C                                                                                                                                                                                                   
                                      Gefühlte Temperatur     : 3.27 °C                                                                                                                                                                                                     
                                      Luftfeuchte Innen       : 46 %                                                                                                                                                                                                        
                                      Luftfeuchte Aussen      : 27 %                                                                                                                                                                                                        
                                      Windgeschwindigkeit     : 13.03 km/h                                                                                                                                                                                                  
                                      Windgeschwindigkeit 10min       :  km/h                                                                                                                                                                                               
                                      Windböengeschwindigkeit        : 14.80 km/h                                                                                                                                                                                          
                                      max. Windböe           :  km/h                                                                                                                                                                                                       
                                      Windrichtung            : 246 °                                                                                                                                                                                                       
                                      Windrichtung            : WSW                                                                                                                                                                                                         
                                      Windrichtung 10min      :  °                                                                                                                                                                                                          
                                      Luftdruck absolut       : 1009.11 hPa                                                                                                                                                                                                 
                                      Luftdruck relativ       : 1005.72 hPa                                                                                                                                                                                                 
                                      Regenrate               : 0 mm/h                                                                                                                                                                                                      
                                      Regenstatus             : kein Regen                                                                                                                                                                                                  
                                      Regen seit Regenbeginn  :  mm                                                                                                                                                                                                         
                                      Regen Stunde            :  mm                                                                                                                                                                                                         
                                      Regen Tag               : .203 mm                                                                                                                                                                                                     
                                      Regen Woche             : 7.289 mm                                                                                                                                                                                                    
                                      Regen Monat             : 19.989 mm                                                                                                                                                                                                   
                                      Regen Jahr              : 0 mm                                                                                                                                                                                                        
                                      Regen Gesamt            :  mm                                                                                                                                                                                                         
                                      Sonnenstrahlung         : 0.00 W/m²                                                                                                                                                                                                   
                                      UV-Index                : 0                                                                                                                                                                                                           
                                      Zeitstempel             : 10.01.2023 19:51:01 
                                      Firmware                : EasyWeatherV1.5.9                                                                                                                                                                                           
                                      Batteriestand:          :                                                                                                                                                                                                             
                                      Gateway-Modell          :                                                                                                                                                                                                             
                                                                                                                                                                                                                                                                            
                                      Zusatzsensoren: keine                                                                                                                                                                                                                 
                                                                                                                                                                                                                                                                            
                                                                                                                                                                                                                                                                            
                                      Datenstring für ioBroker:                                                                                                                                                                                                             
                                      javascript.0.Wetterstation.Innentemperatur=20.72&javascript.0.Wetterstation.Aussentemperatur=6.00&javascript.0.Wetterstation.Taupunkt=-11.61&javas                                                                                    
                                      cript.0.Wetterstation.Gefuehlte_Temperatur=3.27&javascript.0.Wetterstation.Innenfeuchtigkeit=46&javascript.0.Wetterstation.Aussenfeuchtigkeit=27&j                                                                                    
                                      avascript.0.Wetterstation.Wind=13.03&javascript.0.Wetterstation.Wind_max=14.80&javascript.0.Wetterstation.Windrichtung=246&javascript.0.Wetterstat                                                                                    
                                      ion.Druck_absolut=1009.11&javascript.0.Wetterstation.Druck_relativ=1005.72&javascript.0.Wetterstation.Regenrate=0&javascript.0.Wetterstation.Regen                                                                                    
                                      _Tag=.203&javascript.0.Wetterstation.Regen_Woche=7.289&javascript.0.Wetterstation.Regen_Monat=19.989&javascript.0.Wetterstation.Regen_Jahr=0&javas                                                                                    
                                      cript.0.Wetterstation.Sonnenstrahlung=0.00&javascript.0.Wetterstation.UV_Index=0&javascript.0.Wetterstation.Zeitstempel=10.01.2023%2019:51:01&java                                                                                    
                                      script.0.Wetterstation.Info.FW_Version=EasyWeatherV1.5.9&javascript.0.Wetterstation.Regenstatus=kein Regen&javascript.0.Wetterstation.UV_Belastung                                                                                    
                                      =keine&javascript.0.Wetterstation.Windrichtung_Text=WSW&javascript.0.Wetterstation.Info.Hitzeindex=                                                                                                                                   
                                                                                                                                                                                                                                                                            
                                                                                                                                                                                                                                                                            
                                      Zusatzsensoren:                                                                                                                                                                                                                       
                                                                                                                                                                                                                                                                            
                                      DATA von Wetterstation:                                                                                                                                                                                                               
                                      GET /weatherstation/updateweatherstation.php?ID=xxxxxx&PASSWORD=xxxxxx&indoortempf=69.3&tempf=42.8&dewptf=11.1&windchillf=37.9&indoorhumidity=46&h                                                                                    
                                      umidity=27&windspeedmph=8.1&windgustmph=9.2&winddir=246&absbaromin=29.799&baromin=29.699&rainin=0.000&dailyrainin=0.008&weeklyrainin=0.287&monthly                                                                                    
                                      rainin=0.787&yearlyrainin=0&solarradiation=0.00&UV=0&dateutc=2023-01-10%2018:51:01&softwaretype=EasyWeatherV1.5.9&action=updateraw&realtime=1&rtfr                                                                                    
                                      eq=5 HTTP/1.0                                                                                                                                                                                                                         
                                                                                                                                                                                                                                                                            
                                                                                                                                                                                                                                                                            
                                      Debug VAR:                                                                                                                                                                                                                            
                                       Installationsverzeichnis: /opt/iobroker                                                                                                                                                                                              
                                       IPP: 192.168.2.213:8087        WS_PORT: 1080           WS_POLL: 30                                                                              P                                                                                    
                                      RE_DP: javascript.0.Wetterstation                                                                                                                                                                                                     
                                       WEB: HTTP              WS_PROT: Wunderground                                                                                                                                                                                         
                                       DP10/35/40/50/60/70/100/200/250/300: 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0                                                                                                                                                           
                                       WH31: 0 || WS90: 0                                                                                                                                                                                                                   
                                                                                                                                                                                                                                                                            
                                      Script-Version: V2.20.0 Config-Version: V2.20.0 Sub-Version: V2.20.0                                                                                                                                                                  
                                      root@iobrokerNAS1:/opt/iobroker#   
                                      

                                      Die Fehler

                                      "error": "datapoint \"javascript.0.Wetterstation.Gefuehlte_Temperatur\" not found" 
                                      

                                      und

                                      "error": "datapoint \"javascript.0.Wetterstation.Info.Hitzeindex\" not found"  
                                      

                                      erscheinen mir bei meinem Problem nicht relevant. Erstaunlich ist nur, dass diese Fehlermeldungen auch kommen, nachdem die Datenpunkte angelegt wurden.

                                      Stutzig macht mich in Zeile 10

                                      sudo: unable to resolve host iobrokerNAS1: Name or service not known 
                                      

                                      iobrokerNAS1 ist der Name des Dockercontainers:
                                      iobrokerNAS.JPG
                                      Von Docker habe ich genau so viel Ahnung, dass ich das nach angelesener Anleitung installieren konnte.
                                      Die Anleitung für die Wetterstation unter Docker Link verstehe ich leider nicht.
                                      Was kann ich tun/kontrollieren/beistellen, damit das Skript der Wetterstation wieder regelmäßig Werte an den ioBroker liefert?

                                      VG

                                      SBorg 1 Reply Last reply Reply Quote 0
                                      • SBorg
                                        SBorg Forum Testing Most Active @Homer last edited by

                                        @homer Das liegt zum Teil an Docker, da kann man es nicht so ohne weiteres als Service starten. Deswegen funktioniert es per Aufruf aus dem Terminal auch.

                                        Die Fehler sollten weg sein wenn du den Web-Server und Simple-API-Adapter neu startest (oder direkt einen kpl, iob restart
                                        Das kann beim anlegen von Datenpunkt per JS schon mal passieren. Blöderweise sieht man sie sogar in der GUI, nur der Simple-API-Adapter hat keinen Zugriff darauf.

                                        Da du den Standard-Port 1080 nutzt brauchst du im YAML-File dort nichts zu ändern. Du lädst dir noch das Docker-YAML-File herunter (liegt auf GitHub unter Docker) und kopierst es (bei dir) nach /opt/iobroker (also in das Verzeichnis in dem wetterstation.sh & Co. liegen). Dann startest du im /opt/iobroker-Verzeichnis stehend das Ganze per docker-compose up

                                        Dann sollten auch wieder alle Werte im ioB landen. Docker halt .... 😉

                                        H 1 Reply Last reply Reply Quote 1
                                        • H
                                          Homer @SBorg last edited by

                                          @sborg Danke!
                                          Die Adapter habe ich neu gestartet und docker-compose.yml von GitHub kopiert, siehe 4. Zeile vom Code.

                                          Aber was läuft hier noch falsch?

                                          root@iobrokerNAS1:/opt/iobroker# ls -lh                                                                                                           
                                          total 2,1M                                                                                                                                        
                                          drwxr-xr-x 1 iobroker iobroker  200 Jan 10 21:55 backups                                                                                          
                                          -rwxrwxr-x 1     1026 users     635 Jan  3 04:18 docker-compose.yml                                                                               
                                          drwxrwxrwx 1 iobroker iobroker  462 Jan 12 21:04 @eaDir                                                                                           
                                          -rwxr-xr-x 1 iobroker iobroker  234 Dez 23 19:28 INSTALLER_INFO.txt                                                                               
                                          lrwxrwxrwx 1 iobroker iobroker   22 Dez 23 19:28 iob -> /opt/iobroker/iobroker                                                                    
                                          -rwxr-xr-x 1 iobroker iobroker  381 Jan  7 17:13 iobroker                                                                                         
                                          -rwxr-xr-x 1 iobroker iobroker  381 Jan  7 17:12 iobroker.bak                                                                                     
                                          drwxr-xr-x 1 iobroker iobroker  386 Jan 12 19:23 iobroker-data                                                                                    
                                          -rwxr-xr-x 1 iobroker iobroker 242K Jan 12 21:11 ipcam2.jpg                                                                                       
                                          -rwxr-xr-x 1 iobroker iobroker 254K Jan  6 19:23 ipcamBK1.jpg                                                                                     
                                          -rwxr-xr-x 1 iobroker iobroker 253K Jan  6 19:23 ipcamBK2.jpg                                                                                     
                                          -rwxr-xr-x 1 iobroker iobroker 241K Jan  6 19:23 ipcamBK3.jpg                                                                                     
                                          -rwxr-xr-x 1 iobroker iobroker 213K Jan 12 13:36 ipcam.jpg                                                                                        
                                          drwxr-xr-x 1 iobroker iobroker  488 Jan 12 21:00 log                                                                                              
                                          drwxr-xr-x 1 iobroker iobroker  15K Jan  1 14:31 node_modules                                                                                     
                                          -rwxr-xr-x 1 iobroker iobroker 1004 Jan  1 14:31 package.json                                                                                     
                                          -rwxr-xr-x 1 iobroker iobroker 727K Jan  1 14:31 package-lock.json                                                                                
                                          -rwxr-xr-x 1 iobroker iobroker 6,7K Dez 30 12:06 wetterstation.conf                                                                               
                                          -rwxr-xr-x 1 iobroker iobroker  26K Jul 21 09:53 wetterstation.js                                                                                 
                                          -rwxrwxr-x 1 iobroker iobroker  21K Okt  2 14:16 wetterstation.sh                                                                                 
                                          -rwxr-xr-x 1 iobroker iobroker  80K Dez 20 14:18 wetterstation.sub                                                                                
                                          -rwxr-xr-x 1 iobroker iobroker  29K Jan  7 17:07 ws_updater.sh                                                                                    
                                          root@iobrokerNAS1:/opt/iobroker# docker-compose up                                                                                                
                                          ERROR: Couldn't connect to Docker daemon at http+docker://localhost - is it running?                                                              
                                                                                                                                                                                            
                                          If it's at a non-standard location, specify the URL with the DOCKER_HOST environment variable.                                                    
                                          root@iobrokerNAS1:/opt/iobroker#                                                                                                                  
                                                                                                                                                                                            
                                                                             
                                          
                                          
                                          Boronsbruder SBorg 2 Replies Last reply Reply Quote 0
                                          • Boronsbruder
                                            Boronsbruder @Homer last edited by

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

                                            http+docker://localhost

                                            1. Herr Braun würde jetzt sinngemäß sagen:
                                              "Warum zur Hölle froscht du als root rum?"

                                            2. Hast du den Docker-Dienst mal neugestartet?

                                            da_Woody 1 Reply Last reply Reply Quote 0
                                            • First post
                                              Last post

                                            Support us

                                            ioBroker
                                            Community Adapters
                                            Donate

                                            863
                                            Online

                                            31.9k
                                            Users

                                            80.1k
                                            Topics

                                            1.3m
                                            Posts

                                            linux shell-script wetterstation wlan-wetterstation
                                            147
                                            5573
                                            3347586
                                            Loading More Posts
                                            • Oldest to Newest
                                            • Newest to Oldest
                                            • Most Votes
                                            Reply
                                            • Reply as topic
                                            Log in to reply
                                            Community
                                            Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen
                                            The ioBroker Community 2014-2023
                                            logo