Aktionen

Shelly 1 mit Tasmota als Stromstossschalter Ersatz

Aus znilwiki

Ich nutze zu Hause den Shelly 1 mit Tasmota-Firmware. Ich habe vor meine vorhandenen Stromstoßschalter (40 Stück) durch diesen zu Ersetzen.
Bei der Einrichtung der ersten 12 habe ich diese Seite erstellt um die ganzen Einstellungen und Konsolenbefehle als Copy&Paste zur Verfügung zu haben.

Feste IP-Adresse setzen + Zeitserver

IPAddress1 192.168.1.101
IPAddress2 192.168.1.198
IPAddress3 255.255.255.0
IPAddress4 192.168.1.81
NtpServer1 192.168.1.198

und dann Übernehmen + Neustart mit

restart 1

Hostnamen setzen

DeviceName K01-Flur-EG
Hostname K01-Flur-EG

sollte automatisch neu starten


Web Passwort setzen

WebPassword test1234

Benutzername ist admin


Taster Betrieb

Ab Werk schaltet der Shelly nun ein wenn an SW 230V anliegen. Wir wollen aber mit einem kurzen Stromstoß zwischen den Zuständen umschalten (wie ein Stromstoßschalter):<vr>

SwitchMode1 4
SetOption13 1

SwitchMode1 0 wäre der normale Betrieb, 4 ist Tasterbetrieb.
SetOption13 1 ist etwas "Tuning" - normalweise schaltet der Shelly nachdem Ihr den Taster loslasst. Mit dieser Option wird sofort nach Kontakt geschaltet.


MQTT einstellen

Topic K01-LichtFlurEG
MqttClient Client-K01-LichtFlurEG
MqttHost 192.168.1.8
MqttPort 1883
MqttUser mqtt
MqttPassword test1234



MQTT HOLD Einstellung setzen

Mit dieser Änderungen bekommen wir eine Nachricht an den MQTT gesendet wenn der Button lange gedrückt wurde:

SwitchMode1 6
SwitchTopic 1
SetOption32 3
SetOption13 0

SwitchMode1 6 ist wieder der Tastermodus (wie 4), aktiviert aber auch den Long Press Mode welcher dann ein "HOLD" sendet (zusätzlich zum gerade aktiven Zustand).
SwitchTopic 1 aktiviert das Senden per MQTT der vorherigen Option
SetOption32 3 setzt die Zeit für einen langen Tastendruck auf 3 Sekunden. Alles darunter schaltet nur um.
SetOption13 0 sorgt dafür das er wartet wie lange Ihr den Taster drückt. Mit dieser Option reagiert er erst wenn man den Taster betätigt und wieder loslässt. Das Licht geht also erst an wenn man den Taster loslässt. Ist die gedrückte Zeit größer als die in der Option zuvor eingestellte Zeit so sendet er nur HOLD an den MQTT-Broker. Quelle: https://tasmota.github.io/docs/Buttons-and-Switches/


Bei HOLD anderes Tasmota-Gerät schalten

Statt der Auswertung per MQTT kann der Shelly auch direkt auf einen langen Tastendruck reagieren und einen anderen Shelly mit Tasmota-Firmware schalten.
Ich nutze das für die Nachtischlampen - bei mir ist neben dem Bett auf jeder Seite ein Taster welcher die jeweilige Nachtischlampe ein- oder ausschaltet.
Drückt man nun lange (in diesem Beispiel > 3 Sekunden) auf den Taster wird nun die Lampe auf der anderen Seite geschaltet.

SwitchMode1 6
SwitchTopic 0
SetOption32 3
SetOption13 0
Rule1 ON Switch1#State=3 DO WebSend [192.168.1.114,admin:test1234] POWER TOGGLE ENDON
Rule1 1

SwitchMode1 6 ist wieder der Tastermodus (wie 4), aktiviert aber auch die Auswertung des "Long Press".
SwitchTopic 0 deaktiviert das Senden per MQTT, sonst ist die lokale Auswertung in einer RULE nicht möglich
SetOption32 3 setzt die Zeit für einen langen Tastendruck auf 3 Sekunden. Alles darunter schaltet nur um.
SetOption13 0 sorgt dafür das er erst wartet wir lange gedrückt wurde und erst dann reagiert.
Rule1 ON Switch1#State=3 DO WebSend [192.168.1.114,admin:test1234] POWER TOGGLE ENDON bedeutet folgendes:

  • ON Switch1#State=3 wenn der HOLD Status ermittelt wurde (siehe https://tasmota.github.io/docs/Rules/#rule-trigger)
  • DO dann tue folgendes ...
  • WebSend [192.168.1.114,admin:test1234] POWER TOGGLE sende an das Geräte 192.168.1.114 mit dem Benutzer admin und dem Passwort test1234 den Befehl TOGGLE = von an auf aus oder umgekehrt wechseln. Ist der andere Tasmota nicht mit einem Passwort geschützt so lasst den Teil nach dem Komma weg, die IP muss aber trotzdem in eckige Klammern
  • ENDON = Ende der Anweisung

Rule1 1 Aktiviert die Regel auch.

Und was ist mit MQTT?
Es geht nur entweder oder - entweder den Button/Tasterstatus an MQTT setzen oder den lokal in einer Rule direkt auswerten.
Um das trotzdem per MQTT zu erfassen:

  • cmnd/NameDesTasmota/RESULT Meldet der Tasmota immer den letzten Befehlsstatus. Falls die Rule gegriffen hat steht dort
{"Websend":"Done"}
  • hier wollte ich mit einer Rule einfach per Publish was an MQTT senden ... aber dann reagierte der Tasmota lokal nicht ... also müsste ich das alles mit in die Rule bauen ... was nicht geklappt hat.

Emulation einstellen (Amazon Echo & Co)

Der FriendlyName ist der Name unter dem z.B. der Amzon Echo das Gerät findet und auch in der App anzeigen wird.

FriendlyName1 Licht Flur Erdgeschoss

Typ (2 = Licht oder 1 = Steckdose)

Emulation 2

Alles auf einmal - Backlog

Mit dem Befehl Backlog kann man mehrere Settings auf einen Schlag setzen, bis zu 30. Nach dem Befehl einen Moment warten, dann sieht man wie dieser Übernommen wird:

Backlog IPAddress1 192.168.1.139; IPAddress2 192.168.1.198; IPAddress3 255.255.255.0; IPAddress4 192.168.1.81; NtpServer1 192.168.1.198; DeviceName K39-Esstisch; Hostname K39-Esstisch
Backlog Topic K39-Esstisch; MqttClient Client-K39-Esstisch; MqttHost 192.168.1.4; MqttPort 1883; MqttUser mqtt;MqttPassword test1234
Backlog SwitchMode1 4; Emulation 2; FriendlyName1 Tisch

Kommentare

Loading comments...