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

  • Standard: (Kein Skin)
  • Kein Skin
Einklappen
ioBroker Logo

Community Forum

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

NEWS

  • UPDATE 31.10.: Amazon Alexa - ioBroker Skill läuft aus ?
    apollon77A
    apollon77
    48
    3
    8.3k

  • Monatsrückblick – September 2025
    BluefoxB
    Bluefox
    13
    1
    2.0k

  • Neues Video "KI im Smart Home" - ioBroker plus n8n
    BluefoxB
    Bluefox
    15
    1
    2.4k

[Linux Shell-Skript] WLAN-Wetterstation

Geplant Angeheftet Gesperrt Verschoben Praktische Anwendungen (Showcase)
linuxshell-scriptwetterstationwlan-wetterstation
5.7k Beiträge 152 Kommentatoren 3.8m Aufrufe 134 Watching
  • Älteste zuerst
  • Neuste zuerst
  • Meiste Stimmen
Antworten
  • In einem neuen Thema antworten
Anmelden zum Antworten
Dieses Thema wurde gelöscht. Nur Nutzer mit entsprechenden Rechten können es sehen.
  • SBorgS SBorg

    @negalein Wie hieß das damals: Gotcha ?
    Na egal, wieder einen "erwischt"...:blush:
    In Grafana fragst du lt. obigem Flux das Bucket "iobroker-1w" ab, in der conf dann aber "iobroker"? Das geht natürlich auch, dann musst du aber auch in beide Buckets loggen. Oder dich halt für eines der beiden entscheiden ;)

    NegaleinN Offline
    NegaleinN Offline
    Negalein
    Global Moderator
    schrieb am zuletzt editiert von Negalein
    #4685

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

    In Grafana fragst du lt. obigem Flux das Bucket "iobroker-1w" ab, in der conf dann aber "iobroker"? Das geht natürlich auch, dann musst du aber auch in beide Buckets loggen. Oder dich halt für eines der beiden entscheiden

    Ok, wird in der .conf etwas für Langzeitzwecke benötigt?
    Denke nicht. Oder doch?

    Dann werde ich es in iobroker-1w ändern.
    und funktioniert :)
    014824e4-bb4e-474d-b66f-1a100df6ac27-image.png

    ° Node.js: 20.17.0 NPM: 10.8.2
    ° Proxmox, Ubuntu 22.04.3 LTS
    ° Fixer ---> iob fix

    NashraN SBorgS 2 Antworten Letzte Antwort
    0
    • NegaleinN Negalein

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

      In Grafana fragst du lt. obigem Flux das Bucket "iobroker-1w" ab, in der conf dann aber "iobroker"? Das geht natürlich auch, dann musst du aber auch in beide Buckets loggen. Oder dich halt für eines der beiden entscheiden

      Ok, wird in der .conf etwas für Langzeitzwecke benötigt?
      Denke nicht. Oder doch?

      Dann werde ich es in iobroker-1w ändern.
      und funktioniert :)
      014824e4-bb4e-474d-b66f-1a100df6ac27-image.png

      NashraN Offline
      NashraN Offline
      Nashra
      Most Active Forum Testing
      schrieb am zuletzt editiert von
      #4686

      @negalein
      und ich war letztens der "Portvergesser" :joy:
      Schön das es jetzt auch bei dir klappt

      Gruß Ralf
      Mir egal, wer Dein Vater ist! Wenn ich hier angel, wird nicht übers Wasser gelaufen!!

      Benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat.

      1 Antwort Letzte Antwort
      0
      • NegaleinN Negalein

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

        In Grafana fragst du lt. obigem Flux das Bucket "iobroker-1w" ab, in der conf dann aber "iobroker"? Das geht natürlich auch, dann musst du aber auch in beide Buckets loggen. Oder dich halt für eines der beiden entscheiden

        Ok, wird in der .conf etwas für Langzeitzwecke benötigt?
        Denke nicht. Oder doch?

        Dann werde ich es in iobroker-1w ändern.
        und funktioniert :)
        014824e4-bb4e-474d-b66f-1a100df6ac27-image.png

        SBorgS Offline
        SBorgS Offline
        SBorg
        Forum Testing Most Active
        schrieb am zuletzt editiert von
        #4687

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

        Ok, wird in der .conf etwas für Langzeitzwecke benötigt?
        Denke nicht. Oder doch?

        Ein einziges: "Temperatur vor einem Jahr" braucht dazu ein Logging von wenigstens 365 Tagen ;)

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

        NegaleinN 1 Antwort Letzte Antwort
        0
        • SBorgS SBorg

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

          Ok, wird in der .conf etwas für Langzeitzwecke benötigt?
          Denke nicht. Oder doch?

          Ein einziges: "Temperatur vor einem Jahr" braucht dazu ein Logging von wenigstens 365 Tagen ;)

          NegaleinN Offline
          NegaleinN Offline
          Negalein
          Global Moderator
          schrieb am zuletzt editiert von
          #4688

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

          Ein einziges: "Temperatur vor einem Jahr" braucht dazu ein Logging von wenigstens 365 Tagen

          Ok, in der .conf kann ich aber nicht beide verwenden?
          Also entweder alle DP mind. 1 Jahr loggen, oder auf Temperatur vor einem Jahr verzichten?

          Oder wie ist das mit dem Statistik Script?

          ° Node.js: 20.17.0 NPM: 10.8.2
          ° Proxmox, Ubuntu 22.04.3 LTS
          ° Fixer ---> iob fix

          SBorgS 1 Antwort Letzte Antwort
          0
          • NegaleinN Negalein

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

            Ein einziges: "Temperatur vor einem Jahr" braucht dazu ein Logging von wenigstens 365 Tagen

            Ok, in der .conf kann ich aber nicht beide verwenden?
            Also entweder alle DP mind. 1 Jahr loggen, oder auf Temperatur vor einem Jahr verzichten?

            Oder wie ist das mit dem Statistik Script?

            SBorgS Offline
            SBorgS Offline
            SBorg
            Forum Testing Most Active
            schrieb am zuletzt editiert von
            #4689

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

            Also entweder alle DP mind. 1 Jahr loggen, oder auf Temperatur vor einem Jahr verzichten?

            Das typische Ja und Nein.
            Mindestens 1 Jahr loggen muss natürlich sein, sonst hat man keine Werte.
            ...und nochmal ja, es geht nur ein Bucket. Das würde dann mit der Statistik zusammen ein Heilloses Durcheinander geben und kaum einer blickt da noch durch. Aber verzichten muss man auch nicht unbedingt darauf, man muss nur das/die Bucket/s entsprechend konfigurieren.
            Aber man kann ja aggregieren, Daten "umshiften" etc. Da muss jeder seine Vorlieben (oder was er/sie/diverse genau möchte) im Grunde selbst umsetzen.
            Ich werde mir bei Gelegenheit ein Flussdiagramm erstellen, da ich gewisse Präferenzen habe und sonst nicht mehr durchblicke...
            Ich hätte bei der Temperatur bspw. gerne vor einem Jahr und vor x Jahren (4 Jahre sammele ich schon). Allerdings ist die Datenflut da reiner Irrsinn. Nur Temperatur: ~ 3k Messwerte pro Tag / ~1.1Mio pro Jahr
            ...und ich muss/will nicht wissen wie viel Grad es am 24.03.2021 genau um 17:40 Uhr war. Also werde ich die Messwerte stundenweise zusammenfassen: 24 Stück x 365 Tage = 8760 Datensätze pro Jahr

            Also wird voraussichtlich alles in einem Bucket laden und Nachts wird das Bucket dann gecleaned, Werte in ein anderes Bucket geshifted ...

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

            1 Antwort Letzte Antwort
            0
            • NashraN Offline
              NashraN Offline
              Nashra
              Most Active Forum Testing
              schrieb am zuletzt editiert von
              #4690

              Ich frage jetzt einfach mal, warum ist es nicht möglich die Aufbewahrungsdauer
              in jedem Datenpunkt individuell einzustellen so wie es beim history-Adaper
              auch möglich ist. Ok, die Frage gehört eigentlich in den entsprechenden Thread,
              aber dann gäbe es das Problem nicht das man alle DP über ein Jahr loggen
              muß für die Statistik und gewisse Datenpunkte könnten von dieser langen
              Aufbewahrungszeit ausgenommen werden.

              Werde auch mal im influx-Adapter Thread anfragen ob dies nicht möglich ist.

              Gruß Ralf
              Mir egal, wer Dein Vater ist! Wenn ich hier angel, wird nicht übers Wasser gelaufen!!

              Benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat.

              1 Antwort Letzte Antwort
              1
              • NashraN Offline
                NashraN Offline
                Nashra
                Most Active Forum Testing
                schrieb am zuletzt editiert von Nashra
                #4691

                @Negalein , danke für die Bewertung aber es ist so wie @SBorg schon geschrieben hat.
                Für verschiedene Aufbewahrungszeiten muß jeweils ein eigenes Bucket angelegt
                werden und somit jedes mal eine neue Influxdb-Instanz :-(
                Kannst du alles hier nachlesen was ich auch gemacht habe.
                Im Klartext heißt das, wenn ich vier verschiedene Aufbewahrungszeiten haben möchte
                muß ich vier Buckets anlegen und vier Instanzen.
                Ist das so richtig @SBorg ?

                Gruß Ralf
                Mir egal, wer Dein Vater ist! Wenn ich hier angel, wird nicht übers Wasser gelaufen!!

                Benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat.

                1 Antwort Letzte Antwort
                0
                • SBorgS Offline
                  SBorgS Offline
                  SBorg
                  Forum Testing Most Active
                  schrieb am zuletzt editiert von
                  #4692

                  Also....

                  Die Retention lässt sich nur pro Bucket festlegen. Deswegen gab es das Skript auch so lange nur für Influx V1.x, da ich dies als Hauptmanko ansah.
                  Man kann aber trotzdem "tricksen". Dazu muss man "Tasks" in Influx nutzen. So kann man in einem Bucket mit einer Retention von "never" trotzdem eine Retention für Datenreihen mit bspw. 30 Tagen erreichen.

                  Ich werde wahrscheinlich (s.o. Stichwort Flussdiagramm) nur mit zwei Buckets arbeiten.
                  Eine einzige Influx-Instanz loggt alles in das "Hauptbucket" (=Homeautomation); Retention wahrscheinlich 30 Tage (da ich kaum etwas über einen längeren Zeitraum brauche).
                  Da mich aber der Gaspreisverlauf der letzten Jahre und der Verbrauch übers Jahr dessen interessiert, hätte ich jetzt ein Problem. Deswegen werden diese beiden Werte nun per Task in ein anderes Bucket ("Langzeitwerte") "umgeshifted".
                  Diese Bucket ist für den ioB nicht über eine Instanz sichtbar, ich kann aber per JS, Blockly, NodeRED oder Grafana darauf zugreifen.
                  Bild 001.png
                  Bild 002.png

                  landet dann im "Langzeit-Bucket":
                  Bild 003.png

                  Was schneller weg kann/muss lässt sich dann auch mittels der Tasks droppen.

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

                  da_WoodyD 1 Antwort Letzte Antwort
                  1
                  • SBorgS SBorg

                    Also....

                    Die Retention lässt sich nur pro Bucket festlegen. Deswegen gab es das Skript auch so lange nur für Influx V1.x, da ich dies als Hauptmanko ansah.
                    Man kann aber trotzdem "tricksen". Dazu muss man "Tasks" in Influx nutzen. So kann man in einem Bucket mit einer Retention von "never" trotzdem eine Retention für Datenreihen mit bspw. 30 Tagen erreichen.

                    Ich werde wahrscheinlich (s.o. Stichwort Flussdiagramm) nur mit zwei Buckets arbeiten.
                    Eine einzige Influx-Instanz loggt alles in das "Hauptbucket" (=Homeautomation); Retention wahrscheinlich 30 Tage (da ich kaum etwas über einen längeren Zeitraum brauche).
                    Da mich aber der Gaspreisverlauf der letzten Jahre und der Verbrauch übers Jahr dessen interessiert, hätte ich jetzt ein Problem. Deswegen werden diese beiden Werte nun per Task in ein anderes Bucket ("Langzeitwerte") "umgeshifted".
                    Diese Bucket ist für den ioB nicht über eine Instanz sichtbar, ich kann aber per JS, Blockly, NodeRED oder Grafana darauf zugreifen.
                    Bild 001.png
                    Bild 002.png

                    landet dann im "Langzeit-Bucket":
                    Bild 003.png

                    Was schneller weg kann/muss lässt sich dann auch mittels der Tasks droppen.

                    da_WoodyD Offline
                    da_WoodyD Offline
                    da_Woody
                    schrieb am zuletzt editiert von
                    #4693

                    @sborg Imho ist influx 2 eine verschlimmbesserung.
                    Muss jeder für sich entscheiden.
                    Meine influx/grafana umbauen ist einfach irre.
                    Hab da keine Lust.

                    gruß vom Woody
                    HAPPINESS is not a DESTINATION, it's a WAY of LIFE!

                    SBorgS 1 Antwort Letzte Antwort
                    0
                    • da_WoodyD da_Woody

                      @sborg Imho ist influx 2 eine verschlimmbesserung.
                      Muss jeder für sich entscheiden.
                      Meine influx/grafana umbauen ist einfach irre.
                      Hab da keine Lust.

                      SBorgS Offline
                      SBorgS Offline
                      SBorg
                      Forum Testing Most Active
                      schrieb am zuletzt editiert von
                      #4694

                      @da_woody Lust hatte ich da auch nicht gerade darauf, aber was will man machen...
                      Andererseits war es auch gar nicht schlecht, da waren noch viele Dinge einfach aus anfänglicher Unwissenheit "nicht im Reinen".
                      Jetzt habe ich alles auf Variablen umgestellt. Ist zwar dann noch mehr Arbeit, dafür aber einmalig. Wenn sich jetzt was ändert brauche ich nur einmalig an einer Stelle den Wert ändern, schon gilt das für alle Grafana-Panels :)

                      ...und ja, auch InfluxDB ist damit "komplizierter" geworden, zumindest auf den 1. Blick. Dafür ist es nun auch weitaus mächtiger.

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

                      T 1 Antwort Letzte Antwort
                      0
                      • SBorgS SBorg

                        @da_woody Lust hatte ich da auch nicht gerade darauf, aber was will man machen...
                        Andererseits war es auch gar nicht schlecht, da waren noch viele Dinge einfach aus anfänglicher Unwissenheit "nicht im Reinen".
                        Jetzt habe ich alles auf Variablen umgestellt. Ist zwar dann noch mehr Arbeit, dafür aber einmalig. Wenn sich jetzt was ändert brauche ich nur einmalig an einer Stelle den Wert ändern, schon gilt das für alle Grafana-Panels :)

                        ...und ja, auch InfluxDB ist damit "komplizierter" geworden, zumindest auf den 1. Blick. Dafür ist es nun auch weitaus mächtiger.

                        T Offline
                        T Offline
                        tritor
                        schrieb am zuletzt editiert von tritor
                        #4695

                        [gelöst] - gefunden in der wetterstation.conf

                        Hab nun auch auf V3.0. updgedated.

                        Updater ausgeführt und im ioB auch das Script für die DPs Version 3.0 ausgeführt.

                        Script läuft, und die neuen DPs unter 0_userdata/wetterstation sind angelegt. Es kommen da aber keine Daten rein, alle Daten laufen weiterhin unter javascript/wetterstation

                        Ist das normal/so gewollt, oder wie stelle ich es um, daß die DPs unter userdata geschrieben werden?

                        Gernot

                        Host: i9 server Proxmox , Debian 12.0 for ioBroker
                        ioBroker: 7.7.19, Node.js: 22.21.1, NPM: 10.9.3, JS-controller: 7.0.7
                        Wetterstation: HP1000SEPro V1.9.0 Easeweather V1.7.0
                        Grafana 12.0.2 / InfluxDB 2.7.11

                        1 Antwort Letzte Antwort
                        0
                        • SBorgS SBorg

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

                          @sborg

                          beim Change auf V3 und dem Umzug der DPs von javascript.0.Wetterstation.xxx auf 0_userdata.0.Wtterstation.xxx muß ich die InfluxDaten der DPs aus javascript in die neuen DPs aus 0_userdata manuell kopieren. Gehe ich da richtig in der Annahme?

                          Am einfachsten exportiert (egal ob aus Influx V1 oder V2) man sich die entsprechende(n) Datenreihe(n) zB. mittels "Killer-Befehl" ;) aus der V1 :

                          echo '#datatype measurement,dateTime:RFC3339,boolean,string,double,double' > export.csv && influx -database [Datenbankname] -username [username] -password [passwort] -execute 'SELECT * FROM "javascript.0.Wetterstation.Aussentemperatur","javascript.0.Wetterstation.Regen_Tag","javascript.0.Wetterstation.Wind_max"' -format csv -precision='rfc3339' >> export.csv
                          

                          Nun ersetzt man "javascript." durch "0_userdata." : sed -i "s/^javascript\./0_userdata\./g" ./export.csv

                          Dann sollten die Einträge in der export.csv in etwa so aussehen:

                          0_userdata.0.Fuellstand,2023-02-15T05:02:37.015Z,true,system.adapter.influxdb.0,0,54
                          

                          Nun droppt man die alten Datenserien (sofern man sie schon in V2 hat) und importiert die neue csv: influx write -b [Bucketname] -f ./export.csv

                          T Offline
                          T Offline
                          tritor
                          schrieb am zuletzt editiert von
                          #4696

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

                          Am einfachsten exportiert (egal ob aus Influx V1 oder V2) man sich die entsprechende(n) Datenreihe(n) zB. mittels "Killer-Befehl" ;) aus der V1 :

                          echo '#datatype measurement,dateTime:RFC3339,boolean,string,double,double' > export.csv && influx -database [Datenbankname] -username [username] -password [passwort] -execute 'SELECT * FROM "javascript.0.Wetterstation.Aussentemperatur","javascript.0.Wetterstation.Regen_Tag","javascript.0.Wetterstation.Wind_max"' -format csv -precision='rfc3339' >> export.csv
                          

                          Wie würde ein export/write aus einer V2 aussehen? Werde aus der InfluxDB2 Doku nicht schlau, wie selektiere ich die measurements korrekt?

                          Gernot

                          Host: i9 server Proxmox , Debian 12.0 for ioBroker
                          ioBroker: 7.7.19, Node.js: 22.21.1, NPM: 10.9.3, JS-controller: 7.0.7
                          Wetterstation: HP1000SEPro V1.9.0 Easeweather V1.7.0
                          Grafana 12.0.2 / InfluxDB 2.7.11

                          SBorgS 1 Antwort Letzte Antwort
                          0
                          • T tritor

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

                            Am einfachsten exportiert (egal ob aus Influx V1 oder V2) man sich die entsprechende(n) Datenreihe(n) zB. mittels "Killer-Befehl" ;) aus der V1 :

                            echo '#datatype measurement,dateTime:RFC3339,boolean,string,double,double' > export.csv && influx -database [Datenbankname] -username [username] -password [passwort] -execute 'SELECT * FROM "javascript.0.Wetterstation.Aussentemperatur","javascript.0.Wetterstation.Regen_Tag","javascript.0.Wetterstation.Wind_max"' -format csv -precision='rfc3339' >> export.csv
                            

                            Wie würde ein export/write aus einer V2 aussehen? Werde aus der InfluxDB2 Doku nicht schlau, wie selektiere ich die measurements korrekt?

                            SBorgS Offline
                            SBorgS Offline
                            SBorg
                            Forum Testing Most Active
                            schrieb am zuletzt editiert von
                            #4697

                            @tritor Am einfachsten selektierst du es im "Dataexplorer" wie bei einer Testabfrage für Grafana (Timerange anpassen nicht vergessen). Passt der Graph dann soweit mit den Daten einfach als "CSV" exportieren (es wird nur das exportiert was auch angezeigt wird).

                            Bei den "Sources" wählst du dann "Flux Annotated CSV" aus, dann im folgenden Fenster dein Bucket für den Import und die zuvor gespeicherte CSV aus:
                            Bild 002.png

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

                            1 Antwort Letzte Antwort
                            1
                            • C Offline
                              C Offline
                              Chief42
                              schrieb am zuletzt editiert von
                              #4698

                              Erstmal Hallo in die Runde und im Voraus schonmal vielen Dank für die tolle Unterstützung hier! Ich beschäftige mich schon einige Wochen mit dem ioBroker und habe auch schon einiges hinbekommen aber mit dem Script für die Wetterstation komme ich nicht weiter.

                              Ich habe eine Bresser 7in1 Station die ich gerne mit dem Script nutzen möchte. Dazu habe ich auf meiner Firewall (Sophos UTM) einen statischen DNS Eintrag vorgenommen der die Adresse rtupdate.wunderground.com (und auch wunderground.com) auf den ioBroker weiterleitet. Laut Logfile der Firewall funktioniert das auch.

                              Das Script habe ich direkt auf dem ioBroker (Debian, Proxmox VM) installiert und das hat soweit auch ohne Fehler funktioniert. Wenn ich "./wetterstation.sh --debug" eingebe kommt ein Kommunikationsfehler zurück:

                              iobroker1.JPG

                              iobroker2.JPG

                              Müsste das grundsätzlich so funktionieren oder muss doch ein Pi-hole dazwischen geschaltet werden damit das funktioniert? Soweit ich das verstanden habe müsste der einfache DNS-Eintrag reichen.

                              Wenn ich einen tcpdump von der Firewall mache finde ich mit Wireshark zwar Pakete von der Wetterstation in Richtung ioBroker aber da stehen keine Wetterdaten drinnen. Wenn ich das richtig interpretiere werden keine HTTP-Daten übertragen/entgegengenommen.

                              In der Firewall habe ich natürlich eine Freigabe für Port 80 von der Wetterstation in Richtung ioBroker eingerichtet.

                              Hier der Inhalt der wetterstation.conf:

                              ### Settings V3.0.0 -----------------------------------------------------------
                               #Debuging einschalten [true/false] / default: false / Ausgabe der Messwerte
                                debug=false
                              
                               #Verhalten bei Kommunikationsfehler [true/false] / default: false / Soll der Datenpunkt automatisch resettet werden?
                                RESET_KOMFEHLER=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.100.71:8087
                              
                               #Protokoll, ioBroker-IP und Port der Rest-API [http(s)://xxx.xxx.xxx.xxx:xxxxx] / leer lassen falls nicht benutzt
                                RESTAPI_URL=
                                RESTAPI_USER=
                                RESTAPI_PW=
                              
                               #Protokoll der Wetterstation [1/2/9] / 1=Wunderground ; 2=Ecowitt ; 9=DNS / default: 2
                                WS_PROTOKOLL=9
                              
                               #Anzahl der vorhandenen Zusatzsensoren Froggit, Ecowitt und Bresser / default: 0
                                ANZAHL_WH31=0
                                ANZAHL_WS90=0
                                ANZAHL_DP10=0
                                ANZAHL_DP35=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
                                # jetzt kommt Bresser!
                                ANZAHL_7009999=4
                              
                               #Protokoll (HTTP oder HTTPS) / default: HTTP
                                WEB=HTTP
                              
                               #Ignoriere Zertifikatsfehler bei der Simple-Restful-API [true/false] / default: false / nötig bei eigenen Zertifikaten
                                WEB_IGN_SSL_ERROR=false
                              
                               #User-Authentifizierung falls benutzt; sonst leer lassen
                                AUTH_USER=
                                AUTH_PASS=
                              
                               #Port der Wetterstation
                                WS_PORT=80
                              
                               #Pollintervall der Wetterstation in Sekunden (minimal 16 Sekunden)
                                WS_POLL=30
                              
                               #Name/ID der Wetterstation
                                WS_ID=ZuHause
                              

                              In der Wetterstation habe ich ebenfalls "ZuHause" bei der Station ID eingetragen.

                              Der Port der Simple-Restful-API stimmt auch.

                              iobroker3.JPG

                              Hat jemand einen Tipp für mich was ich noch überprüfen oder machen kann/muss?

                              SBorgS 1 Antwort Letzte Antwort
                              0
                              • SBorgS SBorg

                                Ich habe eine neue Version des Dashboard-Exports hochgeladen (bei wem es mittlerweile läuft braucht nichts zu tun ;) ), welche das Import-Problem fixen sollte.
                                Problem ist/war, dass er die UID (anhand derer kann Grafana eindeutig alles identifizieren, selbst wenn man den Namen ändern sollte) auch mit den (meinen) Datenquellen verknüpft. Deswegen kann meine UID nur absolut zufällig mit der eurigen übereinstimmen. In der neuen Version wird man nun beim Import gefragt und muss die passenden Datenquellen auswählen.
                                Hat man nur eine für alles, bei beiden die selbe auswählen:
                                Bild 001.png

                                V Offline
                                V Offline
                                viper4iob
                                schrieb am zuletzt editiert von
                                #4699

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

                                Ich habe eine neue Version des Dashboard-Exports hochgeladen (bei wem es mittlerweile läuft braucht nichts zu tun ;) ), welche das Import-Problem fixen sollte.
                                Problem ist/war, dass er die UID (anhand derer kann Grafana eindeutig alles identifizieren, selbst wenn man den Namen ändern sollte) auch mit den (meinen) Datenquellen verknüpft. Deswegen kann meine UID nur absolut zufällig mit der eurigen übereinstimmen. In der neuen Version wird man nun beim Import gefragt und muss die passenden Datenquellen auswählen.
                                Hat man nur eine für alles, bei beiden die selbe auswählen:
                                Bild 001.png

                                Da ist noch ein kleiner Fehler drin. Ich wollte das Dashboard gerade selbst "for external" exportieren und da hat mir Grafana einen Fehler geschmissen, dass er ${DS_HOMEAUTOMATION} nicht kennt.
                                Im Grafana V3 Template steht das an 2 Stellen:
                                https://github.com/SBorg2014/WLAN-Wetterstation/blob/master/Grafana Dashboard/Wetterstation-Dashboard_V3.json#L5550
                                https://github.com/SBorg2014/WLAN-Wetterstation/blob/master/Grafana Dashboard/Wetterstation-Dashboard_V3.json#L5679
                                Da muss wahrscheinlich auch ${DS_WETTERDATEN} oder ${DS_TEMPDATA} rein, damit er das beim Import korrekt ersetzt.

                                SBorgS 1 Antwort Letzte Antwort
                                1
                                • C Chief42

                                  Erstmal Hallo in die Runde und im Voraus schonmal vielen Dank für die tolle Unterstützung hier! Ich beschäftige mich schon einige Wochen mit dem ioBroker und habe auch schon einiges hinbekommen aber mit dem Script für die Wetterstation komme ich nicht weiter.

                                  Ich habe eine Bresser 7in1 Station die ich gerne mit dem Script nutzen möchte. Dazu habe ich auf meiner Firewall (Sophos UTM) einen statischen DNS Eintrag vorgenommen der die Adresse rtupdate.wunderground.com (und auch wunderground.com) auf den ioBroker weiterleitet. Laut Logfile der Firewall funktioniert das auch.

                                  Das Script habe ich direkt auf dem ioBroker (Debian, Proxmox VM) installiert und das hat soweit auch ohne Fehler funktioniert. Wenn ich "./wetterstation.sh --debug" eingebe kommt ein Kommunikationsfehler zurück:

                                  iobroker1.JPG

                                  iobroker2.JPG

                                  Müsste das grundsätzlich so funktionieren oder muss doch ein Pi-hole dazwischen geschaltet werden damit das funktioniert? Soweit ich das verstanden habe müsste der einfache DNS-Eintrag reichen.

                                  Wenn ich einen tcpdump von der Firewall mache finde ich mit Wireshark zwar Pakete von der Wetterstation in Richtung ioBroker aber da stehen keine Wetterdaten drinnen. Wenn ich das richtig interpretiere werden keine HTTP-Daten übertragen/entgegengenommen.

                                  In der Firewall habe ich natürlich eine Freigabe für Port 80 von der Wetterstation in Richtung ioBroker eingerichtet.

                                  Hier der Inhalt der wetterstation.conf:

                                  ### Settings V3.0.0 -----------------------------------------------------------
                                   #Debuging einschalten [true/false] / default: false / Ausgabe der Messwerte
                                    debug=false
                                  
                                   #Verhalten bei Kommunikationsfehler [true/false] / default: false / Soll der Datenpunkt automatisch resettet werden?
                                    RESET_KOMFEHLER=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.100.71:8087
                                  
                                   #Protokoll, ioBroker-IP und Port der Rest-API [http(s)://xxx.xxx.xxx.xxx:xxxxx] / leer lassen falls nicht benutzt
                                    RESTAPI_URL=
                                    RESTAPI_USER=
                                    RESTAPI_PW=
                                  
                                   #Protokoll der Wetterstation [1/2/9] / 1=Wunderground ; 2=Ecowitt ; 9=DNS / default: 2
                                    WS_PROTOKOLL=9
                                  
                                   #Anzahl der vorhandenen Zusatzsensoren Froggit, Ecowitt und Bresser / default: 0
                                    ANZAHL_WH31=0
                                    ANZAHL_WS90=0
                                    ANZAHL_DP10=0
                                    ANZAHL_DP35=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
                                    # jetzt kommt Bresser!
                                    ANZAHL_7009999=4
                                  
                                   #Protokoll (HTTP oder HTTPS) / default: HTTP
                                    WEB=HTTP
                                  
                                   #Ignoriere Zertifikatsfehler bei der Simple-Restful-API [true/false] / default: false / nötig bei eigenen Zertifikaten
                                    WEB_IGN_SSL_ERROR=false
                                  
                                   #User-Authentifizierung falls benutzt; sonst leer lassen
                                    AUTH_USER=
                                    AUTH_PASS=
                                  
                                   #Port der Wetterstation
                                    WS_PORT=80
                                  
                                   #Pollintervall der Wetterstation in Sekunden (minimal 16 Sekunden)
                                    WS_POLL=30
                                  
                                   #Name/ID der Wetterstation
                                    WS_ID=ZuHause
                                  

                                  In der Wetterstation habe ich ebenfalls "ZuHause" bei der Station ID eingetragen.

                                  Der Port der Simple-Restful-API stimmt auch.

                                  iobroker3.JPG

                                  Hat jemand einen Tipp für mich was ich noch überprüfen oder machen kann/muss?

                                  SBorgS Offline
                                  SBorgS Offline
                                  SBorg
                                  Forum Testing Most Active
                                  schrieb am zuletzt editiert von
                                  #4700

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

                                  Müsste das grundsätzlich so funktionieren oder muss doch ein Pi-hole dazwischen geschaltet werden damit das funktioniert?

                                  Ja und nein. Was man nimmt ist im Grunde egal (die Tage hatten wir es mittels eines Routers auf dem OpenWRT läuft realisiert).
                                  Es muss nur die DNS-Anfrage der Station/des Gateways vom WWW auf eine heimische IP-Adresse umgeleitet werden, damit das Datenpaket "im Haus" bleibt.

                                  Was ich so sehe/lese ist auch alles korrekt, aber eins bleibt zumindest noch offen. Ist der Port 80 (den kann man ja hier nicht ändern) auf dem Rechner auch wirklich frei?

                                  sudo netstat -tulpen | grep :80
                                  Da darf für Port 80 kein "Listen" oä. erscheinen:
                                  Bild 001.png
                                  ...wie man sieht läuft dort bei mir der typische Apache-Webserver...

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

                                  C 1 Antwort Letzte Antwort
                                  0
                                  • V viper4iob

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

                                    Ich habe eine neue Version des Dashboard-Exports hochgeladen (bei wem es mittlerweile läuft braucht nichts zu tun ;) ), welche das Import-Problem fixen sollte.
                                    Problem ist/war, dass er die UID (anhand derer kann Grafana eindeutig alles identifizieren, selbst wenn man den Namen ändern sollte) auch mit den (meinen) Datenquellen verknüpft. Deswegen kann meine UID nur absolut zufällig mit der eurigen übereinstimmen. In der neuen Version wird man nun beim Import gefragt und muss die passenden Datenquellen auswählen.
                                    Hat man nur eine für alles, bei beiden die selbe auswählen:
                                    Bild 001.png

                                    Da ist noch ein kleiner Fehler drin. Ich wollte das Dashboard gerade selbst "for external" exportieren und da hat mir Grafana einen Fehler geschmissen, dass er ${DS_HOMEAUTOMATION} nicht kennt.
                                    Im Grafana V3 Template steht das an 2 Stellen:
                                    https://github.com/SBorg2014/WLAN-Wetterstation/blob/master/Grafana Dashboard/Wetterstation-Dashboard_V3.json#L5550
                                    https://github.com/SBorg2014/WLAN-Wetterstation/blob/master/Grafana Dashboard/Wetterstation-Dashboard_V3.json#L5679
                                    Da muss wahrscheinlich auch ${DS_WETTERDATEN} oder ${DS_TEMPDATA} rein, damit er das beim Import korrekt ersetzt.

                                    SBorgS Offline
                                    SBorgS Offline
                                    SBorg
                                    Forum Testing Most Active
                                    schrieb am zuletzt editiert von
                                    #4701

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

                                    Da muss wahrscheinlich auch ${DS_WETTERDATEN} oder ${DS_TEMPDATA} rein, damit er das beim Import korrekt ersetzt.

                                    Danke, eben gefixt und hoch geladen. Scheint aber gar nicht in den beiden Panels von Bedeutung zu sein, nur trägt er halt anscheinend immer eine "Datasource" ein, ob benutzt oder nicht. Mein Testimport hat dann natürlich funktioniert, da ich die Source ja habe.

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

                                    1 Antwort Letzte Antwort
                                    1
                                    • SBorgS SBorg

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

                                      Müsste das grundsätzlich so funktionieren oder muss doch ein Pi-hole dazwischen geschaltet werden damit das funktioniert?

                                      Ja und nein. Was man nimmt ist im Grunde egal (die Tage hatten wir es mittels eines Routers auf dem OpenWRT läuft realisiert).
                                      Es muss nur die DNS-Anfrage der Station/des Gateways vom WWW auf eine heimische IP-Adresse umgeleitet werden, damit das Datenpaket "im Haus" bleibt.

                                      Was ich so sehe/lese ist auch alles korrekt, aber eins bleibt zumindest noch offen. Ist der Port 80 (den kann man ja hier nicht ändern) auf dem Rechner auch wirklich frei?

                                      sudo netstat -tulpen | grep :80
                                      Da darf für Port 80 kein "Listen" oä. erscheinen:
                                      Bild 001.png
                                      ...wie man sieht läuft dort bei mir der typische Apache-Webserver...

                                      C Offline
                                      C Offline
                                      Chief42
                                      schrieb am zuletzt editiert von
                                      #4702

                                      @sborg Der Port ist (noch) frei.
                                      iobroker4.JPG
                                      Ich bin nicht rief drin in dem Script und habe es mir auch noch nicht so genau angeschaut aber müsste von der Logik her nicht der ioBroker/das Script auf Port 80 lauschen, die Anfrage annehmen und an Port 8087 weiterleiten?

                                      Wenn ich den Port 80 von der Wetterstation in der Firewall per DNAT-Regel ändere müsste das aber auch mit einem anderen Port funktionieren. Dieser geänderte Port würde dann hier eingetragen werden, oder?

                                      #Port der Wetterstation
                                        WS_PORT=80
                                      

                                      Aber soweit bin ich ja noch nicht. Erstmal soll das Teil überhaupt mal Daten liefern .

                                      SBorgS 1 Antwort Letzte Antwort
                                      0
                                      • C Chief42

                                        @sborg Der Port ist (noch) frei.
                                        iobroker4.JPG
                                        Ich bin nicht rief drin in dem Script und habe es mir auch noch nicht so genau angeschaut aber müsste von der Logik her nicht der ioBroker/das Script auf Port 80 lauschen, die Anfrage annehmen und an Port 8087 weiterleiten?

                                        Wenn ich den Port 80 von der Wetterstation in der Firewall per DNAT-Regel ändere müsste das aber auch mit einem anderen Port funktionieren. Dieser geänderte Port würde dann hier eingetragen werden, oder?

                                        #Port der Wetterstation
                                          WS_PORT=80
                                        

                                        Aber soweit bin ich ja noch nicht. Erstmal soll das Teil überhaupt mal Daten liefern .

                                        SBorgS Offline
                                        SBorgS Offline
                                        SBorg
                                        Forum Testing Most Active
                                        schrieb am zuletzt editiert von
                                        #4703

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

                                        ioBroker/das Script auf Port 80 lauschen, die Anfrage annehmen und an Port 8087 weiterleiten?

                                        Jein. Eine "echte" Weiterleitung ist das nicht. Er nimmt Daten an Port 80 entgegen, bereitet diese auf und schickt dann ein Datenpaket an den ioB-Adapter der auf Port xxxx läuft.

                                        Wenn ich den Port 80 von der Wetterstation in der Firewall per DNAT-Regel ändere müsste das aber auch mit einem anderen Port funktionieren. Dieser geänderte Port würde dann hier eingetragen werden, oder?

                                        Letzteres ja, ersteres hatte irgendwie nicht funktioniert. Selbst ausprobieren konnte ich es nicht, erinnere mich aber auch nicht mehr so Recht dran. Funktioniert hatte es aber nicht (wobei es allerdings sollte).

                                        Ich vermute du hast ein "root"-Problem. Du bist zwar vorbildlich als "User" unterwegs, dass könnte dir hier aber zum Verhängnis werden. Die meisten Distris wollen bei Ports <1024 root-Rechte.

                                        Versuch mal ein  nc -nlvw 1 -p 80 (das macht auch das Skript)... permission denied ?
                                        Dann sollte es mittels "sudo" davor funktionieren. Man kann die Ports auch nach "unten" setzen, dann funktioniert es auch. Allerdings erlaubt dies auch jedem User des Systems dann alle Ports zu nutzen. Da wäre, wenn es funktioniert, ein DNAT von 80 --> bspw. 1080 die saubere Version:
                                        Bild 001.png
                                        (auf 80 läuft bei mir bereits der Apache), sollte dann aber bspw. ein Datenpaket der Station empfangen.

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

                                        C 1 Antwort Letzte Antwort
                                        0
                                        • SBorgS SBorg

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

                                          ioBroker/das Script auf Port 80 lauschen, die Anfrage annehmen und an Port 8087 weiterleiten?

                                          Jein. Eine "echte" Weiterleitung ist das nicht. Er nimmt Daten an Port 80 entgegen, bereitet diese auf und schickt dann ein Datenpaket an den ioB-Adapter der auf Port xxxx läuft.

                                          Wenn ich den Port 80 von der Wetterstation in der Firewall per DNAT-Regel ändere müsste das aber auch mit einem anderen Port funktionieren. Dieser geänderte Port würde dann hier eingetragen werden, oder?

                                          Letzteres ja, ersteres hatte irgendwie nicht funktioniert. Selbst ausprobieren konnte ich es nicht, erinnere mich aber auch nicht mehr so Recht dran. Funktioniert hatte es aber nicht (wobei es allerdings sollte).

                                          Ich vermute du hast ein "root"-Problem. Du bist zwar vorbildlich als "User" unterwegs, dass könnte dir hier aber zum Verhängnis werden. Die meisten Distris wollen bei Ports <1024 root-Rechte.

                                          Versuch mal ein  nc -nlvw 1 -p 80 (das macht auch das Skript)... permission denied ?
                                          Dann sollte es mittels "sudo" davor funktionieren. Man kann die Ports auch nach "unten" setzen, dann funktioniert es auch. Allerdings erlaubt dies auch jedem User des Systems dann alle Ports zu nutzen. Da wäre, wenn es funktioniert, ein DNAT von 80 --> bspw. 1080 die saubere Version:
                                          Bild 001.png
                                          (auf 80 läuft bei mir bereits der Apache), sollte dann aber bspw. ein Datenpaket der Station empfangen.

                                          C Offline
                                          C Offline
                                          Chief42
                                          schrieb am zuletzt editiert von
                                          #4704

                                          @sborg You made my day!

                                          Deine Vermutung war absolut richtig!

                                          01.JPG

                                          Ich habe dann in der Firewall ein wenig gespielt und konnte das Script schnell zum Laufen bringen. Folgendes habe ich eingerichtet:

                                          Firewallregel (die Wetterstation bekommt über Port 9080 Zugang zum ioBroker):

                                          Firewallregel.JPG

                                          DNAT-Regel (HTTP Port 80 von der Wetterstation wird auf Port 9080 umgebogen):

                                          NAT-Regel.JPG

                                          Im Firewall-Logfile sieht das schonmal gut aus (sah vorher, als es nicht ging, allerdings auch gut aus):

                                          Firewall Logfile.JPG

                                          In der "wetterstation.conf" wurde der neue Port eingetragen:

                                          #Port der Wetterstation
                                            WS_PORT=9080
                                          

                                          Das Scipt konnte dann erfolgreich mit "./wetterstation.sh --debug" gestartet werden:

                                          erfolgreicher Test1.JPG
                                          erfolgreicher Test2.JPG
                                          erfolgreicher Test3.JPG

                                          Im ioBroker erscheinen die Werte auch:

                                          Werte im ioBroker.JPG

                                          Hier fehlen allerdings die vier Zusatzsensoren. Ist hier das Protokoll evtl. doch auf einen Sensor beschränkt? Eigentlich bräuchte ich sogar noch ein paar Sensoren mehr als die vier evtl. möglichen ;-).

                                          Meine Linux-Kenntnisse sind (bisher) nur sehr rudimentär aber das mit den Ports <1024 hatte ich irgendwo auch schonmal gelesen aber hätte das nie in Verbindung mit dem Problem gebracht. Vermutlich gibt es irgendwo ein Logfile in dem das sogar steht. Egal, jetzt läuft das Script (auch automatisch im Hintergrund).

                                          Kannst Du bitte noch kurz etwas zu den Zusatzsensoren sagen?

                                          In der Konfiguration habe ich die maximalen 4 Sensoren angegeben:

                                          #Protokoll der Wetterstation [1/2/9] / 1=Wunderground ; 2=Ecowitt ; 9=DNS / default: 2
                                            WS_PROTOKOLL=9
                                          
                                           #Anzahl der vorhandenen Zusatzsensoren Froggit, Ecowitt und Bresser / default: 0
                                            ANZAHL_WH31=0
                                            ANZAHL_WS90=0
                                            ANZAHL_DP10=0
                                            ANZAHL_DP35=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
                                            ANZAHL_7009999=4
                                          

                                          Sensoren.JPG

                                          Wenn, wie in der Anleitung beschrieben ist, das Wunderground-Protokoll 4 Sensoren unterstützt scheint es bei der DNS-Variante nicht zu funktionieren. Bei Wunderground bin ich nicht angemeldet aber Weathercloud unterstützt auch nur einen Sensor.

                                          SBorgS 1 Antwort Letzte Antwort
                                          0
                                          Antworten
                                          • In einem neuen Thema antworten
                                          Anmelden zum Antworten
                                          • Älteste zuerst
                                          • Neuste zuerst
                                          • Meiste Stimmen


                                          Support us

                                          ioBroker
                                          Community Adapters
                                          Donate

                                          720

                                          Online

                                          32.4k

                                          Benutzer

                                          81.4k

                                          Themen

                                          1.3m

                                          Beiträge
                                          Community
                                          Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen | Einwilligungseinstellungen
                                          ioBroker Community 2014-2025
                                          logo
                                          • Anmelden

                                          • Du hast noch kein Konto? Registrieren

                                          • Anmelden oder registrieren, um zu suchen
                                          • Erster Beitrag
                                            Letzter Beitrag
                                          0
                                          • Home
                                          • Aktuell
                                          • Tags
                                          • Ungelesen 0
                                          • Kategorien
                                          • Unreplied
                                          • Beliebt
                                          • GitHub
                                          • Docu
                                          • Hilfe