[Gelöst] MQTT2_DEVICE readingList mit unterschiedlichen IDs

Begonnen von Piepsen, 20 Dezember 2020, 16:43:04

Vorheriges Thema - Nächstes Thema

Piepsen

Hallo zusammen
ich habe gerade ein Update von FHEM durchgeführt und jetzt habe ich ein Problem mit meinem MQTT2_DEVICE.

ich konnte das Problem schon soweit eingrenzen, dass ich weiß, dass es an den 2 Unterschiedlichen Mqtt IDs in meiner readingList liegt.

Lösche ich in readingList alles mit WaschenOutputs funktioniert das Reading WaschenInputs:.... wieder, anschließend kann ich auch alle Einträge mit WaschenOutputs wieder einfügen, aber nur WaschenInputs funktioniert.
Ändere ich jetzt das DEF WaschenInputs auf WaschenOutputs, geht nichts mehr, erst wenn ich wieder das WaschenInputs:... aus der readingList lösche, dann gehen alle WaschenOutputs:...?!

Ist das ein Bug oder darf ich 2 unterschiedliche IDs in den attr readingList eigenlich nicht verwenden?
Bis vorhin hat allerdings alles funktioniert.

Ich habe vor ein paar Monaten auf den MQTT2_Server gewechselt und hatte vorher Mosquito. Dementsprechend ist es so, dass ich 2 Python Skripte habe eins für Inputs und eins für Outputs.

Ich hoffe ich hab es nicht zu kompliziert erklärt.


defmod LichtTischEGKuecheNeu MQTT2_DEVICE WaschenInputs
attr LichtTischEGKuecheNeu DbLogExclude .*
attr LichtTischEGKuecheNeu IODev MQTT2_FHEM_SERVER
attr LichtTischEGKuecheNeu event-on-change-reading .*
attr LichtTischEGKuecheNeu readingList WaschenInputs:/SmartHome/EG/Kueche/Schalter/Tisch:.* Input\
WaschenOutputs:/SmartHome/EG/Kueche/Tischlampe/Status:.* Status\
WaschenOutputs:/SmartHome/EG/Waschen/Outputs/Status/Skript:.* skript\
WaschenOutputs:/SmartHome/EG/Waschen/Outputs/Status/Steuerung:.* steuerung
attr LichtTischEGKuecheNeu room MQTT2_DEVICE
attr LichtTischEGKuecheNeu setList on /SmartHome/EG/Kueche/Tischlampe on\
off /SmartHome/EG/Kueche/Tischlampe off\
toggle /SmartHome/EG/Kueche/Tischlampe toggle
attr LichtTischEGKuecheNeu verbose 5
attr LichtTischEGKuecheNeu webCmd on:off:toggle

setstate LichtTischEGKuecheNeu on
setstate LichtTischEGKuecheNeu 2020-12-20 16:10:49 Input off
setstate LichtTischEGKuecheNeu 2020-12-20 15:55:58 Status eingeschaltet
setstate LichtTischEGKuecheNeu 2020-12-20 15:55:58 skript Interrupt Tischlame Kueche hat ausgeloest
setstate LichtTischEGKuecheNeu 2020-12-20 16:11:31 state on
setstate LichtTischEGKuecheNeu 2020-12-20 15:54:16 subscriptions /SmartHome/EG/#

rudolfkoenig

ZitatIst das ein Bug oder darf ich 2 unterschiedliche IDs in den attr readingList eigenlich nicht verwenden?
Ob das Bug ist oder nicht, darueber kann man diskutieren, aber es ist tatsaechlich so, dass seit der Optimierung das Verwenden eines anderen Client-IDs als in der Definition nicht funktioniert.
Woraufhin zurecht die Frage gestellt wird, wozu dieses ID im readingList hinterlegt wird.
Workaround: die "falschen" ClientIDs aus dem readingList entfernen. Oder gleich Alle.

@Beta-User: kriegen die Templates Probleme, wenn demnaechst readingList ohne ClientID erstellt wird?

Piepsen

Erstmal aller bisten Dank für die Antwort.

Ich habe das DEF auf WaschenInputs gestellt, in den readingList alle WaschenOutputs gelöscht und es geht wieder.
Ich dachte schon ich muss alle umstellen.

xenos1984

Mir war gar nicht bewusst, dass man die ClientID in der Definition angeben kann (sollte?). Bei einigen Templates ist mir das jetzt auch aufgefallen, aber zumindest in der Commandref scheint davon nichts zu stehen. Da braucht es wohl noch etwas Doku?

Beta-User

Erwarte eher keine Probleme, da wo ClientID eine Rolle spielt, geht es in der Regel um per bridgeRegexp erzeugte. (Da sollte auch im wiki was zu finden sein).
Aber schade ist es irgendwie schon, weil man dann direkt sehen konnte, was autocreate ggf. dann noch ergänzt hat...
Server: HP-elitedesk@Debian 12, aktuelles FHEM@ConfigDB | CUL_HM (VCCU) | MQTT2: ZigBee2mqtt, MiLight@ESP-GW, BT@OpenMQTTGw | ZWave | SIGNALduino | MapleCUN | RHASSPY
svn: u.a Weekday-&RandomTimer, Twilight,  div. attrTemplate-files, MySensors

Piepsen

#5
Jetzt habe ich aber noch eine ergänzende Frage.
Mein LichtTischEGKuecheNeu MQTT2_DEVICE ist eigentlich nur ein Temporäres device, da dies durch Autocreate angelegt wurde (wegen test mit MQTT.fx)
eigentlich sieht mein device so aus:

defmod LichtTischEGKueche MQTT2_DEVICE
attr LichtTischEGKueche DbLogExclude .*
attr LichtTischEGKueche IODev MQTT2_FHEM_SERVER
attr LichtTischEGKueche alias Tischlampe Küche
attr LichtTischEGKueche event-on-change-reading .*
attr LichtTischEGKueche group MQTT
attr LichtTischEGKueche oldreadings Input
attr LichtTischEGKueche readingList /SmartHome/EG/Kueche/Schalter/Tisch:.* Input\
/SmartHome/EG/Kueche/Tischlampe/Status:.* Status\
/SmartHome/EG/Waschen/Outputs/Status/Skript:.* skript\
/SmartHome/EG/Waschen/Outputs/Status/Steuerung:.* steuerung
attr LichtTischEGKueche room EG->Küche,Logik->MQTT
attr LichtTischEGKueche setList on /SmartHome/EG/Kueche/Tischlampe on\
off /SmartHome/EG/Kueche/Tischlampe off\
toggle /SmartHome/EG/Kueche/Tischlampe toggle
attr LichtTischEGKueche webCmd on:off:toggle

setstate LichtTischEGKueche on
setstate LichtTischEGKueche 2020-12-20 17:41:48 Input off
setstate LichtTischEGKueche 2020-12-20 17:53:09 Status eingeschaltet
setstate LichtTischEGKueche 2020-12-20 19:31:15 skript laeuft
setstate LichtTischEGKueche 2020-12-20 17:53:09 state on
setstate LichtTischEGKueche 2020-11-03 00:01:18 steuerung online


ist es ein Problem das gar kein DEF mehr angegeben ist, wurde mir beim Update glaub ich so geändert, kann ich aber nicht mit sicherheit sagen, da ich da nicht so oft reingucke.
Eigentlich sollte es doch so aussehen "defmod LichtTischEGKueche MQTT2_DEVICE WaschenInputs".

Laut commandref sollte es kein Problem sein, prinzipiell hatte ich die Geräte genau so angelegt wie in meinem Test, deshalb bin ich mir nicht 100% sicher.

rudolfkoenig

DEF gibts nur dann, wenn ein ClientID vorhanden ist. Es ist optional, und ermoeglicht "nur"
- das Erweitern der readingsList, falls unbekannte Topics auftauchen.
- setzen des subscription Readings