NEWS
Shelly Button 1
-
Hallo,
ich habe mir einen Shelly Button1 zugelegt.
Nun versuche ich als absoluter Neuling den Button1 in ioBroker auszuwerten.
Zum Test, wie der Button1 reagiert, habe ich versucht mir ein Skript zu erstellen.
Ich wollte mir den Wert des Datenpunktes "Event" bei jedem Tastendruck ausgeben lassen.
Aber egal auf was ich abfrage "wurde geändert" oder "wurde aktualisiert", ich bekomme immer
nur eine Debug-Ausgabe wenn sich der Datenpunkt auch wirklich ändert.
Was muss ich machen, um jedes mal den Wert des Datenpunktes "Event" zu bekommen,
auch wenn sich der Wert nicht geändert hat, also wenn ich z.B. den Button1 2 mal nur mit einen Tastendruck betätige?
Beste Grüße -
@ThimThaler sagte:
Was muss ich machen, um jedes mal den Wert des Datenpunktes "Event" zu bekommen,
Mit "wurde aktualisiert" sollte jeder Tastendruck triggern, es sei denn, der Adapter aktualisiert den Zeitstempel bei erneutem Drücken der gleichen Taste nicht.
-
@paul53
Hallo.
So wird es wohl leider sein. Auch bei "wurde aktualisiert" wird erst getriggert,
wenn sich der Wert wirklich ändert. -
@ThimThaler
Das heißt z.B. wenn ich mit einem Tastendruck meine ganze Beleuchtung im Haus ausgeschaltet habe,
aber eine Beleuchtung wird wieder eingeschaltet, kann ich danach nicht wieder mit einem
Tastendruck die ganze Beleuchtung ausschalten, da ich das schon zuvor gemacht habe
und der Adapter nur auf eine Änderung und nicht auf eine Aktualisierung reagiert. -
@ThimThaler
Kannst du den Wert nicht auf einen anderen Wert ändern nachdem dein Event ausgeführt wurde? Du reagierst auf "S" und setzt den Wert danach auf "-1". Dann sollte der Adapter doch wieder eine Änderung registrieren. Und bei "-1" passiert einfach nichts. -
@mbw
Ich hoffe ich habe dich richtig verstanden und im Skript richtig umgesetzt:
Beim 1x Drücken auf den Button, setze ein "X" in den Wert. Doch es wird 2x ein "S" ausgegeben.
Im Datenpunkt ist das "X" aber vorhanden.
-
@ThimThaler
Du gibst ja auch 2 Mal den gleichen Wert aus. Entweder du führst noch einen falls-Block ein mit Wert = X und machst dort dann die Ausgabe oder du musst Wert nochmal den Wert aus Event zuweisen vor der zweiten Ausgabe.Bekommst du denn ein Event beim 2 Klick?
-
stehe vor dem selben Problem.
Wenn der Shelly Button am USB Strom hängt, dann ändert sich der Event Counter und man kann darüber triggern. Aber ohne Strom ändert sich Event nicht.
Liegt es am Shelly Button oder am Shelly Adapter? Das ist wohl die Frage.
-
Wäre ansteuern über URL eine Lösung?
Ich habe auch verschiedenes versucht über Event Datenpunkt aber wie ihr schon geschrieben habt, funktioniert es nur wenn man jedes mal eine andere Tatsendruck nimmt. -
@Albert-K @ThimThaler @Bolländer
https://shelly-api-docs.shelly.cloud/#shelly-button1 ... mehr gibt die API nicht her. Seitens CoAP kommen diese Werte:
"I":2102,"T":"EV","D":"inputEvent","R":["S/L/SS/SSS",""],"L":1 "I":2103,"T":"EVC","D":"inputEventCnt","R":"U16","L":1 "I":3115,"T":"S","D":"sensorError","R":"0/1","L":1 "I":3112,"T":"S","D":"charger","R":["0/1","-1"],"L":2 "I":3111,"T":"B","D":"battery","R":["0/100","-1"],"L":2 "I":9102,"T":"EV","D":"wakeupEvent","R":["battery/button/periodic/poweron/sensor/ext_power","unknown"],"L":2}]}
-
@harrym so das liegt an Shelly wie sie den Button eingerichtet haben und/oder was sie an API daten freigeben?
-
@Bolländer event_cnt is not stored in non-volatile memory. da liegt das problem.
-
Hallo zusammen,
ich habe auch die Probleme mit dem Shelly Button und habe es über zwei Trigger Punkte gelöst.
Einmal den Event Count wenn am USB Kabel angeschlossen, ist er über Batterie in Betrieb benutze ich den WLAN Status.
Gruß Andreas
-
Nachdem sich ja in neuen Firmwareupdates nichts getan hat, habe das jetzt so gelöst:
- Adapter simple-api installieren
- State javascript.0.shelly.Button01 als String anlegen
- Im Button dann die 4 "I/O URL Actions" entsprechend belegen:
http://x.x.x.x:Port/set/javascript.0.shelly.Button01?value=S
Dafür muss der Button am Strom angeschlossen sein!
Das Ereignis wird dann immer ausgelöst.Gruß, Ralf
-
@rk62 Könntest du dazu bitte den ein oder anderen Screenshot zur Verfügung stellen? Einstellungen im API-Adapter, Datenpunkte etc.? Also alles quasi was wichtig ist. Kriege den simple Abi nicht einmal ans laufen -.-
Vielen Dank im Voraus. -
@weiserwolf Mit der aktuellen Firmware ist das scheinbar nicht mehr notwendig und man kann den EventCounter nutzen. Ich verwende jetzt die folgende Routine:
-
In der Adapterkonfiguration den Haken bei "Aktualisiere auch Objekte wenn es keine Änderungen an den Werten gibt" setzen. Dann wird, zumindest bei mir, auch ein wiederholt gleicher Tastendruck registriert.
-
Hi leider muss ich hier nochmal nachfragen. Ich habe das exakt so eingerichtet.
Ich sehe in den Objekten auch, dass der Counter hochzählt.
Leider triggert das Script nicht. Bin etwas ratlos.
Es ist alles auf dem neusten Stand. -
@florian112 Bitte mal prüfen:
- Ist das Script gestartet? Vergesse ich auch immer gerne beim testen
- Ist der Trigger auf das richtige Objekt gesetzt bei welchem Du auch das hochzählen beobachtest?
- ioBroker mal komplett neu gestartet?
Sonst kann ich leider auch nicht mehr weiter helfen.
Das wäre dann ja generelles Skript-Problem. -
Sowohl der untere, als auch der obere Block erzeugen keinen Wirkung.
DEr Eventcounter zählt fröhlich hoch.
Neustart hat nichts gebracht.
Muss ich im shelly adapter noch "Aktualisiere auch Objekte wenn es keine Änderungen an den Werten gibt" aktivieren?
Funktioniert zumindest mit den Shelly Switches auch ohne die Option.