NEWS
MQTT Server oder/und Client oder externen MQTT Server
-
@mickym
So erstmal Danke, ich hab derzeit nur eine Tasmota Steckdose dran aber da fehlen mir ein paar Einträge die vorher da waren, also cmd Einträge damit ich schalten kann. seis drum schau ich mir morgen an und werde berichten Soweit so gut.. -
@joachim-h
Ja wenn die sich nicht selbst melden - dann muss man die Datenpunkte entweder selbst anlegen oder man nutzt (unter Windows) den Tasmota Device Managerda werden so gut wie alle Punkte angelegt.
aber sehe gerade - auch nicht alle. Bei dem screenshot fehlt der backlog Punkt - den ich woanders drin habe.
-
@mickym
Sodala, also die 4 Tasmota switches die ich habe sind drin und soweit klappt alles eigentlich. Die lassen sich auch schalten.
Sorgen machen mir meine ESPEasy, die sind relativ zickig was MQTT angeht, bzw sehr restriktiv. das Muss ich mir nochmal genauer anschauen. Die Datenpunkte, wie Temperatur oder sowas übermitteln die auch aber das schalten geht über Rules und die zugehörigen MQTT Topics werden einfach nicht angelegt...
Gibt es eigentlich auch die Möglichkeit http/get commands zu versenden? ICh habs über ein Skript gelöst aber gibts da nen Adapter?
Wichtiger: Wie geht denn das mit den Datenpunkten selbst anlegen?Und danke nochmal für Deine Hilfe..
-
@joachim-h sagte in MQTT Server oder/und Client oder externen MQTT Server:
Datenpunkte, wie Temperatur oder sowas übermitteln die auch aber das schalten geht über Rules und die zugehörigen MQTT Topics werden einfach nicht angelegt...
Das macht aber nichts - das hatte ich glaub schon erwähnt - Du kannst alle mqtt Punkte selbst anlegen. Bei mir ging das etwas durch den Tasmota Device Manager - aber das spielt keine Rolle.
Einfach unter Deinem cmnd Ast die Datenpunkte Rule1-3 anlegen (s. Screenshot).
Grundsätzlich kannst Du http get Kommandos über Skript, Blockly (denke habe ich auch gesehen) und NodeRed (nutze ich) absenden. Brauchst Du aber nicht, weil Du wie gesagt alle benötigten Punkte Dir selbst anlegen kannst.
Hier hast Du auch nochmal die Anleitung:
-
@mickym so ich hab mich bei dem Sauwetter mal länger beschäftigt. in ESPeasy ist MQTT etwas gefrickel aber wenn man es mal geschnallt hat dann gehts schon.
Hab die Datenpunkte (nennt man die so?) mit dem Mqtt Explorer angelegt. So habe ich auch schön gesehen was da gesendet wird und wie es ankommt und der iobroker hat dann den Datenpunkt einfach angelegt...praktisch irgendwie.
Die Anleitung hat da sehr gut geholfen... -
@joachim-h Wenn Du den mqtt Adapter so eingestellt hast, wie ich, dann werden die Datenpunkte, die Du in der mqtt-Instanz des Clients im iobroker anlegst auch im mosquitto angelegt - das kannst ja mit Deinem Mqtt Explorer mal prüfen und dann kann man auf diesen verzichten.
Du kannst dann generell auf die Datenpunkte direkt in iobroker mittels Deiner präferierten Logikmaschine zugreifen oder falls Deine Logikmaschine (wie Node Red) auch direkt einen mqtt-Broker ansprechen kann auf zweierlei Art und Weise.
-
@mickym Mal sicherheitshalber: Ich habe auf dem Raspberry wo iobroker drauf ist nur den Mosquitto server installiert. nicht den Client. Allerdings hab ich den Client aus dem Adapter vom iobroker broker/client installiert. Das ist schon ok oder?
Node Red nimmt aber schon den Mosquitto her, Port und Ip ist ja identisch zu vorher..oder wo kann man das einstellen?Node Red habe ich auch asl adapter vom iobroker, erschien mir einfach. Das ist ok oder soll ich den auch auf den Raspberry (ohne den Umweg über den Adapter) installieren?
Ausserdem hab ich mich zufrüh gefreut, er legt mir nicht jeden Datenpunkt mit dem Mqtt explorer an, also muss ich mich mal mit Node Red mehr vertraut machen..
-
- Ja es ist OK nur den mosquitto Server zu installieren, die Clients brauchst Du nicht, dafür hast Du den Adapter.
- Klar mit dem MQTT iobroker client/server adapter kannst Du, wenn Du den mqtt Adapter als Client konfiguriert hast (siehe mein Screenshot) direkt modifizieren. Der Adapter dient also als mqtt Client.
- Node Red als Adapter ist sogar wichtig, sonst kannst Du aus NodeRed gar nicht auf die Datenpunkte Deines iobrokers zugreifen.
- Wie gesagt wenn Du unter der mqtt-Instanz Deines mqtt-Adapters (also in den Objekten unter mqtt.0) selbst einen Datenpunkt anlegst, dann wird der auch zu Deinem mosquitto Broker/Server gepublisht.
So kannst Du direkt aus dem iobroker an Deine Geräte Kommandos schicken.
Wie gesagt iobroker ist flexibel welche Logikmaschine Du verwenden willst. Wenn Du blockly oder Javascript bevorzugst, kannst Du die Datenpunkte unter Deinem mqtt.0. instanz modifizieren.
Ich bevorzuge Node Red - da hast Du die iobroker-out Nodes um auch direkt die Datenpunkte im iobroker zu modifizieren.
Ansonsten hast Du die mqtt Nodes in Node Red - dann musst Du die Kommunikationsparameter zum mosquitto Server eintragen.Ich zeige Dir mal 2 Screenshots:
im iobroker-out Node gibst Du den Datenpunkt in der iobroker Notation im Topic an:
Bei den mqtt - out Nodes
konfigurierst Du Dir den iobroker den kontaktieren willst und gibst auch noch das Topic an:
Falls Du im Node Red noch keinen mqtt Broker definiert hast, wirst Du automatisch auf den folgenden Dialog geleitet:
-
@joachim-h sagte in MQTT Server oder/und Client oder externen MQTT Server:
Node Red nimmt aber schon den Mosquitto her, Port und Ip ist ja identisch zu vorher..oder wo kann man das einstellen?
Nun es kann nur ein mqtt / Server / Broker auf dem gleichen Port auf der gleichen Maschine laufen. Falls Du also nichts anderes laufen hast, kann nur mosquitto auf Port 1883 hören.
Im Übrigen gibst Du sowohl bei mqtt-Client Adapter, als auch bei Node Red einen Namen angeben, um jeden mqtt Client zu identifizieren.
Auf Deiner Maschine findest Du im Verzeichnis /var/log/mosquitto die aktuelle mosquitto.log Datei - da siehst Du genau welche Geräte sich mit welcher Kennung und IP mit Deinem mosquitto Broker verbinden.
Aber nochmal Du brauchst Node Red nicht, um Datenpunkte im mosquitto anzulegen!
Das machst Du einfach mit den Datenpunkten im iobroker. Ausserdem wundert mich, warum es mit Deinem mqtt Exploerer nicht gegangen ist. Sollte ebenfalls funktionieren.
-
@mickym also Node Red habe ich gerade noch konfiguriert, läuft soweit.
Ich hab den iobroker neu gestartet (eigentlich musste ich den Raspberry neu starten) und plötzlich waren die Datenpunkte da. Egal, ich werd mich jetzt in Node Red einarbeiten, das hab ich bei Domoticz eher stiefmütterlich behandelt...
Danke für deine Hilfe, ist echt hilfreich ;-)vor allem die Screenshots -
@joachim-h
Dann empfehle ich in der NodeRed Adapter Konfiguration als erstes den Haken rauszumachen - dass alles in Strings umgewandelt wird. Das erspart Dir später eine Menge Konvertiererei. -
@mickym Hab ich gleich gemacht...weil ich das Problem hatte das node red immer exit with 1 im Log angezeigt hat.
Ohne haken hats ne Sekunde länger gedauert und er hat die Verbindung mit dem Server verloren.
Da werd ich mich aber morgen auf die Suche machen. -
@joachim-h Den install Error kann ich nichts zu sagen. Die Warnung, dass die Projektfunktion nicht aktiviert ist, kannst erst mal ignorieren, das kannst Du später noch einrichten, wenn Du mit Projekten arbeitest. Die Funktion hat auch noch einen Bug - aber inzwischen weiß ich wie man das behebt - aber das ist unwichtig.
Nur der Install Error sollte ein einmaliges Ereignis sein.
-
@mickym so läuft alles wie es soll, mittlerweile klappt es auch recht gut mit Node red...für mehr brauch ich mehr Zeit, muss ja neben her auch noch arbeiten (gut das ich im HO bin)
Ich habe noch eine kurze Frage, ich habe soeben rausgefuden dass ich einen 2. Mqtt Broker in meinem Netzwerk habe, nämlich in meinem raspi mit openWB drauf. kann ich einen zweiten Adapter installieren der dann auf den anderen Server lauscht? Stören sich die beiden oder klappt sowas..Nur den Broker der OpenWB verwenden, weis nicht ob das gut ist, dann würde ich den broker auf dem iobroker raspi eben wieder deinstallieren...
-
@joachim-h Solange Du die Adapter als Client betreibst kannst Du einfach eine neue Instanz des Adapters aufmachen und Dich mit dem anderen mqtt Broker verbinden. Das macht keine Probleme. Du kannst nur keine 2 Broker auf der gleichen Maschine mit dem gleichen Port laufen lassen. Also Du brauchst keinen 2. Adapter sondern eine 2. Instanz des bestehenden Adapters - die heißt dann mqtt.1 - Ich habe auch 2 Instanzen laufen, aber aus anderen Gründen.
-
@mickym super danke so hab ichs gemacht und openWB ist sichtbar und wenn ich will, auch verarbeitbar...schaut alles gut aus, danke für deinen Support bisher..
-
@mickym
Moin,wir haben hier auch gerade eine wilde MQTT Diskussion. Besonders die letzten Posts.
Und zwar folgendes.
Bei mir lief die ganze Zeit MQTT als Server auf Port 1883 und hatte von einigen ESPs Daten über MQTT empfangen.. Hier auch immer der gleiche Port eingestellt.
Jetzt brauche ich für ein 868MHz CUL Stick und dessen Datenübertragung mosquitto.
Hier kollidiert das aber auf Port 1883.Wie stelle ich nun was ein? Ich habe gelesen, dass bei MQTT nur Port 1883 und 8883 geht.
Was ist mit 1884 und 1885?Müssen Client und Broker immer den gleich Port haben? Mit knapp 10 ESPs habe ich ja auch 10 verschiedene Clients, die alle auf dem gleiche Port senden, wieso hatte dann mosquitto kollidiert, obwohl es auch nur client ist?
Wäre klasse einige Antworten zu bekommen!
-
@hg6806 Warum kollidiert das mit Deinem CUL Stick. Der kann doch auch auf 1883 alle Daten an Deinen MQTT-Broker übertragen.
Client und Broker müssen immer den gleichen Port haben, sonst können sie ja nicht miteinander kommunizieren.
Die Clients identifizieren sich durch die Client -Id und in dem Sie auf ein anderes Topic publishen.
Also was ist verkehrt daran, dass Dein CUL Stick ebenfalls über 1883 mit mosquitto kommuniziert - das stört doch Deine ESP's nicht.Ich verstehe Eure wilde Port Jongliererei eigentlich nicht. Dein mosquitto ist immer ein Broker und kann max. mit einem anderen mosquitto als Bridge fungieren. Wenn Du einen weiteren listener einträgst dann hört er halt auf 2 Ports. Mir erschließt sich der Sinn nicht. Lass doch einfach Deinen CUL ebenfalls mit 1883 zu Deinem mosquitto kommunizieren???
-
-
@mickym sagte in MQTT Server oder/und Client oder externen MQTT Server:
Also was ist verkehrt daran, dass Dein CUL Stick ebenfalls über 1883 mit mosquitto kommuniziert
ist der CUL dafür da oder kommuniziert er mit dem CUL-Adapter wegen Max! und FS20?