Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. JavaScript
    5. [gelöst] gefühlte Temperatur

    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

    [gelöst] gefühlte Temperatur

    This topic has been deleted. Only users with topic management privileges can see it.
    • P
      Peter666666 @JohGre last edited by

      @johgre Wenn ich es so mache kommen einige Warnungen:

      2023-01-23 13_49_55-Window.png

      2023-01-23 13_46_17-objects - e73f64821262.png

      JohGre paul53 2 Replies Last reply Reply Quote 0
      • P
        Peter666666 @Codierknecht last edited by Peter666666

        @codierknecht Dein Skript habe ich auch versucht. userData bleibt aber leer. Irgendwas mach ich falsch 😞

        2023-01-23 13_46_17-objects - e73f64821262.png

        Codierknecht 1 Reply Last reply Reply Quote 0
        • JohGre
          JohGre @Peter666666 last edited by

          @peter666666 sagte in gefühlte Temperatur:

          @johgre Wenn ich es so mache kommen einige Warnungen:

          2023-01-23 13_49_55-Window.png

          2023-01-23 13_46_17-objects - e73f64821262.png

          Dein Script heist noch Gefühlte_Außentemperatur. Ändere das mal

          1 Reply Last reply Reply Quote 0
          • Codierknecht
            Codierknecht Developer Most Active @Peter666666 last edited by

            @peter666666
            Heissen Deine DP tatsächlich netatmo.0.xxx... ?

            JohGre 1 Reply Last reply Reply Quote 0
            • Codierknecht
              Codierknecht Developer Most Active @paul53 last edited by

              @paul53
              Die Formel hatte ich hier gefunden:
              https://homematic-forum.de/forum/viewtopic.php?t=50821#p509661

              paul53 1 Reply Last reply Reply Quote 0
              • JohGre
                JohGre @Codierknecht last edited by

                @codierknecht sagte in gefühlte Temperatur:

                @peter666666
                Heissen Deine DP tatsächlich netatmo.0.xxx... ?

                nein, die schauen schon so aus wie deine. In den Objekt.States stehen aber schon Werte drinnen?

                P 1 Reply Last reply Reply Quote 0
                • paul53
                  paul53 @Codierknecht last edited by paul53

                  @codierknecht sagte: Die Formel hatte ich hier gefunden:

                  Das entspricht nicht dieser Formel, die man meistens findet. Der Exponent von 0,16 wirkt nur auf die Windgeschwindigkeit.

                  Codierknecht 1 Reply Last reply Reply Quote 0
                  • P
                    Peter666666 @JohGre last edited by

                    @johgre ja da stehen die gemessenen Werte drinnen.

                    JohGre 1 Reply Last reply Reply Quote 0
                    • JohGre
                      JohGre @Peter666666 last edited by JohGre

                      @peter666666 sagte in gefühlte Temperatur:

                      @johgre ja da stehen die gemessenen Werte drinnen.

                      Probier das mal und benenne das Script mal um.

                      function Start() {
                      Berechne();
                      }
                      
                      function GefuehlteTemperatur(temp, wind){
                          log('temp: ' + temp + ' wind: ' + wind);
                          var t =temp
                          var v = wind
                          var w = 13.12+(0.6215*t)-11.37*v**0.16+0.3965*t*v**0.16;
                          return w;
                      }
                      
                      function Berechne(){
                          var t = parseFloat( getState('netatmo.0.5ea0208a5f0d9668fe02b62c.70-ee-50-03-da-44.02-00-00-03-d7-bc.Temperature.Temperature'/*Temperature*/).val);
                          log('Temperatur: ' + t);
                          var v =parseFloat( getState('netatmo.0.5ea0208a5f0d9668fe02b62c.70-ee-50-03-da-44.06-00-00-00-1e-82.Wind.WindStrength'/*Wind strength*/).val);
                          log('WindStrength: ' + v);
                          var w = GefuehlteTemperatur(t,v);
                          log('Gefühlte Temperatur: ' + Math.round(w * 10) / 10 + ' °C');
                      }
                      
                      Start();
                       
                      

                      da müssen die Log-Statements was ausgeben.

                      P 1 Reply Last reply Reply Quote 0
                      • Codierknecht
                        Codierknecht Developer Most Active @paul53 last edited by

                        @paul53 sagte in gefühlte Temperatur:

                        Das entspricht nicht dieser Formel, die man meistens findet

                        Und bei Wikipedia findet sich wieder eine andere:
                        https://de.wikipedia.org/wiki/Windchill

                        paul53 1 Reply Last reply Reply Quote 0
                        • paul53
                          paul53 @Codierknecht last edited by paul53

                          @codierknecht sagte: Wikipedia findet sich wieder eine andere:

                          Die Formel ist identisch zu der von mir angegebenen. Zu beachten ist, dass in dieser Formel die Windgeschwindigkeit in km/h vorliegen muss.

                          Codierknecht 1 Reply Last reply Reply Quote 0
                          • Codierknecht
                            Codierknecht Developer Most Active @paul53 last edited by

                            @paul53
                            Naja - die Formel dann anzupassen scheint aktuell das geringere Problem.

                            1 Reply Last reply Reply Quote 0
                            • paul53
                              paul53 @Peter666666 last edited by

                              @peter666666 sagte: Wenn ich es so mache kommen einige Warnungen:

                              Durch das Anhängen von " °C" wird aus der Zahl wieder ein String. Bei Datenpunkten vom Typ Zahl trägt man "°C" unter common.unit ein.

                              P 1 Reply Last reply Reply Quote 1
                              • P
                                Peter666666 @JohGre last edited by

                                @johgre jetzt nochmal neu kopiert und die DP auch neu rein kopiert ins Skript. Userdata bleibt aber leer

                                2023-01-23 14_24_43-javascript - e73f64821262.png

                                2023-01-23 14_25_23-objects - e73f64821262.png

                                Codierknecht JohGre 2 Replies Last reply Reply Quote 0
                                • P
                                  Peter666666 @paul53 last edited by

                                  @paul53 wo mach ich das?

                                  P.S.: Wind wird in km/h ausgegeben von Netatmo

                                  Codierknecht paul53 2 Replies Last reply Reply Quote 0
                                  • Codierknecht
                                    Codierknecht Developer Most Active @Peter666666 last edited by

                                    @peter666666 sagte in gefühlte Temperatur:

                                    Userdata bleibt aber leer

                                    Da steht ja auch nirgendwo setState() 😉

                                    P 1 Reply Last reply Reply Quote 1
                                    • JohGre
                                      JohGre @Peter666666 last edited by

                                      @peter666666 sagte in gefühlte Temperatur:

                                      @johgre jetzt nochmal neu kopiert und die DP auch neu rein kopiert ins Skript. Userdata bleibt aber leer

                                      2023-01-23 14_24_43-javascript - e73f64821262.png

                                      2023-01-23 14_25_23-objects - e73f64821262.png

                                      Dein Datenpunkt ist ein Ordner

                                      1 Reply Last reply Reply Quote 1
                                      • P
                                        Peter666666 @Codierknecht last edited by

                                        @codierknecht sagte in gefühlte Temperatur:

                                        setState()

                                        d.h. statt log -> setState() ?

                                        paul53 1 Reply Last reply Reply Quote 0
                                        • Codierknecht
                                          Codierknecht Developer Most Active @Peter666666 last edited by

                                          @peter666666 sagte in gefühlte Temperatur:

                                          wo mach ich das?

                                          Das kannst Du alles in den Eigenschaften Deines DP einstellen.
                                          Der muss dann allerdings als "Datenpunkt" und nicht als "Verzeichnis" angelegt werden.

                                          setState("DEIN_DATENPUNKT", DEIN_WERT, true);
                                          
                                          1 Reply Last reply Reply Quote 1
                                          • paul53
                                            paul53 @Peter666666 last edited by paul53

                                            @peter666666
                                            Nachdem du aus "GefuehlteTemperatur" einen Datenpunkt ("type": "state") gemacht hast, hier eine strukturiertere Version:

                                            const idTemp = "netatmo.0.631f3d2edc4bfdce530a3d09.70-ee-50-90-bd-7e.02-00-00-90-bd-80.Temperature.Temperature";
                                            const idWind = "netatmo.0.631f3d2edc4bfdce530a3d09.70-ee-50-90-bd-7e.06-00-00-06-b3-3a.Wind.WindStrength";
                                            const idFuehl = "0_userdata.0.Hausdaten.GefuehlteTemperatur";
                                            
                                            function Berechne() {
                                                let t = parseFloat(getState(idTemp).val);
                                                let v = parseFloat(getState(idWind).val); // in km/h
                                                let w = 13.12 + 0.6215 * t + (0.3965 * t - 11.37) * v**0.16;
                                                setState(idFuehl, Math.round(w * 10) / 10, true);
                                            }
                                            
                                            Berechne(); // Skriptstart
                                            on([idTemp, idWind], Berechne);
                                            

                                            EDIT: Um eine überflüssige Funktion bereinigt.

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

                                            Support us

                                            ioBroker
                                            Community Adapters
                                            Donate

                                            895
                                            Online

                                            31.9k
                                            Users

                                            80.1k
                                            Topics

                                            1.3m
                                            Posts

                                            5
                                            45
                                            1416
                                            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