mqtt2 legt per autocreate für jedes publish per moquitto_pub ein device an.

Begonnen von andreas.maurer, 11 Mai 2020, 19:45:23

Vorheriges Thema - Nächstes Thema

andreas.maurer

Nabend zusammen.

ich versuche grade von einem mosquitto server auf MQTT2 um zu ziehen. Dabei stoße ich auf das Problem, dass mit das Autocreate für jedes Publish ein neues device anlegt.

mal ein Beispiel:

defmod MQTT2_mosq_OEzNgwGke60SrsWOPI MQTT2_DEVICE mosq_OEzNgwGke60SrsWOPI
attr MQTT2_mosq_OEzNgwGke60SrsWOPI IODev mqtt2_server
attr MQTT2_mosq_OEzNgwGke60SrsWOPI readingList mosq_OEzNgwGke60SrsWOPI:fhem/aga:.* aga
attr MQTT2_mosq_OEzNgwGke60SrsWOPI room MQTT2_DEVICE


gesendet habe ich : mosquitto_pub -h <server> -p <port> -t fhem/aga -m test

was mache ich falsch, was muss ich ändern?

Andreas

Otto123

Viele Grüße aus Leipzig  ⇉  nächster Stammtisch an der Lindennaundorfer Mühle
RaspberryPi B B+ B2 B3 B3+ ZeroW,HMLAN,HMUART,Homematic,Fritz!Box 7590,WRT3200ACS-OpenWrt,Sonos,VU+,Arduino nano,ESP8266,MQTT,Zigbee,deconz

rudolfkoenig

Eigentlich ignoriert MQTT2_DEVICE aus diesem Grund alles, was mit clientId mosqpub.* sich anmeldet, aber offensichtlich haben die mosquitto Maintainer sich gezwungen gefuehlt, das zu aendern.

@andreas.maurer:
Um autocreate zu vermeiden, bitte bei mosquitto_pub zusaetzlich -i mosqpub angeben.
Welche Version von mosquitto_pub verwendest du? Und welche Distribution?

andreas.maurer

danke für eure Antworten.

Ich nutze die aktuelle mosquitto build. Die sendet das wohl was anders. Schon echt dämlich immer hinter anderen her programmieren zu müssen.

Hier: https://forum.fhem.de/index.php/topic,109932.msg1039187.html#msg1039187 hatte ich das schon gelesen. Wenn ich aber mit -i mosqpub aufrufe, kommt gar nichts an.
ich habe jetzt ein andere clientID genutzt und nun kommen Daten an.

Für mich ist das jetzt gelöst, wenn ihr das noch intern abfangen wollt ..

Andreas

rudolfkoenig

ZitatWenn ich aber mit -i mosqpub aufrufe, kommt gar nichts an.
Mit dieser Option legt MQTT2_DEVICE nichts automatisch an, und ich habe angenommen, das wolltest du.
Um nicht _staendig_ was Neues anzulegen, muss man etwas Anderes fuer -i nehmen.

Ab sofort wird ^(mosqpub|mosq_) ignoriert, wenn es um autocreate geht.

andreas.maurer

Zitat von: rudolfkoenig am 11 Mai 2020, 21:23:05
Mit dieser Option legt MQTT2_DEVICE nichts automatisch an, und ich habe angenommen, das wolltest du.
Um nicht _staendig_ was Neues anzulegen, muss man etwas Anderes fuer -i nehmen.

Ab sofort wird ^(mosqpub|mosq_) ignoriert, wenn es um autocreate geht.
Ich hatte das so interpretiert, dass dann die ClientId einfach weg gelassen wird und erst ab dem : genutzt wird. Das wäre mein Ansatz gewesen um ein autocreate mit nicht ,,staendig" :) wechselnden Devices zu realisieren.

Andreas

rudolfkoenig

Sorry, verstehe ich nicht, vmtl. zu spaet.

MQTT2_CLIENT kriegt _immer_ ein clientId, und das ist das "Echte", wenn es ueber MQTT2_SERVER angebunden ist, und ein "fake", wenn MQTT2_CLIENT verwendet wird.

Beta-User

Hmm, es scheint so zu sein, dass mittels mosquitto_pub tatsächlich was an FHEM gesendet werden soll.

Der TE scheint nun die CID in der readingList weggelassen zu  haben, damit das klappt.

Im Wiki steht dazu auch schon länger was: https://wiki.fhem.de/wiki/MQTT2-Module_-_Praxisbeispiele#St.C3.A4ndig_neue_Devices.3F, ggf. sollten wir (@Otto123?) dann noch ergänzen, wie man z.B. von einem entfernten Rechner via mosquitto_pub (aus einem cron-Script?) Daten schicken kann?

@andreas.maurer: Vielleicht können wir deinen Anwendungsfall als Basis nehmen, dann müßtest du aber etwas näher erläutern, was du eigentlich konkret machen willst...?
Server: HP-elitedesk@Debian 12, aktuelles FHEM@ConfigDB | CUL_HM (VCCU) | MQTT2: MiLight@ESP-GW, BT@OpenMQTTGw | MySensors: seriell, v.a. 2.3.1@RS485 | ZWave | ZigBee@deCONZ | SIGNALduino | MapleCUN | RHASSPY
svn: u.a MySensors, Weekday-&RandomTimer, Twilight,  div. attrTemplate-files