Ankündigung

Einklappen
Keine Ankündigung bisher.

Regeln mit Astro Binding

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

    Regeln mit Astro Binding

    Hallo zusammen. Ich habe mir das Astro Binding installiert und hatte gestern abend mal probiert, ob es funktioniert.

    Grundlegend sehe ich ja beim binding in der Paper UI, dass z.B. der Sonnenuntergang ja Start- und Endzeit hat. Was für Zeit nimmt denn das OH für die Steuerung? Startzeit? Endzeit?

    Auf die Schnelle hat es nicht funktioniert gestern abend. Anscheinend mache ich einen Fehler in den rules. Könnt ihr mal drüber sehen, was ich falsch mache?

    Ich habe items angelegt und bei 3 Rollos die Gruppe gSUG hinterlegt, die nun in der Rule angepsprochen werden soll.

    rule "Rollos SUG"

    when
    Channel 'astro:sun:xxx:set#event' triggered START
    then
    createTimer(now.plusMinutes(10)) [| gSUG.allMembers.forEach(item | { item.sendCommand(ON) } ) ]
    end
    Oder hier auch. Eine Gruppe mit Lampen soll nach Sonnenuntergang geschaltet werden.

    rule "Aussenbeleuchtung SUG-EIN"

    when
    Channel 'astro:sun:xxx:set#event' triggered START
    then
    createTimer(now.plusMinutes(15))
    [|
    sendCommand(gAussenbeleuchtung, ON)
    ]
    end
    Muss ich immer noch irgendwas machen, wenn ich die .rules speichere und auf den server schicke? Also ich meine, greift das immer gleich oder muss noch was neu gestartet werden, damit die neuen Regeln greifen?

    Oder dürfen überhaupt 2 rules in einer rule-Datei rein, die genauso abgefragt werden wie in meinem Fall? Oder muss dann immer eine separate .rule erstellt werden?

    #2
    Mhhh heute funktionierte es... Habe die rules so geschrieben. Alles auch in einer .rules Datei...

    rule "Rollos zur Straße aus bei SUG"
    when
    Channel 'astro:sun:aaa:set#event' triggered START
    then
    createTimer(now.plusMinutes(2)) [| gSUG.allMembers.forEach(gSUG | { gSUG.sendCommand(DOWN) } ) ]
    end
    rule "Aussenbeleuchtung Zeitschaltuhr-EIN"

    when
    Channel 'astro:sun:aaa:set#event' triggered START
    then
    createTimer(now.plusMinutes(1))
    [|
    sendCommand(gAussenbel, ON)
    ]
    end

    Kommentar


      #3
      Man sollte dem Astro Binding etwas Zeit geben - je nach Definition kann es sein, dass die Channel erst nach 0 Uhr korrekt funktionieren, also, wenn es nach dem Einrichten einen Tageswechsel gegeben hat. Ein Neustart von openHAB sollte aber auch funktionieren.

      Grundsätzlich: Es gibt die Code Tags, um Code zu markieren. Zitat Tags sind hier ungeeignet.
      Weiterhin empfehle ich immer die Verwendung der Methode statt der Action. Deine Rule sähe dann so aus:
      Code:
      rule "Aussenbeleuchtung Zeitschaltuhr-EIN"
      when
          Channel 'astro:sun:aaa:set#event' triggered START
      then
          createTimer(now.plusMinutes(1), [ |
              gAussenbel.sendCommand(ON)
          ])
      end
      Das Lambda (der Teil in den eckigen Klammern) ist logisch gesehen der zweite Parameter der createTimer Anweisung, weshalb ich gerne die oben gezeigte Schreibweise anwende, einfach, um diesen Zusammenhang optisch besser sichtbar zu machen. Dein Schreibweise ist genauso korrekt.

      Kommentar

      Lädt...
      X