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.
    • da_Woody
      da_Woody @Negalein last edited by

      @negalein banane2.gif hehe, genau so hats mich beim letzten update auf die schnauze gehaun. die ws_updater.sh gehört auch raufgejubelt...Cheerlie.gif

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

        Man kann auch direkt den aktuellen Updater von GitHub nutzen (per Terminal):

         bash <(curl -sLf https://raw.githubusercontent.com/SBorg2014/WLAN-Wetterstation/master/ws_updater.sh)
        

        Es sei aber erwähnt, dass man hier die Kontrolle abgibt. Mit obiger Zeile führt ihr das entsprechende Skript einfach aus.
        Das macht zwar auch jeder bei der ioB-Installation, ich möchte es dennoch erwähnen. Mir ist aber auch bewusst, dass wohl 99% der User eh die *.sh's und *.sub ausführen ohne dort jemals hineinzuschauen. Da macht es dann auch keinen Unterschied mehr ob man es direkt ausführt...


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

        Magst du das Script hier zur Verfügung stellen?

        Nö 😀
        Ich habe mal paar Werte zur Veranschaulichung von mir drinnen gelassen. Es ermittelt Max_24h, Min_24h, Mean_24h, Median_24h, Max_1h, Min_1h und Mean_1h (vom Datenpunkt):

        /*
         ########################################################################################################
         Berechnung von gleitendem Durchschnitt, Minimum und Maximum über einen Zeitraum von 1h und 24h
         Version 1.4.1
         ########################################################################################################
        
        
         Berechnet Min/Max, Durschschnitt und Median über die letzten 24h.
         Berechnet Min/Max, Durschschnitt über die letzte 1h.
        
         IDs aller benötigten Datenpunkte
        
         Als Array im Array mit folgendem Format:
          1.   original Datenpunktname
          2.   neuer Datenpunktname
               Beispiel:   javascript.0.Status.Temperatur.Außen
                           javascript.0.Status.Luftfeuchtigkeit.Außen
          3.   Beschreibung des Messwertes (zur Erzeugung neuer Datenpunkte)
               Beispliele:   Temperatur
                             Luftfeuchtigkeit
          4.   Einheit (zur Erzeugung neuer Datenpunkte)
               Beispiele:   °C, %H
        
         Ist beliebig erweiterbar und für beliebige Werte nutzbar.
        */
        
        "use strict";
        const idData = [['javascript.0.Wetterstation.Innentemperatur','javascript.0.Statistik.Temperatur.Wohnzimmer','Temperatur','°C'],
                        ['javascript.0.Temperaturen.Zimmer.Buero.Temp_Buero','javascript.0.Statistik.Temperatur.Buero','Temperatur','°C'],
                        ['javascript.0.Wetterstation.Aussentemperatur','javascript.0.Statistik.Temperatur.Außen','Temperatur','°C'],
                        ['javascript.0.Wetterstation.Innenfeuchtigkeit','javascript.0.Statistik.Luftfeuchtigkeit.Wohnzimmer','Luftfeuchtigkeit','%H']];
        
        //Datenpunkt zur Speicherung aller internen Daten
        const dpData='javascript.0.Statistik.Statistic';
        
        // ########################################################################################################
        // Implementierung -- hier nichts mehr ändern
        // ########################################################################################################
        
        // globale Konstanten
        const tc = 5;         // Abtastrate in Minuten
        
        const statDataLength24 = Math.round((24 * 60) / tc); // Anzahl der Werte für 24h
        const statDataLength1 = Math.round(60 / tc); // Anzahl der Werte für stündlich
        
        // globale Variablen
        var listStatData;  //interne Speicherung aller Werte
        
        //Funktion zum einmaligem initialisieren aller Datenpunkte
        function initializeStatData() {
        
           // Datenpunkt zur Speicherung der internen Werte erzeugen
           createState(dpData, 0, false, {
              name: "StatisticData",
              read: true,
              write: true,
              desc: 'Statistische Daten',
              type: 'string',
              def: '',
              role: 'json'        
           });
           
           //internes Array initialisieren
            var needInit = false;
           try {
              listStatData = JSON.parse(getState(dpData).val);
           } catch (ex) {
              needInit = true;
           }
           if (needInit || !listStatData || (listStatData.length < idData.length)) {
              listStatData = new Array(idData.length); 
           }
           //logDebug('initializeStatData for', dpData, listStatData);
              
           for (var i = 0; i < idData.length; i++) {
                if (!listStatData[i]) { listStatData[i] = {}; }
                listStatData[i].value       = idData[i][1];
                listStatData[i].max24h		= idData[i][1] + '.Max_24h';
                listStatData[i].min24h		= idData[i][1] + '.Min_24h';
                listStatData[i].mean24h		= idData[i][1] + '.Mean_24h';
                listStatData[i].median24h	= idData[i][1] + '.Median_24h';
        	    listStatData[i].max1h		= idData[i][1] + '.Max_1h';
        	    listStatData[i].min1h		= idData[i][1] + '.Min_1h';
        	    listStatData[i].mean1h		= idData[i][1] + '.Mean_1h';
        
              
        	createState(listStatData[i].value, 0, false, {
                    name: idData[i][2],
                    read: true,
                    write: true,
                    desc: idData[i][2]+ ' Aktueller Wert',
              	    type: 'number',
                    def: 0,
                    unit: idData[i][3],
                    role: 'value'
        	});
        
        	createState(listStatData[i].max24h, 0, false, {
                    name: 'Maximum_24h',
                    read: true,
                    write: true,
                    desc: idData[i][2] + ' Maximum',
                    type: 'number',
                    def: 0,
                    unit: idData[i][3],
                    role: 'value'
               });
        
               createState(listStatData[i].min24h, 0, false, {
                    name: 'Minimum_24h',
                    read: true,
                    write: true,
                    desc: idData[i][2] + ' Minimum',
                    type: 'number',
                    def: 0,
        	    unit: idData[i][3],
                    role: 'value'
               });
        
               createState(listStatData[i].mean24h, 0, false, {
                    name: 'Mittelwert_24h',
                    read: true,
                    write: true,
                    desc: idData[i][2] + ' Mittelwert',
                    type: 'number',
                    def: 0,
                    unit: idData[i][3],
                    role: 'value'
              });
        
              createState(listStatData[i].median24h, 0, false, {
                    name: 'Median_24h',
                    read: true,
                    write: true,
                    desc: idData[i][2] + ' Median',
                    type: 'number',
                    def: 0,
        	        unit: idData[i][3],
                    role: 'value'
              });
        
              createState(listStatData[i].max1h, 0, false, {
                    name: 'Maximum_1h',
                    read: true,
                    write: true,
                    desc: idData[i][2] + ' Maximum',
                    type: 'number',
                    def: 0,
                    unit: idData[i][3],
                    role: 'value'
              });
        
              createState(listStatData[i].min1h, 0, false, {
                    name: 'Minimum_1h',
                    read: true,
                    write: true,
                    desc: idData[i][2] + ' Minimum',
                    type: 'number',
                    def: 0,
                    unit: idData[i][3],
                    role: 'value'
              });
        
              createState(listStatData[i].mean1h, 0, false, {
                    name: 'Mittelwert_1h',
                    read: true,
                    write: true,
               	    desc: idData[i][2] + ' Mittelwert',
                    type: 'number',
                    def: 0,
        	    unit: idData[i][3],
        	    role: 'value'
              });
              
              if (needInit || !listStatData[i].data || (listStatData[i].data.length != statDataLength24)) {
                    listStatData[i].data	= new Array(statDataLength24);
                  
                    // 1. Script start: Liste und String-Datenpunkt füllen
                    var x = getState(idData[i][0]).val;
                    for (var j = 0; j < statDataLength24; j++) {
                    listStatData[i].data[j] = x;
                 }
        
                  //logDebug(listStatData[i], i);
                    setStateDelayed(listStatData[i].value, x, false, 1000);
                    setStateDelayed(listStatData[i].min24h, x, false, 1000);
                    setStateDelayed(listStatData[i].max24h, x, false, 1000);
                    setStateDelayed(listStatData[i].mean24h, x, false, 1000);
                    setStateDelayed(listStatData[i].median24h, x, false, 1000);
                    setStateDelayed(listStatData[i].min1h, x, false, 1000);
                    setStateDelayed(listStatData[i].max1h, x, false, 1000);
                    setStateDelayed(listStatData[i].mean1h, x, false, 1000);
              }      
           }
           setState(dpData, JSON.stringify(listStatData));         
        }
        
        //Berechnung der Werte
        function calcStatData() {
           if (!listStatData || (idData.length != listStatData.length)) {
                initializeStatData();
           }
            //logDebug('starting calcStatData');
              
           for (var i = 0; i < idData.length; i++) {
              
              listStatData[i].data.pop(); //Remove the last element of an array
              var x = parseFloat(getState(idData[i][0]).val);
              listStatData[i].data.unshift(x); //Add new items to the beginning of an array
              setState(listStatData[i].value, x);
              
              var min = x;
              var max = x;
              var sum = 0.0;
              for (var j = 0; j < statDataLength24; j++) {
                 var s = parseFloat(listStatData[i].data[j]);
                 if (s < min) min = s;
                 if (s > max) max = s;
                 sum += s;
                 if (j == (statDataLength1-1)) {
                    setState(listStatData[i].min1h, min);
                    setState(listStatData[i].max1h, max);
                    setState(listStatData[i].mean1h, round(sum / statDataLength1, 2));     
                 }
              }
              setState(listStatData[i].min24h, min);
              setState(listStatData[i].max24h, max);
              setState(listStatData[i].mean24h, round(sum / statDataLength24, 2));   
              setState(listStatData[i].median24h, getMedian(listStatData[i].data));
           }
           setState(dpData, JSON.stringify(listStatData));
        }    
        
        function getMedian(args) {
          if (!args.length) {return 0}
          var numbers = args.slice(0).sort((a,b) => a - b);
          var middle = Math.floor(numbers.length / 2);
          var isEven = numbers.length % 2 === 0;
          return isEven ? (numbers[middle] + numbers[middle - 1]) / 2 : numbers[middle];
        }
        
        /**
         * round a number
         * @param    value  to round
         * @param    exp    exponent to round
         * @returns         the round number
         */
        function round(value, exp) {
          if (typeof exp === 'undefined' || +exp === 0)
            return Math.round(value);
        
          value = +value;
          exp = +exp;
        
          if (isNaN(value) || !(typeof exp === 'number' && exp % 1 === 0))
            return NaN;
        
          // Shift
          var values = value.toString().split('e');
          value = Math.round(+(values[0] + 'e' + (values[1] ? (+values[1] + exp) : exp)));
        
          // Shift back
          values = value.toString().split('e');
          return +(values[0] + 'e' + (values[1] ? (+values[1] - exp) : -exp));
        }
        
        initializeStatData();
        
        schedule('*/' + tc + ' * * * *', function () {
           calcStatData();
        });
        

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

        Aussentemperatur steht nur N/A, obwohl der DP passt.
        Im alten Dashboard wird er angezeigt.

        Stell mal bei "FROM" von "autogen" auf "default" um, dann sollte es funktionieren (lt. des diesbzgl. 2. Screenys).

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

        hier verwendest du ein paar Alias.
        Auf was beziehen sich die? Dann könnte ich die orig. DP verwenden. Bin mit Alias auf Kriegsfuss

        https://forum.iobroker.net/post/654787
        Das sind Übertragung an OSEM/Windy erfolgreich,
        Batteriestatus Wettermast, Kommunikation OK (bzw. Fehler),
        EasyWeather-Firmware up-to-date und versteckt das Bomm-Theme-Panel

        Alias' sind (oder waren, hab es mit der neuen Grafana-Version noch nicht probiert) nötig, da die DPs Boolean sind und Grafana damit nicht umgehen kann. Die Alias' setzen dann einfach false/true nach 0/1 um 😉

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

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

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

          Danke - leider ist die Abweichung nicht konstant

          Bild 1.png
          Ist sie auch nicht. Bis ~14:00 Uhr ist der gap recht groß, dann bis ~19:00 Uhr relativ identisch und dann liegt er sogar darüber. Mit einem festen Wert kann man hier also nicht arbeiten. Vermutlich ist da ein Algorithmus dahinter der auch die Temperatur berücksichtigt.

          Nur der Vollständigkeit halber:
          Ich glaube das liegt an den beiden unterschiedlichen Skalen...

          Ich habe jetzt einen statischen Wert eingetragen (basierend auf der Differenz zwischen meinem Absoluten Messwert und dem nächsten geeichten Messpunkt, [@Boronsbruder 's Vorschlag mit https://en.allmetsat.com/metar-taf/germany.php?icao=ETHL] umgerechnet mit https://rechneronline.de/barometer/hoehe.php auf meine Höhe und aktuelle Temperatur.
          (Das ist zwar noch nicht wirklich richtig, da mein absoluter Wert rein rechnerisch ~1,5bar zu niedrig ist (für die Höhe/Temperaratur) aber das wird den Ungenauigkeiten geschuldet sein. Leider kann das GW keine positiven Korrekturwerte für den absoluten Druck - wer unter dem Meereslevel wohnt hat Pech gehabt...)

          Auch bei mir zeigt der Chart das es tageszeitliche "Unterschiede" gibt, die aber bei genauerem Hinsehen gar nicht vorhanden sind:

          021bf13b-7ee2-4fd1-acfd-14ee766a9394-image.png

          Detail - Chart identisch, Differenz von 11 bar (entspricht dem eingestellten Korrekturwert)
          35859acd-7d5d-4813-be84-fec598c9b7e0-image.png

          Detail - Chart unterschiedlich, Differenz von 11 bar
          f329617d-282e-429d-b991-95bb4184acae-image.png

          Zum Thema "erst mal kein weiteres Release" - Es gibt eine neues GW bei Ecowitt (GW1100) welches natürlich auch neue Sensoren unterstützt... 😉
          https://www.ecowitt.com/shop/goodsDetail/107
          Es ersetzt das alte GW1000 scheinbar ab sofort...

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

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

            Zum Thema "erst mal kein weiteres Release"

            Bezog sich auch mehr von meiner Seite aus, da ich aktuell nicht wüsste was noch hinein soll, zumindest habe ich nix mehr auf der Agenda. Bugs ausmerzen oder neue Sensoren sind da natürlich außen vor 🙂
            Da die Gateways eh nicht unterschieden werden dürfte das neue auch keine Probleme bereiten und sollte auf Anhieb laufen. So zumindest die Theorie...

            Hmm, bei mir ist da schon ein Unterschied, wenn auch nur 1 hPa. Allerdings schwankt bei mir aktuell der Luftdruck ~3 hPa pro Tag, dann ist 1 hPa Unterschied doch schon recht viel (19 vs 20):
            Bild 2.png Bild 1.png
            Sensortoleranz kann es nicht sein, ist ja nur einer. Aber die Temperatur lag da um ~4°C auseinander...?

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

              @sborg
              die "ca. 10°C" kritisiere ich nicht, sondern deine "von 5°C".
              Die Formel gilt auch bei -40°C, aber ab Windgeschwindigkeiten von mehr als 5 km/h. Unter 5 km/h können laut Wiki-Temperaturen über der realen Temperatur als Ergebnis entstehen. 😉

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

                @boronsbruder Danke, jetzt hat es Klick gemacht. Ist/war aber nur ein reiner Typo-Fehler, im Skript ist es korrekt 🙂

                Im Release-Thread geändert:

                ...Die Formel gilt aber nur ab Windgeschwindigkeiten von 5 km/h und bis kleiner 11°C und wird jetzt korrekt berücksichtigt...
                
                1 Reply Last reply Reply Quote 0
                • Boronsbruder
                  Boronsbruder last edited by Boronsbruder

                  @SBorg
                  ich hab gerade auf jscontroller 3.3.15 upgedatet.... (was ich besser gelassen hätte, wenn ich in mein log schauen).

                  simple-api.0	2021-08-06 17:51:40.213	info	(2654) State value to set for "0_userdata.0.Wetterstation.Info.Station_Batteriestatus" has to be type "string" but received type "number" 
                  

                  schimpft er jetzt 🤣

                  Hab es jetzt manuell geändert.

                  Im aktuellen Skript hast auch

                  createState(DP+"Info.Station_Batteriestatus" , 0,   {name: "Batteriestatus [0=OK, 1=Alarm]",     type: "string", role: "state" });
                  
                  SBorg 1 Reply Last reply Reply Quote 0
                  • SBorg
                    SBorg Forum Testing Most Active @Boronsbruder last edited by

                    @boronsbruder Anscheinend habe ich noch irgendwo eine falsche Version + hab die wieder drüber kopiert, denn eigentlich hatte ich es schon vor paar Wochen (wg. Beta-Tests des JSC 3.3.x) geändert:
                    Bild 1.png
                    ...aber eigentlich hätte er mir das dann anzeigen müssen...

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

                      @SBorg

                      mir ist soeben im neuem Dashboard aufgefallen, dass bei Regenstatus & letzter Regen auch N/A steht.

                      Ist hier auch auf was zu achten?

                      Wetterstation V2 - Grafana (10).png Wetterstation V2 - Grafana (11).png

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

                        @negalein Eigentlich nicht.
                        Was spuckt den der "Query-Inspector" bei der Influx-Abfrage aus und was macht dann Grafana daraus: Bild 1.png Bild 2.png

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

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

                          Query-Inspector

                          Object
                          request:Object
                          method:"GET"
                          url:"api/datasources/proxy/1/query"
                          params:Object
                          db:"iobroker"
                          q:"SELECT "value" FROM "javascript.0.Wetterstation.Regenstatus" WHERE time >= now() - 24h and time <= now()"
                          epoch:"ms"
                          data:null
                          precision:"ms"
                          hideFromInspector:false
                          response:Object
                          results:Array[1]
                          0:Object
                          

                          Wetterstation V2 - Grafana (12).png Wetterstation V2 - Grafana (13).png

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

                            @negalein Kein Wunder das er nichts anzeigt, er hat keine Daten bzw. bekommt keine vom Influx. Ist auf den beiden DPs noch das Influx-Logging aktiv? InfluxDB muss an sich noch laufen, sonst wären bspw. die Temps etc. ebenfalls Null / N/A....

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

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

                              Ist auf den beiden DPs noch das Influx-Logging aktiv?

                              Ja, ist aktiv.
                              Bis gestern hat er immer aufgezeichnet. Heute erst gerade 1x.

                              objects - ioBroker.png

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

                                @negalein Mit nur einem Wert binnen fast 24h könnte das mit der Beschränkung eng werden. Versuche mal:
                                Bild 1.png

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

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

                                  Versuche mal:

                                  brachte leider nichts 😞

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

                                    @negalein Hast du denn binnen der letzten 24h nun überhaupt noch einen Wert drin stehen?
                                    Grafana begrenzt auf 24h, wenn also dein letzter Wert (weil bspw. "kein Regen" war) über 24h alt ist, zeigt er jetzt nix an (gestern hätte er es aber tun müssen, nur war im da ev. die "100" im Weg).
                                    Erzwinsgt du ein schreiben des Influx? Ich lasse zumindest alle 12h mal einen Wert schreiben:
                                    Bild 1.png

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

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

                                      Hast du denn binnen der letzten 24h nun überhaupt noch einen Wert drin stehen?

                                      Nein, hat seit 5. 8. nicht geregnet.
                                      objects - ioBroker (1).png
                                      Den 1 Wert zeigt er mir nur immer an, wenn ich die Liste öffne.
                                      objects - ioBroker (3).png

                                      Erzwinsgt du ein schreiben des Influx? Ich lasse zumindest alle 12h mal einen Wert schreiben:

                                      Hab ich jetzt mal auf jede Stunde geändert.
                                      objects - ioBroker (2).png

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

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

                                        Hast du denn binnen der letzten 24h nun überhaupt noch einen Wert drin stehen?

                                        heute hat es geschüttet wie aus Kübeln, Wind jenseits von Gut und Böse, Strom war 2 Stunden weg (Hauptverbindung zwischen Braunau und Passau hats zerrissen), aber Grafana funktioniert jetzt! 😉 😁
                                        Wetterstation V2 - Grafana (15).png

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

                                          🙂

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

                                          Hab ich jetzt mal auf jede Stunde geändert.

                                          Falscher Screeny? 1 Stunde sind 60 Min * 60 Sek = 3600
                                          "900" wären dann alle 15 Minuten 😉

                                          Meine obige Einstellung ist eigentlich OK:

                                          • Nur Änderungen aufzeichnen -- Man müllt sich sonst nur unnötig die Influx zu
                                          • 43200 -- alle 12 Stunden einmalig einen Wert in Influx schreiben erzwingen (genügt bei einer 24h - Grafanaanzeige)
                                          • Zeichenfolge -- um vorweg jedem Fehler aus dem Weg zu gehen
                                          • Vorhaltezeit -- nach eigenem Gusto; zu lang müllt auch nur die Influx zu. Muss jeder selbst entscheiden, aber persönlich interessiert es mich nicht ob es vor 9 Monaten um 15:20 Uhr geregnet hat (die Regenmenge des entsprechenden Tages hab ich ja)...
                                          Negalein 1 Reply Last reply Reply Quote 0
                                          • Negalein
                                            Negalein Global Moderator @SBorg last edited by

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

                                            Falscher Screeny?

                                            Ja, falscher Screen. Das ist der von den Standardeinstellungen! 🙂

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

                                            Support us

                                            ioBroker
                                            Community Adapters
                                            Donate

                                            816
                                            Online

                                            31.7k
                                            Users

                                            79.8k
                                            Topics

                                            1.3m
                                            Posts

                                            linux shell-script wetterstation wlan-wetterstation
                                            143
                                            5478
                                            3287870
                                            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