Shelly 2.5: Steuerung per SW1 und SW2 ergibt zeitverzögerte Reaktion am Relais

  • Hallo zusammen,

    habe in unserem Neubau für die Rollladensteuerung insgesamt 12 Shelly 2.5 verbaut und vorher mit Tasmota 9.1.0 versehen.

    Die Einrichtung habe ich über setoption80 1, shuttermode 1, switchmode1 1, switchmode2 1 und setoption32 1 durchgeführt, sowie eine Kalibrierung über setshutterclose, shutteropenduration XX.X und shuttercloseduration XX.X gemacht.

    An sich funktioniert die Steuerung über das Webfrontend und die Schalter an der Wand (Die Schalter sind die klassischen mechanischen Doppelschalter für HOCH und RUNTER, die sich gegenseitig blockieren, also einen mechanischen interlock machen). Da es sich um 2 Schalter mit den Schaltzuständen EIN und AUS handelt, habe ich den Switchmode 1 gewählt und die Mehrfachbetätigung über SetOption32 1 deaktiviert.

    Mein Problem: Die Reaktionszeit auf die Eingänge Switch1 und Switch2 durch das Tasmota. Durch "Setoption32 1" erreiche ich, das beim Übergang des Schalters in den Zustand EIN das entsprechende Relais des Shellys sofort schaltet und nicht auf weitere Mehrfachbetätigungen wartet. Schalte ich jedoch wieder in den Zustand AUS bleibt das Relais noch ~0,5-0,7 Sekunden im EIN-Zustand, bevor es abschaltet. Ein sauberes Positionieren des Rollladens (Unsere 1-Jährige schläft mittags nur, wenn 2-3 Spalten zwischen den oberen Elementen sichtbar sind) ist somit nahezu unmöglich. Ich behelfe mir dann momentan mit "Shutterposition 13" über die Konsole aufgerufen vom Mobiltelefon, aber das ist keine Lösung mit WAF.....

    Daher meine Frage: Kann man das Delay beim Abschalten der Eingangssignale irgendwie gegen 0 verkürzen? Da über die Konsole ein kürzeres Ansteuern der Relais' möglich ist, muß das ja eine Variable im Tasmota sein. Aber ob die durchgereicht wird und via "SetOptionXX" gesetzt werden kann, habe ich noch nicht herausgefunden.....

  • So.... ich hab die setoption32 1 noch mal neu reingetackert, da ich abseits des binären Config-Dumps leider keine Möglichkeit gesehen habe, die Config zu sehen. Danach habe ich um 11:55:51 einmal für ~1 Sekunde den Switch2 auf ON gestellt (Also: Abfahrt). Anschließend habe ich den Konsolen-Output rauskopiert:


    Was mich ernsthaft irritiert ist die Logzeile mit "Switchmode 0" ?!? Ich bin mir ziemlich sicher, daß ich während der initialen Konfiguration Switchmode1 1 und Switchmode2 1 eingegeben habe:

  • Ich hätte eigentlich erwartet, dass hier irgendwas noch dazwischen funkt, sieht aber so weit ok aus.

    Bleibt also die obligatorische Frage, wie das Ding geflasht und ob der Flash vorher auch gelöscht wurde? Ist das ein angepasstes bin auf 2MB oder was fertiges gewesen?

  • Gelöscht, ja, dann geschrieben:

    ./esptool.py --port /dev/ttyAMA0 erase_flash

    ./esptool.py --port /dev/ttyAMA0 write_flash -fm dout 0x0 ../tasmota-DE.b in

    Habe das am Pi2 mit separater 3,3V-Versorgung gemacht mit diesem File:

    root@raspberrypi:/home/uwe/esptool# md5sum ../tasmota-DE.bin

    8a238183b1f0aca9ff910e8aee9d49a4 ../tasmota-DE.bin

    root@raspberrypi:/home/uwe/esptool#

  • Frei nach Helge Schneider: I brake together!

    https://github.com/arendst/Tasmota/releases/

    "Releasenotes für 9.2.0:

    Fixed

    Shutter motordelay stop issue #10033

    "

    Das probiere ich doch mal aus.... es klingt jedenfalls relativ ähnlich.


    Update: 9.2.0. ist drauf. Aber eine Frage..... vorher hatte ich die 9.1.0 "-DE" drauf. Die 9.2.0-DE konnte ich nicht hochladen, wegen "Upload Miscompare". Mußte jetzt das OTA-Update machen und alles ist auf englisch?

  • Die gute Nachricht: Version 9.2.0 behebt das Problem. Wenn ich nun noch einen Weg finde, auch die DE-Version in alle 12 Shelly's zu kriegen, bin ich (erstmal) zufrieden.

  • da hilft eigentlich am ehesten selber kompilieren und dann auch gleich den Flash auf 2MB anpassen.

    Der Fehler bei OTA kommt daher, dass Dein bin wohl größer 500k ist und dann der Platz nicht reicht obwohl 2MB verbaut sind. Die 2MB werden aber auch nur verwendet, wenn das so kompiliert wird. Alternativ kannst das bin auch in gz tippen und schon ist es klein genug für OTA.

  • Ich hab jetzt aus Faulheit den Tasmo-Compiler (TasmoCompiler - Tasmota Compiler - Online eigene .bin erstellen) gestartet, aber der bietet mir unten bei den Boards auch nur 1M oder 4M-Boards an.

    Habe mir jetzt das das Tasmota-Repo per git clone gezogen und mache meine ersten Schritte mit `platformio run -e <XXXX>`

    Wenn ich das alles richtig deute, muß ich die Shutter+2M-Variante in der

    platformio.ini:

    tasmota-DE (auskommentiert)
    board_build.ldscript = eagle.flash.2m256.ld

    USE_SHUTTER ist in der BUILDS.md für das Ziel "tasmota" ja bereits aktiv, wenn ich das richtig sehe

    Aber trotzdem ist beim Kompilieren dann nur 1M aktiv:

    EDIT3: Ich habe nun die platformio_override_sample.ini nach platformio_override.ini kopiert und

    unter [common] die Zeile 59

    board_build.ldscript = eagle.flash.2m256.ld einkommentiert

    Wenn ich dann via "platformio run" den Vorgang starte, ignoriert er das scheinbar und haut trotzdem in den Sack:

    EDIT 4: auch ohne tasmota/user_config_override.h und ./platformio_override.ini kommt der Fehler mit dem Syntax-Error. Die Datei

    Code
    /Tasmota/pio-tools/download_fs.py

    habe ich nicht angefasst (mein git bestätigt das)

    3 Mal editiert, zuletzt von Uchristo (21. Januar 2021 um 08:15)

  • okay. Der Fehler existiert scheinbar nur im Development-branch

    Master kompiliert durch. Nur sieht hier die platformio_override.ini komplett anders aus. Warum so unnötig kompliziert???

  • Du kopierst zu viel ;)

    Für ein 2MB bin musst nur in der Initiative das 1 durch 2 ersetzen und ich verwende immer die dev. Version.

    Was genau meinst Du mit "initiative"? Ich steh aufm Schlauch

    in der platformio.ini

    board_build.ldscript = eagle.flash.1m.ld
    nach

    board_build.ldscript = eagle.flash.2m.ld

    ändern?