Ankündigung

Einklappen
Keine Ankündigung bisher.

Rollladen per Rule ansteuern

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

    Rollladen per Rule ansteuern

    Hallo zusammen.
    Ich habe dank einer, für mich tollen Seite (www.zukunftathome.de), eine Rule für die Ansteuerung meiner 4 Rollladen erstellt.
    Heute Abend hat diese das erste mal "gefeuert", allerdings "nur" 3. Mein Esszimmerrollladen der in Abhängigkeit zu der Fenstergriffstellung nur fahren darf, wenn der Griff auf "CLOSED" steht, ist nicht gefahren

    Hier meine Regel:
    Code:
    rule "Rollladen runter Abends"
    when
              Channel 'astro:sun:home:set#event' triggered START
    then
              createTimer(now.plusMinutes(50))
              [
                   K_Rol_1LEVEL.sendCommand(70)
                   WZ_Rol1LEVEL.sendCommand(100)
                   B_Rol_1LEVEL.sendCommand(100)
                   if (EZ_Griff_1STATE.state ==CLOSED)
                   {
                       sendCommand(EZ_Rol_1LEVEL, DOWN)
                   }
             ]
    end
    Darf in der [] Klammer keine if-Bedingung stehen, oder habe ich da etwas falsch gemacht.

    Ach so, lt. Visu Studio Code steht in dem Item " EZ_Griff_1STATE.state" "CLOESED".

    Leider war ich zur Zeit des Auslösens nicht zuhause. Kann ich das irgendwo nachschauen, ob es irgendwo einen Fehler gab?


    #2
    Hallo, es freut mich, dass dir meine Ausführungen geholgen haben. Mit dem Timer habe ich bisher nur in der Standardanwendung Erfahrungen gesammelt. Die einfachste Lösung wäre wohl den EZ_ROL_1LEVEL in einer eigenen Regel zu schalten.

    Alternativ kannst du dir einen Dummy Switch anlegen und ihn zum Test anstelle des Astro Events einfügen. So kannst du den Start der Regel simulieren und schauen was der Log ausgibt.

    Viele Grüße
    Patrick

    Kommentar


      #3
      Hallo hoggele1969,

      mir sind da zwei Sachen aufgefallen.
      Zum einen:
      EZ_Griff_1STATE.state ==CLOSED sollte zu
      EZ_Griff_1STATE.state == OFF geändert werden. Ich vermute mal, das EZ_Griff_1STATE ein boolean (ETS1.* 1-Bit: ON/OFF, 1/0, AUF/ZU, ...) ist. In openHAB werden diese alle in OFF/ON dargestellt, denn es weiß ja nicht, was genau dargestellt wird. Außerdem ist OFF und ON kein String, sondern vergleichbar mit false und true in den bekannten Programmiersprachen.

      Zum anderen
      sendCommand(EZ_Rol_1LEVEL, DOWN) ändern zu
      EZ_Rol_1LEVEL.sendCommand(100). Grund hierfür ist, das vermutlich eine Zahl erwartet wird. Es ist besser die Eigenschaft der Variable zu benutzen. udo1toni hatte dies in der Vergangenheit schon länger ausgeführt.

      Kommentar


        #4
        Zitat von heiko74 Beitrag anzeigen
        Hallo hoggele1969,

        mir sind da zwei Sachen aufgefallen.
        Zum einen:
        EZ_Griff_1STATE.state ==CLOSED sollte zu
        EZ_Griff_1STATE.state == OFF geändert werden, ...

        Zum anderen
        sendCommand(EZ_Rol_1LEVEL, DOWN) ändern zu
        EZ_Rol_1LEVEL.sendCommand(100)....
        Okay, das mit down zu 100 werde ich mal versuchen, da die anderen ja auch mit einem Zahlenwert gefahren werden, aber das ändern auf OFF kann ich mir nicht so vorstellen, denn wenn ich mir den Wert im Visual Studio anschaue, dann steht dort CLOSED drin, also sollte das doch passen.
        Aber ich schaue morgen mal, ob das mit den Werten funktioniert.

        Kann mir noch jemand sagen, wo ich das gesamte Log einsehen kann? In dem logviewer, den man über den Port 9001 anschauen kann, komme ich ja wohl nur 30 Minuten zurück und im Log Verzeichniss habe ich nur den Vortag drin, nie den aktuellen. Oder kann mir jemand erklären, ob und wie das mit dieser karaf Konsole funktioniert, ohne das ich Informatik studieren muss?

        Kommentar


          #5
          Da bin ich auch schon wieder.
          Leider kommt meine Rule nicht so richtig ins laufen
          Es scheint wohl an der if-Bedingung zu liegen.
          Code:
          rule "Rollladen runter Abends"
          when
                       Channel 'astro:sun:home:set#event' triggered START
          then
                       createTimer(now.plusMinutes(30))
                       [
                            K_Rol_1LEVEL.sendCommand(70)
                            WZ_Rol1LEVEL.sendCommand(100)
                            B_Rol_1LEVEL.sendCommand(100)
                                if (EZ_Griff_1STATE.state ==CLOSED)
                                   {
                                      EZ_Rol_1LEVEL.sendCommand(100)
                                   }
                       ]
          end
          Wie gesagt, die oberen 3 Rollläden fahren brav herunter, nur der im Esszimmer noch nicht.

          Im Log habe ich mal aufgepasst, was kommt, wenn ich den Griff bewege:
          Code:
          2018-01-23 17:19:45.948 [vent.ItemStateChangedEvent] - EZ_Griff_1STATE changed from CLOSED to OPEN
          2018-01-23 17:19:46.996 [vent.ItemStateChangedEvent] - EZ_Griff_1STATE changed from OPEN to TILTED
          2018-01-23 17:19:49.596 [vent.ItemStateChangedEvent] - EZ_Griff_1STATE changed from TILTED to OPEN
          2018-01-23 17:19:51.093 [vent.ItemStateChangedEvent] - EZ_Griff_1STATE changed from OPEN to CLOSED
          Das Item:
          Code:
          String EZ_Griff_1STATE "Terassentürgriff K1 state" (EZ_Fenstergriff, Esszimmer) {channel="homematic:HM-Sec-RHS:XXXXXXXX:LEQ0XXXXXX:1#STATE"
          Kann das am Item liegen (Ist vom Typ "STRING"?
          Wo/Was kann ich das noch überprüfen?

          Das es sich um den Türgriff mit 3 States handelt (geschlossen, geöffnet, gekippt) hatte ich doch erwähnt, oder?
          Ich hatte einen Tip von Openhab1 versucht (Da wurde der State in Ziffern ausgewiesen (0=CLOSED; 1=TILTED; 2=OPEN), aber wenn ich ein Number Item anlege, dann bleibt das Ergebniss (Website) leer, also auf der Seite steht ein "-"), egal wie oft ich den Griff bewege.
          Zuletzt geändert von hoggle1969; 23.01.2018, 17:44.

          Kommentar


            #6
            Dann sollte folgendes funktionieren:

            Zitat von hoggle1969 Beitrag anzeigen
            (EZ_Griff_1STATE.state.toString =="CLOSED")

            Kommentar

            Lädt...
            X