Ankündigung

Einklappen
Keine Ankündigung bisher.

Button: On beim Drückem, Off beim Loslassen

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

    Button: On beim Drückem, Off beim Loslassen

    Hallo zusammen,

    ich möchte einen Antrieb genau so lange fahren wir ein Button im GUI gedrückt wird.

    Bei einem KNX Taster hab ich das so gelöst, dass er beim Drücken eine 1 und beim Loslassen eine 0 sendet, aber wie bekomme ich das mit openHAB hin?

    Danke schon mal für Eure Hilfe!

    Jockel

    #2
    Meines Wissens leider gar nicht. Näherungsweise kannst Du es aber folgendemaßen machen:

    Setze in der Sitemap für das entsprechende Item ein sendfrequency=100 (für 1/10sec).
    Dann schreibe ein Rule, die mit diesem Item getriggert wird und einen Timer setzt, der nach z.B. 110 msec. das Stop-Signal sendet. also ungefähr so:

    Code:
    import org.joda.time.DateTime
    var Timer t_release = null
    
    rule "test release"
    when
        Item MyButton received command
    then
        if (t_release != null) {
            t_release.cancel
            t_release = null
        }
        else
            MyItem.sendCommand(MyButton.state)
        t_release = createTimer(now.plusMillis(110))[|
        MyItem.sendCommand(STOP)]
    end
    Die Sache hat zwei Haken:
    Der erste geht unmittelbar aus dem Code hervor, nämlich, dass es eine Ungenauigkeit von 110msec gibt, je nachdem, wann Du loslässt.
    Der zweite ist etwas subtiler... wenn Du nämlich einfach den knx-Aktor mit dem Item in der UI verknüpfst, kannst Du den Aktor nicht mehr von knx aus bedienen, es sei denn, Du lässt die Schalter auf knx-Seite auch alle 100msec ein up/down schicken, denn die Rule bekommt ja den Tastendruck von knx-Seite mit, triggert darauf und startet den Timeout. Du brauchst also zwei Items.

    Es kann auch sein, dass die 100msec Intervall etwas optimistisch sind, da müsste man halt testen, wie sehr openHAB damit beschäftigt ist. Ein größeres Intervall führt aber natürlich zu einer größeren Ungenauigkeit (Haken eins).

    Der Code ist aus dem Kopf, also ungetestet - aber auf den zweiten Haken bin ich an anderer Stelle schon reingefallen...

    Kommentar

    Lädt...
    X