Ankündigung

Einklappen
Keine Ankündigung bisher.

Weihnachtsbeleuchtung automatisiert einschalten

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

    Weihnachtsbeleuchtung automatisiert einschalten

    Hallo zusammen,

    ich habe die folgende Rule zum Einschalten meiner Weihnachtsbeleuchtung.

    Code:
    rule "Weihnachtsbeleuchtung Ende November bis Mitte Januar"
    
    when Item ws_daemmerung changed then if((now.getDayOfYear > now.withDate(now.year,11,26).getDayOfYear || now.getDayOfYear < 16)) {
    
    if(ws_daemmerung.state == OPEN)
    
    {
    
    au_terrasse_st.sendCommand(ON)
    au_eingang_st.sendCommand(ON)
    
    }
    
    else {
    
    au_terrasse_st.sendCommand(OFF)
    
    au_eingang_st.sendCommand(OFF)
    }
    
    }
    
    end

    Ich bekomme aktuell immer den folgenden Fehler wenn die Dämmerung eintritt:


    2020-11-06 18:33:45.953 [ERROR] [ntime.internal.engine.RuleEngineImpl] - Rule 'Weihnachtsbeleuchtung Anfang November bis Mitte Januar': An error occurred during the script execution: Could not invoke method: org.joda.time.DateTime.withDate(int,int,int) on instance: 2020-11-06T18:33:45.947+01:00

    2020-11-06 18:33:45.953 [ERROR] [ntime.internal.engine.RuleEngineImpl] - Rule 'Weihnachtsbeleuchtung Anfang November bis Mitte Januar': An error occurred during the script execution: Could not invoke method: org.joda.time.DateTime.withDate(int,int,int) on instance: 2020-11-06T18:33:45.951+01:00


    Weiß jemand woran das liegt?

    #2
    Keine richtige Antwort, aber mach doch den Teil der Abfrage raus in dem zu jeder rule Abfrage geschaut wird ob es wirklich November bis Januar wäre...
    Das ist doch wie man sieht sehr Fehleranfällig.

    Ich habe mir einen Dummy switch gebaut mit dem ich Weihnachten an und aus schalten kann.
    Die rule prüft einfach auf den Status des switch und du musst ihn nur einmal Ende November anschalten und Mitte Januar wieder aus - fertig

    Ich habe meine sitemap daraufhin auch angepasst und mir wird neben den Etagen dann eine Kategorie "Weihnachten" angezeigt, in der ich dann auch manuell die Weihnachts Beleuchtung schalten kann und wenn der Weihnachts - switch off ist gibt's das auch nicht mehr in der weboberfläche zum anklicken...


    Edit: um auf den Fehler einzugehen, ich denke es könnte am Format des zu prüfenden Datum liegen. Versuche mal an dem

    Code:
    now.withDate([COLOR=#e74c3c][B]now.year[/B][/COLOR],11,26).getDayOfYear
    rumzuspielen, da er ja laut Fehlermeldung einen integer (wenn ich mich noch richtig an die Ausbildung erinnere, einen Zahlenwert) erwartet aber nicht erhält...


    Zuletzt geändert von desidia; 07.11.2020, 01:25.

    Kommentar


      #3
      Hm, ich lese das nicht aus der Fehlermeldung heraus. Für mich steht da, dass er die Funktion withDate nicht auf das Datum 2020-11-06T18:33:45.951+01:00 anwenden konnte. Wäre eine einer der übergebenen Parameter nicht vom Typ Integer (Ganzzahl), würde er eben diesen Parameter anmeckern. now.year sollte eigentlich Integer zurückliefern.

      Kommentar

      Lädt...
      X