NEWS

Bitte Hilfe bei Interpretation von Fehlermeldungen


  • @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“.


  • @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.


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

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

  • Forum Testing Most Active Global Moderator Administrators

    @skorpil sagte in Bitte Hilfe bei Interpretation von Fehlermeldungen:

    wenn es dieses Forum nicht gäbe...

    und warum bekommt Paul dann keine "postive Bewertung"


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


  • ...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);
    
    
    });
    
  • Forum Testing Most Active Global Moderator Administrators

    @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


  • @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.


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


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

Suggested Topics

1.5k
Online

38.3k
Users

43.8k
Topics

611.8k
Posts