NEWS
(gelöst) Ikea FB, Wert erkennen und MQTT Befehl senden
-
@thrusty
Jep das machst du mit dem blokly ja dann auch.
Input x=Output x
Es sei denn du hast dafür am sonoff keine Datenpunkte. -
@paul53
Danke, das ist schon mal eine Teilantwort für meine Probleme.
Ich werde das mal so versuchen.
Nun müsste ich nur noch wissen wie ich das Ergebnis dann per mqtt weiter senden kann.
An dem Tasmota Gerät, wohin das Ergebnis gesendet werden soll, hängt ein Display (ssdssd1351). Dieses Display hat keinen Datenpunkt, also scheint es im muss zwingent mqtt verwenden, bloß wie?
Ich finde keinen Ansatz wie das geht. -
@thrusty Du sendest über mqtt nichts an Dein Tasmota Gerät, sondern Du sendest via Blockly etwas an Deinen MQTT-Broker. Das Tasmota Gerät hört auf bestimmte Datenpunkte in Deinem MQTT-Broker und zwar auf alle die unter dem CMND Ast liegen.
Die musst Du falls sie fehlen ggf. neu anlegen und zwar unter der Instanz Deines mqtt Adapters als Broker oder im mqtt-Broker
Falls kein geeigneter DP verfügbar ist, dann kannst Du jeden Tasmota-Befehl im backlog Datenpunkt absetzen, das ist als ob Du unter Tasmota den Befehl in der Konsole absetzt. Du kannst damit auch mehrere Befehle auf einmal absetzen, in dem Du die Befehle mit Strichpunkt trennst. Diese werden dann quasi im Batch Betrieb nacheinander abgearbeitet.
Dieses Display hat keinen Datenpunkt, also scheint es im muss zwingent mqtt verwenden, bloß wie?
Das ist schon nun mehrfach hier thematisiert worden, dass man auch im mqtt-Adapter selbst Datenpunkte anlegen können muss - da diese ja nicht von Anfang an da sind.
Die Namen unter dem cmnd Ast für die verschiedenen Datenpunkte entsprechen in der Regel immer den Commandos - wie im Tasmota beschrieben: https://tasmota.github.io/docs/Commands/
In Deinem Fall musst Du wahrscheinlich einen Datenpunkt: DisplayText anlegen und dort den Text reinschreiben, den Du anzeigen willst:
Ausserdem musst Du anscheinend auch Dein Display Modell setzen:
Hier findest DU unter Pkt. 9 wohl, das von Dir verwendete Model.
-
@mickym
Danke für deine Antwort.
Inzwischen habe ich das ganze nochmal mit dem mqtt Adapter ausprobiert und siehe da, dort gibt es einen Ordner Namens CMND. Und in diesem Ordner existiert auch mein Display mit dem Datenpunkt "Displaytext".Das mit dem Display und Tasmota funktioniert schon länger. Ich nutzte es bisher von pimatic aus. Wenn ich in der Console zB folgendes eingebe:
DisplayText [zOs2c1l1f0Ci2]Rolladen 2[s2c1l3f0Ci3]Schlaf-[s2c1l5f0Ci10]zimmer
Dann bekomme ich die formatierte Ausgabe auf dem Display.
Wie sollte die Eingabe an dem Datenpunkt aussehen? Bisher habe ich über den Datenpunkt keine Anzeige auf dem Display hinbekommen.
Wenn du mir vielleicht mal die korekte Eingabe zeigen würdest?Edit:
Ich habe gerade festgestellt, auch an keinem anderen mqtt Gerät kann ich über den Datenpunkt ein Payload senden. Das Problem muss irgendwo anders liegen. Stehe gerade auf dem Schlauch was das Problem angeht. Der mqtt Adapter ist als Client mit einem externen Mosquitto Broker verbunden. Und die Verbindung steht, laut des VerbindungsTests. -
@thrusty Ich habe auch den mqtt-Adapter als Client eingerichtet. Wenn man den Adapter als Frontend verwendet, dann kannst nochmal Deine mqtt-Einstellungen überprüfen. Bei mir sind in diesem Fall, alle Optionen aus:
Die States die Du publizierst, müssen halt Deiner Instanz entsprechen. Also wenn Deine mqtt-Instanz 0 ist ,dann ist die Maske zum Publizieren bei Dir mqtt.*.0
Wenn Du dann im iobroker - den Datenpunkt selbst eingibst, dann musst halt auch im Log schauen, ob es Fehler gibt.
Um zu überprüfen, ob die Daten Dein mosquitto Broker erreichen, musst halt ggf. noch mit einem weiteren mqtt-Client überprüfen.
In dem DisplayText Punkt unter dem cmnd Ast - sollte dann nur der Inhalt geschrieben werden - also ohne DisplayText voran:
[zOs2c1l1f0Ci2]Rolladen 2[s2c1l3f0Ci3]Schlaf-[s2c1l5f0Ci10]zimmer
Wenn Du den ganzen Befehl eingeben willst, so wie Du es oben beschrieben hast, dann musst Du diesen in den backlog Datenpunkt eingeben.
DisplayText [zOs2c1l1f0Ci2]Rolladen 2[s2c1l3f0Ci3]Schlaf-[s2c1l5f0Ci10]zimmer
In der Regel siehst Du auch auf der Tasmota Konsole welche mqtt-Punkte dann nach Befehlseingabe aktualisiert werden.
Sprich Du siehst welches Kommando (CMD) ich eingegeben habe und darauf spukt die Konsole aus, welche Datenpunkte im mqtt dann aktualisiert werden.
Und wie gesagt, fehlende Datenpunkte unter dem CMND Ast musst halt manuell anlegen.
-
@mickym
Das mit dem Display habe ich nun hin bekommen. Das Problem lag an der Maske zum Publizieren. Meine mqtt Instanz ist 1, in der Maske stand 0. Danke für den Tip. Das Display kann ich nun über den Datenpunkt ansteuern. Vielen Dank.Nun habe ich noch eine Fragen.
Das mit den Datenpunkten anlegen habe ich hinbekommen. Zumindest für das Display hat es geklappt.
Nur warum ich die beiden Shutter nicht über die CMND Datenpunkte erreiche ist mir ein Rätsel. Der eigegebene Wert bei ShutterPosition wird nicht übermittelt. Hast du vielleicht noch einen Tip? Unter den Punkt "state" sehe ich das beide online sind und die aktuelle Position. -
@thrusty Nun ehrlich gesagt verstehe ich die Struktur nicht. Eigentlich darf in dem Pfad nicht Eigene Punkte drinstehen, die Struktur müsste eigentlich wie im Namen aussehen. Mich wundert, dass das mit dem Display funktioniert. Hast Du den mqtt-Adapter, der nur als Client funktioniert oder den, den ich unten im Screenshot gezeigt habe und der sowohl als Client wie als Broker definiert werden kann?
Wichtig ist halt zu prüfen:
- Kommt aus dem iobroker das was Du dort in einem DP änderst auch im mosquitto an?
- Ist der mqtt-Pfad richtig, da das Tasmota -Gerät ja nur auf einen bestimmten Pfad hört:
Der Name und der Pfad müssen natürlich über einstimmen mit dem, was Du bei den Clients eingetragen hast, also %topic%/%prefix usw.
Nachdem Du nun gepostet hast, was Du für einen Adapter nutzt, dann muss die Struktur natürlich so sein, wie von Tasmota erwartet und nicht in einem Verzeichnis "Eigene Punkte" liegen. Auch wenn der Name passt, wundert mich das eher, dass es bei Display funktioniert hat. Also meines Erachtens muss backlog etc. immer eine Ebene höher. Das auf was Tasmota hört ist ja fix in der Struktur und richtet sich danach, was Du im Tasmota konfiguriert hast.
-
@mickym
Direkt unter den jeweiligen Ordner (zb ssd1351) konnte ich kein Datenpunkte anlegen, da hatte ich als einzige Option einen Ordner zu erstellen.Ich benutze diesen mqtt Broker:
Denn kann ich als Client und als Host einstellen. -
@thrusty Poste auch nochmal Deine mqtt-Einstellungen, so wie ich unten.
-
@thrusty sagte in Ikea Fernbedinung, Wert erkennen und MQTT Befehl senden:
Direkt unter den jeweiligen Ordner (zb ssd1351) konnte ich kein Datenpunkte anlegen, da hatte ich als einzige Option einen Ordner zu erstellen.
Oh das ist dieser schreckliche Admin5 Mist.
- Dazu gibt es schon ein Issue. Dann bleibt Dir nichts anderes übrig, als nochmal Deinen Admin zumindest bis das gelöst ist auf Admin4 umzustellen.
Browser Refresh - dann kannst die Datenpunkte wieder richtig erstellen. Kannst wenn Du das gemacht hast - wieder zurückdrehen. Ansonsten musst Du über einen anderen mqtt-Client diese Datenpunkte erstellen. Wenn Du unter Windows arbeitest - kannst Du das ggf- auch mit dem Tasmota Device Manager den nutze ich
-
@mickym
Du hast recht, mit diesem Topic kann es nicht funktionieren.
Hier sind die Einstellungen:
Ich werde die Admin Einstellungen mal ändern. Danke dafür.
-
@thrusty Ich hab das hier schon lang und breit moniert: https://forum.iobroker.net/topic/46814/admin5-ich-kann-keine-objekte-mehr-manuell-anlegen/367
und hier nochmal weiter ausführlich diskutiert: https://forum.iobroker.net/topic/46851/datenpunkte-allgemein-und
und inzwischen gibt es auch ein issue diesbezgl.
https://github.com/ioBroker/ioBroker.admin/issues/1067
Tut mir leid, dass Dich das nun so getroffen hat.
Ansonsten passen Deine Einstellungen
- ich habe exakt diesselben und bei mir funktioniert es, wenn die Datenpunkte an der richtigen Stelle sind.
-
@mickym
Muss dir ja nicht leid tun. Jedenfalls nett das du mir da in Gange hilfst.
Shutter2 (da war der Punkt ShutterPosition vom System angelegtworden) funktioniert nun. Bei Shutter1 habe ich den Punkt angelegt, das läuft noch nicht.
Bei dem funktioniert es aber über Backlog. Hatte ich auch selbst angelegt. -
@thrusty Schau mal, dass der Name auch den MQTT Regeln entspricht - Slash statt Punkt
-
@mickym
Oh ja, du hast Recht. Hatte ich übersehen.
Ok, die Ikea FB funktioniert, die Rolläden funktionieren, das Display funktioniert, nun will ich mal schauen dass ich das ganze mit Blockly verbinde.
-
@thrusty Na wenn Du manuell was da reinschreibst und es funktioniert, dann sollte es auch mit Deiner Logikmaschine (Blockly, JS, NR) gehen.
-
@mickym
Das wird nun die nächste Herausforderung.
Vielen Dank für deine Hilfe und Geduld. -
@thrusty Na @paul53 hat Dir ja schon auf die Sprünge geholfen. Da ich eher Node Red Fan bin, wird er Dir aber sicher weiterhelfen, wenn Du da ein Problem hast.
Im Prinzip triggerst ja nur der Datenpunkt der IKEA FB und dann beschreibst Du halt unterschiedliche Datenpunkte.
Irgendwie so ähnlich wird es dann wohl aussehen.
- Aber wie gesagt ich halte mich da raus, da ich kein Blockly Spezi bin.
-
@mickym
Oh, nochmals Danke. Du bist ein SchatzDer Block "steuere Objekt ID", denn habe ich gesucht.
Somit kann ich nun mal schon den Wert des erstellen Datenpunktes ändern. Hervorragend, es funktioniert!!!Diesen Datenpunkt will ich als Variable nutzen. Um mit der 5 Tasten IKEA FB fünf Rolläden von Hand steuern zu können. Und das Display zeigt mir an welchem Rolladen ich gerade bin. Der Variablenblock in Blockly ist viel zu steif und eingeschränkt.
Edit:
Na ja ganz geht es noch nicht. Mein Wert Zählt hoch aber leider noch nicht wieder runter. Das heißt, er zählt nicht mal hoch, wenn ich die Taste "hoch" drücke geht der Wert auf 5. Blockly rechnet im Moment noch nicht.
Ich hatte in dem Datenpunkt 1 als minimal und 5 als maximal eingegeben. -
Ich habe außerdem nicht sonst falls gemacht, sondern alles falls. Was ggf. passiert ist, das Du entweder gar nicht mit dem Zahlenwert vergleichst. Im Moment tritt halt bei Dir immer der sonst Ast auf, weil er den Wert nicht erkennt und deshalb immer hochzählt.
Wie gesagt Blockly ist nicht meines - aber ich bin überzeugt, dass Dir bald Hilfe zuteil wird.
Für mich ist NR da viel intuitiver, aber das ist halt Geschmackssache.