TASMOTA - Installation, Anwendung und Diskussion

Naja. C&P wäre nicht das Problem, nur grob verstehen würde ich das schon gerne ;), wie die rules ineinandergreifen.
Code:
4 Rules in der Konsole eingeben: Der Hauptschalter (blaue Taste) wird verwendet, um das Ein /Aus der USB-Ports zu steuern und dafür müssen wir eine Regel einrichten, sonst wird die Taste stattdessen das erste Relais steuern. Rule1 ON Button1#State DO Power4 2 ENDON Rule1 1 Die 3 Tasten benötigen auch eine Regel um die Relais zu steuern Rule2 ON Analog#A0div10<30 DO Power3 2 BREAK ON Analog#A0div10<60 DO Power2 2 BREAK ON Analog#A0div10<80 DO Power1 2 ENDON Backlog Rule1 1; Rule2 1; Rule2 5 Empfohlene Befehle für die Konsole: PowerRetain 1 SetOption0 1 SetOption21 1 SetOption59 1 (MQTT Retain Flag) (legt fest, ob sich der Stecker den Relaiszustand merkt und nach einem Stromausfall wiederherstellt) (Spannung wird auch gemessen wenn alle 4 Relais ausgeschaltet sind)
Quelle
LG
 
Zuletzt bearbeitet:
Bei anderen Geräten hast du einen GPIO pro Taster.
Bei der P1 haben sie das anders gemacht, da gibt es nur einen GPIO für alle 3 Taster.
Die Taster erzeugen unterschiedliche Pegel an dem GPIO.
Dieser Pegel wird mit den Rules abgefragt und danach die 3 Relais geschaltet.
Deswegen das <30, <60, <80

Geht aber bei mir nicht 100%tig.
Da wird machmal das falsche Relais geschaltet.
 
  • Like
Reaktionen: Micha0815
Naja,Tasmota hat ja auch eine Konsole.
 
Da kann man aber nur Befehle eingeben und keine Scripte ablegen.
Da ist auch kein Platz im Speicher.
Ich staune immer was die so alles in die 512KB rein zaubern.
 
  • Like
Reaktionen: laurent
Hat er doch inzwischen schon ...
 
Sorry hatte vorher nicht aktualisiert. Was ich übrigens hatte war das die P1 savedata = 0 hatte.
Immer wenn Mutter die Leiste trennte ging der Schwibbogen aus und nicht mehr an.
Also in der Konsole mit dem Befehl savedata kontrollieren ob die Einstellungen gespeichert werden. Wenn nicht
savedata 1
eingeben
 
Immer wenn Mutter die Leiste trennte ging der Schwibbogen aus und nicht mehr an.
Man trennt doch die Leiste nicht. Wozu?
Ich habe savedata immer auf 0, da ich sonst Angst habe, daß der Flash kaputt geht.
Wenn, dann würde ich 10, 60 oder noch höher nehmen.
Die Daten müssen doch nicht aller 1 Sekunde gespeichert werden.
 
Hmm savedata 1 zeigt an on
savedata 1000 zeigt an 1000s
ok. ich ändere das mal
 
Für was ist savedata da? Welche Daten werden da gespeichert?
Savedata zeigt bei mir auch on an
 
Die ändert sich doch nicht?
Einmal gespeichert müsste doch reichen?
 
Na der Schalter sollte sich schon merken ob er vor dem Stromausfall an oder aus war.
 
  • Like
Reaktionen: laurent
Die ändert sich doch nicht?
Jein.
Du kannst ja z.B. an der Zeitsteuerung was ändern.
Da gibt es aber noch viel mehr.
Und bei den Lampen noch mehr.
Ich muß dann immer beachten, daß ich nach einer Änderung eine Speicherung oder Reboot mache.
Umgekehrt genügt einmal Strom weg und ich habe die alte Konfig wieder da.

ob er vor dem Stromausfall an oder aus war.
Das kann gut oder auch schlecht sein.
Bei mir bleiben alle Geräte nach Stromausfall aus.
Das muß man aber für jeden Fall einzeln entscheiden.

Wenn man es so wie du machst und dann ist Stromausfall und du mußt weg und kannst nicht mehr ausschalten.
Dann schalten sich diese Geräte wenn der Strom wieder kommt und du nicht da bist wieder ein.
Ob das gewollt ist?
 
Dann schalten sich diese Geräte wenn der Strom wieder kommt und du nicht da bist wieder ein.
Das stimmt, zumindest bei den Lampen. Ich habe aber auch Geräte, die sich wieder einschalten sollen, an einer Schaltsteckdose. Muß man für jedes Gerät individuell festlegen.
 
Geht sowas in der Tasmotaumgebung nicht?
(Hier ist es praktisch unmöglich, auf das "Vollzitat" zu verzichten, weil ein @ nicht ausreicht zu erkennen, auf welchen Beitrag ich mich beziehe.)

Das geht natürlich auch dort - kommt aber auch ein wenig auf die verwendeten Geräte an.

Bei einer SP111 könnte man die Aufgabe, eine Steckdose komplett abzuschalten, wenn das dort angeschlossene Gerät in den Standby-Modus wechselt (hier nehmen wir auch mal 10 W als Marke), zum Beispiel auch auf den folgenden zwei Wegen lösen (und das sind garantiert nicht alle):
  • per "Treppenlichtschaltung" - d.h. solange der Verbrauch jenseits von 10 W liegt, wird immer wieder ein "Power ON" ausgeführt, was dann auch einen zusätzlich definierten "PulseTime"-Wert (im Beispiel von 30 Sekunden) jedesmal neu startet
  • mit einem "echten Trigger", wenn der Verbrauch den Grenzwert über- bzw. unterschreitet
Für den ersten Ansatz (es sind nur Beispiele) sähe das z.B. folgendermaßen aus:
Code:
1 PulseTime1 130
2 Rule1 0
3 Rule1 4
4 Rule1 ON Energy#Power>10 DO Power ON ENDON
5 Rule1 1
(die Nummern am Beginn der Zeile gehören nicht zum Kommando)
Zeile 1 setzt für Relay1 eine "PulseTime" von 30 Sekunden (die Werte findet man in der Tasmota-Dokumentation), diese sorgt dafür, daß nach einem "Power ON" und dem Verstreichen der angegebenen Zeit automatisch wieder auf "Power OFF" geschaltet wird. Diese Zeit startet auch mit jedem "Power ON" neu und das machen wir uns hier zunutze.

Zeile 2 deaktiviert eine vorhandene Regel mit dem Index 1, Zeile 3 sorgt dafür, daß die Regel bei JEDER Messung, die eine Leistungsaufnahme nach der benutzen Bedingung ergibt, auch abgearbeitet wird (ONCE=OFF). In Zeile 4 wird dann festgelegt, daß eine Verbrauchsmessung, die mehr als 10 W ergibt, ein "Power ON" zur Folge hat - meine SP111 mißt da alle 2 Sekunden, was dann alle 2 Sekunden den PulseTime-Wert neu starten läßt. Zeile 5 aktiviert dann die Regel 1 und von jetzt an wird die Steckdose immer 30 Sekunden, nachdem die Leistungsaufnahme kleiner als 10 W ist, komplett ausgeschaltet ... und das ohne jede weitere "Steuereinheit" und selbst dann, wenn es mal keine WLAN-Verbindung o.ä. geben sollte.

Nachteil hier ist es aber, daß man tatsächlich die automatische Speicherung von Einstellungen deaktivieren sollte und daß einen die ausgeführten Kommandos totquatschen, wenn man sie (z.B. per MQTT) irgendwo protokollieren läßt. Denn die Messung erfolgt eben alle 2 Sekunden, was auch alle 2 Sekunden ein "Power ON" ergibt und da ist ein "retain" für den Status dann tatsächlich recht belastend für den Flash-Speicher, wenn das jedesmal persistiert wird.

Aber es geht ja auch noch anders ... man kann eben auch dafür sorgen, daß eine Regel (bzw. eine Condition darin) nur dann einmalig "feuert", wenn der Grenzwert über- oder unterschritten wird und danach erst wieder erneut, wenn das Limit erneut "passiert" wird. Da die Messungen dieser Steckdosen aber nicht sehr präzise sind und es schon mal vorkommen kann, daß es einen "Ausreißer" bei den Werten gibt, sollte man so einen Trigger nicht direkt zum Anlaß nehmen, der Steckdose den Saft abzudrehen ... also startet man am besten erst mal wieder einen Timer und erst dann, wenn der "abgelaufen" ist und nicht zwischenzeitlich zurückgesetzt wurde, schaltet man wirklich ab.

Das könnte dann z.B. so aussehen:
Code:
 1 Rule1 0
 2 Rule1 5
 3 Rule1 ON Energy#Power<10 DO RuleTimer1 30 ENDON
 4 Rule1 + ON Energy#Power>10 DO RuleTimer1 0 ENDON
 5 Rule1 + ON Power1#state=1 DO RuleTimer1 30 ENDON
 6 Rule2 0
 7 Rule2 4
 8 Rule2 ON Rules#Timer=1 DO Power1 OFF ENDON
 9 Rule2 1
10 Rule1 1
Auch hier werden ggf. schon vorhandene Regeln in Zeile 1 und 6 erst einmal deaktiviert, bevor sie dann (in den Zeilen 3 und 8) neu gesetzt werden. Die Zeilen 4 und 5 fügen (mit dem "+") der angegebenen Regel weitere Bedingungen hinzu - in Zeile 3 wird beim Unterschreiten der 10 W dann ein 30-Sekunden-Timer gestartet und in Zeile 5 wird derselbe Timer gestartet, hier aber beim Einschalten der Steckdose (also beim "Power ON") ... damit soll sichergestellt werden, daß auch wieder ausgeschaltet wird, wenn die Leistungsaufnahme die Grenze von 10 W in keiner Richtung überschreitet, weil z.B. der Verbraucher gar nicht wirklich eingeschaltet wurde, sondern nur die Steckdose.

Denn in Zeile 2 wird für die Regel 1 eben festgelegt (ONCE=ON), daß die Trigger jeweils nur einmalig beim Erreichen der Bedingung auslösen - das ist auch der Grund, warum ich hier mit zwei Regeln (eine mit ONCE=ON und eine mit ONCE=OFF) arbeite, damit der abgelaufene RuleTimer1 auch mehrfach zur Ausführung der Regel (hier die mit dem Index 2) führt. Diese Regel 2 sorgt letztlich nur dafür, daß beim Ablauf von 30 Sekunden (ohne Zurücksetzen des RuleTimer1) dann wieder "Power OFF" ausgeführt wird.

Das Starten des RuleTimer1 (einmal beim Einschalten und einmal beim Senken der Leistungsaufnahme unter 10 W) hatten wir schon ... überschreitet die Leistungsaufnahme jetzt innerhalb der 30 Sekunden, in denen der RuleTimer1 seinen Countdown zählt, die Grenze der 10 W wieder, wird der RuleTimer1 einfach abgebrochen (0 sorgt dafür, daß der nicht weiterzählt und auch kein Event auslöst) und es kommt nicht zum "Power OFF".

Schaltet man jetzt die Steckdose mit diesen Regeln irgendwie ein (egal ob per Kommando oder über den Button), hat man noch 30 Sekunden (cirka) Zeit, um den Verbraucher auch tatsächlich zu starten, wenn der nicht seinerseits direkt einschaltet, sobald die Stromversorgung hergestellt wurde. Zeiten und Verbrauchswerte kann man natürlich nach Lust und Laune variieren - und es ist sogar möglich, von einer Steckdose aus eine andere zu schalten, wenn man statt "Power" z.B. ein "WebSend"-Kommando verwendet. So kann man (eine noch halbwegs überschaubare Anzahl von) Steckdosen auch ohne eine gesonderte Zentrale in Abhängigkeit voneinander betreiben.

Das senkt jetzt bei einer SP111 auch nur den Standby-Verbrauch des angeschlossenen Gerätes, aber es ist garantiert ebenso möglich, die "Master-/Slave-Schaltung" von @eisbaerin aus #216 über entsprechende Regeln umzusetzen ... bei einer SP211 muß das dann eben auf die passenden Indizes der beiden Relays angepaßt werden. Ich weiß auch nicht, ob die Verbrauchsmessung für beide Steckplätze einzeln möglich ist, aber das wird vom Skript in #216 ja auch nicht ausgewertet (wenn ich das richtig lese).

Im Gegensatz zum Shell-Skript oben kommt das dann direkt auf dem ESP8266 eben auch ohne externe Zentrale oder weitere Komponenten aus (die Meldungen kann man ja trotzdem übertragen lassen, wenn man eine zentrale Steuerung hat) und die potentielle Falle im Skript in #216 (wenn eines der "wget"-Kommandos z.B. wg. WLAN-Problemen mal nicht direkt funktioniert, unterbleibt das Schalten ganz, weil "status" trotzdem gesetzt wird) hat man auch gleich mit entschärft ... die Tasmota-Devices haben schon eine gewisse "Eigenintelligenz" und sind auch autonom zu komplexeren Abläufen fähig.

Man kann die Kommandos für die beiden Beispiele zwar auch jeweils Zeile für Zeile eingeben, ich empfehle hier aber die Benutzung von "Backlog" ... dazu beginnt man einfach die Kommandoeingabe (in der Console) mit dem "Backlog" und führt danach die weiteren Zeilen auf, jeweils durch ein Semikolon vom vorhergehenden Kommando getrennt. Man kann auch die Regeln "auf einen Rutsch" definieren (es braucht also das "+" nicht zwingend), aber "untereinander" ist es m.E. übersichtlicher.

Wie auch immer man es macht ... die Eingaben sähen mit "Backlog" dann so aus:
Code:
Backlog PulseTime1 130; Rule1 0; Rule1 4; Rule1 ON Energy#Power>10 DO Power1 ON ENDON; Rule1 1
Code:
Backlog Rule1 0; Rule1 5; Rule1 ON Energy#Power<10 DO RuleTimer1 30 ENDON; Rule1 + ON Energy#Power>10 DO RuleTimer1 0 ENDON; Rule1 + ON Power1#state=1 DO RuleTimer1 30 ENDON; Rule2 0; Rule2 4; Rule2 ON Rules#Timer=1 DO Power1 OFF ENDON; Rule2 1; Rule1 1
Viel Spaß beim eigenen Experimentieren ... die Dokumentation zur Verwendung dieser "Regeln" (Rules) findet man dann natürlich wieder im Tasmota-Wiki bzw. im GitHub-Repo des Projekts.

Ich habe keine SP211, sonst hätte ich das gleich mal probiert, wie das mit den richtigen Indizes aussehen müßte ... und ich weiß auch keine bessere Beschreibung als "Master/Slave" für das gewünschte Verhalten, auch wenn das politisch nicht mehr korrekt ist - aber "Primary/Secondary" erscheint mir in dem Zusammenhang auch nicht ganz treffend.
 
  • Like
Reaktionen: laurent
Danke für die super Anleitung!
Ich habe sie mal in #5 verlinkt, damit man sie wieder findet.

Jetzt werde ich mich auch mal an die Rules wagen.
Noch interessante wird es, wenn man die Zeitsteuerung in Verbindung mit den Rules nutzt.
Hat das schon jemand gemacht? Wofür und wie?

Ach so einfach ist das.
Hoffentlich geht das auch z.B. bei der SP112, weil die einen anderen Chip zum messen nutzt.

ob die Verbrauchsmessung für beide Steckplätze einzeln möglich ist
Nein. Auch bei der 3er Leiste P1 gibt es sie nur einmal für alle Dosen.

unterbleibt das Schalten ganz, weil "status" trotzdem gesetzt wird
Danke für den Hinweis.
Ich hatte den "status" erst nicht drin, aber da wurde das "power off" aller 5s gesendet, was ich unnötig/überflüssig fand. Obwohl schaden dürfte es auch nicht, oder?

Ich werde noch eine Abfrage des "status" einfügen ehe ich die Variable setze.

Einen Vorteil hat aber auch ein Script gegenüber den Rules.
Ich kann damit auf mehrere Geräte zugreifen und die damit untereinander koppeln.
Oder kann TASMOTA auch wget, also eine http Anforderung aussenden?
So könnte ich z.B. wenn ich den Telefonhörer abhebe, den Lautsprecher ausschalten, damit er beim telefonieren nicht stört.
Oder du könntest mit zwei SP111 auch ein Master/Slave machen.

Bei mir könnte die Rule im einfachsten Fall also so aussehen?
Code:
1 Rule1 0
2 Rule1 5
3 Rule1 ON Energy#Power<10 DO Power2 OFF ENDON
4 Rule1 + ON Energy#Power>10 DO Power2 ON ENDON
5 Rule1 1

Oder als Einzeiler:
Code:
Backlog Rule1 0; Rule1 5; Rule1 ON Energy#Power<10 DO Power2 OFF ENDON; Rule1 + ON Energy#Power>10 DO Power2 ON ENDON; Rule1 1

EDIT: Ja, klappt super!
Eigentlich einfacher als das Script, wenn man weiß wie. ;)
 
Zuletzt bearbeitet:
  • Like
Reaktionen: laurent
Falls du Lautsprecher vom Fernseher meinst. Das habe ich schon seid 2 Jahren zuverlässig. Bei klingeln wird die Lautstärke reduziert, bei Annahme pausiert der Film bis der Anruf beendet ist.
Möglich ist das bei mir mit Kodi. TV läuft über TV-Headend und es gibt ein Fritzbox Kodi Addon das diese Sachen regelt wie gewünscht.
 
Falls du Lautsprecher vom Fernseher meinst.
Ja, aber externe mit eigenem Netzteil.
Mein TV ist aber ein ganz einfacher und steckt am Kabel.
TV-Headend habe ich nicht, obwohl Kodi auf einem Raspi habe ich schon mal gemacht.
Aber der kann ja die Sender nicht vom Kabel empfangen.
 

Statistik des Forums

Themen
246,347
Beiträge
2,250,587
Mitglieder
374,001
Neuestes Mitglied
curious2315
Holen Sie sich 3CX - völlig kostenlos!
Verbinden Sie Ihr Team und Ihre Kunden Telefonie Livechat Videokonferenzen

Gehostet oder selbst-verwaltet. Für bis zu 10 Nutzer dauerhaft kostenlos. Keine Kreditkartendetails erforderlich. Ohne Risiko testen.

3CX
Für diese E-Mail-Adresse besteht bereits ein 3CX-Konto. Sie werden zum Kundenportal weitergeleitet, wo Sie sich anmelden oder Ihr Passwort zurücksetzen können, falls Sie dieses vergessen haben.