Langen Taster-Druck beim Shelly 2.5 erkennen

Geflasht oder ungeflasht ...

Moderator: seppy

Motoko
Beiträge: 8
Registriert: 12. Okt 2021 21:50

Langen Taster-Druck beim Shelly 2.5 erkennen

Beitrag von Motoko »

Ich verwende einen Einzel-Taster an einem Shelly 2.5, der den Rollo steuert (runter, stop, hoch, stop, runter, etc.)
Nun würde ich gerne bei einem langen Tasterdruck den Rollo auf eine bestimmte Position fahren lassen.

Das Problem ist, dass ich in meinem openHAB 3.2 (Update auf 3.3 ist aktuell leider nicht möglich) nicht an den langen Tastendruck komme. Laut Binding-Beschreibung sollte man LONG_PRESSED beim Button-Event entnehmen können. Aber diesen kann ich als Item irgendwie nicht einrichten. Ich weiß nicht, ob ich etwas falsch mache oder ob da ein Bug vorliegt...

Wenn ich beim Thing auf die Channels gehe, sehe ich zwar "Taste: roller#event (Trigger)" (was hier vermutlich benötigt wird), aber wenn ich auf Add Points to Model + Advanced klicke, wird mit dieser Punkt dort gar nicht mehr angezeigt.
Klicke ich stattdessen auf der Channels-Übersicht bei "Taste" auf "Add Link to Item...", kann ich auf der Folgeseite die Konfiguration nicht abschließen, da beim Klick auf "Link" die Fehlermeldung erscheint:
"There is no profile available for the selected item"
Bei der Profile-Auswahl darüber gibt es nur den Eintrag "Zeitstempel bei Auslöser" und dieser ist ausgegraut/deaktiviert. Ich kann also kein Profil für diesen Punkt wählen.

Mache ich etwas falsch? Gibt es einen Trick/Umweg?

Benutzeravatar
udo1toni
Beiträge: 10045
Registriert: 11. Apr 2018 18:05
Answers: 134
Wohnort: Darmstadt

Re: Langen Taster-Druck beim Shelly 2.5 erkennen

Beitrag von udo1toni »

Der Punkt ist, dass es sich um einen Trigger Channel handelt.
Trigger Channel kannst Du nicht mit einem Item verknüpfen.
Stattdessen musst Du eine Rule programmieren, und dort den Trigger Channel als Trigger auswählen.
Innerhalb des Triggers kannst Du dann eingeben, auf welchen Wert die Rule reagieren soll (hier LONG_PRESSED) und natürlich, was passieren soll, falls der Trigger erkannt wurde.
openHAB2.5.12 in einem Debian-Container (Proxmox, LXC)

Motoko
Beiträge: 8
Registriert: 12. Okt 2021 21:50

Re: Langen Taster-Druck beim Shelly 2.5 erkennen

Beitrag von Motoko »

Das wird genau das Problem sein. Da ich das so noch nirgends wo anders verwendet habe, habe ich da gerade Startschwierigkeiten.

Ich habe jetzt eine Rule angelegt mit Add Trigger > Thing > Shelly ausgewählt > Channel > Dort wird mit "roller#event ()" angeboten.
Als Aktion habe ich erstmal einfach nur einen Log eintrag an.
Aber egal wie ich den Taster am Shelly drücke, es wird nichts geloggt.
Muss ich noch etwas anderes machen? Kann ich die Events/Trigger irgendwie besser monitoren?

Ich habe auf der Suche noch das hier von Dir gelesen:
udo1toni hat geschrieben: 11. Nov 2019 22:08 Da es sich nicht um ein Event Channel handelt, kannst Du damit auch keine Rule triggern. Stattdessen musst Du den Channel mit einem Item verlinken und dieses Item als Trigger verwenden.
Ist Trigger Channel und Event Channel das gleiche? Wenn ja, stehe ich jetzt komplett im Wald. Ich dachte, eben nicht mit einem Item verlinken!?

So sieht der Code der angelegten Rule aus. Dort nennt sich das "core.ChannelEventTrigger".

Code: Alles auswählen

configuration: {}
triggers:
  - id: "1"
    configuration:
      thingUID: shelly:shelly25-roller:eineid
      channelUID: shelly:shelly25-roller:eineid:roller#event
    type: core.ChannelEventTrigger
conditions: []
actions:
  - inputs: {}
    id: "2"
    configuration:
      type: application/javascript
      script: >-
        var logger =
        Java.type('org.slf4j.LoggerFactory').getLogger('org.openhab.rule.' +
        ctx.ruleUID);

        logger.info('Trigger Event:');
        //logger.info(receivedEvent);
        //logger.info(receivedTrigger);
        //logger.info(event.event.toString());
    type: script.ScriptAction

Benutzeravatar
udo1toni
Beiträge: 10045
Registriert: 11. Apr 2018 18:05
Answers: 134
Wohnort: Darmstadt

Re: Langen Taster-Druck beim Shelly 2.5 erkennen

Beitrag von udo1toni »

Eventuell musst Du im Shelly das Ganze noch aktivieren. Da bin ich mir nicht sicher, weil ich keine Shellies nutze.
openHAB2.5.12 in einem Debian-Container (Proxmox, LXC)

Harka
Beiträge: 39
Registriert: 30. Apr 2021 13:13
Answers: 3

Re: Langen Taster-Druck beim Shelly 2.5 erkennen

Beitrag von Harka »

Ich meine irgend wo gelesen zu haben, das es in der Original-Shelly-Software im Rollo-Modus LONG_PRESSED nicht gibt. Tasmota könnte helfen.
Aktuell behelfe ich mich damit die Eingänge (Channel Switch) zu triggern. Werden diese nur sehr kurz gedrückt kam bei mir kein Log-Eintrag. Mit Log -> Reaktion per Skript. Ist aber Gewöhnungsbedürftig und ob wir das so beibehalten ...

Motoko
Beiträge: 8
Registriert: 12. Okt 2021 21:50

Re: Langen Taster-Druck beim Shelly 2.5 erkennen

Beitrag von Motoko »

Es kommt ja leider gar kein Trigger an. Wenn es im Rollo-Modus nur kein LONG_PRESSED gibt, müssten ja dennoch erstmal die anderen ankommen.
In den Einstellungen des Shelly 2.5 sehe ich keine Option, irgendwelche Trigger-Einstellungen zu verändern.

Entweder der Trigger-Channel funktioniert beim Shelly 2.5 (mit aktuellster Firmware) grundsätzlich nicht, oder das OH3-Binding hat hier einen Bug oder ich mache etwas falsch. Ich würde ja auf letzteres Tippen, aber ich komme leider nicht alleine drauf. Meine Konfiguration habe ich oben gepostet. Sieht die denn richtig aus? Vielleicht teste ich das auch falsch. Kommen bei @Harka denn andere Trigger-Events an?

Harka
Beiträge: 39
Registriert: 30. Apr 2021 13:13
Answers: 3

Re: Langen Taster-Druck beim Shelly 2.5 erkennen

Beitrag von Harka »

Trigger-Channel kommt bei mir ja auch keiner an. Die Shellys sind aber, wenn der Taster (hier elektromechanisch) nur kurz gedrückt wird, nicht so mitteilsam.
Für die Gruppe, in der alle Eingange (input/switch) liegen sieht das bei mir dan so aus:

Code: Alles auswählen

triggers:
  - id: "6"
    configuration:
      groupName: g_Rollos_Schalter
      state: ON
      previousState: OFF
    type: core.GroupStateChangeTrigger

tim.l
Beiträge: 15
Registriert: 24. Jun 2022 08:16

Re: Langen Taster-Druck beim Shelly 2.5 erkennen

Beitrag von tim.l »

Hallo zusammen,

ich habe auch den Button und kann alle 4 Events abfangen. Bin selbst Neuling und weiß nicht ob es der richtige Weg ist, die Trigger laufen aber in meinen Rules (via GUI gebaut).

Beste Grüße,
Tim

Beispiel für "doppelt drücken":

Code: Alles auswählen

configuration: {}
triggers:
  - id: "1"
    configuration:
      thingUID: shelly:shellybutton1:XXXXX
      event: DOUBLE_PRESSED
      channelUID: shelly:shellybutton1:XXXXX:status#button
    type: core.ChannelEventTrigger
...
Beispiel für "lange drücken".

Code: Alles auswählen

configuration: {}
triggers:
  - id: "1"
    configuration:
      thingUID: shelly:shellybutton1:XXXXX
      event: LONG_PRESSED
      channelUID: shelly:shellybutton1:XXXXX:status#button
    type: core.ChannelEventTrigger
...
Meine openHAB Erfahrungen bei mir im Blog: https://360friends.de/tag/openhab/ ;)

Motoko
Beiträge: 8
Registriert: 12. Okt 2021 21:50

Re: Langen Taster-Druck beim Shelly 2.5 erkennen

Beitrag von Motoko »

Mir geht es hier wie gesagt um den Shelly 2.5, wo ein Taster angeschlossen ist und nicht um den Shelly Button. Der funktioniert wahrscheinlich anders.

tim.l
Beiträge: 15
Registriert: 24. Jun 2022 08:16

Re: Langen Taster-Druck beim Shelly 2.5 erkennen

Beitrag von tim.l »

Sorry… habe ich wohl was überlesen :-/ Dennoch viel Erfolg bei dem „zum laufen bekommen“.
Meine openHAB Erfahrungen bei mir im Blog: https://360friends.de/tag/openhab/ ;)

Antworten