ich hab in den letzten zwei Tagen damit rumexperimentiert und kann den Fehler, der beim Button1 auftritt nachvollziehen jetzt sogar mit einem anderen Shelly (i3, Shelly1) problemlos nachstellen.
Konkret passiert folgendes:
Die Theorie: man drückt den Button/Schalter, der Shelly wacht auf und schickt zwei Coap-Nachrichten.
die erste enthält den beim InputEventCnt den initalen (oder alten) Wert, die zweite einen un 1 höheren Wert.
Die Praxis: man drückt den Button/Schalter, der Shelly wacht auf und sicht zwei Coap-Nachrichten. Beide enthalten den gleichen alten Wert. Drückt man, solange der ShellyButton1 noch wach ist, weitere Male auf den Knopf funktioniert es, also InputEventCnt wird um 1 erhöht.
Wenn man einen Shelly1, IX3 etc. rebootet und dann direkt den Taster drückt, passiert exakt das Gleiche.
Die ersten zwei Coap-Nachrichten haben beide den Wert 1 beim InputEventCnt. Ab dann funktioniert es reibungslos.
Beim Button1 ist es deshalb so problematisch, weil der in den DeepSleep geht und der Counter dabei immer wieder auf den initialen Wert zurückgesetzt wird (Volatile Memory)..
Ich gehe mal davon aus, dass da ein initialer Counter falsch gesetzt ist und statt 0 eine 1 (oder umgekehrt) gesetzt wurde.
Das hab ich heute Morgen dem Chef-Entwickler so geschrieben. Ich hoffe, dass es hilft und der Fehler dann doch mal beseitigt werden kann.
Denn das ist ein genereller Fehler, der eigentlich alle Shellys betrifft, aber bei anderen Shellys eben (weil sie sich nicht schlafen legen) nur sehr schwer auffällt.
Edit: auch mein eigener Code enthält manachmal Fehler
alle anderen Shellys machen es richtig und starten mit 0 anstelle von 1.
Der Fehler im Button1 ist aber trotzdem vorhanden: nach dem DeepSleep startet der Button1 mit 1 statt 0 beim InputEventCnt.