Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. JavaScript
    5. Bitte Hilfe bei Interpretation von Fehlermeldungen

    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

    Bitte Hilfe bei Interpretation von Fehlermeldungen

    This topic has been deleted. Only users with topic management privileges can see it.
    • sigi234
      sigi234 Forum Testing Most Active @paul53 last edited by sigi234

      @paul53 sagte in Bitte Hilfe bei Interpretation von Fehlermeldungen:

      null ist ein Objekt !

      Und wieder was gelernt....

      Zitat:

      parseFloat kann zudem Objekte parsen, wenn diese eine toString- oder valueOf-Methode haben. Das Ergebnis ist dasselbe, als wenn parseFloat mit dem Ergebnis einer dieser beiden Methoden ausgerufen wurde.
      
      1 Reply Last reply Reply Quote 0
      • paul53
        paul53 @skorpil last edited by

        @skorpil sagte:

        Und wie könnte ich das abfangen?

        function Wetterdatenholenundsetzen() {
            wetterdaten = getState(idOpenWeater).val;
            if(wetterdaten) setState(idVariable, wetterdaten);
        }
        
        1 Reply Last reply Reply Quote 0
        • S
          skorpil last edited by skorpil

          @paul53 sagte in Bitte Hilfe bei Interpretation von Fehlermeldungen:

          merci, ich werde testen und berichten

          1 Reply Last reply Reply Quote 0
          • S
            skorpil last edited by

            @paul53 dankeschön, das war es: "if (wetterdaten)". Denn augenscheinlich liefert der Adapter manchmal eben leere Objekte.

            1 Reply Last reply Reply Quote 0
            • S
              skorpil last edited by

              @paul53 noch eine Frage: jetzt reagiert das Script ja nur, wenn ein Wert vorhanden ist. Eben durch die Abfrage if(Variable). Wie würde man das Gegenteil programmieren, also wenn „kein“ Wert vorhanden, dann.... ich würde nämlich gerne in meine CCU Variable noch schreiben, wenn kein Wert, dann „keine Angabe“.

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

                @skorpil sagte:

                CCU Variable noch schreiben, wenn kein Wert, dann „keine Angabe“.

                function Wetterdatenholenundsetzen() {
                    wetterdaten = getState(idOpenWeater).val;
                    if(wetterdaten === null) wetterdaten = 'keine Angabe';
                    setState(idVariable, wetterdaten);
                }
                

                EDIT: Vergleich geändert, da Wert 0 ein gültiger Wert ist, der vorkommen kann.

                S 1 Reply Last reply Reply Quote 1
                • S
                  skorpil @paul53 last edited by

                  @paul53 großartig! Vielen Dank u. nun ein schönes Wochenende.

                  PS: ...wenn es dieses Forum nicht gäbe...

                  Homoran 1 Reply Last reply Reply Quote 0
                  • Homoran
                    Homoran Global Moderator Administrators @skorpil last edited by

                    @skorpil sagte in Bitte Hilfe bei Interpretation von Fehlermeldungen:

                    wenn es dieses Forum nicht gäbe...

                    und warum bekommt Paul dann keine "postive Bewertung"

                    S Homoran 2 Replies Last reply Reply Quote 0
                    • S
                      skorpil @Homoran last edited by

                      @Homoran kriegt er ja gerne. Aber wie muß ich das machen?

                      1 Reply Last reply Reply Quote 0
                      • S
                        skorpil last edited by skorpil

                        ...und der guten Ordnung halber noch das fertige Script. Es liest Daten aus openweathermap und schreibt sie in CCU Variablen. Sicher nicht profimäßig programmiert. Aber es läuft.

                        // #########################################################################
                        //    Wetterdaten aus openweathermap holen und in homematic Variable setzen
                        // #########################################################################
                        
                        
                        // Aktualisierung der homematic Variable bei Aktualisierung openweathermap
                        on ({id:'openweathermap.0.forecast.current.date'/*Actual date*/, change: 'any'}, function(data) {
                        
                        //Werte holen und setzen
                        
                        //Wetter Bedingung als String
                        var idOpenWeater = 'openweathermap.0.forecast.current.state'/*Actual state*/;
                        var idVariable = 'hm-rega.0.29954'/*Wetter Bedingungen*/;
                        wetterdaten = getState(idOpenWeater).val
                        
                        if (wetterdaten) setState(idVariable, wetterdaten); 
                        
                        //Wetter Richtung als Zahl
                        var idOpenWeater = 'openweathermap.0.forecast.current.windDirection'/*Forecast for wind direction*/;
                        //log(JSON.stringify(getState(idOpenWeater).val));
                        var idVariable = 'hm-rega.0.29959'/*Wetter Windrichtg*/;
                        Wetterdatenholenundsetzen();
                        
                        //Wind Richtung als Angabe 
                        var idOpenWeater = 'openweathermap.0.forecast.current.windDirection'/*Forecast for wind direction*/;
                        var idVariable = 'hm-rega.0.29958'/*Wetter Windrichtung*/;  
                            
                            //******************* Windrichtung bestimmen***************
                            //*******************Nord 339-23, Nordost 24-68, Ost 69-113, SüdOst 114-158, Süd 159-203, SüdWest 204-248, West 249-293, NordWest 394-338***************
                        
                            wetterdaten = getState(idOpenWeater).val
                        
                            if (wetterdaten > 23 && wetterdaten <= 68){
                                wetterdaten = "NordOst";
                                };
                        
                            if (wetterdaten > 68 && wetterdaten <= 113){
                                wetterdaten = "Ost";
                                };
                        
                            if (wetterdaten > 113 && wetterdaten <= 158){
                                wetterdaten = "SüdOst";
                                };
                        
                            if (wetterdaten > 158 && wetterdaten <= 203){
                                wetterdaten = "Süd";
                                };
                        
                            if (wetterdaten > 203 && wetterdaten <= 248){
                                wetterdaten = "SüdWest";
                                };
                        
                            if (wetterdaten > 248 && wetterdaten <= 293){
                                wetterdaten = "West";
                                };
                        
                            if (wetterdaten > 293 && wetterdaten <= 338){
                                wetterdaten = "NordWest";
                                };
                        
                            if (wetterdaten > 338 && wetterdaten <= 360){
                                wetterdaten = "Nord";
                                };
                        
                            if (wetterdaten > 0 && wetterdaten <= 23){
                                wetterdaten = "Nord";
                                };
                            
                            if (!wetterdaten) {
                                wetterdaten = "keine Angabe";
                                setState(idVariable, wetterdaten);
                            };
                        
                            if (wetterdaten) setState(idVariable, wetterdaten);
                        
                        //Temperatur als Zahl
                        var idOpenWeater = 'openweathermap.0.forecast.current.temperature'/*Actual temperature for today*/
                        var idVariable = 'hm-rega.0.29955'/*Wetter Temperatur*/;
                        Wetterdatenholenundsetzen();
                        
                        //Luftfeuchtigkeit als Zahl
                        var idOpenWeater = 'openweathermap.0.forecast.current.humidity'/*Actual humidity*/
                        var idVariable = 'hm-rega.0.29956'/*Wetter Luftfeuchte*/;
                        Wetterdatenholenundsetzen();
                        
                        //Windgeschwindigkeit als Zahl
                        var idOpenWeater = 'openweathermap.0.forecast.current.windSpeed'/*Forecast for wind speed*/
                        var idVariable = 'hm-rega.0.29960'/*Wetter Windgeschwindigkeit*/;
                        Wetterdatenholenundsetzen();
                        
                        //Aktualisierung (Zeit)
                        var idOpenWeater = 'openweathermap.0.forecast.current.date'/*Actual date*/;
                        var idVariable = 'hm-rega.0.29953'/*Wetter Aktualisierung*/;
                        wetterdaten = getState(idOpenWeater).val;
                        var date = new Date(wetterdaten);
                        
                        // Umwandeln in deutsches Format
                        
                            //Tagesdatum ermitteln
                            var tag = date.getDate();
                            
                            //Monat ermitteln
                            var month = new Array("1","2","3","4","5","6","7","8","9","10","11","12");
                            var monat = month[date.getMonth()];
                            if(monat.length < 2){
                                monat = "0" + monat;
                            }
                               
                            //Jahr ermitteln
                            var jahr = date.getFullYear();
                        
                            //Stunde ermitteln
                            var stunde = date.getHours();
                            var stunde = stunde.toString();
                            if(stunde.length < 2){
                                stunde = "0" + stunde;
                            }
                            
                            //Minute ermitteln
                            var minute = date.getMinutes();
                            var minute = minute.toString();
                            if(minute.length < 2){
                                minute = "0" + minute;
                            }
                            
                            //Sekunde ermitteln
                            var sekunde = date.getSeconds();
                            var sekunde = sekunde.toString();
                            if(sekunde.length < 2){
                                sekunde = "0" + sekunde;
                            }
                               
                        var ausgabe = tag + "." + monat + "." + jahr + "   " + stunde + ":" + minute + ":" + sekunde;
                        
                        setState(idVariable, ausgabe);
                        
                        // ##################################################################
                        //                  FUNKTION Holen und setzen     
                        // ##################################################################
                        
                         function Wetterdatenholenundsetzen() {
                            wetterdaten = getState(idOpenWeater).val;
                            if (wetterdaten != null) setState(idVariable, wetterdaten);
                        
                        
                        });
                        
                        paul53 1 Reply Last reply Reply Quote 0
                        • Homoran
                          Homoran Global Moderator Administrators @Homoran last edited by

                          @skorpil sagte in Bitte Hilfe bei Interpretation von Fehlermeldungen:

                          @Homoran kriegt er ja gerne. Aber wie muß ich das machen?

                          Wenn du die Signaturen ausgeblendet hast, kannst du es natürlich nicht lesen 😉 :

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

                          Unter jedem Beitrag befindet sich rechts unten neben "Zitieren" eine Bewertungsinfo mit einem "Bewertung hoch" ^ - dann dem Wert der Bewertung für diesen Beutrag (leider 0) und dann ein "Bewertung runter" Icon um wie auch immer geartetet schlechte Beiträge auch negativ beurteilen zu können

                          S 1 Reply Last reply Reply Quote 1
                          • paul53
                            paul53 @skorpil last edited by paul53

                            @skorpil sagte:

                            das fertige Script.

                            Ändere bitte noch

                                if (wetterdaten) setState(idVariable, wetterdaten);
                            

                            in

                                if (wetterdaten != null) setState(idVariable, wetterdaten);
                            

                            da sonst die Aussentemperatur von 0 °C nicht in die SV geschrieben wird.

                            S 1 Reply Last reply Reply Quote 1
                            • S
                              skorpil @Homoran last edited by

                              @Homoran Dankeschön! Wußte ich nicht!

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

                                @paul53 Danke! Habe ich nun auch in obigem Script geändert!

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

                                Support us

                                ioBroker
                                Community Adapters
                                Donate

                                895
                                Online

                                31.8k
                                Users

                                80.0k
                                Topics

                                1.3m
                                Posts

                                javascript
                                5
                                27
                                888
                                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