zigbee2tasmota_bridge - keine Devices werden angelegt

Begonnen von traders-banquet, 06 August 2021, 09:24:45

Vorheriges Thema - Nächstes Thema

traders-banquet

Hallo,
ich habe mittels dem MQTT2 Server in Fhem meine zigbee2tasmota_bridge von Sonoff  eingefügt. Geflasht mit der Tasmota Version 9.5.0.5 und der zugehörigen ZigBee Firmware.
Nachdem ich dort den MQTT2 von Fhem eingetragen habe ist die Bridge automatisch angelegt worden. Ich habe dann das Template zigbee2tasmota_bridge angewendet und autocreate auf 1 hinzugefügt :

Der Eintrag in der Fhem.cfg sieht dann so aus :

define MQTT2_DVES_E36CBE MQTT2_DEVICE DVES_E36CBE
setuuid MQTT2_DVES_E36CBE 610aadc2-f33f-ed65-f9de-7fa2b5abb1de3537
attr MQTT2_DVES_E36CBE IODev MQTT2
attr MQTT2_DVES_E36CBE alias ZBBridge
attr MQTT2_DVES_E36CBE autocreate 1
attr MQTT2_DVES_E36CBE bridgeRegexp /Wohnung/ZigBee/ZBBridge/tele/([^/]+)/SENSOR:.* "z2t_$1"
attr MQTT2_DVES_E36CBE devStateIcon Online:10px-kreis-gruen@green Offline:10px-kreis-rot@red
attr MQTT2_DVES_E36CBE getList ZbStatus1:noArg ZbStatus1 /Wohnung/ZigBee/ZBBridge/cmnd/ZbStatus1\
  ZbStatus2:textField ZbStatus2 /Wohnung/ZigBee/ZBBridge/cmnd/ZbStatus2 $EVTPART1
attr MQTT2_DVES_E36CBE icon mqtt
attr MQTT2_DVES_E36CBE model tasmota_zigbee2tasmota_bridge
attr MQTT2_DVES_E36CBE readingList /Wohnung/ZigBee/ZBBridge/tele/LWT:.* LWT\
  /Wohnung/ZigBee/ZBBridge/tele/INFO.:.* { $EVENT =~ m,^..Info[1-3]..(.+).$, ?  json2nameValue($1,'',$JSONMAP) : json2nameValue($EVENT,'',$JSONMAP) }\
  /Wohnung/ZigBee/ZBBridge/tele/UPTIME:.* { json2nameValue($EVENT,'',$JSONMAP) }\
  /Wohnung/ZigBee/ZBBridge/tele/STATE:.* { json2nameValue($EVENT) }\
  /Wohnung/ZigBee/ZBBridge/tele/RESULT:.* { json2nameValue($EVENT) }\
  /Wohnung/ZigBee/ZBBridge/stat/RESULT:.* { $EVENT =~ m,(ZbStatus.), ? { $1=>$EVENT } : json2nameValue($EVENT,'',$JSONMAP) }\
  /Wohnung/ZigBee/ZBBridge/stat/POWER:.* LED\
DVES_E36CBE:tasmota/discovery/98F4ABE36CBE/config:.* { json2nameValue($EVENT) }\
DVES_E36CBE:tasmota/discovery/98F4ABE36CBE/sensors:.* { json2nameValue($EVENT) }\
DVES_E36CBE:/Wohnung/ZigBee/ZBBridge/93F1/tele/SENSOR:.* { json2nameValue($EVENT) }\
DVES_E36CBE:/Wohnung/ZigBee/ZBBridge/7D99/tele/SENSOR:.* { json2nameValue($EVENT) }\
DVES_E36CBE:/Wohnung/ZigBee/ZBBridge/4BB3/tele/SENSOR:.* { json2nameValue($EVENT) }
attr MQTT2_DVES_E36CBE room MQTT2_DEVICE
attr MQTT2_DVES_E36CBE setList permit_join:0,1,99 /Wohnung/ZigBee/ZBBridge/cmnd/ZbPermitJoin $EVTPART1\
  x_Reboot:noArg /Wohnung/ZigBee/ZBBridge/cmnd/restart 1\
  x_ZbSend:textField /Wohnung/ZigBee/ZBBridge/cmnd/ZbSend {"device":"0x$EVTPART1","send":{"$EVTPART2":"$EVTPART3"}}\
  z_ZbBind_single:textField /Wohnung/ZigBee/ZBBridge/cmnd/ZbBind {"Device":"$EVTPART1","ToDevice":"0x$EVTPART2","Endpoint":$EVTPART3,"ToEndpoint":$EVTPART4,"Cluster":$EVTPART5}\
  z_ZbBind_group:textField /Wohnung/ZigBee/ZBBridge/cmnd/ZbBind {"Device":"$EVTPART1","ToGroup":"0x$EVTPART2","Endpoint":$EVTPART3,"Cluster":$EVTPART4}
attr MQTT2_DVES_E36CBE setStateList on off
attr MQTT2_DVES_E36CBE stateFormat LWT\
<a href="http://IPAddress" target="_blank">Hostname</a><br>
define FileLog_MQTT2_DVES_E36CBE FileLog ./log/MQTT2_DVES_E36CBE-%Y-%m.log MQTT2_DVES_E36CBE
setuuid FileLog_MQTT2_DVES_E36CBE 610aadc2-f33f-ed65-ffc7-5ab5de048c393b7a
attr FileLog_MQTT2_DVES_E36CBE logtype text
attr FileLog_MQTT2_DVES_E36CBE room MQTT2_DEVICE



An der Bridge waren bereits angelernt 3 Sonoff Bewegungsmelder, deren Devices nicht in Fhem angelegt werden.
Ich habe einzelen bereits mit zbforget rausgeworfen und wieder angelernt, doch kein Device.
Dann habe ich mit zbforgett einen wieder rausgeworfen, dessen Batterrie entnommen und die Bridge aus Fhem gelöscht.
Die Bridge wurde dann im Fhem neu angelegt, dann die Batterie in den Bewegungsmelder eingelegt und diesen neu angelernt, doch es erscheint kein neues Device in Fhem.
Ich habe auch kein Template für den Sonoff Zigbee Bewegungsmelder, vielleicht ist dies der Grund.
Ich weiss mir aktuell nicht weiter zu helfen, vielleicht kann mir jemand einen Tip geben.

Vielen Dank schon mal.

Beta-User

Mobile Kurzantwort:

a) ist eine mqtt-Frage => verschieben

b) topic-tree-Zusammensetzung scheint sich verändert zu haben. RAW-def anpassen (bridgeRegexp und readingList).
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

traders-banquet


zu a : ist verschoben

zu b : damit kann ich nichts anfangen, was soll wo angepasst werden ?
Ist das Firmwareabhängig, diese wird in den Readings mit übertragen, somit könnte das Modul dann darauf reagieren und wird das im Modul vielleicht angepasst, wenn ja, wann wäre damit zu rechnen ?

Beta-User

@Otto123 (falls du hier mitliest): Da scheint sich was an der Topic-Struktur geändert zu haben, ich werde aber nicht dazu kommen, das kurzfristig zu fixen. Falls (!) du Lust hast und meine Annahme stimmt: gerne. Meine Idee: per RADIO-Option wählen lassen ob das neue Format oder das alte...? Betrifft dann auch die "Kinder" unter/hinter der Brücke...

@traders-banquet:
Das "bridge-Gerät" müßte etwa so aussehen:
define MQTT2_DVES_E36CBE MQTT2_DEVICE DVES_E36CBE
setuuid MQTT2_DVES_E36CBE 610aadc2-f33f-ed65-f9de-7fa2b5abb1de3537
attr MQTT2_DVES_E36CBE IODev MQTT2
attr MQTT2_DVES_E36CBE alias ZBBridge
attr MQTT2_DVES_E36CBE autocreate 1
attr MQTT2_DVES_E36CBE bridgeRegexp /Wohnung/ZigBee/ZBBridge/([^/]+)/tele/SENSOR:.* "z2t_$1"
attr MQTT2_DVES_E36CBE devStateIcon Online:10px-kreis-gruen@green Offline:10px-kreis-rot@red
attr MQTT2_DVES_E36CBE getList ZbStatus1:noArg ZbStatus1 /Wohnung/ZigBee/ZBBridge/cmnd/ZbStatus1\
  ZbStatus2:textField ZbStatus2 /Wohnung/ZigBee/ZBBridge/cmnd/ZbStatus2 $EVTPART1
attr MQTT2_DVES_E36CBE icon mqtt
attr MQTT2_DVES_E36CBE model tasmota_zigbee2tasmota_bridge
attr MQTT2_DVES_E36CBE readingList /Wohnung/ZigBee/ZBBridge/tele/LWT:.* LWT\
  /Wohnung/ZigBee/ZBBridge/tele/INFO.:.* { $EVENT =~ m,^..Info[1-3]..(.+).$, ?  json2nameValue($1,'',$JSONMAP) : json2nameValue($EVENT,'',$JSONMAP) }\
  /Wohnung/ZigBee/ZBBridge/tele/UPTIME:.* { json2nameValue($EVENT,'',$JSONMAP) }\
  /Wohnung/ZigBee/ZBBridge/tele/STATE:.* { json2nameValue($EVENT) }\
  /Wohnung/ZigBee/ZBBridge/tele/RESULT:.* { json2nameValue($EVENT) }\
  /Wohnung/ZigBee/ZBBridge/stat/RESULT:.* { $EVENT =~ m,(ZbStatus.), ? { $1=>$EVENT } : json2nameValue($EVENT,'',$JSONMAP) }\
  /Wohnung/ZigBee/ZBBridge/stat/POWER:.* LED\
  tasmota/discovery/98F4ABE36CBE/config:.* { }\
  tasmota/discovery/98F4ABE36CBE/sensors:.* { }\
attr MQTT2_DVES_E36CBE room MQTT2_DEVICE
attr MQTT2_DVES_E36CBE setList permit_join:0,1,99 /Wohnung/ZigBee/ZBBridge/cmnd/ZbPermitJoin $EVTPART1\
  x_Reboot:noArg /Wohnung/ZigBee/ZBBridge/cmnd/restart 1\
  x_ZbSend:textField /Wohnung/ZigBee/ZBBridge/cmnd/ZbSend {"device":"0x$EVTPART1","send":{"$EVTPART2":"$EVTPART3"}}\
  z_ZbBind_single:textField /Wohnung/ZigBee/ZBBridge/cmnd/ZbBind {"Device":"$EVTPART1","ToDevice":"0x$EVTPART2","Endpoint":$EVTPART3,"ToEndpoint":$EVTPART4,"Cluster":$EVTPART5}\
  z_ZbBind_group:textField /Wohnung/ZigBee/ZBBridge/cmnd/ZbBind {"Device":"$EVTPART1","ToGroup":"0x$EVTPART2","Endpoint":$EVTPART3,"Cluster":$EVTPART4}
attr MQTT2_DVES_E36CBE setStateList on off
attr MQTT2_DVES_E36CBE stateFormat LWT\
<a href="http://IPAddress" target="_blank">Hostname</a><br>

(zu den bescheuerten "discovery"-Topics bitte mal die Suche bemühen, falls das unklar ist, was das soll).

Leider funktionieren vermutlich auch die Anschluss-Templates nicht, (hoffentlich) nur, weil man die readingList anpassen muss, also den Topic-Teil.
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

Otto123

#4
Hi,

ich klink mich mal mit ein. Bei allen Templates zigbee2tasmota steht drin, dass die noch sehr experimentell sind. Ich schau mir das gerade in Ruhe an, mal sehen wie weit ich komme. Denn am Sonntag gehts erstmal aufs Rad :)

Ich hatte bisher mit dem Gateway an sich und weniger mit der Anbindung in FHEM experimentiert. Mich interessierte das Thema "Binding" - also die selbstständige Interaktion der Zigbee Komponenten untereinander.

Gruß Otto

@Beta-User "falls du hier mitliest" - ja war gerade parallel dabei  :D
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

Otto123

#5
Erstmal allgemein:
Das Bridge Device von traders-banquet sieht "komisch" aus.

Meine Bridge ist mit Tasmota geflashed und schlicht konfiguriert (Program Version   9.5.0(zbbridge) Build Date & Time   2021-06-17T08:27:09)
Ich habe folgendes gemacht:
ZBBridge neu gestartet mit MQTT Server FHEM eingetragen (wie immer empfohlen).
Es wird ein Device erstellt MQTT2_DVES_9DA212, dort habe ich das Template tasmota_zigbee2tasmota_bridge angewendet.
Dann sieht das so aus (nur mal zum Vergleich):
defmod MQTT2_DVES_9DA212 MQTT2_DEVICE DVES_9DA212
attr MQTT2_DVES_9DA212 bridgeRegexp tele/tasmota_9DA212/([^/]+)/SENSOR:.* "z2t_$1"
attr MQTT2_DVES_9DA212 devStateIcon Online:10px-kreis-gruen@green Offline:10px-kreis-rot@red
attr MQTT2_DVES_9DA212 getList ZbStatus1:noArg ZbStatus1 cmnd/tasmota_9DA212/ZbStatus1\
  ZbStatus2:textField ZbStatus2 cmnd/tasmota_9DA212/ZbStatus2 $EVTPART1
attr MQTT2_DVES_9DA212 icon mqtt
attr MQTT2_DVES_9DA212 model tasmota_zigbee2tasmota_bridge
attr MQTT2_DVES_9DA212 readingList tele/tasmota_9DA212/LWT:.* LWT\
  tele/tasmota_9DA212/INFO.:.* { $EVENT =~ m,^..Info[1-3]..(.+).$, ?  json2nameValue($1,'',$JSONMAP) : json2nameValue($EVENT,'',$JSONMAP) }\
  tele/tasmota_9DA212/UPTIME:.* { json2nameValue($EVENT,'',$JSONMAP) }\
  tele/tasmota_9DA212/STATE:.* { json2nameValue($EVENT) }\
  tele/tasmota_9DA212/RESULT:.* { json2nameValue($EVENT) }\
  stat/tasmota_9DA212/RESULT:.* { $EVENT =~ m,(ZbStatus.), ? { $1=>$EVENT } : json2nameValue($EVENT,'',$JSONMAP) }\
  stat/tasmota_9DA212/POWER:.* LED\
DVES_9DA212:cmnd/tasmota_9DA212/POWER:.* POWER
attr MQTT2_DVES_9DA212 room MQTT2_DEVICE
attr MQTT2_DVES_9DA212 setList permit_join:0,1,99 cmnd/tasmota_9DA212/ZbPermitJoin $EVTPART1\
  x_Reboot:noArg cmnd/tasmota_9DA212/restart 1\
  x_ZbSend:textField cmnd/tasmota_9DA212/ZbSend {"device":"0x$EVTPART1","send":{"$EVTPART2":"$EVTPART3"}}\
  z_ZbBind_single:textField cmnd/tasmota_9DA212/ZbBind {"Device":"$EVTPART1","ToDevice":"0x$EVTPART2","Endpoint":$EVTPART3,"ToEndpoint":$EVTPART4,"Cluster":$EVTPART5}\
  z_ZbBind_group:textField cmnd/tasmota_9DA212/ZbBind {"Device":"$EVTPART1","ToGroup":"0x$EVTPART2","Endpoint":$EVTPART3,"Cluster":$EVTPART4}
attr MQTT2_DVES_9DA212 setStateList on off
attr MQTT2_DVES_9DA212 stateFormat LWT\
<a href="http://IPAddress" target="_blank">Hostname</a><br>

Danach enstehen weiter MQTT2_Devices der Geräte in der Art
defmod MQTT2_z2t_CEC0 MQTT2_DEVICE z2t_CEC0
attr MQTT2_z2t_CEC0 readingList tele/tasmota_9DA212/CEC0/SENSOR:.* { json2nameValue($EVENT) }
attr MQTT2_z2t_CEC0 room MQTT2_DEVICE
Und Readings werden gefüllt. Mit denen bin ich erstmal gar nicht unglücklich :)
Ich habe drei Geräte an der Bridge und drei Geräte werden angelegt. In der Bridge wird zunächst nichts weiter erzeugt (nur der eine cmnd/ Topic).

@traders-banquet:
Wozu wurde autocreate gesetzt?
Wieso stehen da immer noch die Geräte Topics drin? Die werden vom Template doch gelöscht?
Wieso sind die Basis Topics so verbogen -> Wohnung...  :o Wurde da in der Tasmota Konfiguration topic und Full Topic "zerkonfiguriert" und "kaputt optimiert"? :-\

Gruß Otto
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

traders-banquet

Ich habe den RegEx angepasst :

/Wohnung/ZigBee/ZBBridge/([^/]+)/tele/SENSOR:.* "z2t_$1"


und erhalte nun auch die Devices :

define MQTT2_z2t_7D99 MQTT2_DEVICE z2t_7D99
setuuid MQTT2_z2t_7D99 610d1894-f33f-ed65-ad4d-1d3d95b4823bdc54
attr MQTT2_z2t_7D99 readingList /Wohnung/ZigBee/ZBBridge/7D99/tele/SENSOR:.* { json2nameValue($EVENT) }
attr MQTT2_z2t_7D99 room MQTT2_DEVICE
define FileLog_MQTT2_z2t_7D99 FileLog ./log/MQTT2_z2t_7D99-%Y-%m.log MQTT2_z2t_7D99
setuuid FileLog_MQTT2_z2t_7D99 610d1894-f33f-ed65-e0a8-b41f65afe7170c0a
attr FileLog_MQTT2_z2t_7D99 logtype text
attr FileLog_MQTT2_z2t_7D99 room MQTT2_DEVICE
define MQTT2_z2t_4BB3 MQTT2_DEVICE z2t_4BB3
setuuid MQTT2_z2t_4BB3 610d1d14-f33f-ed65-5cef-7105fe26ac9e8f89
attr MQTT2_z2t_4BB3 readingList /Wohnung/ZigBee/ZBBridge/4BB3/tele/SENSOR:.* { json2nameValue($EVENT) }
attr MQTT2_z2t_4BB3 room MQTT2_DEVICE
define FileLog_MQTT2_z2t_4BB3 FileLog ./log/MQTT2_z2t_4BB3-%Y-%m.log MQTT2_z2t_4BB3
setuuid FileLog_MQTT2_z2t_4BB3 610d1d14-f33f-ed65-1548-e5d1e9cf0dafabae
attr FileLog_MQTT2_z2t_4BB3 logtype text
attr FileLog_MQTT2_z2t_4BB3 room MQTT2_DEVICE
define MQTT2_z2t_93F1 MQTT2_DEVICE z2t_93F1
setuuid MQTT2_z2t_93F1 610d1d14-f33f-ed65-986a-2a1f8ed23171a9da
attr MQTT2_z2t_93F1 readingList /Wohnung/ZigBee/ZBBridge/93F1/tele/SENSOR:.* { json2nameValue($EVENT) }
attr MQTT2_z2t_93F1 room MQTT2_DEVICE
define FileLog_MQTT2_z2t_93F1 FileLog ./log/MQTT2_z2t_93F1-%Y-%m.log MQTT2_z2t_93F1
setuuid FileLog_MQTT2_z2t_93F1 610d1d14-f33f-ed65-2d6f-63468bbeac6c845c
attr FileLog_MQTT2_z2t_93F1 logtype text
attr FileLog_MQTT2_z2t_93F1 room MQTT2_DEVICE


Mein Problem nun ist, das ich keine Templates habe für die zigbee devices.
Ich habe das Template tasmota_zigbee2tasmota_bridge aber kein weiteres tasmota_zigbee2tasmota_*
Ich habe ein update all durchgeführt mit einem anschließenden shutdown restart, doch keine weiteren Templates erhalten.

traders-banquet

ein version MQTT2 ergibt :

File               Rev   Last Change

10_MQTT2_DEVICE.pm 24760 2021-07-16 20:59:09Z rudolfkoenig
00_MQTT2_SERVER.pm 24639 2021-06-15 18:35:51Z rudolfkoenig

doif.js                    24438 2021-05-14 18:08:18Z Ellert
fhemweb.js                 24716 2021-07-09 17:32:11Z rudolfkoenig
fhemweb_readingsGroup.js   15189 2017-10-03 17:53:27Z justme1968

Beta-User

Die weiteren attrTemplate werden erst geladen, wenn es ein bridge-Gerät gibt. model setzen.
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

traders-banquet

für den motion sensor ist ja folgendes Template vorhanden :

name:tasmota_zigbee2tasmota_motion_sensor
prereq:{my @devices=devspec2array("model=tasmota_zigbee2tasmota_bridge");;return 1 if $devices[0];;return 0}
filter:TYPE=MQTT2_DEVICE:FILTER=readingList=.*tele.*/..../SENSOR:.*
desc:This template is meant to configure an ZigBee motion sensor like Sonoff SNZB-03
order:A_01u04c
par:TELETOPIC;info topic prefix, without trailing /;{ AttrVal("DEVICE","readingList","") =~ m,([^:]*)\b(tele|cmnd|stat)(/.*/[^/]+/SENSOR)?:, ? "${1}tele$3" : undef }
par:DEV_ID;ZigBee short ID, hex value without leading 0x;{ AttrVal("DEVICE","readingList","") =~ m,([^:]*)\b(tele|cmnd|stat)/.*/([^/]+)/SENSOR?:, ? "$3" : undef }
par:ICON;ICON as set, defaults to people_sensor;{ AttrVal("DEVICE","icon","people_sensor") }
par:CALLSPEECHRECOGN;Set this to 0 to not set any speech recogn. related attributes;{ 1 }
attr DEVICE icon ICON
attr DEVICE readingList \
TELETOPIC:.* { $EVENT =~ m,^.*(..Device.+)..$, ?  json2nameValue($1,'',$JSONMAP) : $EVENT =~ m,0xDEV_ID.:(.*).., ?  json2nameValue($1,'',$JSONMAP) : undef }
attr DEVICE jsonMap Device:0 Battery:0 BatteryPercentage:batteryPercent BatteryVoltage:batteryVoltage
attr DEVICE stateFormat Motion: Occupancy
deletereading -q DEVICE (?!associatedWith|IODev).*
attr DEVICE model tasmota_zigbee2tasmota_motion_sensor
setreading DEVICE attrTemplateVersion 20201202



dieser wird nicht ausgewählt, weil der Filter nicht stimmt, der müsste angepasst werden und Info Topic Prefix als auch ZigBee Short ID, allerdings kann ich RegEx gar nicht, blickt da jemand durch wie die angepasst werden müsste ?
Der Grund für das nicht anzeigen liegt daran, dass der Prefix z.B. tele direkt vor dem SENSOR ist also nicht tele/....wie auch immer../SENSOR sondern tele/Sensor

Otto123

Ich bin immer noch der Meinung der Topic /Wohnung/ZigBee ist nicht "gut"
mW sollen Topics nicht  mit / beginnen.

Durch diese eigenartige Topic Struktur wirkt es auf mich völlig verdreht und unnötig aufgeblasen?

/Wohnung/ZigBee/ZBBridge/93F1/tele/SENSOR:.*
versus
tele/tasmota_9DA212/CEC0/SENSOR:.*
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

traders-banquet

Ein Topic soll nicht mit einem / beginnen ? Ist das irgendwo beschrieben oder handelt es sich dabei nur um persönliche Präferenzen. Ich habe alle meine full Topics mit einem / begonnen. Grundsätzlich habe ich dadurch noch keinen Nachteil erfahren und hatte auch keine Probleme, lasse mich aber gerne aufklären, wenn dadurch eventuell doch Einschränkungen zu erwarten sind.

Beta-User

Na ja, es ist kein "Verbrechen", es ist nur klarer, dass es sich nicht um einen Linux-Dateipfad handelt, wenn man es "ohne" macht...

Wir sind hier nur etwas empfindlich, weil das häufig ein Zeichen für "kopiert aus einem Video" ist. Das geht leider allzuhäufig einher mit noch etwas unterdurchschnittlich erarbeiteter Kompetenz in "wie helfe ich mir selbst", wenn dann zusätzlich noch was angepaßt werden muss... Du hast immerhin das passende Template gefunden, von daher gehe ich mal davon aus, dass du die Ausnahme bildest ;) .

Das Problem ist weniger der Schrägstrich, sondern eher, dass Tasmota anscheinend den ganzen Topic-String für SENSORS anders zusammenbaut wie wir das hier (mit der Empfehlung, möglichst alles auf Standard zu lassen) erwartet hatten. Um ständige Rückfragen (wie diese hier) zu vermeiden, müssten wir daher irgendwas einbauen, das solche Besonderheiten (auch noch) erkennt. Sollte nicht allzu schwierig sein, ich weiß aber nicht, wann ich dazu komme.

Kannst du mal zeigen, wie deine Topic-Tree-Vorgabe auf dem ESP aussieht, damit ich beurteilen kann, ob das (aus unserer Sicht) komplett verbogen ist, oder ob es sich um ein eher allgemeines Problem handelt?

(Wie Otto geschrieben hat: die betr. attrTemplates sind nicht allzu intensiv getestet (und die Variante tasmota ist für ZigBee mAn. auch nicht unbedingt zu empfehlen)...

(@Otto123: neulich wußte jemand hier im Forum zu berichten, dass auch 9.5x weiter neue Short-Id's anlegt. Falls du also eine Idee hast, ob/wie man das verhindern kann, wäre das ggf. interessant...)
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

Beta-User

Habe eben ein update ins svn geschoben. Kann sein, dass es damit klappt, ist nicht groß getestet; (könnte schlimmstenfalls auch die bisher funktionierende Analyse stören).
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

traders-banquet

Ich habe das Update gemacht und die Templates werden nun alle angeboten.
Leider bekam ich dadurch keine Readings, so dass ich ein rereadcfg getätigt hatte.

Ich habe mal einen Auszug aus meiner Console :
2:27:34.127 ZIG: ZbZCLRawReceived: {"0x93F1":{"0500<00":"010000010000","ZoneStatusChange":1,"ZoneStatusChangeZone":1,"0406/0000":1,"Endpoint":1,"LinkQuality":0}}
22:27:34.136 MQT: /Wohnung/ZigBee/ZBBridge/93F1/tele/SENSOR = {"ZbReceived":{"0x93F1":{"Device":"0x93F1","0500<00":"010000010000","ZoneStatusChange":1,"ZoneStatusChangeZone":1,"Occupancy":1,"Endpoint":1,"LinkQuality":0}}}
22:28:34.884 ZIG: {"ZbEZSPReceived":"450000040100050101000100006C80BCB34BFFFF09191300000000010000"}
22:28:34.886 ZIG: {"ZbZCLReceived":{"groupid":0,"clusterid":"0x0500","srcaddr":"0x4BB3","srcendpoint":1,"dstendpoint":1,"wasbroadcast":0,"LinkQuality":50,"securityuse":0,"seqnumber":108,"fc":"0x19","frametype":1,"direction":1,"disableresp":1,"manuf":"0x0000","transact":19,"cmdid":"0x00","payload":"000000010000"}}
22:28:34.888 ZIG: ZbZCLRawReceived: {"0x4BB3":{"0500<00":"000000010000","ZoneStatusChange":0,"ZoneStatusChangeZone":1,"0406/0000":0,"Endpoint":1,"LinkQuality":50}}
22:28:34.897 MQT: /Wohnung/ZigBee/ZBBridge/4BB3/tele/SENSOR = {"ZbReceived":{"0x4BB3":{"Device":"0x4BB3","0500<00":"000000010000","ZoneStatusChange":0,"ZoneStatusChangeZone":1,"Occupancy":0,"Endpoint":1,"LinkQuality":50}}}
22:28:40.363 ZIG: {"ZbEZSPReceived":"450000040100050101000100001D40ACF193FFFF0919D100000000010000"}
22:28:40.365 ZIG: {"ZbZCLReceived":{"groupid":0,"clusterid":"0x0500","srcaddr":"0x93F1","srcendpoint":1,"dstendpoint":1,"wasbroadcast":0,"LinkQuality":8,"securityuse":0,"seqnumber":29,"fc":"0x19","frametype":1,"direction":1,"disableresp":1,"manuf":"0x0000","transact":209,"cmdid":"0x00","payload":"000000010000"}}
22:28:40.368 ZIG: ZbZCLRawReceived: {"0x93F1":{"0500<00":"000000010000","ZoneStatusChange":0,"ZoneStatusChangeZone":1,"0406/0000":0,"Endpoint":1,"LinkQuality":8}}
22:28:40.377 MQT: /Wohnung/ZigBee/ZBBridge/93F1/tele/SENSOR = {"ZbReceived":{"0x93F1":{"Device":"0x93F1","0500<00":"000000010000","ZoneStatusChange":0,"ZoneStatusChangeZone":1,"Occupancy":0,"Endpoint":1,"LinkQuality":8}}}
22:30:58.778 MQT: /Wohnung/ZigBee/ZBBridge/tele/STATE = {"Time":"2021-08-09T22:30:58","Uptime":"3T11:15:51","UptimeSec":299751,"Vcc":3.345,"Heap":26,"SleepMode":"Dynamic","Sleep":50,"LoadAvg":19,"MqttCount":18,"Wifi":{"AP":2,"SSId":"Traders-Banquet","BSSId":"74:AC:B9:6D:BB:65","Channel":11,"Mode":"11n","RSSI":56,"Signal":-72,"LinkCount":1,"Downtime":"0T00:00:03"}}
22:33:21.471 ZIG: {"ZbEZSPReceived":"450000040100050101000100002AD4D1997DFFFF0919D200000000010000"}
22:33:21.473 ZIG: {"ZbZCLReceived":{"groupid":0,"clusterid":"0x0500","srcaddr":"0x7D99","srcendpoint":1,"dstendpoint":1,"wasbroadcast":0,"LinkQuality":105,"securityuse":0,"seqnumber":42,"fc":"0x19","frametype":1,"direction":1,"disableresp":1,"manuf":"0x0000","transact":210,"cmdid":"0x00","payload":"000000010000"}}
22:33:21.475 ZIG: ZbZCLRawReceived: {"0x7D99":{"0500<00":"000000010000","ZoneStatusChange":0,"ZoneStatusChangeZone":1,"0406/0000":0,"Endpoint":1,"LinkQuality":105}}
22:33:21.481 MQT: /Wohnung/ZigBee/ZBBridge/7D99/tele/SENSOR = {"ZbReceived":{" BW_Wohnzimmer":{"Device":"0x7D99","Name":" BW_Wohnzimmer","0500<00":"000000010000","ZoneStatusChange":0,"ZoneStatusChangeZone":1,"Occupancy":0,"Endpoint":1,"LinkQuality":105}}}
22:33:43.756 ZIG: {"ZbEZSPReceived":"450000040100050101000100002BD0D0997DFFFF0919D300010000010000"}
22:33:43.758 ZIG: {"ZbZCLReceived":{"groupid":0,"clusterid":"0x0500","srcaddr":"0x7D99","srcendpoint":1,"dstendpoint":1,"wasbroadcast":0,"LinkQuality":102,"securityuse":0,"seqnumber":43,"fc":"0x19","frametype":1,"direction":1,"disableresp":1,"manuf":"0x0000","transact":211,"cmdid":"0x00","payload":"010000010000"}}
22:33:43.761 ZIG: ZbZCLRawReceived: {"0x7D99":{"0500<00":"010000010000","ZoneStatusChange":1,"ZoneStatusChangeZone":1,"0406/0000":1,"Endpoint":1,"LinkQuality":102}}
22:33:43.766 MQT: /Wohnung/ZigBee/ZBBridge/7D99/tele/SENSOR = {"ZbReceived":{" BW_Wohnzimmer":{"Device":"0x7D99","Name":" BW_Wohnzimmer","0500<00":"010000010000","ZoneStatusChange":1,"ZoneStatusChangeZone":1,"Occupancy":1,"Endpoint":1,"LinkQuality":102}}}


dann hatte ich aus dem ursprünglichen Template übernommen die jsonMap:

Device:0 Battery:0 ZbReceived_0x4BB3_BatteryPercentage:batteryPercent ZbReceived_0x4BB3_BatteryVoltage:batteryVoltage

und die readingList angepasst :

/Wohnung/ZigBee/ZBBridge/4BB3/tele:.* { $EVENT =~ m,^.*(..Device.+)..$, ?  json2nameValue($1,'',$JSONMAP) : $EVENT =~ m,0x.:(.*).., ?  json2nameValue($1,'',$JSONMAP) : undef }
/Wohnung/ZigBee/ZBBridge/4BB3/tele/SENSOR:.* { $EVENT =~ m,^.*(..Device.+)..$, ? json2nameValue($1,'',$JSONMAP) : $EVENT =~ m,0x.:(.*).., ?  json2nameValue($1,'',$JSONMAP) : undef }


stateFormat und event on change reading stehen auf Occupancy

das devStateIcon  steht auf
1:people_sensor@blue 0:people_sensor@red

Ich bekomme dank der readingList kurze Readings.
Das Device 0x7D99 habe ich mit zbname auf BW_Wohnzimmer umbenannt.
Bei allen Bewegungsmeldern habe ich mit zboccupancy 0 dafür gesorgt, dass ein Occupancy 0 nur dann gesendet wird, wenn tatsächlich keine Bewegung für 60 Sekunden registriert wurde, mal sehen wie sich das auf den Batterieverbrauch auswirkt, doch so sind diese erst wirklich brauchbar.