Shelly Button1 sendet Bei Tastendruck öfters

Geflasht oder ungeflasht ...

Moderator: seppy

logologo
Beiträge: 9
Registriert: 2. Nov 2020 05:54
Answers: 0

Re: Shelly Button1 sendet Bei Tastendruck öfters

Beitrag von logologo »

Morgen udo1toni,

Sorry für die späte Rückmeldung 8-) .
Du hast recht der Shelly hat nur einen Button.

Erstaunlich wie Du die Rules aus dem "Ärmel" schüttelst. :!:

Bei deiner Rule bekomme ich eine Fehlermeldung in VSC.

Es geht um nachfolgende Zeile
iDimm = SchlafzimmerStehlampeFarbtemperaturBrightness.state as Number

Die Fehlermeldung in VSC lautet:
Type mismatch cannot from Number to Integer

Die Rule wird in Openhab ausgeführt. Bei der Leuchte tut sich jedoch nichts.

Wo müsste ich ansetzen?

liebe Grüsse
logologo

Darkwin101
Beiträge: 424
Registriert: 6. Mär 2019 11:19
Answers: 14

Re: Shelly Button1 sendet Bei Tastendruck öfters

Beitrag von Darkwin101 »

Versuche es mal so

Code: Alles auswählen

iDimm = (SchlafzimmerStehlampeFarbtemperaturBrightness.state as Number).intValue

logologo
Beiträge: 9
Registriert: 2. Nov 2020 05:54
Answers: 0

Re: Shelly Button1 sendet Bei Tastendruck öfters

Beitrag von logologo »

Hallo udo1toni,

Das war die Lösung :D
VSC meckert zwar noch mit der gleichen Fehlermeldung. Die Rule wird von openhab jedoch geladen.

Drück ich den Taster ändert sich der Dimmwert um 1 von 0-100 bzw. von 100-0.

Ein stoppen wärend der Dimmung ist leider nicht möglich. :?:

liebe Grüsse
logologo

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

Re: Shelly Button1 sendet Bei Tastendruck öfters

Beitrag von udo1toni »

Du musst mal schauen, welcher Trigger gesendet wird, wenn Du den Taster loslässt. Das wäre die 2. Rule, die ich mal mit dem Trigger RELEASED versehen habe, aber das war ja nur eine Vermutung. Falls es keinen Trigger beim Loslassen gibt, müssten wir eine Rule für einen kurzen Druck (SHORT_PRESSED) dafür verwenden. Falls Dieser Tastendruck bereits belegt ist (z.B. mit EIN/AUS), müsste in der Rule vor Ausführung des eigentlichen Befehls geprüft werden, ob der Timer existiert. Ist das der Fall, wird dann der Timer abgebrochen und entfernt. Ist das nicht der Fall, wird von 0 auf 100 oder von nicht-0 auf 0 getoggelt.

Die Bedienung wäre dann natürlich etwas gewöhnungsbedürftig, Kurzer Druck -> AN/AUS, Langer Druck -> Dimmvorgang wird gestartet, Kurzer Druck während des Dimmens -> Dimmvorgang stoppen.
openHAB4.1.2 stable in einem Debian-Container (bookworm) (Proxmox 8.1.5, LXC), mit openHABian eingerichtet

logologo
Beiträge: 9
Registriert: 2. Nov 2020 05:54
Answers: 0

Re: Shelly Button1 sendet Bei Tastendruck öfters

Beitrag von logologo »

Hallo udo1toni,

Ich habe mir das Verhalten des Shelly Button1 in der openhab_log angesehen.

Bei einem Long_Pressed auf den Taster wird wird nur "Long_Pressed" abgesetzt und erscheint in der Log.
Teilweise auch öfter. Aber das hatten wir schon.

Es wird dann wohl so sein, dass ein weiterer Tastendruck
z.B. Short_Pressed den Dimmvorgang unterbrechen muss.

Etwas umständlich in meinen Augen. Aber ist wohl so.

Prinzipil möchte ich tiefer in die Erstellung von Rules "eintauchen".
Im Netz findet man allerdings nur Fragmente.
Gibt es eine gute Quelle zum einlesen?. Mit Beispielen, so wie du die Rules
kommentierst, wäre es ideal.

Liebe Grüsse
logologo

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

Re: Shelly Button1 sendet Bei Tastendruck öfters

Beitrag von udo1toni »

Grundsätzlich wirst Du mehr als nur Fragmente finden, allerdings wird das Problem sein, dass es eben keine Kategorisierung gibt.

Bei openHAB ist learning by doing angesagt :) Du kannst im Netz nach XTend suchen, denn das ist die Grundlage der Rules DSL. XTend ist sehr gut dokumentiert, aber für Programmierer... Weiterhin ist die Dokumentation zu Java (auf dem XTend aufbaut...) eine gute Grundlage, allerdings gibt es auch viele Unterschiede zu nativem Java, also ist das auch nur eine grobe Richtung.
Die beste Quelle für eigenen Code ist also, sich Code von anderen anzuschauen.

Was das LONG_PRESSED betrifft: Weil Du schreibst, es trete teilweise auch mehrfach auf, ist das zyklisch, (also solange Du drückst regelmäßig) oder eher "durch Zufall mehrfach?"
openHAB4.1.2 stable in einem Debian-Container (bookworm) (Proxmox 8.1.5, LXC), mit openHABian eingerichtet

logologo
Beiträge: 9
Registriert: 2. Nov 2020 05:54
Answers: 0

Re: Shelly Button1 sendet Bei Tastendruck öfters

Beitrag von logologo »

Hallo udo1toni,

Bin leider kein Programmierer. Ich komme von der Hardwareseite.
Mit dem Code tue ich mir halt noch schwer. Was nicht ist kann ja noch werden.... :roll:

Der Shelly sendet nach einem Tastendruck leider nicht zyklisch. Gedrückt halten ergibt somit
keine weitere(n) Meldung(en) bzw. man muss eben erneut drücken.

Ich habe hier noch eine Tradfri Remote. Werde es mal damit testen.

liebe Grüsse
logologo

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

Re: Shelly Button1 sendet Bei Tastendruck öfters

Beitrag von udo1toni »

logologo hat geschrieben: 21. Dez 2020 13:59 Der Shelly sendet nach einem Tastendruck leider nicht zyklisch. Gedrückt halten ergibt somit
keine weitere(n) Meldung(en) bzw. man muss eben erneut drücken.
Ja, ich denke, der Taster ist anders gedacht, z.B.
  • 1 x kurz -> Deckenleuchte toggeln,
  • 2 x kurz -> Stehleuchte toggeln,
  • 3 x kurz -> Strom für Fernseher toggeln,
  • langer Tastendruck -> alles Aus.
Man könnte versuchen, ob Shelly noch das Ereignis RELEASED einbaut (also als Verbesserungsvorschlag bei der Firma einreichen). Es kann aber sein, dass die Hardware (bzw. das Design) das nicht hergibt.
openHAB4.1.2 stable in einem Debian-Container (bookworm) (Proxmox 8.1.5, LXC), mit openHABian eingerichtet

Antworten