Aktionen

Shelly 1 mit Tasmota als Stromstossschalter Ersatz: Unterschied zwischen den Versionen

Aus znilwiki

Zeile 3: Zeile 3:


==Feste IP-Adresse setzen + Zeitserver==
==Feste IP-Adresse setzen + Zeitserver==
IP:
  IPAddress1 192.168.1.101
  IPAddress1 192.168.1.101
Gateway:
  IPAddress2 192.168.1.198
  IPAddress2 192.168.1.198
Subnetmaske:
  IPAddress3 255.255.255.0
  IPAddress3 255.255.255.0
DNS 1:
  IPAddress4 192.168.1.81
  IPAddress4 192.168.1.81
DNS 2: (ab Tasmota 11)
IPAddress5 192.168.1.80
  NtpServer1 192.168.1.198
  NtpServer1 192.168.1.198
und dann Übernehmen + Neustart mit
und dann Übernehmen + Neustart mit

Version vom 31. Juli 2022, 10:00 Uhr

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

IP:
IPAddress1 192.168.1.101
Gateway:
IPAddress2 192.168.1.198
Subnetmaske:
IPAddress3 255.255.255.0
DNS 1:
IPAddress4 192.168.1.81
DNS 2: (ab Tasmota 11)
IPAddress5 192.168.1.80
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

Die nächsten beiden Befehle sorgen bei neueren Versionen (9.x) dafür das bei den Nachrichten das Retain-Flag gesetzt wird

stateretain 1
inforetain 1



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.

Automatischen Ausschalten oder Einschalten nach x Sekunden Minuten

Ich vergesse gerne mal im Ankleidezimmer das Licht auszuschalten. Das lässt sich leicht über eine Regel steuern:

rule1 on power1#state do backlog power1 %value%; ruletimer1 600 endon on rules#timer=1 do power1 off endon

Den Wert von ruletimer1 müsst Ihr an die gewünschte Zeit in Sekunden anpassen.
power1 off schaltet nach Ablauf der Zeit ab, für ein Einschalten müsst Ihr den Wert auf on ändern.

Nun noch die Regel aktivieren / einschalten:

rule1 1

mit

rule1 0

würde man diese wieder deaktivieren.
Wenn Ihr Ihr rule1 ohne Parameter angebt so wird der Status + die Regel angezeigt.
Die Regel reagiert auf eine Änderung des Power-Status. Das habe ich gemacht weil es so auch im Tastermodus funktioniert - und auch wenn das Gerät z.B. über das Webinterface geschaltet wird.
Hier werden die Rules auch noch mal ganz gut erklärt: https://forum.creationx.de/lexicon/index.php?entry/24-rules/
Beachtet aber das der Artikel schon etwas älter ist, inzwischen gibt es ggf. weitere Trigger und Möglichkeiten.


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

WLAN - optimalen AccessPoint suchen

SetOption56 1
SetOption57 1

SetOption56 sucht beim booten nach dem signalstärksten AccessPoint und verbindet sich mit diesem
SetOption57 wiederholt die Suche alle 44 Minuten und wechselt den AP sofern dieser 10dB stärker als der jetzige ist


Anzeige Einstellungen

SetOption53 1
WebColor {"WebColor":["#eaeaea","#252525","#4f4f4f","#000000","#dddddd","#65c115","#1f1f1f","#ff5661","#008000","#faffff","#1fa3ec","#0e70a4","#d43535","#931f1f","#47c266","#5aaf6f","#faffff","#999999","#eaeaea"]}

SetOption53 zeit den Hostnamen und die IP-Adresse auf der Webseite oben an
Der WebColor stellt die Standard-Farben ein (dunkles Design, ältere geräte haben ggf. noch helles Design)


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...