NEWS
2x iobroker 1xmqtt broker 1x client HELP!
-
Hallo,
irgendwie komme ich da nicht weiter...und bitte um eure Hilfe.Ich wuerde gerne Daten austauschen zwischen 2 Iobroker Installationen
mittels mqtt.'0_userdata.0.Regenmenge_24h, i2c.0.0x23.lux, i2c.0.0x76.humidity.value, i2c.0.0x76.pressure, i2c.0.0x76.temperature'
Es scheint so als wuerde nur ein Teil geschickt werden...
dh. addiere ich eine Instanz dazu wird das vorige geschickt aber nie das letzte aus der Liste.Weiters wuerde ich gerne wissen ob man das strukturierter uebergeben kann ...heisst ohne diese 0 und vielleicht das topic bestimmen?.
Die Regenmenge liefert keine Werte.
ausserdem wuerde ich gerne in die andere Richtung auch zb. GPIOs aktivieren.... muss ich die in MQTT und dann mit node red umwandeln? oder geht das direkt ?
DANKE>..
-
@fred-freund was ist dein Broker und was ist auf dem Rechner wo die Regenmenge aufläuft eingestellt?
hast du da den client installiert und wie sieht da die Konfig des zu publishenden Datenpunktes aus?
(Schraubenschlüssel) -
@fred-freund Ich kann Dir - wie ich hier nun schon oft beschrieben - von dem Einsatz des mqtt-Adapter als Broker abraten. Er kommt mit den ACK-Flags nicht zu Recht. Gibts nun schon genügend Beiträge.
Benutze mosquitto als Broker und die mqtt-Adapter als Clients. Wenn Du den Datenverkehr auch noch steuern willst bzw. topics verändern willst - installiere mosquitto auf beiden Rechner und konfigurier Dir eine Bridge.Falls Du auch eine mosquitto Bridge sammelst - kannst Du in und out topic unterschiedlich benennen: http://www.steves-internet-guide.com/mosquitto-bridge-configuration/
-
@mickym
Danke wieder einmal ...das wird also der lange Weg.
Hatte ein paar Jahre Openhab verwendet und dort mosquitto auch mit ESP 32 Clients das hat gut funktioniert.
die Topics waren dann : ESP1/Puffer/Sensor1 etc. auch die GPIOs konnte man so oder mit Topics setzen.
werde es versuchen so zu machen...Wie es scheint muss ich dann weiterhin iobrokerws_i2c/0/0x23/lux Topics verwenden?????
{ "_id": "0_userdata.0.Regenmenge_24h", "type": "state", "common": { "name": "Regenmenge_24h", "role": "", "type": "number", "desc": "Manually created", "unit": "L/m2", "min": 0, "max": 1000, "def": 0, "read": true, "write": true, "custom": { "influxdb.0": { "enabled": true, "changesOnly": true, "debounce": "1000", "retention": "31536000", "changesRelogInterval": 0, "changesMinDelta": 0, "storageType": "", "aliasId": "" } } }, "native": {}, "from": "system.adapter.admin.0", "user": "system.user.admin", "ts": 1616969580616, "acl": { "object": 1638, "owner": "system.user.admin", "ownerGroup": "system.group.administrator", "state": 1638 } }
ack wird nicht gesetzt die bleiben immer rot.
Diese Werte stammen aus einem Node Red Flow.
Danke!!
-
@fred-freund Die Werte sind rot, weil das ACK Flag nicht gesetzt wurde. Das ist auch korrekt wenn Du Kommandos schickst.
Unter userdata werden die nie bestätigt. Um das ACK Flag zu setzen ändere in den iobroker out Nodes den Typ von "command" auf "value".
Dann hast vielleicht auch keine Probleme mehr mit dem MQTT Adapter - weil dieser genau mit einem fehlenden ACK Flag die Probleme hat.
-
@fred-freund sagte in 2x iobroker 1xmqtt broker 1x client HELP!:
?????
@Homorandas war der Bleistift
nicht der Schraubenschlüssel
-
@homoran
der client ist ja oben ..aber hier nochmal
hier der broker
argggg vergessen Danke !!! Danke now Value!!
trotzdem schickt er die nicht......muss mein config nochmal ansehen...
Die mask zum publish sieht so aus
'0_userdata.0.Regenmenge_24h, i2c.0.0x23.lux, i2c.0.0x76.humidity.value, i2c.0.0x76.pressure, i2c.0.0x76.temperature'schickt aber nur
-
@fred-freund sagte in 2x iobroker 1xmqtt broker 1x client HELP!:
Ist i2c.0 ein eigener Adapter. Macht es nicht mehr Sinn erst mal alles zu publizieren i2c.* und das prefix mit dem _ ist auch eigenartig. Im mqtt wird das ein Datenpunkt unter dem Du das alles publizierst.
Also mit Deiner config werden 0_userdata.0.Regenmenge_24h unter iobrokerws_ publiziert
-
Sollten publiziert werden ...wird aber nicht...
Ja , ich bin noch nicht richtig dahintergestiegen wie das mit dem Publizieren funktioniert...
ich dachte das ist das Topic dann?
Mit dem Pressure funktioniert es ja auch?
also er legt auch im client unter mqtt alles andere auch an...ist kein Eintrag eine Wildcard?
gibt es da irgendwo eine Anleitung for Dummies von diesem Adapter?? Englisch vielleicht?
-
@fred-freund Hast Du schon mal Deinen Datenpunkt iobrokerws_ angeschaut. Ich habe das Gefühl, Du missverstehst den Begriff prefix. Der wird nicht als String vor Deine Datenpunkte gesetzt, sondern in dem Pfad.
-
-
@fred-freund Also normalerweise steht im leeren Adapter "/" als Prefix. Das ist die Wurzel des mqtt Baums,
Wenn Du alles was Du publizieren willst unter iobrokerws Publizieren willst gibst Du iobrokerws**/** ein. Also sollte das Prefix immer mit einen "/" abschließen.
Wie gesagt mein mqtt Adapter sind nur CLients für den mosquitto Broker.
In der 1. Instanz mqtt.1 - abonniere ich alles und publishe alles 1:1
In der 2. Instanz publiziere ich alles von FritzBox Adapter tr-064 alles unter iobroker.
Das heisst alles was unter tr-064 landet im broker unter iobroker:
Meine mqtt2 Instanz ist natülich leer - da er ja nicht via endlosschleife sich selbst abboniert und publisht.
-
@fred-freund
Du siehst es wurde alles Korrekt exportiert.iobrokerws_userdata
iobrokerws_ic2
iobrokerws_infoinsofern hat der prefix prächtig funktioniert
etc.
-
@mickym
Habe meine Datenpunkte userdata das _ weggenommen dachte das stoert.
Also wenn ich das so mache wie du :
Fehlen trotzdem die Regenwerte
und die GPIOs sind auch nicht dabei ....wie man die setzen koennte weiss ich auch nicht...
werd mal mosquitto installieren und sehen wie es da aussieht...
Morgen ist auch noch ein Tag...
vielen Dank! -
@fred-freund
Du hast einen Broker - als mqtt Adapter den fasst Du nicht an.Der Client der publizieren soll, da gibtst Du dann an 0_userdata.0.,ic2. als published mask ein.
Veröffentlicht wird dann alles unter "iobrokerws/". Bei dem Client sagst Du dann noch dass auch alle Zustände (ack- true) veröffentlicht werden sollen. Wenn Du dann noch Publish own stated on connect angehakt hast und den Adapter neu startest, sollten die Daten rüberkommen und unter iobrokerws - auftauchen. -
@mickym
also ich hab jetzt mal versucht im BROKER alles zu loeschen..
das Witzige der puplished jetzt alles...von sich...
Die userdata mit dem wettercom ist nur am Broker!!
und diese Iobrokerws_0_ sollte garnicht sein weil ich diese Settings habe
sollte eigentlich alles kommen..
jetzt reicht es...
-
@fred-freund Im Prinzip würde ich den client und den broker nochmal komplett löschen. Da dürfte dann ohne dass sich ein Client verbindet gar nichts reinkommen. Wenn der broker neu erstellt wird steht bei publish mqtt.0 gar nichts existieren - dann hast Du erst mal einen saubernen Broker. Du musst das aber mit mqtt.0.* einschränken.
Dann gibts entweder mqtt Clients oder Du erstellst mit dem Adapter einen und da exportierst Du nur das was Du brauchst.
Wenn Du das über dem Standard 'mqtt.0.*' nicht einschränkst publizierst Du Deinen ganzen iobroker unter mqtt.0
-
@mickym
so jetzt geht es....duerfte ein Problem sein das die ohne einfach alles publizieren...
jetzt sind auch die GPIOs da!
Broker sieht so aus...und schickt auch alles
dh. das mit der Einschraenkung durch mqtt.0. duerfte nicht stimmen...*
der schickt auch alles mit das duerfte gleich mit dem CLIENT heissen und sich ueberlagern!!habe hier das Prefix....beim CLIENT!!
und jetzt geht es..
-
@fred-freund Ja der Broker ist der Server. Der Client publisht oder subscribed.
Die Konfiguration des Brokers kann man lassen - wobei man das sich im Detail mit den Optionen nochmals anschauen muss.Der Client veröffentlich nun alles.
Aber immer noch unter iobrokerws_ - anstelle mit einem / abzuschliessen.
Dann veröffentlichst halte den gesamten iobroker mit einem * bei Veröffentlichen eigener States.
Du wirst nun dutzende Eintraöge mit iobrokerws_ haben. Das glaube ich ist weder in Deinem Sinn, noch für das System zuträglich.
-
@mickym
Meine Ausrede Erstversuch
/ im Prefix vergessen...Aber dennoch siehe oben im mqqt explorer Bild.
Der Broker published auch alles trotz mqtt.0.* von sich. Oder sehe ich das falsch?Mit # subscribe all beim Server verwirrt mich!
Kann mich nicht erinnern das man beim mosquitto broker zu den topics subscriben muss.
Musst normalerweise nur beim Client.Dh. Der verhält sich auch wie Client der Server?