NEWS
Test Adapter Shelly v3.3.4 (latest)
-
@CrunkFX , schaue ich mir in 10 Minuten an
-
@Stuebi Jojo kein Stress. Bin für ne Stunde nicht hier, danach könnte ich wieder Testen.
-
@CrunkFX , alles klar. Erklären kann ich es mir nicht bei MQTT . Was passiert dann beim short press? Ändert sich dann Longpush MQTT?
-
@CrunkFX
Er scheint Longpress nach dem drücken nicht mehr abzufragen. -
@CrunkFX sagte in Test Adapter Shelly v3.3.4 (latest):
@Stuebi
CoAP:Also Input 1
// Ruhe [0,131,0] // Shortpush wird bei loslassen zu Ruhe [0,131,1] //Longpush Wird bei loslassen zu Ruhe [0,131,2]
Input 2
// Ruhe [0,141,0] // Shortpush wird bei loslassen zu Ruhe [0,141,1] //Longpush Wird bei loslassen zu Ruhe [0,141,2]
MQTT
Input 1shellies/shellydimmer2-<ID>/longpush/0
Rückgabe: 1 bei longpush. Beim Loslassen nichts
shellies/shellydimmer2-<ID>/input/0
Rückgabe: 1 bei shortpush ; 0 bei loslassen ; ebenfalls 0 bei loslassen von Longpush
Input 2
shellies/shellydimmer2-<ID>/longpush/1
Rückgabe: 1 bei longpush. Beim Loslassen nichts
shellies/shellydimmer2-<ID>/input/1
Rückgabe: 1 bei shortpush ; 0 bei loslassen ; ebenfalls 0 bei loslassen von Longpush
Was meinst du mit nichts bei longpush?
-
@Stuebi Beim loslassen vom Input wird im Channel /longpush nichts gesendet also keine 0 oder ähnliches. Nur beim Input high >1000ms
-
@CrunkFX , d.h der longpushWert bleibt dann bei MQTT auf 1 und geht nie wiede rzurück auf 0?
Edit
Verhalten ist auch beim MQTT Adapter so? -
@Stuebi Ja und Ja
-
@Stuebi
Wenn ihr schon dabei seid, longpush ging früher über mqtt (coap nicht getestet) auch nie richtig. Hatte deswegen schon mehrere threads geschrieben und war mit shelly in Kontakt. Meines Erachtens liefern die schon falsch.
Longpush blieb früher immer auf true bis das nächste mal der taster losgelassen wurde.
Wenn 2 mal in Folge lange gedrückt wurde, dann hat sich longpush nie verändert und konnte somit auch nie als trigger alleine genutzt werden.
Nur wenn man anschließend kurz drückt, wird longpush auf false gesetzt. -
@e-s , okay dann passt es ja , wie ich es umgesetzt habe. Schade, das Shelly den Longpush nicht wie bei CoAP zurücksetzt
-
@Stuebi
Ich habe es irgendwann aufgegeben und nutze jetzt immer ein script was mit dem Tasten startet und beim loslassen endet. Mit dem kann man somit auch mehrere Funktionen starten lassen und nicht nur eine. -
@e-s Also bei der Kommunikation per CoIoT scheint das mit longpush seitens des Shelly recht verlässlich kommuniziert zu werden. Im Zusammenspiel mit ioBroker sollte es beim umschalten von mqtt zu CoAP im Prinzip dann ja transparent weiterlaufen ohne Skritpzwang.
Oder nutzt du irgendwas spezielleres, was nur bei mqtt unterstützt wird und nicht bei CoAP? -
@Stuebi Ich würde den Longpush via /input wert 0 zurücksetzen lassen, damit es hier keine verwirrung gibt. Immer wenn longpush losgelassen wird wird auch input losgelassen, somit wäre das doch ein guter Ersatz oder? Das Problem ist nämlich bei der jetzigen Umsetzung, dass in IOB ja der Wert longpress nur getriggert wird, falls jemand ne komlexe Steuerung mit der Input high zeit bauen will funktioniert das so nicht.
-
@CrunkFX , es wäre möglich wenn Input == 0 ist, Longpush auch auf 0 zu setzen.
Aber bei short press ist Input == 1 , dann würde Longpush weiter auf 1 stehen bleiben -
@Stuebi Was ja kein Problem ist, da MQTT doch eh gepusht wird, somit ist der Trigger 1 doch nur aktiv wenn er reinkommt danach schwebt die 1 ja nur im Raum ohne bewandnis, kommt eine neue 1 wird wieder getriggert. Währenddessen kommt eine 0 im /input channel die den Datenpunkt zurücksetzt bis ne neue 1 im /longpress channel kommt oder sehe ich das falsch? Und nach Shortpress kommt ja auch wieder die 0.
-
@CrunkFX Also
Taster gedrückt <1000ms
/input = 1 --> DP true
/longpress = 1 aber nicht getriggert
dann loslassen
/input = 0 --> Beide DP falseTaster gedrückt >1000ms
/input = 1 --> DP true (oder false je nach belieben)
/longpress = 1 getriggert --> DP true
dann loslassen
/input = 0 --> Beide DP false -
@CrunkFX , ich habe keine Chance die gedrückte Zeit abzzfragen.
-
@Stuebi Das brauchst du ja auch nicht das mach shelly. Wenn >1000ms gedrückt wird longpress getriggert
">"1000 ms sollte heissen longpress
<1000 ms sollte heissen shortpress -
@Stuebi Vom Ansatz her Quasi so, ich hab nur von JS so gut wie null Ahnung aber es sollte zu verstehen sein falls nicht kein problem:
mqtt: { mqtt_publish: 'shellies/shellydimmer2-<deviceid>/longpush/0', mqtt_publish_funct: (value) => { return value == 1 && true }, }, mqtt: { mqtt_publish: 'shellies/shellydimmer2-<deviceid>/input/0', mqtt_publish_funct: (value) => { return value == 0 && false }, }
-
@CrunkFX , ich habe es einmal in der Version 3.3.5 eingebaut für MQTT und Dimmer 2. Kannst Du die Version 3.3.5 nochmals per GitHub herunterladen und die Instanz neu starten