NEWS
MQTT oder MQTT-Client
-
@martybr sagte: Die Temperaturwerte bekomme ich über den MQTT.
Nicht über den HM-RPC-Adapter?
Es sind CCU-typische Geräte-IDs.@paul53 Ja, auch über den HM-RPC. Die CuXD-Geräte (EnOcean) sehe ich in der Homematic. Parallel transportiere ich sie über ccu-jack in den Mosquitto. Ich habe verschiedene Versuche gemacht, die EnOcean über den ioBroker einzubinden. Bei den Tastern hat das funktioniert, die EnOcean Rollos haben Probleme gemacht.
Die Einbindung auf der Homematic über CuXD war dort komfortabler (zumindest für mich :sunglasses: ).
das ist für mich ein Test/Versuch, viele Daten im MQTT zu konzentrieren. -
@paul53 Ja, auch über den HM-RPC. Die CuXD-Geräte (EnOcean) sehe ich in der Homematic. Parallel transportiere ich sie über ccu-jack in den Mosquitto. Ich habe verschiedene Versuche gemacht, die EnOcean über den ioBroker einzubinden. Bei den Tastern hat das funktioniert, die EnOcean Rollos haben Probleme gemacht.
Die Einbindung auf der Homematic über CuXD war dort komfortabler (zumindest für mich :sunglasses: ).
das ist für mich ein Test/Versuch, viele Daten im MQTT zu konzentrieren. -
@mickym Eine Frage noch:
Ich betreibe EnOcean Rollos, der Daten auch im MQTT über ccu-jack gespeichert werden.
Bsp.

Das setzen der Datenpunkte funktioniert über den Set-Befehl:

Bisher steuere ich die Rollos über ein Script:

Muss ich hier sowohl "abonnieren" als auch subscriben" anklicken?
-
@martybr sagte: Test/Versuch, viele Daten im MQTT zu konzentrieren.
Das ist ein Umweg gegenüber HM-RPC.
-
@mickym Eine Frage noch:
Ich betreibe EnOcean Rollos, der Daten auch im MQTT über ccu-jack gespeichert werden.
Bsp.

Das setzen der Datenpunkte funktioniert über den Set-Befehl:

Bisher steuere ich die Rollos über ein Script:

Muss ich hier sowohl "abonnieren" als auch subscriben" anklicken?
-
@martybr Nein - wenn Du unterschiedliche topics zum setzen und zum Empfangen hast, dann musst Du einen Alias erstellen und dann kannst Du versuchen den sowohl zu publishen, als auch zu abonnieren.
-
Ich versuche seit Tagen CCU-Jack mit Iobroker zu verbinden. Bis jetzt werden alle Werte im IoBroker so dargestellt
{"ts":1711112812496,"v":false,"s":0}
Was muss ich ändern?

Das das sind meine Einstellungen: ccu-jack.cfg:
"Bridge": {
"Enable": true,
"Address": "xxxx",
"Port": 1885,
"BufferSize": 0,
"UseTLS": false,
"CACertFile": "",
"Insecure": false,
"Username": "xxxx",
"Password": "xxxxx",
"ClientID": "ccujack",
"CleanSession": true,
"Incoming": [
{
"Pattern": "+/set/#",
"LocalPrefix": "",
"RemotePrefix": "ccujack/",
"QoS": 0
},
{
"Pattern": "+/get/#",
"LocalPrefix": "",
"RemotePrefix": "ccujack/",
"QoS": 0
}
],
"Outgoing": [
{
"Pattern": "+/status/#",
"LocalPrefix": "",
"RemotePrefix": "ccujack/",
"QoS": 0
}
]
}
},

-
Wieso das ist doch gut - so hast Du alle Infos zusammen. Wenn Du einzelne Werte aus den Objekten haben möchtest, erstellst Du Dir einen Alias oder schreibst diese Werte in eigene Datenpunkte via Blockly, JS oder NodeRed.
Falls Du NodeRed nutzt - habe ich einen Flow - der Dir automatisch alles in einzelne Datenpunkte zerlegt. Aber meines Erachtens braucht es das nicht. Falls Du Dich für das automatische Erstellen in einzelne Punkte interessierst - hier der Thread mit der Anleitung:https://forum.iobroker.net/topic/43856/json-oder-javascript-objekt-in-iobroker-datenpunkte-zerlegen
Wie Du an den Aufrufen siehst, hat er ja schon vielen geholfen.
Ansonsten wie Du einen einzelnen Wert in einem Alias extrahierst, habe ich hier im Detail beschrieben: https://forum.iobroker.net/post/980575
-
Die letzte Antwort ist ein Weilchen her aber wenn man die Frage googelt, wann welcher Adapter, MQTT client oder MQTT server and client einzusetzen ist dies hier ganz oben auf der Liste.
Daher vielleicht nochmal zur eigentliche Frage im Titel.Wenn ich Eclipse Mosquitto als MQTT Broker einsetzte, warum brauche ich noch den MQTT server and client?
Einzig was mir gerade einfällt sind:-
Hier stellt sich mir dennoch die Frage, möchte ich das, wenn ich beispielsweise mit Taster arbeite ?
-
@mickym sagte in MQTT oder MQTT-Client:
Der Grund warum die meisten den anderen Adapter nutzen (ich auch) - weil sie mosquitto also Broker nutzen und dann den Client/Server Adapter als Spiegel.
-
anstatt mit MQTT Explorer schauen, was alles verfügbar ist, den gesamten Broker spiegeln und nur im iobroker arbeiten
-
um die evtl. sehr lange List von verfügbaren Clients des Brokers zu sortieren, in dem diese unterschiedlichen Instanzen des MQTT client zugeteilt werden, über spezifischen Subscribe von Topics. -
-> aber warum ist hier nicht der erste Weg über ioBroker.alias-manager (ioBroker ALIAS Definitionen)zu gehen?
-
-
Die letzte Antwort ist ein Weilchen her aber wenn man die Frage googelt, wann welcher Adapter, MQTT client oder MQTT server and client einzusetzen ist dies hier ganz oben auf der Liste.
Daher vielleicht nochmal zur eigentliche Frage im Titel.Wenn ich Eclipse Mosquitto als MQTT Broker einsetzte, warum brauche ich noch den MQTT server and client?
Einzig was mir gerade einfällt sind:-
Hier stellt sich mir dennoch die Frage, möchte ich das, wenn ich beispielsweise mit Taster arbeite ?
-
@mickym sagte in MQTT oder MQTT-Client:
Der Grund warum die meisten den anderen Adapter nutzen (ich auch) - weil sie mosquitto also Broker nutzen und dann den Client/Server Adapter als Spiegel.
-
anstatt mit MQTT Explorer schauen, was alles verfügbar ist, den gesamten Broker spiegeln und nur im iobroker arbeiten
-
um die evtl. sehr lange List von verfügbaren Clients des Brokers zu sortieren, in dem diese unterschiedlichen Instanzen des MQTT client zugeteilt werden, über spezifischen Subscribe von Topics. -
-> aber warum ist hier nicht der erste Weg über ioBroker.alias-manager (ioBroker ALIAS Definitionen)zu gehen?
@PackElend sagte in MQTT oder MQTT-Client:
Wenn ich Eclipse Mosquitto als MQTT Broker einsetzte, warum brauche ich noch den MQTT server and client?
Na Du brauchst ja wenigstens einen MQTT Client, um mit Deinem MQTT Broker (also z.Bsp. mosquitto) zu kommunizieren. Falls Du keinen Adapter nutzt, kann zum Beispiel auch NodeRed - bzw. der NodeRed Adapter mit Deinem Broker direkt arbeiten und muss nicht über den MQTT Adapter laufen. Blockly braucht aber immer den Adapter.
@PackElend sagte in MQTT oder MQTT-Client:
The ioBroker MQTT-Broker in server mode only simulates the behavior of real MQTT-Broker (like Mosquitto), but it is not the same. Real MQTT-Broker normally does not save the values of the topics and just forwards the message to other subscribed clients.
Normalerweise funktioniert MQTT so, dass es EINE Nachricht an EINEN Client sendet und dann ist die Nachhricht ungültig bzw. nicht mehr existent (außer Du sendest eine Nachricht mit dem retain Flag - dann wird die Nachricht jedesmal bei Wiederverbinden gesendet).
Der iobroker Adapter behält aber in seiner Datenbank den letzten empfangenen Status. Man kann damit also auf einen Blick sehhen, was war die letzte Status - aber zum steuern muss man die Nachrichten immer wieder schicken.@PackElend sagte in MQTT oder MQTT-Client:
Hier stellt sich mir dennoch die Frage, möchte ich das, wenn ich beispielsweise mit Taster arbeite ?
Ein Taster arbeitet nur mit einem Triggersignal und das ist dann immer true. - Den Status eines Gerätes über einen Taster ist immer ein anderes Topic, dass das Gerät dann von sich aus sendet. Deswegen triggert man immer mit true - egal ob Du mit dem Taster ein- oder ausschaltest.
@PackElend sagte in MQTT oder MQTT-Client:
anstatt mit MQTT Explorer schauen, was alles verfügbar ist, den gesamten Broker spiegeln und nur im iobroker arbeiten
Ja so mache ich das - man braucht keinen Explorer
@PackElend sagte in MQTT oder MQTT-Client:
um die evtl. sehr lange List von verfügbaren Clients des Brokers zu sortieren, in dem diese unterschiedlichen Instanzen des MQTT client zugeteilt werden, über spezifischen Subscribe von Topics. -
-> aber warum ist hier nicht der erste Weg über ioBroker.alias-manager (ioBroker ALIAS Definitionen)zu gehen?Du kannst das machen wie Du willst. Die meisten Geräte bieten ja an unter welchem Topic sie etwas veröffentlichen. Wenn Du die Topics entsprechend frei wählst, dann brauchst Du den Alias eigentlich nicht, weil Du dann ja nicht mit Gerätenamen arbeitest.
Den Alias kannst Du dann verwendet, wenn Du zum Beispiel aus einem JSON einzelne Werte als einzelne Datenpunkte verfügbar haben willst. Wenn Du allerdings dann über Deine Logikmaschine (NodeRed, JS oder Blockly) weitere Steuerungen vornimmst, dann kann man die auch in dem Script oder dem Flow direkt referenzieren. -