Entwicklung mqtt2.template für Ecovacs Deebot devices

Begonnen von KölnSolar, 19 September 2019, 15:12:23

Vorheriges Thema - Nächstes Thema

KölnSolar

Nachdem ich nun die ersten Daten meines bots per mqtt in FHEM empfangen kannte, werde ich auch ein entsprechendes Template erstellen.
Da die Entwicklung noch nicht abgeschlossen ist, stelle ich hier mal nur einen ersten Teilansatz zur Diskussion vor. Im ersten Schritt geht es mir darum, die einlaufenden Messages und readingslist zu verstehen bzw. zu korrigieren.
Ich verstehe nicht, warum die eingehenden Messages zu:
fhemuser_bumper_anonymisiert1:\$SYS/broker/version:.* version
fhemuser_bumper_anonymisiert1:iot/atr/BatteryInfo/anonymisiertSN/02uwxm/Uq7d/x:.* BatteryInfo
fhemuser_bumper_anonymisiert1:iot/atr/ChargeState/anonymisiertSN/02uwxm/Uq7d/x:.* ChargeState
fhemuser_bumper_anonymisiert1:iot/atr/CleanReport/anonymisiertSN/02uwxm/Uq7d/x:.* CleanReport
fhemuser_bumper_anonymisiert1:iot/atr/CleanRptBgdata/anonymisiertSN/02uwxm/Uq7d/x:.* CleanRptBgdata
fhemuser_bumper_anonymisiert1:iot/atr/CleanSt/anonymisiertSN/02uwxm/Uq7d/x:.* CleanSt
fhemuser_bumper_anonymisiert1:iot/atr/SleepStatus/anonymisiertSN/02uwxm/Uq7d/x:.* SleepStatus
fhemuser_bumper_anonymisiert1:iot/atr/GetIOTConnStatus/anonymisiertSN/02uwxm/Uq7d/j:.* GetIOTConnStatus
fhemuser_bumper_anonymisiert1:iot/atr/GoChargeBgdata/anonymisiertSN/02uwxm/Uq7d/x:.* GoChargeBgdata
fhemuser_bumper_anonymisiert1:iot/atr/error/anonymisiertSN/02uwxm/Uq7d/x:.* error
fhemuser_bumper_anonymisiert1:iot/atr/evt/anonymisiertSN/02uwxm/Uq7d/x:.* evt
wie erhofft, also Readings angelegt werden, funktionieren.
Nicht aber
fhemuser_bumper_anonymisiert1:iot/p2p/GetBatteryInfo/helper1/bumper/helper1/anonymisiertSN/02uwxm/Uq7d/q/+/x:.* GetBatteryInfo
fhemuser_bumper_anonymisiert1:iot/p2p/GetChargeState/helper1/bumper/helper1/anonymisiertSN/02uwxm/Uq7d/q/+/x:.* GetChargeState
fhemuser_bumper_anonymisiert1:iot/p2p/GetCleanSpeed/helper1/bumper/helper1/anonymisiertSN/02uwxm/Uq7d/q/+/x:.* GetCleanSpeed
fhemuser_bumper_anonymisiert1:iot/p2p/GetCleanState/helper1/bumper/helper1/anonymisiertSN/02uwxm/Uq7d/q/+/x:.* GetCleanState
fhemuser_bumper_anonymisiert1:iot/p2p/GetCleanStatistics/helper1/bumper/helper1/anonymisiertSN/02uwxm/Uq7d/q/+/x:.* GetCleanStatistics
fhemuser_bumper_anonymisiert1:iot/p2p/GetError/helper1/bumper/helper1/anonymisiertSN/02uwxm/Uq7d/q/+/x:.* GetError
fhemuser_bumper_anonymisiert1:iot/p2p/GetLifeSpan/helper1/bumper/helper1/anonymisiertSN/02uwxm/Uq7d/q/+/x:.* GetLifeSpan
fhemuser_bumper_anonymisiert1:iot/p2p/GetSched/helper1/bumper/helper1/anonymisiertSN/02uwxm/Uq7d/q/+/x:.* GetSched
fhemuser_bumper_anonymisiert1:iot/p2p/GetSleepStatus/helper1/bumper/helper1/anonymisiertSN/02uwxm/Uq7d/q/+/x:.* GetSleepStatus
fhemuser_bumper_anonymisiert1:iot/p2p/GetSpotArea/helper1/bumper/helper1/anonymisiertSN/02uwxm/Uq7d/q/+/x:.* GetSpotArea
fhemuser_bumper_anonymisiert1:iot/p2p/GetWaterBoxInfo/helper1/bumper/helper1/anonymisiertSN/02uwxm/Uq7d/q/+/x:.* GetWaterBoxInfo
fhemuser_bumper_anonymisiert1:iot/p2p/GetWaterPermeability/helper1/bumper/helper1/anonymisiertSN/02uwxm/Uq7d/q/+/x:.* GetWaterPermeability
fhemuser_bumper_anonymisiert1:iot/p2p/GetWKVer/helper1/bumper/helper1/anonymisiertSN/02uwxm/Uq7d/q/+/j:.* GetWKVerq
fhemuser_bumper_anonymisiert1:iot/p2p/GetWKVer/anonymisiertSN/02uwxm/Uq7d/helper1/bumper/helper1/+/+/+:.* GetWKVerp
fhemuser_bumper_anonymisiert1:iot/p2p/GetWKVer/helper1/bumper/helper1/anonymisiertSN/02uwxm/Uq7d/q/EIZfmt/j:.* j
fhemuser_bumper_anonymisiert1:iot/p2p/GetWKVer/# GetWKVer
fhemuser_bumper_anonymisiert1:iot/p2p/Charge/helper1/bumper/helper1/anonymisiertSN/02uwxm/Uq7d/q/+/x:.* Charge
fhemuser_bumper_anonymisiert1:iot/p2p/Clean/helper1/bumper/helper1/anonymisiertSN/02uwxm/Uq7d/q/+/x:.* Clean
fhemuser_bumper_anonymisiert1:iot/p2p/PlaySound/helper1/bumper/helper1/anonymisiertSN/02uwxm/Uq7d/q/+/x:.* PlaySound

Zu diesen topics werden laufend neue Einträge in der readingslist erzeugt:
fhemuser_bumper_anonymisiert1:iot/p2p/GetSpotArea/helper1/bumper/helper1/anonymisiertSN/02uwxm/Uq7d/q/GtUCln/x:.* x
fhemuser_bumper_anonymisiert1:iot/p2p/GetChargeState/helper1/bumper/helper1/anonymisiertSN/02uwxm/Uq7d/q/bfuPhK/x:.* x
fhemuser_bumper_anonymisiert1:iot/p2p/GetBatteryInfo/helper1/bumper/helper1/anonymisiertSN/02uwxm/Uq7d/q/DZxiKp/x:.* x
fhemuser_bumper_anonymisiert1:iot/p2p/GetWaterBoxInfo/helper1/bumper/helper1/anonymisiertSN/02uwxm/Uq7d/q/xtQRrl/x:.* x
fhemuser_bumper_anonymisiert1:iot/p2p/Clean/helper1/bumper/helper1/anonymisiertSN/02uwxm/Uq7d/q/ysrdJZ/x:.* x
fhemuser_bumper_anonymisiert1:iot/p2p/GetWaterBoxInfo/helper1/bumper/helper1/anonymisiertSN/02uwxm/Uq7d/q/uDvPAQ/x:.* x
fhemuser_bumper_anonymisiert1:iot/p2p/GetSpotArea/helper1/bumper/helper1/anonymisiertSN/02uwxm/Uq7d/q/SwGbBv/x:.* x
fhemuser_bumper_anonymisiert1:iot/p2p/GetChargeState/helper1/bumper/helper1/anonymisiertSN/02uwxm/Uq7d/q/hdGZbj/x:.* x
fhemuser_bumper_anonymisiert1:iot/p2p/GetBatteryInfo/helper1/bumper/helper1/anonymisiertSN/02uwxm/Uq7d/q/tqcNwB/x:.* x
fhemuser_bumper_anonymisiert1:iot/p2p/Charge/helper1/bumper/helper1/anonymisiertSN/02uwxm/Uq7d/q/CyJNKr/x:.* x
fhemuser_bumper_anonymisiert1:iot/p2p/Charge/helper1/bumper/helper1/anonymisiertSN/02uwxm/Uq7d/q/yXgGHc/x:.* x
fhemuser_bumper_anonymisiert1:iot/p2p/GetWaterBoxInfo/helper1/bumper/helper1/anonymisiertSN/02uwxm/Uq7d/q/wyjgYm/x:.* x
fhemuser_bumper_anonymisiert1:iot/p2p/GetSpotArea/helper1/bumper/helper1/anonymisiertSN/02uwxm/Uq7d/q/XdYrmQ/x:.* x
fhemuser_bumper_anonymisiert1:iot/p2p/GetChargeState/helper1/bumper/helper1/anonymisiertSN/02uwxm/Uq7d/q/hfpKyl/x:.* x
fhemuser_bumper_anonymisiert1:iot/p2p/GetBatteryInfo/helper1/bumper/helper1/anonymisiertSN/02uwxm/Uq7d/q/JTKDAO/x:.* x
fhemuser_bumper_anonymisiert1:iot/p2p/Charge/helper1/bumper/helper1/anonymisiertSN/02uwxm/Uq7d/q/NdlAEb/x:.* x
fhemuser_bumper_anonymisiert1:iot/p2p/GetCleanStatistics/helper1/bumper/helper1/anonymisiertSN/02uwxm/Uq7d/q/qugwRX/x:.* x
fhemuser_bumper_anonymisiert1:iot/p2p/GetSched/helper1/bumper/helper1/anonymisiertSN/02uwxm/Uq7d/q/McPtnF/x:.* x
fhemuser_bumper_anonymisiert1:iot/p2p/GetCleanState/helper1/bumper/helper1/anonymisiertSN/02uwxm/Uq7d/q/RUjypw/x:.* x
fhemuser_bumper_anonymisiert1:iot/p2p/GetCleanSpeed/helper1/bumper/helper1/anonymisiertSN/02uwxm/Uq7d/q/XBGnRg/x:.* x
fhemuser_bumper_anonymisiert1:iot/p2p/GetWaterPermeability/helper1/bumper/helper1/anonymisiertSN/02uwxm/Uq7d/q/pxyqBd/x:.* x
fhemuser_bumper_anonymisiert1:iot/p2p/GetCleanStatistics/helper1/bumper/helper1/anonymisiertSN/02uwxm/Uq7d/q/hcovJD/x:.* x
fhemuser_bumper_anonymisiert1:iot/p2p/GetSched/helper1/bumper/helper1/anonymisiertSN/02uwxm/Uq7d/q/SVlPFQ/x:.* x
fhemuser_bumper_anonymisiert1:iot/p2p/GetCleanState/helper1/bumper/helper1/anonymisiertSN/02uwxm/Uq7d/q/UwZGsf/x:.* x
fhemuser_bumper_anonymisiert1:iot/p2p/GetCleanSpeed/helper1/bumper/helper1/anonymisiertSN/02uwxm/Uq7d/q/RpHuBT/x:.* x
fhemuser_bumper_anonymisiert1:iot/p2p/GetCleanSpeed/helper1/bumper/helper1/anonymisiertSN/02uwxm/Uq7d/q/PvgCxn/x:.* x
fhemuser_bumper_anonymisiert1:iot/p2p/GetWaterPermeability/helper1/bumper/helper1/anonymisiertSN/02uwxm/Uq7d/q/mtoWCi/x:.* x
fhemuser_bumper_anonymisiert1:iot/p2p/GetCleanSpeed/helper1/bumper/helper1/anonymisiertSN/02uwxm/Uq7d/q/FNKzhA/x:.* x
fhemuser_bumper_anonymisiert1:iot/p2p/GetWaterPermeability/helper1/bumper/helper1/anonymisiertSN/02uwxm/Uq7d/q/UElvBF/x:.* x
fhemuser_bumper_anonymisiert1:iot/p2p/GetWaterPermeability/helper1/bumper/helper1/anonymisiertSN/02uwxm/Uq7d/q/hBmnVd/x:.* x
fhemuser_bumper_anonymisiert1:iot/p2p/GetCleanSpeed/helper1/bumper/helper1/anonymisiertSN/02uwxm/Uq7d/q/Gfbjvm/x:.* x
fhemuser_bumper_anonymisiert1:iot/p2p/GetCleanStatistics/helper1/bumper/helper1/anonymisiertSN/02uwxm/Uq7d/q/dCqJFL/x:.* x
fhemuser_bumper_anonymisiert1:iot/p2p/GetSched/helper1/bumper/helper1/anonymisiertSN/02uwxm/Uq7d/q/uQIieW/x:.* x
fhemuser_bumper_anonymisiert1:iot/p2p/GetCleanState/helper1/bumper/helper1/anonymisiertSN/02uwxm/Uq7d/q/nAChrb/x:.* x
fhemuser_bumper_anonymisiert1:iot/p2p/GetWaterPermeability/helper1/bumper/helper1/anonymisiertSN/02uwxm/Uq7d/q/tHzlyC/x:.* x
fhemuser_bumper_anonymisiert1:iot/p2p/GetCleanSpeed/helper1/bumper/helper1/anonymisiertSN/02uwxm/Uq7d/q/GudqLV/x:.* x
fhemuser_bumper_anonymisiert1:iot/p2p/GetCleanSpeed/helper1/bumper/helper1/anonymisiertSN/02uwxm/Uq7d/q/ZfjeVW/x:.* x
fhemuser_bumper_anonymisiert1:iot/p2p/GetWaterPermeability/helper1/bumper/helper1/anonymisiertSN/02uwxm/Uq7d/q/LxPXFU/x:.* x
fhemuser_bumper_anonymisiert1:iot/p2p/GetCleanSpeed/helper1/bumper/helper1/anonymisiertSN/02uwxm/Uq7d/q/YafODI/x:.* x
fhemuser_bumper_anonymisiert1:iot/p2p/GetWaterPermeability/helper1/bumper/helper1/anonymisiertSN/02uwxm/Uq7d/q/NguoBT/x:.* x
fhemuser_bumper_anonymisiert1:iot/p2p/GetCleanSpeed/helper1/bumper/helper1/anonymisiertSN/02uwxm/Uq7d/q/wDnPlj/x:.* x
fhemuser_bumper_anonymisiert1:iot/p2p/GetWaterPermeability/helper1/bumper/helper1/anonymisiertSN/02uwxm/Uq7d/q/FMWXDL/x:.* x
fhemuser_bumper_anonymisiert1:iot/p2p/GetWaterPermeability/helper1/bumper/helper1/anonymisiertSN/02uwxm/Uq7d/q/fjKJRo/x:.* x
fhemuser_bumper_anonymisiert1:iot/p2p/GetCleanSpeed/helper1/bumper/helper1/anonymisiertSN/02uwxm/Uq7d/q/CdkcgM/x:.* x
fhemuser_bumper_anonymisiert1:iot/p2p/GetWaterPermeability/helper1/bumper/helper1/anonymisiertSN/02uwxm/Uq7d/q/sxDdvz/x:.* x
fhemuser_bumper_anonymisiert1:iot/p2p/GetLifeSpan/helper1/bumper/helper1/anonymisiertSN/02uwxm/Uq7d/q/bDMsoY/x:.* x
fhemuser_bumper_anonymisiert1:iot/p2p/GetWKVer/helper1/bumper/helper1/anonymisiertSN/02uwxm/Uq7d/q/JvwGER/j:.* j
fhemuser_bumper_anonymisiert1:iot/p2p/GetWKVer/anonymisiertSN/02uwxm/Uq7d/helper1/bumper/helper1/p/JvwGER/j:.* { json2nameValue($EVENT) }
fhemuser_bumper_anonymisiert1:iot/p2p/GetLifeSpan/helper1/bumper/helper1/anonymisiertSN/02uwxm/Uq7d/q/hGawAV/x:.* x
fhemuser_bumper_anonymisiert1:iot/p2p/GetWaterPermeability/helper1/bumper/helper1/anonymisiertSN/02uwxm/Uq7d/q/KwZkjo/x:.* x
fhemuser_bumper_anonymisiert1:iot/p2p/GetCleanSpeed/helper1/bumper/helper1/anonymisiertSN/02uwxm/Uq7d/q/InjBlV/x:.* x
fhemuser_bumper_anonymisiert1:iot/p2p/GetWKVer/helper1/bumper/helper1/anonymisiertSN/02uwxm/Uq7d/q/ryLNle/j:.* j
fhemuser_bumper_anonymisiert1:iot/p2p/GetWaterPermeability/helper1/bumper/helper1/anonymisiertSN/02uwxm/Uq7d/q/hHvTtn/x:.* x
fhemuser_bumper_anonymisiert1:iot/p2p/GetCleanSpeed/helper1/bumper/helper1/anonymisiertSN/02uwxm/Uq7d/q/IMGalb/x:.* x
fhemuser_bumper_anonymisiert1:iot/p2p/GetCleanSpeed/helper1/bumper/helper1/anonymisiertSN/02uwxm/Uq7d/q/gztXvj/x:.* x
fhemuser_bumper_anonymisiert1:iot/p2p/GetWKVer/anonymisiertSN/02uwxm/Uq7d/helper1/bumper/helper1/p/ryLNle/j:.* { json2nameValue($EVENT) }
fhemuser_bumper_anonymisiert1:iot/p2p/GetWaterPermeability/helper1/bumper/helper1/anonymisiertSN/02uwxm/Uq7d/q/cACHYj/x:.* x
fhemuser_bumper_anonymisiert1:iot/p2p/GetWaterPermeability/helper1/bumper/helper1/anonymisiertSN/02uwxm/Uq7d/q/jPwveF/x:.* x
fhemuser_bumper_anonymisiert1:iot/p2p/GetCleanSpeed/helper1/bumper/helper1/anonymisiertSN/02uwxm/Uq7d/q/aTQJWP/x:.* x
fhemuser_bumper_anonymisiert1:iot/p2p/GetCleanSpeed/helper1/bumper/helper1/anonymisiertSN/02uwxm/Uq7d/q/oFDExY/x:.* x
fhemuser_bumper_anonymisiert1:iot/p2p/GetSleepStatus/helper1/bumper/helper1/anonymisiertSN/02uwxm/Uq7d/q/LSRskl/x:.* x
fhemuser_bumper_anonymisiert1:iot/p2p/GetWaterPermeability/helper1/bumper/helper1/anonymisiertSN/02uwxm/Uq7d/q/pjievk/x:.* x
fhemuser_bumper_anonymisiert1:iot/p2p/GetWaterPermeability/helper1/bumper/helper1/anonymisiertSN/02uwxm/Uq7d/q/ukYwet/x:.* x
fhemuser_bumper_anonymisiert1:iot/p2p/GetCleanSpeed/helper1/bumper/helper1/anonymisiertSN/02uwxm/Uq7d/q/yaXktA/x:.* x
fhemuser_bumper_anonymisiert1:iot/p2p/GetWaterPermeability/helper1/bumper/helper1/anonymisiertSN/02uwxm/Uq7d/q/CmhoyE/x:.* x
fhemuser_bumper_anonymisiert1:iot/p2p/GetCleanSpeed/helper1/bumper/helper1/anonymisiertSN/02uwxm/Uq7d/q/hRcKAO/x:.* x
fhemuser_bumper_anonymisiert1:iot/p2p/GetSpotArea/helper1/bumper/helper1/anonymisiertSN/02uwxm/Uq7d/q/nTGjcq/x:.* x
fhemuser_bumper_anonymisiert1:iot/p2p/GetWaterBoxInfo/helper1/bumper/helper1/anonymisiertSN/02uwxm/Uq7d/q/tNzOlW/x:.* x
fhemuser_bumper_anonymisiert1:iot/p2p/GetChargeState/helper1/bumper/helper1/anonymisiertSN/02uwxm/Uq7d/q/IFVQNg/x:.* x
fhemuser_bumper_anonymisiert1:iot/p2p/GetBatteryInfo/helper1/bumper/helper1/anonymisiertSN/02uwxm/Uq7d/q/ozJugV/x:.* x
fhemuser_bumper_anonymisiert1:iot/p2p/GetCleanSpeed/helper1/bumper/helper1/anonymisiertSN/02uwxm/Uq7d/q/PqvxdJ/x:.* x
fhemuser_bumper_anonymisiert1:iot/p2p/GetSleepStatus/helper1/bumper/helper1/anonymisiertSN/02uwxm/Uq7d/q/LnZAPr/x:.* x
fhemuser_bumper_anonymisiert1:iot/p2p/GetLifeSpan/helper1/bumper/helper1/anonymisiertSN/02uwxm/Uq7d/q/WfLFiG/x:.* x
fhemuser_bumper_anonymisiert1:iot/p2p/GetLifeSpan/helper1/bumper/helper1/anonymisiertSN/02uwxm/Uq7d/q/nozWtM/x:.* x


Hat da jemand eine Idee zum Grund dieses (für mich) überraschenden Verhaltens ?

Als Bezeichnung des templates schwebt mir derzeit B_01_deebot_bridge vor. B wg. bot, 01 weil es sonst kein device mit B gibt, deebot, weil die Bezeichnung der Saugroboter von Ecovacs so lautet. Würde das passen ?

Danke u. Grüße
Markus
RPi3/2 buster/stretch-SamsungAV_E/N-RFXTRX-IT-RSL-NC5462-Oregon-CUL433-GT-TMBBQ-01e-CUL868-FS20-EMGZ-1W(GPIO)-DS18B20-CO2-USBRS232-USBRS422-Betty_Boop-EchoDot-OBIS(Easymeter-Q3/EMH-KW8)-PCA301(S'duino)-Deebot(mqtt2)-zigbee2mqtt

Beta-User

Hi Markus,

was die Benennung angeht: Das Ding spricht "nur" MQTT mit einer eigenen firmware, nehme ich an? Dann wäre es nach dieser Nomenklatur
Zitat
- B-M für Kaufgeräte, die nativ MQTT sprechen
- L-Z für eher seltene Geräte oder auch ESP-firmwares, z.B. X90_esp_milight_hub_bridge
eher irgendwas ab "M" (L sind die ganzen zigbee2mqtt-Dinge).
(Für den Fall, dass uns nicht Rudi demnächst nicht sowieso mit einer anderen Art der Sortierung überrascht...).

Was die readingList-Einträge angeht: Du nutzt dort MQTT-Nomenklatur, versuch's mal mit Perl/regex-Varianten ;) , also ungetestet aus dem Kopf in etwa so:
fhemuser_bumper_anonymisiert1:iot/p2p/GetBatteryInfo/helper1/bumper/helper1/anonymisiertSN/02uwxm/Uq7d/q/[^/]+/x:.* GetBatteryInfo
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

KölnSolar

#2
Wer, wenn nicht Du, der mir bei dem Thema antwortet.  ;D

ZitatDas Ding spricht "nur" MQTT mit einer eigenen firmware, nehme ich an?
Das hast Du falsch angenommen. Der Bot spricht von Hause aus mqtt. Allerdings ist das Protokoll nicht offen und normalerweise läuft die Kommunikation, na wie wohl....wie fürchterlicherweise immer: Nach Hause telefonieren und wieder zurück auf eine App.  :'( Ich komme noch nicht einmal direkt auf den Bot, sondern Dritte haben einen Weg evaluiert, wodurch sich die VIER Herstellerserver ausknipsen lassen. Messages empfangen hab ich schon geschafft. Mit dem Senden tut sich noch nix.  :'(

ZitatDu nutzt dort MQTT-Nomenklatur, versuch's mal mit Perl/regex-Varianten ;)
::) ::) ::) Ich probiers. Wenngleich ich mich wundere, dass die iot/atr-topics(Message des Bots) funktionieren und die iot/p2p-topics(über die App erzeugte Befehle[die aber nicht funktionieren :'(]) "anders" funktionieren...

Danke&Grüße
Markus

Edit: Funktioniert tatsächlich. readingslist wird nicht mehr "aufgebläht" und ich bekomme die Readings auch bei den iot/p2p-topics.  :)
RPi3/2 buster/stretch-SamsungAV_E/N-RFXTRX-IT-RSL-NC5462-Oregon-CUL433-GT-TMBBQ-01e-CUL868-FS20-EMGZ-1W(GPIO)-DS18B20-CO2-USBRS232-USBRS422-Betty_Boop-EchoDot-OBIS(Easymeter-Q3/EMH-KW8)-PCA301(S'duino)-Deebot(mqtt2)-zigbee2mqtt

Beta-User

#3
ZitatEdit: Funktioniert tatsächlich. readingslist wird nicht mehr "aufgebläht" und ich bekomme die Readings auch bei den iot/p2p-topics.  :)
:) Danke für die Rückmeldung.

EDIT: Tipp für zukünftige RAW-Auszüge: ersetze den Teil mit der Seriennummer auch durch regex. Dann kann man das leichter vertemplaten und du hast (hoffentlich) gleich ohne Editieren anonyme Daten...

Zitat von: KölnSolar am 19 September 2019, 18:03:47Wer, wenn nicht Du, der mir bei dem Thema antwortet.  ;D
Das hast Du falsch angenommen. Der Bot spricht von Hause aus mqtt.
Hattest du erwartet, dass ich die Einladung ignoriere, nur weil ich nicht zufällig diesen Ecovacs habe  ::) ?
Wenn der nativ MQTT spricht (wenn auch "nur" irgendwie gehackt...), darf der selbstredend "nach vorne" und mit "B" beginnen ;D ;D ;D .

Viel Erfolg weiterhin 8) .
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

Beta-User

Nachbrenner noch: Da regex verwendet wird, kannst du z.B. auch Teile der Seriennummer für die "Vereindeutigung von Readings" verwenden und/oder die readingList per regex verkürzen:

iot/p2p/([^/])/helper1/bumper/helper1/[^/](....)/[^/]/[^/]/q/+/x:.* $2_$1

Wenn das "Risiko" besteht, dass mehrere der Ecovacs im Einsatz sind, würde ich das erste dieser MQTT2-Devices dazu nutzen, da eine brigeRegexp zu bauen, die (z.B.) diese 4 Ziffern aus der vorhandenen Seriennummer ausklammert, und den Rest in eigene Devices weiterleitet. Dazu muß dann aber der Teil auch fest in die readingList (statt der 4 Punkte). (Ich hoffe, das ist jetzt nicht mehr zu kryptisch...).

Und ansonsten kannst du vorne die CID auch weglassen (wie oben); für ein template ist das m.E. zwingend.
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