NEWS
MQTT kein Publish von IOB States ausserhalb MQT... [gelöst]
-
Es scheint so, dass es nicht mehr gewollt ist, dass man states vom iob direkt veröffentlicht, sondern immer über die Instanzen der MQTT-Adapter gehen muss.
Mit der Version 2.7.4 war das alles möglich, ab der Version 3.0.6 fehlte der Eintrag (aber funktioniert noch alles) und ab Version 4 scheint es endgültig abgeklemmt zu sein:
Muss denn sowas sein, dass man Funktionalität im Nachhinein einfach abklemmt?
Ich kann ja verstehen, dass man damit unterbinden will, dass ein Adapter nicht mehr in den Namensraum auch nicht indirekt schreibt und damit die schöne neue Welt mit ihren Regeln kaputt macht, aber hätte man nicht wenigstens das Publishen behalten können, das hätte doch niemand weh getan?Ich kann nur empfehlen auf Version 2.7.4 oder max. bis 3.0.6 zu gehen und dann andere Möglichkeiten zu suchen, um andere iobroker-states via mqtt zu veröffentlichen.
Ansonsten spukt der Adapter einfach Fehler aus - und kann nicht mehr benutzt werden, wenn man andere States veröffentlicht hat:
2022-05-14 18:04:55.855 - info: host.MWHome instance system.adapter.mqtt.2 started with pid 15028 2022-05-14 18:04:59.225 - info: mqtt.1 (15021) starting. Version 4.0.1 (non-npm: ioBroker/ioBroker.mqtt) in /opt/iobroker/node_modules/iobroker.mqtt, node: v14.19.2, js-controller: 4.0.23 2022-05-14 18:04:59.691 - info: mqtt.2 (15028) starting. Version 4.0.1 (non-npm: ioBroker/ioBroker.mqtt) in /opt/iobroker/node_modules/iobroker.mqtt, node: v14.19.2, js-controller: 4.0.23 2022-05-14 18:04:59.985 - info: mqtt.1 (15021) Try to connect to mqtt://localhost:1883 with clientId=mqttClientIobrokerPublishSubscribeAlland credentials mwmqtt4iob:******************* 2022-05-14 18:05:00.162 - info: mqtt.1 (15021) Connected to localhost 2022-05-14 18:05:00.187 - info: mqtt.2 (15028) Try to connect to mqtt://localhost:1883 with clientId=mqttClientIobrokerPublishOnlyand credentials mwmqtt4iob:******************* 2022-05-14 18:05:00.165 - info: mqtt.1 (15021) Subscribe on "#" 2022-05-14 18:05:00.322 - info: mqtt.2 (15028) Connected to localhost 2022-05-14 18:05:00.325 - info: mqtt.2 (15028) Subscribe on "iobroker/#" 2022-05-14 18:05:00.358 - info: mqtt.2 (15028) All states published 2022-05-14 18:05:00.362 - info: mqtt.2 (15028) send2Server mqtt.2.info.connection[iobroker/info/connection] 2022-05-14 18:05:00.372 - error: mqtt.2 (15028) uncaught exception: Cannot read property 'common' of null 2022-05-14 18:05:00.374 - error: mqtt.2 (15028) TypeError: Cannot read property 'common' of null at publishMessage (/opt/iobroker/node_modules/iobroker.mqtt/lib/client.js:109:43) at send2Server (/opt/iobroker/node_modules/iobroker.mqtt/lib/client.js:87:9) at Immediate. (/opt/iobroker/node_modules/iobroker.mqtt/lib/client.js:66:17) at processImmediate (internal/timers.js:466:21) 2022-05-14 18:05:00.383 - error: mqtt.2 (15028) Cannot read property 'common' of null 2022-05-14 18:05:00.410 - error: mqtt.2 (15028) uncaughtException: TypeError: Cannot read property 'common' of null 2022-05-14 18:05:00.430 - info: mqtt.2 (15028) Disconnected from localhost: undefined 2022-05-14 18:05:01.276 - error: host.MWHome Caught by controller[0]: TypeError: Cannot read property 'common' of null 2022-05-14 18:05:01.277 - error: host.MWHome Caught by controller[0]: at publishMessage (/opt/iobroker/node_modules/iobroker.mqtt/lib/client.js:109:43) 2022-05-14 18:05:01.278 - error: host.MWHome Caught by controller[0]: at send2Server (/opt/iobroker/node_modules/iobroker.mqtt/lib/client.js:87:9) 2022-05-14 18:05:01.278 - error: host.MWHome Caught by controller[0]: at Immediate. (/opt/iobroker/node_modules/iobroker.mqtt/lib/client.js:66:17) 2022-05-14 18:05:01.278 - error: host.MWHome Caught by controller[0]: at processImmediate (internal/timers.js:466:21) 2022-05-14 18:05:01.279 - error: host.MWHome instance system.adapter.mqtt.2 terminated with code 1 (JS_CONTROLLER_STOPPED) 2022-05-14 18:05:01.279 - info: host.MWHome Restart adapter system.adapter.mqtt.2 because enabled 2022-05-14 18:05:31.396 - info: host.MWHome instance system.adapter.mqtt.2 started with pid 15168
-
@mickym
warum machst Du nicht einfach ein Issue bei GitHub auf? -
@djmarc75 Hab ich schon.
https://github.com/ioBroker/ioBroker.mqtt/issues/293
Aber vielleicht ist das hier im Forum ja noch nicht so bekannt und ich weiß nicht, ob das nur auf GitHub diskutiert werden soll.
-
@mickym said in MQTT kein Publish von IOB States ausserhalb MQTT-Scopes:
ob das nur auf GitHub diskutiert werden soll.
Ich stalke Dich zwar nicht aber ich lese fleissig und ich glaub mit "diskutieren" hat das in Deinen anderen Posts ja nix mehr zu tun - deshalb - GitHub ...
Wir Normalos verstehen das Ganze eh nur so ansatzweise(kenn mich mit Mosqitos nur im Sommer daheim aus
)
-
So für alle NodeRed Fans ist die verloren gegangene Publishing Funktionaltität einfach wieder herzustellen:
So werden bei mir weiterhin alle Geräte aus dem tr-064 Adapter ausgelesen und über NodeRed in meinen mqtt-Broker ohne viel Aufwand mit oder ohne Präfix (hier iobroker) veröffentlicht. (Topic in der mqtt Node bleibt natürlich leer). Der Prefix dient dazu, die Werte unter einem bestimmten Topic weiterhin zu veröffenltichen.
So war es vor der Beschneidung des mqtt-Adapters möglich und ist auch wieder möglich:
-
Ansonsten habe ich mit der neuesten MQTT- Version anscheinend noch keine größeren Probleme.
Der Adapter hat - scheint aber nur ein einmaliger Vorgang zu sein - fälschlicherweise ein paar Datenpunkte von string auf number geswitcht:
2022-05-14 20:24:28.223 - info: mqtt.1 (1721) starting. Version 4.0.1 (non-npm: ioBroker/ioBroker.mqtt) in /opt/iobroker/node_modules/iobroker.mqtt, node: v14.19.2, js-controller: 4.0.23 2022-05-14 20:24:29.272 - info: mqtt.1 (1721) Try to connect to mqtt://localhost:1883 with clientId=mqttClientIobrokerPublishSubscribeAlland credentials mwmqtt4iob:******************* 2022-05-14 20:24:29.486 - info: mqtt.1 (1721) Connected to localhost 2022-05-14 20:24:29.489 - info: mqtt.1 (1721) Subscribe on "#" 2022-05-14 20:24:31.851 - info: host.MWHome instance system.adapter.info.0 started with pid 1766 2022-05-14 20:24:32.471 - info: ping.0 (1745) starting. Version 1.5.3 in /opt/iobroker/node_modules/iobroker.ping, node: v14.19.2, js-controller: 4.0.23 2022-05-14 20:24:32.925 - warn: node-red.1 (1637) 14 May 20:24:32 - [warn] Projekte deaktiviert: editorTheme.projects.enabled=false 2022-05-14 20:24:35.754 - info: host.MWHome instance system.adapter.simple-api.0 started with pid 1804 2022-05-14 20:24:37.600 - info: info.0 (1766) starting. Version 1.9.19 in /opt/iobroker/node_modules/iobroker.info, node: v14.19.2, js-controller: 4.0.23 2022-05-14 20:24:37.789 - info: info.0 (1766) Reading/updating systemdata. 2022-05-14 20:24:39.311 - info: simple-api.0 (1804) starting. Version 2.6.4 in /opt/iobroker/node_modules/iobroker.simple-api, node: v14.19.2, js-controller: 4.0.23 2022-05-14 20:24:39.402 - info: simple-api.0 (1804) simpleAPI server listening on port 8087 2022-05-14 20:24:39.404 - info: simple-api.0 (1804) Allow states only when user is owner: false 2022-05-14 20:24:39.427 - info: simple-api.0 (1804) http server listening on port 8087 2022-05-14 20:24:39.747 - info: host.MWHome instance system.adapter.web.0 started with pid 1883 2022-05-14 20:24:40.045 - info: info.0 (1766) cpu Temp res = {"main":54.53,"cores":[],"max":54.53,"socket":[],"chipset":null} 2022-05-14 20:24:48.008 - info: mqtt.1 (1721) Client: Changed type of "mqtt.1.node-red.devices.MWWzPower1-6.actor.id1.unit" from "string"() to "number"(NaN) 2022-05-14 20:24:48.012 - info: mqtt.1 (1721) Client: Changed type of "mqtt.1.node-red.devices.MWWzPower1-6.actor.id2.unit" from "string"() to "number"(NaN) 2022-05-14 20:24:48.044 - info: mqtt.1 (1721) Client: Changed type of "mqtt.1.node-red.devices.MWWzPower1-6.actor.id3.unit" from "string"() to "number"(NaN) 2022-05-14 20:24:48.136 - info: mqtt.1 (1721) Client: Changed type of "mqtt.1.node-red.devices.MWWzPower1-6.actor.id4.unit" from "string"() to "number"(NaN) 2022-05-14 20:24:48.138 - info: mqtt.1 (1721) Client: Changed type of "mqtt.1.node-red.devices.MWWzPower1-6.actor.id5.unit" from "string"() to "number"(NaN) 2022-05-14 20:24:48.140 - info: mqtt.1 (1721) Client: Changed type of "mqtt.1.node-red.devices.MWWzPower1-6.actor.id6.unit" from "string"() to "number"(NaN)
damit sind die Datenpunkte aber gar nicht initialisiert.
Ich weiß also nicht, ob das nochmal zu Fehlern führen kann.
Bleibt mein Fazit:
Update scheint im Großen und Ganzen OK - wenn man nicht einfach solche Funktionseinschränkungen durchführen würde, die in meinen Augen unnötig sind. Wie gesagt ich verstehe, dass das bisherige Verhalten, dass der mqtt- Adapter wild durch die Gegend schreiben konnte nicht akzeptabel ist, aber man hätte das Publishing von States auch beibehalten können. Das hätte nach meinem Verständnis überhaupt nichts am System kaputt gemacht.
-
Ach zur Vervollständigung. Ab der Version 4.0.3 geht das hier auch wieder mit dem Publishen eigener States ausserhalb des mqtt Namensraums. Ihr müsst nur ab der Version 4.0.1 auch den Admin Adapter auf Version 5.4.9 updaten.
Hier nochmal die zugehörigen gitHub Einträge: