Hallo,
ich habe folgendes Problem mit MQTT. Ich habe auf meiner FHEM_Instanz MQTT2 problemlos Laufen welches auch den Vorteil hat MQTT-Geräte selbst zu erkennen. Wenn ich die Kamera neu starte wird jedesmal ein neues MQTT Device angelegt und das (alte MQTT Kamera-Device wird nicht mehr angesprochen und keine Readings kommen mehr rein nur bei dem automatisch neu angelegten. Problem ist damit jedesmal ein neuer Name erstellt wird und somit keine Steuerung mit DOIF und CO. mehr geht.
Beispiel
MQTT2_mosq__n9_Pl_q_gfoum0f_m „altes Device“
MQTT2_mosq_EOpIG__v11Lntnb_Mj „neues Device“
gibt es denn irgendwo eine Anleitung - also wirklich eine Schritt-für-Schritt Anleitung - wie man MQTT Geräte mit dem MQTT2 Client einbindet? Ich hatte als ich geschaut habe nicht viel mehr als die Referenz finden können:
Beachten Sie, dass für autocreate in Verbindung mit MQTT2_SERVER zwingend jeder über MQTT kommunizierende Client eine ClientID angeben muß. Passen Sie daher ggf. die Einstellungen Ihres Geräts an. Manche Geräte verwenden auch „Wegwerf“-ClientID’s. Für diese empfiehlt es sich, ggf. dann die durch autocreate erstellten Geräte nachzubearbeiten und die ClientID-Angabe v.a. aus den Inhalten des readingList-Attributs zu entfernen.">
MQTT2_SERVER kann zwischen verschiedenen Geräten auch anhand der ClientID unterscheiden. Für jedes neu erkannte Gerät wird auch ein eigenes MQTT2_DEVICE angelegt. Abhilfemaßnahmen:
Vergabe einer ClientID
Die meisten MQTT-fähigen Geräte enthalten Optionen zur Vergabe einer eindeutigen ClientID (siehe das Beispiel des zigbee2mqtt-Dienstes oben). Wird keine ClientID vergeben, verwenden manche Clients für jede Verbindung wieder neue ID’s. Es wird empfohlen, möglichst von diesen Einstelloptionen Gebrauch zu machen.
Löschen der ClientID aus der readingList usw.
Ist dies nicht möglich oder erwünscht, kann man auch die ClientID aus den readingList-, setList- und getList-Attributen entfernen. Dies ist jedenfalls solange unschädlich als nicht mehrere Geräte identische Topic-Pfade verwenden (daher die Empfehlung, insbesondere bei Tasmota-Geräten den default „sonoff“ zu ändern). Beispielsweise wäre attr Milight_Bridge readingList milight_hub_1370325:milight/LWT:.* {json2nameValue($EVENT) } zu ändern in attr Milight_Bridge readingList milight/LWT:.* {json2nameValue($EVENT) } Die über attrTemplate verfügbaren Konfigurationen verwenden in der Regel keine ClientID’s bzw. entfernen diese.
Ich habe gerade mal nachgeschaut, um sicherzugehen - aber die Kameras generieren eigenen Client IDs für sich. Hier sind 2 Kameras die ich gerade an einen MQTT Broker in ioBroker angeschlossen habe - mit eindeutigen IDs:
Ok die ID’s bekomme ich aber nach dem "
mosq" immer eine ander ID bzw Zeichenfolge was dann immer ein neues Device erzeugt.
Kann man die Client ID manuell vergeben bzw ist das in Zukunft geplant.
Wäre Super danke für den guten Support.
Noch eine Frage wenn ich einen Scan mit der Kamera durchführen will und zwar mit dem IPcam Modul von Fhem wie lautet da die CGI? ich habe
Ich habe gerade keine 9020 hier (bei dem Modell + 9010 gibt es ein paar Besonderheiten). Aber normalerweise kann man den Scan mit dem folgenden MQTT Topic starten:
features/ptz/scan
Payload ist dann eins von den dreien:
{"val":"hscan"}, {"val":"vscan"}, {"val":"tour"}
Aber der dazu passende CGI Befehl wäre:
param.cgi?cmd=ptzctrl&-act=${val}
mit ${val} = hscan, vscan oder tour.
Wenn das nicht funktioniert wäre das eine 9020 Besonderheit - muß ich morgen mal nachschauen.
leider noch kein festes Datum. Jetzt kommt erstmal noch ein Update wo Verbesserungen beim HTML5 Videostream eingebaut und ein Problem beim Download von Dateien von der SD Karte (über die WebUI) behoben wurde (und viele kleine Bugfixe und Verbesserungen).
Ich hoffe das danach dann nochmal MQTT dran kommt.