[Bugs] 00_MQTT2_SERVER / 10_MQTT2_DEVICE

Begonnen von betateilchen, 10 August 2018, 18:01:33

Vorheriges Thema - Nächstes Thema

projectsun

Hallo, ich würde die Module gern testen.

Beim reload: Too many arguments for main::Dispatch at ./FHEM/00_MQTT2_SERVER.pm line 404, near "$ac)"

was diese Zeile wäre: Dispatch($tgt, "$ac$cid:$tp:$val", undef, !$ac);

Das 10_MQTT2_DEVICE hat er immerhin schon mal geladen.
Zentrale Ubuntu, Rpi B+ mit Busware 868 CUL ser2net, Rpi 2 an Aquarium mit DS18B20, und S0Counter, Rpi 3 mit nanoCUL 433 und 868 ser2net, 7x Revolt NC-5462, 1x miniCUL WLAN, 3x IT-1000, 6x ELRO AB440, KS300, EM1000-HSM, EM1000-WZ, FHT80B, 5x FHT8v2, 20x Nodemcu mit Sensoren, 6x Echo, Sonos


projectsun

Zentrale Ubuntu, Rpi B+ mit Busware 868 CUL ser2net, Rpi 2 an Aquarium mit DS18B20, und S0Counter, Rpi 3 mit nanoCUL 433 und 868 ser2net, 7x Revolt NC-5462, 1x miniCUL WLAN, 3x IT-1000, 6x ELRO AB440, KS300, EM1000-HSM, EM1000-WZ, FHT80B, 5x FHT8v2, 20x Nodemcu mit Sensoren, 6x Echo, Sonos

FunkOdyssey

Ich nutze die MQTT-Version von eBusd (https://github.com/john30/ebusd/wiki/3.3.-MQTT-client) und dort steht u.a. auch ein uptime-Topic zur Verfügung.
Nur müllt mir dies natürlich mein MQTT2_DEVICE voll und daher habe ich es in der readingList entfernt. Dennoch wird dieses Reading immer wieder neu erzeugt. Nicht im Attribut readingList, sondern als Reading.

Werde ich das nur los, indem ich im MQTT2_SERVER das autocreate deaktiviere?
Es reicht also nicht, es aus dem Attribut readingList zu entfernen?




Wofür steht die CID (hier: ebusd_3.2_1) eigentlich vor jeder Zeile in readingList?
ebusd_3.2_1:ebusd/global/uptime:.* uptime

Ich konnte dieses Präfix überall entfernen und frage mich nun aber, ob dies zukünftig irgendwelche Probleme macht.

rudolfkoenig

ZitatNur müllt mir dies natürlich mein MQTT2_DEVICE voll
Was genau heisst das?

ZitatWerde ich das nur los, indem ich im MQTT2_SERVER das autocreate deaktiviere?
Ja.

FunkOdyssey

Nicht wirklich vollmüllen. Aber alle 5sec ein Reading hochzählen, welches vermutlich als Event reinkommt und dann nur mit Aufwand aus dem Log entfernt werden kann, ist für mich ärgerlich.

Klar kann ich mit event-on-change-... und FileLog RegEx ausschließen. Aber dafür müsste ich ja alle Positiv-Readings aufzählen (Whitelist) und kann nicht per Blacklist das "uptime" loswerden. Daher ist für mich der einfachste Weg, das Reading aus dem Attribut readingList zu löschen. Aber es kommt ja wieder. 😄

rudolfkoenig

ZitatWofür steht die CID (hier: ebusd_3.2_1) eigentlich vor jeder Zeile in readingList?
ClientId, wird bei CONNECT geschickt, und automatisch angelegte MQTT2_DEVICE Instanzen verwenden es zur genaueren Unterscheidung der Nachrichten. Kann aus dem Regexp entfernt werden, wenn sichergestellt ist, dass alle verbundenen Geraete unterschiedliche Topics verwenden, was fuer einen "normalen" MQTT Server auch der Fall sein muss.

blueberry63

Ich habe den MQTT2 Server mit "autocreate" konfiguriert. Wenn ich nun ein automatisch angelegtes Device lösche, kann ich es danach nochmal anlegen lassen?

Gruß
Blueberry63
FHEM auf BBB mit Wheezy: 1x CUL_HM_HM_SCI_3_FM, 1x INSTAR CAM3010, 1x HM-LC-SW1-PL2, 1x HM-LC-Bl1PBU-FM, 1x HM-Sen-MDIR-O, Viessmann Heizung, Gaszähler via GPIO, Klingel via HM-LC-Bl1PBU-FM an FBox, Mailcheck, AVR, XBMC, NanoCUL 433+668 an Raspi per Ethernet, Funksteckdosen (Pollin, IT), Automower

rudolfkoenig

Wenn autocreate im MQTT2_SERVER an ist, dann wird das Geraet immer wieder angelegt.

blueberry63

Das Gerät wird leider nicht wieder angelegt. Deshalb habe ich mich gemeldet. Ich finde zwar unter der Kategorie "Everything" das Gerät mit dem Namen "mqtt2srv_192.168.x.x" (Room: hidden), aber als "echtes" Gerät ist es nicht angelegt.
FHEM auf BBB mit Wheezy: 1x CUL_HM_HM_SCI_3_FM, 1x INSTAR CAM3010, 1x HM-LC-SW1-PL2, 1x HM-LC-Bl1PBU-FM, 1x HM-Sen-MDIR-O, Viessmann Heizung, Gaszähler via GPIO, Klingel via HM-LC-Bl1PBU-FM an FBox, Mailcheck, AVR, XBMC, NanoCUL 433+668 an Raspi per Ethernet, Funksteckdosen (Pollin, IT), Automower

rudolfkoenig

Kannst du bitte ein "attr MQTT2_SERVER verbose 5" log hier anhaengen?

blueberry63

Wie gewünscht  :)
(wie Du siehst, handelt es sich hier um 2 Geräte (Webcams), die ich gelöscht und gerne wieder angelegt hätte)


2018.09.25 21:17:41 4: Connection accepted from mqtt2srv_192.168.99.57_60442
2018.09.25 21:17:41 4: mqtt2srv_192.168.99.57_60442 mosqpub|16131-WebcamGH CONNECT V:3 keepAlive:60 usr:
2018.09.25 21:17:41 4: mqtt2srv_192.168.99.57_60442 mosqpub|16131-WebcamGH PUBLISH myhome/CamGH/brightness:23
2018.09.25 21:17:41 5: mqtt2srv_192.168.99.57_60083 mosqsub|271-WebcamGH => myhome/CamGH/brightness:23
2018.09.25 21:17:41 5: mqtt2srv: dispatch autocreate:mosqpub_16131_WebcamGH:myhome/CamGH/brightness:23
2018.09.25 21:17:41 4: mqtt2srv_192.168.99.57_60442 mosqpub|16131-WebcamGH DISCONNECT
2018.09.25 21:17:41 4: Connection accepted from mqtt2srv_192.168.99.57_60443
2018.09.25 21:17:41 4: mqtt2srv_192.168.99.57_60443 mosqpub|16146-WebcamGH CONNECT V:3 keepAlive:60 usr:
2018.09.25 21:17:41 4: Connection accepted from mqtt2srv_192.168.99.58_39733
2018.09.25 21:17:41 4: mqtt2srv_192.168.99.58_39733 mosqpub|6502-WebcamTer CONNECT V:3 keepAlive:60 usr:
2018.09.25 21:17:41 4: mqtt2srv_192.168.99.57_60443 mosqpub|16146-WebcamGH PUBLISH myhome/CamGH/rtsp_h264_server:ON
2018.09.25 21:17:41 5: mqtt2srv_192.168.99.57_60083 mosqsub|271-WebcamGH => myhome/CamGH/rtsp_h264_server:ON
2018.09.25 21:17:41 5: mqtt2srv: dispatch autocreate:mosqpub_16146_WebcamGH:myhome/CamGH/rtsp_h264_server:ON
2018.09.25 21:17:41 4: mqtt2srv_192.168.99.57_60443 mosqpub|16146-WebcamGH DISCONNECT
2018.09.25 21:17:41 4: mqtt2srv_192.168.99.58_39733 mosqpub|6502-WebcamTer PUBLISH myhome/CamTer/leds/blue:ON
2018.09.25 21:17:41 5: mqtt2srv_192.168.99.58_39419 mosqsub|274-WebcamGH => myhome/CamTer/leds/blue:ON
2018.09.25 21:17:41 5: mqtt2srv: dispatch autocreate:mosqpub_6502_WebcamTer:myhome/CamTer/leds/blue:ON
2018.09.25 21:17:41 4: mqtt2srv_192.168.99.58_39733 mosqpub|6502-WebcamTer DISCONNECT
2018.09.25 21:17:41 4: Connection accepted from mqtt2srv_192.168.99.58_39734
2018.09.25 21:17:41 4: Connection accepted from mqtt2srv_192.168.99.57_60444
2018.09.25 21:17:42 4: mqtt2srv_192.168.99.58_39734 mosqpub|6506-WebcamTer CONNECT V:3 keepAlive:60 usr:
2018.09.25 21:17:42 4: mqtt2srv_192.168.99.57_60444 mosqpub|16166-WebcamGH CONNECT V:3 keepAlive:60 usr:
2018.09.25 21:17:42 4: mqtt2srv_192.168.99.58_39734 mosqpub|6506-WebcamTer PUBLISH myhome/CamTer/leds/yellow:OFF
2018.09.25 21:17:42 5: mqtt2srv_192.168.99.58_39419 mosqsub|274-WebcamGH => myhome/CamTer/leds/yellow:OFF
2018.09.25 21:17:42 5: mqtt2srv: dispatch autocreate:mosqpub_6506_WebcamTer:myhome/CamTer/leds/yellow:OFF
2018.09.25 21:17:42 4: mqtt2srv_192.168.99.58_39734 mosqpub|6506-WebcamTer DISCONNECT
2018.09.25 21:17:42 4: mqtt2srv_192.168.99.57_60444 mosqpub|16166-WebcamGH PUBLISH myhome/CamGH/rtsp_mjpeg_server:OFF
2018.09.25 21:17:42 5: mqtt2srv_192.168.99.57_60083 mosqsub|271-WebcamGH => myhome/CamGH/rtsp_mjpeg_server:OFF
2018.09.25 21:17:42 5: mqtt2srv: dispatch autocreate:mosqpub_16166_WebcamGH:myhome/CamGH/rtsp_mjpeg_server:OFF
2018.09.25 21:17:42 4: mqtt2srv_192.168.99.57_60444 mosqpub|16166-WebcamGH DISCONNECT
2018.09.25 21:17:42 4: Connection accepted from mqtt2srv_192.168.99.58_39735
2018.09.25 21:17:42 4: mqtt2srv_192.168.99.58_39735 mosqpub|6510-WebcamTer CONNECT V:3 keepAlive:60 usr:
2018.09.25 21:17:42 4: Connection accepted from mqtt2srv_192.168.99.57_60445
2018.09.25 21:17:42 4: mqtt2srv_192.168.99.57_60445 mosqpub|16169-WebcamGH CONNECT V:3 keepAlive:60 usr:
2018.09.25 21:17:42 4: mqtt2srv_192.168.99.58_39735 mosqpub|6510-WebcamTer PUBLISH myhome/CamTer/leds/ir:ON
2018.09.25 21:17:42 5: mqtt2srv_192.168.99.58_39419 mosqsub|274-WebcamGH => myhome/CamTer/leds/ir:ON
2018.09.25 21:17:42 5: mqtt2srv: dispatch autocreate:mosqpub_6510_WebcamTer:myhome/CamTer/leds/ir:ON
2018.09.25 21:17:42 4: mqtt2srv_192.168.99.58_39735 mosqpub|6510-WebcamTer DISCONNECT
2018.09.25 21:17:42 4: Connection accepted from mqtt2srv_192.168.99.57_60446
2018.09.25 21:17:42 4: mqtt2srv_192.168.99.57_60445 mosqpub|16169-WebcamGH PUBLISH myhome/CamGH/night_mode:ON
2018.09.25 21:17:42 5: mqtt2srv_192.168.99.57_60083 mosqsub|271-WebcamGH => myhome/CamGH/night_mode:ON
2018.09.25 21:17:42 5: mqtt2srv: dispatch autocreate:mosqpub_16169_WebcamGH:myhome/CamGH/night_mode:ON
2018.09.25 21:17:42 4: mqtt2srv_192.168.99.57_60445 mosqpub|16169-WebcamGH DISCONNECT
2018.09.25 21:17:42 4: Connection accepted from mqtt2srv_192.168.99.58_39736
FHEM auf BBB mit Wheezy: 1x CUL_HM_HM_SCI_3_FM, 1x INSTAR CAM3010, 1x HM-LC-SW1-PL2, 1x HM-LC-Bl1PBU-FM, 1x HM-Sen-MDIR-O, Viessmann Heizung, Gaszähler via GPIO, Klingel via HM-LC-Bl1PBU-FM an FBox, Mailcheck, AVR, XBMC, NanoCUL 433+668 an Raspi per Ethernet, Funksteckdosen (Pollin, IT), Automower

rudolfkoenig

Ich habe 8 unterschiedliche clientIds gezaehlt:
Zitatmosqpub|16131-WebcamGH PUBLISH myhome/CamGH/brightness:23
mosqpub|16146-WebcamGH PUBLISH myhome/CamGH/rtsp_h264_server:ON
mosqpub|16166-WebcamGH PUBLISH myhome/CamGH/rtsp_mjpeg_server:OFF
mosqpub|16169-WebcamGH PUBLISH myhome/CamGH/night_mode:ON
mosqpub|6502-WebcamTer PUBLISH myhome/CamTer/leds/blue:ON
mosqpub|6506-WebcamTer PUBLISH myhome/CamTer/leds/yellow:OFF
mosqpub|6510-WebcamTer PUBLISH myhome/CamTer/leds/ir:ON
Dabei ist der Praefix mosqpub stoerend: MQTT2_DEVICE legt nichts an, wenn clientId mit mosqpub anfaengt, weil das der mosquitto_pub default clientId ist. Insofern ist das Problem nicht, dass es nicht _wieder_ angelegt wird, sondern dass es ueberhaupt nicht angelegt wird.

Ich empfehle clientId zu aendern, wenn das nicht geht, muss das Geraet manuell in FHEM angelegt werden.

rih

Habe ein eher unkritisches Problem zu melden (sofern es überhaupt eines ist und ich es nur missverstehe):

2018.10.01 20:20:51 3: MQTT_Broker: MQTT_Broker_192.168.0.27_50768 left us (keepalive check

Die Meldung kommt, wenn ich das Device abschalte. Sollte das nicht so aussehen (man beachte das Device):

2018.10.01 20:20:51 3: MQTT_Broker: MQTT_Device_192.168.0.27_50768 left us (keepalive check

2. Frage: ich hatte anfangs einen Schreibfehler in meiner readingslist. Das fehlerhafte Reading habe ich mit deletereading gelöscht, doch es erscheint sporadisch immer wieder zusammen mit dem Reading in der richtigen Schreibweise. Wie kann ich das falsche Reading entgültig loswerden?

rudolfkoenig

ZitatSollte das nicht so aussehen (man beachte das Device)
MQTT_Broker_192.168.0.27_50768 ist der Name der FHEM-Instanz des Typs MQTT2_SERVER(!), was die TCP/IP Verbindung representiert. Diese Instanzen sind temporaer, und werden nie gespeichert. Bei der o.g. Meldung wird diese Instanz entfernt. autocreate in MQTT2_SERVER legt ein MQTT2_DEVICE an (was clientId der Verbindung im Namen enthaelt, nicht die IP-Adresse), was fuer den Benutzer dieses Geraet (nicht die Verbindung) representiert.

ZitatWie kann ich das falsche Reading entgültig loswerden?
Nach dem Loeschen des Readings FHEM neustarten.