NEWS
MQTT-Adapter Cache löschen (manuell angelegt Datenpunkte)
-
@mickym
Das ist aber ja genau der Weg, auf dem ich die Datenpunkte anlege (cmd und stat):
Der die Tasmotas die nicht per Default anbieten starte ich einmalig die mqtt.1-Instanz und mache mit der das sendTo an die mqtt.0-Instanz.
Danach kann ich die 2. Instanz wieder stoppen.
Wenn ich die teleperiod zB setzen will, dann ändere ich einfach den cmnd-Datenpunkt und der Wert geht an die Dose, die mit einem RESULT antwortet, worauf wiederum mein Skript reagiert und, das parst und meinen stat-Datenpunkt aktualisiert.Die werden also nie von einem Client gesendet - ausser, ich starte die 2. Instanz und lasse die mit dem sendTo so tun, als wäre sie eine der Tasmotas.
...und damit beantworte ich mein Fragezeichen:
Da Löschen von Topics nicht vorgesehen ist, behält der Adapter die, bis ich ihn mal stoppe und den Objecttree ganz löschen.Schöner wäre natürlich, ich könnte die Rückgaben der Tasmotas direkt konfigurieren, dazu hatte ich damals aber nichts gefunden.
Thx!
-
@sammy-r Na über die cmnd topics kannst Du doch alle Kommandos absetzen. Die stat topics werden dann doch automatisch vom Gerät geliefert, dass muss man in der Regel nicht via Skript machen.
Ansonsten schau Dir den Tasmota Device Manager an über den kannst Du über mqtt via GUI leicht komplexere Aufgaben eintragen und die mqtt topics werden automatisch angelegt. -
@mickym
Richtig. Die Tasmotas liefern aber keinen cmnd für den poweronmodus und teleperiod nicht, weshalb ich sie so dazu 'bewege'. Bei den stat-Datenpunkten ist es dasselbe. Die Werte werden über RESULT geliefert aber nicht irgendwo abgelegt.
Ich hab auch beide Werte in Projekten geplant, weshalb ich sie im iobroker brauche.
Falls es interessiert:
In Ausnahmefälle soll eine Dose (durch mich) schaltbar sein, normal soll der Hardware-Schalter aber deaktiviert sein.
Die teleperiod war für die 'Datensparsamkeit' gedacht, um nur während der relevanten Phase Unmengen an Daten zu liefern. -
@sammy-r Das sieht man in der Konsole ob stat Punkte gepublished werden. Wenn dort nichts gepublished wird, dann hilft auch das Anlegen der Datenpunkte nichts.
Wie gesagt der Tasmota Device Manager hilft ggf. die topics automatisch anzulegen, wenn Du einen Windowsrechner hast. Dieser Tasmota device manager greift über mqtt auf die Geräte zu.
-
@sammy-r sagte in MQTT-Adapter Cache löschen (manuell angelegt Datenpunkte):
@mickym
Richtig. Die Tasmotas liefern aber keinen cmnd für den poweronmodus und teleperiod nicht, weshalb ich sie so dazu 'bewege'. Bei den stat-Datenpunkten ist es dasselbe. Die Werte werden über RESULT geliefert aber nicht irgendwo abgelegt.
Ich hab auch beide Werte in Projekten geplant, weshalb ich sie im iobroker brauche.
Falls es interessiert:
In Ausnahmefälle soll eine Dose (durch mich) schaltbar sein, normal soll der Hardware-Schalter aber deaktiviert sein.
Die teleperiod war für die 'Datensparsamkeit' gedacht, um nur während der relevanten Phase Unmengen an Daten zu liefern.Das soll keine Belehrung sein sondern eher eine Zusammenfassung für mitlesende:
Also, richtig ist das du jeden möglichen Tasmota Befehl ( https://tasmota.github.io/docs/Commands/ ) per MQTT setzen kannst indem du diesen einfach unterhalb von
cmnd/Gerätetopic/Befehl
anlegst und mit einem Wert sendest. In einem Rutsch geht das perSendTo
Auch richtig ist, das du unter
mqtt.0.stat.Gerätetopic.RESULT
immer unmittelbar auf den letzten Befehl oder Ereignis eine Antwort erhältst.
Meistens gibt es den Wert ja noch versteckt in einen der anderen STATUS-Meldungen im gleichen Topic:
und/oder im
/tele/
Zweig:
Was dort nicht aufgeführt wird kannst du abfragen indem du den Befehl aufrufst, aber ohne Parameter, also nichts als Payload, das sollte dann einenRESULT
erzeugen. Das RESULT enthält dabei auch immer den Befehlsnamen was bei einem Vergleich mit geprüft werden sollte, in den Datenpunkt können ja auch mehrere Dinge hintereinander / fast zeitgleich eintrudeln. -
@bananajoe
Das war auch etwas belehrend, aber darum hatte ich ja auch gebeten und ich bin Dir sehr dankbar für Deine Erklärungen und Zeit!Also. Meine Dosen haben da nicht so viel zu bieten:
'teleperiod' ist der Datenpunkt, den ich wie oben beschrieben angelegt habe. Aus 'Sensor' kann ich den aktuellen Verbrauch etc. auslesen.Teleperiod und poweron finde ich da nicht und für mich war ja das Absenden des Commandos das wichtige.
Nun aber zu meinem Verständnis, das hab ich vielleicht in der Doku vom Tasmota-Manager (nur quer gelesen) übersehen:
Ich kann den Dose damit beibringen, dass sie 'meine' Commandos von sich aus veröffentlichen? Ebenso deren Datenpunkte / Status unter tele/stat?Ggf. geht das dann ja vielleicht auch über die Web-UI / Console von Tasmota? Einmal ändern, immer ansteuern können wäre natürlich die bessere Lösung.
-
@sammy-r
Teleperiod
ok, damit verstellst du eben diese. Was willst du mitPowerOn
? Dafür ist derPOWER
Datenpunkt da und schaltet z.B. ein Relais, auch wenn der Button/Switch entkoppelt ist.Was meinst du mit Commandos veröffentlichen? In
stat
undtele
ist alles was die Büchse kann. Was die Büchse kann hängt davon ab wie diese konfiguriert ist. Wie ist denn die Konfiguration des Gerätes? Gerne Screenshot der Seite wo man festlegt welcher Pin wofür genutzt wird.Deine Befehle werden doch per RESULT zurück gemeldet, die Konfiguration sollte sich in
stat/gerätename/status
finden, ggf. percmd/gerätename/STATUS
mit Wert 0 antriggern (habe ich mal gemacht um die Konfiguration eines Shellys zu prüfen der sich immer wieder verstellt hatte) -
@bananajoe
verschrieben... ich hatte den Punkt 'poweronstate' genannt (aktuell fehlend, deshalb nicht auf der Hardcopy).
Ich nutze ihn, damit kann ich den Power-Modus beim Einschalten festlegen und damit auch, ob der Hardware-Schalter eine Funktion hat.
Einen Trockner möchte ich nur ungern aus versehen im Betrieb ausschalten, weil mein Skript nicht läuft. Einen anderen Verbraucher aber vielleicht damit steuern können (oder zeitweise ganz deaktivieren).Wie im allerersten Post (ist ja schon etwas her ;-)) geschrieben, benötige ich die Datenpunkte in cmnd halt, damit ich aus Skripten heraus die Commandos absetzen kann, die von den Tasmota-Dosen nicht 'freiwillig' dem Adapter melden und deshalb auch nicht angelegt werden.
Ich lege also Datenpunkte in cmnd an, damit ich die Tasmotas konfigurieren kann und weitere in stat, in denen ich dann das geparkte Result ablege und die ich auch in den Skripten nutzen kann.
-
@sammy-r sagte in MQTT-Adapter Cache löschen (manuell angelegt Datenpunkte):
die von den Tasmota-Dosen nicht 'freiwillig' dem Adapter melden und deshalb auch nicht angelegt werden.
Naja, sonst würden da ja hunderte von Kommandos stehen, in sofern ist schon ok das dort nicht alle sondern nur für das verwendete Template wichtige aufgeführt werden, in der Regel also
POWER
Du hats ja deinen weg. Auch wenn ich das dann nicht unterstats
ablegen würde, da kann man ja nicht mehr unterscheiden was vom Gerät kam und was von deinen Skripts.Vermutlich könnte man über Skripte (ESP32) oder Rules auch verschiedenen Dinge per MQTT publishen.
-
@bananajoe
Ich gebe Dir da Recht, ich hatte die Datenpunkte erst bei bei meinen userdata, allerdings war das nervig, weil ich bim Testen immer scrollen musste
Über die Rules bin ich im Rahmen dieses Threads auch gestolpert, ebenso über die Templates. Da recherchiere ich evtl. später mal. Steht aber nicht ganz oben.Danke Dir für den regen Austausch!
-
@sammy-r sagte in MQTT-Adapter Cache löschen (manuell angelegt Datenpunkte):
Ich gebe Dir da Recht, ich hatte die Datenpunkte erst bei bei meinen userdata, allerdings war das nervig, weil ich bim Testen immer scrollen musste
2 Bildschirme mit mehreren Browserfenstern nebeneinander wirken wunder!