Läuft: zigbee2mqtt mit MQTT2_SERVER und MQTT2_DEVICE

Begonnen von supernova1963, 23 September 2018, 19:17:21

Vorheriges Thema - Nächstes Thema

Beta-User

Zitat von: maclovlin am 07 Januar 2019, 19:08:15
Wie ist die Überlegung den Dimmer mit der Lampe direkt zu pairen?
Habe festgestellt das die Dimmer eine sehr schlechte Reichweite haben (bei mir ca. 3 Meter), mit der Lampe gepairt funktioniert alles einwandfrei, da diese dann als Repeater fungiert, nehme ich an.

Nachtrag:
Wenn ich die Lampe mit dem Dimmer bediene, wird der Status der Birne im FHEM nicht aktualisiert.
Habe auch den Dimmer direkt mit meinen Bulbs gepairt und dann dasselbe Problem, das keine Aktualisierung kommt. Ist wohl eine Beschränkung des zigbee2mqtt-Dienstes? Wenn man das Netzwerk abfragt, bekommt man Statusmeldungen, wie detailliert die sind, weiß ich aber grade nicht.
Ohne Pairing hatte ich es nie versucht und finde es sehr interessant, dass man dann (wenigstens) direkt Aktualisierungen bekommt! Bleibt dann die Frage, wie man es sinnvoll weitergeben kann...
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

Intruder1956

guten morgen,
ich hoffe das ich hier richtig bin mit meinem Vorschlag.
Ist habe zwei IKEA TRADFRI LED bulb E12/E14/E17 400 lumen erfolgreich in Fhem mit MQTT2 eingebunden.

Diese beiden Leuchtmittel lassen sich über Fhem und Lichtschalter schalten.
Jetzt meine Frage ist es möglich eine Abfrage in dem Leuchtmittel-Device zu starten, ob die Birne=Leuchtmittel ;) online oder offline ist.
z.b. state "online, off, on" oder state " offline, off" und das mit einem grünen-=online oder roten- Punkt=offline versehen.

Damit man gleich in Fhem sehen kann, ob der Lichtschalter betätigt wurde oder nicht.

Gruß Werner
Zotac CI547 32GB RAM 500GB SSD,ESXI 6.5, VM-Fhem5.8, VM-ioBroker, Cul 868Mhz;Cul 433Mhz = Busware, LGW, HM-MOD-RPI-PCB, Uniroll, IT YCR-100 TMT2100,ITR-1500, LD382 mit Wifilight, ESA 2000 + SENSOR WZ SET,FS20 TFK, HM-Sec-SC, HM-CC-RT-DN,PCA301,

skyline

Meine Bridge bekommt kein STATE angezeigt, woran könnte das liegen?

MQTT2-Device (MQTT2_zigbee_stick):
Internals:
   CID        zigbee_stick
   DEF        zigbee_stick
   DEVICETOPIC MQTT2_zigbee_stick
   FUUID      5c513a58-f33f-0c42-fb24-e13763771756afbf
   IODev      MQTT2_FHEM_Server
   NAME       MQTT2_zigbee_stick
   NR         613
   STATE      ???
   TYPE       MQTT2_DEVICE
Attributes:
   IODev      MQTT2_FHEM_Server
   bridgeRegexp zigbee2mqtt/([A-Za-z0-9]*)[/]?.*:.* "zigbee_$1"
   getList    devicelist:noArg log zigbee2mqtt/bridge/config/devices
  networkmap_raw:noArg raw zigbee2mqtt/bridge/networkmap raw
  networkmap_graphviz:noArg graphviz zigbee2mqtt/bridge/networkmap graphviz
   model      L_01_zigbee2mqtt_bridge
   readingList zigbee2mqtt/bridge/state:.* state
  zigbee2mqtt/bridge/config/devices:.* {}
  zigbee2mqtt/bridge/config/log_level:.* log_level
  zigbee2mqtt/bridge/config/permit_join:.* permit_join
  zigbee2mqtt/bridge/config/rename:.* { json2nameValue($EVENT, 'rename_') }
  zigbee2mqtt/bridge/log:.*\"type\".\"devices\".\"message\".* devices
  zigbee2mqtt/bridge/log:.* log
  zigbee2mqtt/bridge/networkmap:.* {}
  zigbee2mqtt/bridge/networkmap/graphviz:.* graphviz
  zigbee2mqtt/bridge/networkmap/raw:.* raw
   room       MQTT2_DEVICE
   setList    log_level:debug,info,warn,error zigbee2mqtt/bridge/config/log_level $EVTPART1
  permit_join:true,false zigbee2mqtt/bridge/config/permit_join $EVTPART1
  remove:textField zigbee2mqtt/bridge/config/remove $EVTPART1
  rename:textField zigbee2mqtt/bridge/config/rename  {"old":"$EVTPART1","new":"$EVTPART2"}
   setStateList on off


MQTT2_FHEM_Server:
Internals:
   DEF        1883 global
   FD         33
   FUUID      5c513683-f33f-0c42-afae-97237d038352912e
   NAME       MQTT2_FHEM_Server
   NR         612
   PORT       1883
   STATE      Initialized
   TYPE       MQTT2_SERVER
   READINGS:
     2019-01-30 07:38:14   nrclients       0
     2019-01-30 07:38:14   state           Initialized
   clients:
   retain:
Attributes:
   autocreate 1


configuration.yaml:
# Home Assistant integration (MQTT discovery)
homeassistant: false

# allow new devices to join
permit_join: false

# MQTT settings
  # Required: MQTT base topic for zigbee2mqtt MQTT messages
  base_topic: zigbee2mqtt
  # Required: MQTT server URL
  server: 'mqtt://localhost:1883'
  # Optional: MQTT server authentication user
   user: #########
  # Optional: MQTT server authentication password
  password: #########
  # Optional: MQTT client ID
  client_id: 'zigbee_stick'

# Required: serial settings
serial:
  # Required: location of CC2531 USB sniffer
  port: /dev/serial/by-id/usb-Texas_Instruments_TI_CC2531_USB_CDC___0X00124B001$
  # Optional: disable LED of CC2531 USB sniffer
  disable_led: true


User sind natürlich zu allowed identisch.

Keine Ahnung woran es noch liegen könnte :-[ :-[ :-[

Beta-User

Zitat von: skyline am 30 Januar 2019, 07:49:49
Meine Bridge bekommt kein STATE angezeigt, woran könnte das liegen?
Sicher, dass der zigbee2mqtt-Dienst überhaupt (noch) läuft? Wird der bei einem reboot automatisch mit gestartet?

Der Server zeigt 0 clients. Wenn es nicht ein Systemstartproblem ist, solltest du mal die logs durchforsten, angefangen bei zigbee2mqtt.
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

skyline

#304
Benötigt das Mqtt2_device eigentlich das Passwort und den User für den mqtt2_server nicht?

Autostart ist eingerichtet.
Überprüfe ich aber noch mal.

Beta-User

Zitat von: skyline am 30 Januar 2019, 09:14:14
Benötigt das Mqtt2_device eigentlich das Passwort und den User für den mqtt2_server nicht?
? Wieso sollte es???? Ist doch innerhalb von FHEM (MQTT2_SERVER <=> MQTT2_DEVICE).

Geh' das systematisch an und fange erst mal an dem einen Ende an. Also mit der Antwort auf diese Frage(n):
Zitat von: Beta-User am 30 Januar 2019, 07:56:19
Sicher, dass der zigbee2mqtt-Dienst überhaupt (noch) läuft? Wird der bei einem reboot automatisch mit gestartet?
(Ich bin davon ausgegangen, dass das eine MQTT2-Device mal automatisch erstellt worden war, der Dienst also irgendwann in der Vergangenheit auch mal was geliefert hat.)
Und ob deine allowed-Instanz die Verbindung unterbindet, müßte sich aus dem (fhem-) log ergeben...

M.E. hat das aber wenig mit den anderen Themen hier zu tun, das sind eigentlich Grundlagenthemen; evtl. solltest du einen eigenen Thread dazu aufmachen.
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

skyline


Hab alles noch mal runtergeschmissen und neu aufgesetzt, jetzt klappt es.

Das Device hatte er mir erst angelegt, als ich auch über mqtt versucht habe zu verbinden.

Autostart war vorher aber auch aktiv.

Nighthawk

Hallo zusammen,

ich habe folgendes Problem mit der Konstellation MQTT2_Server + MQTT2_DEVICE + zigbee2mqtt, irgendwo gehen Informationen verloren.
Das problemgerät ist ein Xiaomi Taster.
Betätige ich den Taster ein mal kurz, kommt das event durch, betätige ich den taster nochmals kurz, so kommt nur das Reading "linkquality" durch, nicht aber das Reading "click". Erst wenn ich den Taster lang, oder doppelt betätige (alles ausser "single"), kommt auch der kurze klick einmalig wieder durch.


Der Server sieht folgendermaßen aus:

Internals:
   CONNECTS   10
   DEF        1883 global
   FD         12
   FUUID      5c43f150-f33f-69d4-9256-c7c7b6258f7560cf
   NAME       MQTT2_FHEM_Server
   NR         65
   PORT       1883
   STATE      Initialized
   TYPE       MQTT2_SERVER
   Helper:
     DBLOG:
       nrclients:
         logdb:
           TIME       1548935890.43922
           VALUE      3
   READINGS:
     2019-01-31 19:58:10   RETAIN          {"domoticz/out/LWT":"Connected","zigbee2mqtt/bridge/state":"online"}
     2019-01-31 19:58:10   nrclients       3
     2019-01-31 19:54:00   state           Initialized
   clients:
     MQTT2_FHEM_Server_127.0.0.1_52580 1
     MQTT2_FHEM_Server_192.168.190.106_49283 1
     MQTT2_FHEM_Server_192.168.190.106_49284 1
   retain:
     domoticz/out/LWT:
       ts         1548935890.52426
       val        Connected
     zigbee2mqtt/bridge/state:
       ts         1548935649.48741
       val        online
Attributes:
   autocreate 1
   room       Technik
   verbose    5


Das MQTT_Device welches als Bridge fungiert sieht so aus:

Internals:
   CID        zigbee_bridge
   DEF        zigbee_bridge
   DEVICETOPIC MQTT2_zigbee_bridge
   FUUID      5c43f150-f33f-69d4-9314-b95cad113e95a07e
   IODev      MQTT2_FHEM_Server
   LASTInputDev MQTT2_FHEM_Server
   MQTT2_FHEM_Server_MSGCNT 2
   MQTT2_FHEM_Server_TIME 2019-01-31 19:54:09
   MSGCNT     2
   NAME       MQTT2_zigbee_bridge
   NR         66
   STATE      online
   TYPE       MQTT2_DEVICE
   Helper:
     DBLOG:
       message:
         logdb:
           TIME       1548935710.10028
           VALUE      device incoming
       state:
         logdb:
           TIME       1548935649.4901
           VALUE      online
       type:
         logdb:
           TIME       1548935710.10028
           VALUE      pairing
   READINGS:
     2019-01-31 19:55:10   associatedWith  MQTT2_zigbee_bridge
     2019-01-31 19:55:10   message         device incoming
     2019-01-31 19:48:43   permit_join     set false
     2019-01-31 19:54:09   state           online
     2019-01-31 19:55:10   type            pairing
Attributes:
   IODev      MQTT2_FHEM_Server
   autocreate 1
   bridgeRegexp zigbee2mqtt/([A-Za-z0-9]*)[/]?.*:.* "zigbee_$1"
   getList    devicelist:noArg log BASE_TOPIC/bridge/config/devices
  networkmap_raw:noArg raw BASE_TOPIC/bridge/networkmap raw
  networkmap_graphviz:noArg graphviz BASE_TOPIC/bridge/networkmap graphviz
   group      Funkmodule
   model      L_01_zigbee2mqtt_bridge
   readingList zigbee2mqtt/bridge/state:.* state
zigbee2mqtt/bridge/log:.* { json2nameValue($EVENT) }
   room       Technik
   setList    log_level:debug,info,warn,error BASE_TOPIC/bridge/config/log_level $EVTPART1
  permit_join:true,false BASE_TOPIC/bridge/config/permit_join $EVTPART1
  remove:textField BASE_TOPIC/bridge/config/remove $EVTPART1
  rename:textField BASE_TOPIC/bridge/config/rename  {"old":"$EVTPART1","new":"$EVTPART2"}
   setStateList on off
   verbose    5



Die Definition des Problemgeräts, ein Xiaomi Taster, sieht so aus:

Internals:
   CHANGED   
   CID        zigbee_0x00158d00027c9041
   DEF        zigbee_0x00158d00027c9041
   DEVICETOPIC Taster_1
   FUUID      5c4430cf-f33f-69d4-8e1c-250b778bd5471099
   IODev      MQTT2_FHEM_Server
   LASTInputDev MQTT2_FHEM_Server
   MQTT2_FHEM_Server_MSGCNT 26
   MQTT2_FHEM_Server_TIME 2019-01-31 19:59:23
   MSGCNT     26
   NAME       Taster_1
   NR         73
   STATE      single
   TYPE       MQTT2_DEVICE
   Helper:
     DBLOG:
       click:
         logdb:
           TIME       1548935948.4654
           VALUE      single
       duration:
         logdb:
           TIME       1548935940.67241
           VALUE      565
       linkquality:
         logdb:
           TIME       1548935958.15857
           VALUE      13
   READINGS:
     2019-01-31 19:43:20   associatedWith  MQTT2_zigbee_pi
     2019-01-31 19:59:23   battery         100
     2019-01-31 19:59:23   click           single
     2019-01-31 19:59:00   duration        565
     2019-01-31 19:59:23   linkquality     13
     2019-01-31 19:59:23   voltage         3072
Attributes:
   IODev      MQTT2_FHEM_Server
   event-on-change-reading .*
   model      L_06_zigbee2mqtt_ContactSensor
   readingList zigbee2mqtt/0x00158d00027c9041:.* { json2nameValue($EVENT) }
   stateFormat click
   verbose    5



Hier ein Auszug aus dem Logfile:


2019.01.31 19:59:00 5: PUBLISH: (0)(30)zigbee2mqtt/0x00158d00027c9041{"battery":100,"voltage":3072,"linkquality":13,"click":"long"}
2019.01.31 19:59:00 4: MQTT2_FHEM_Server_127.0.0.1_52580 mqttjs_18951ddb PUBLISH zigbee2mqtt/0x00158d00027c9041:{"battery":100,"voltage":3072,"linkquality":13,"click":"long"}
2019.01.31 19:59:00 5: MQTT2_FHEM_Server: dispatch autocreate\000mqttjs_18951ddb\000zigbee2mqtt/0x00158d00027c9041\000{"battery":100,"voltage":3072,"linkquality":13,"click":"long"}
2019.01.31 19:59:00 4: MQTT2_DEVICE_Parse: Taster_1 zigbee2mqtt/0x00158d00027c9041 => { json2nameValue($EVENT) }

2019.01.31 19:59:00 5: PUBLISH: (0)(30)zigbee2mqtt/0x00158d00027c9041{"battery":100,"voltage":3072,"linkquality":23,"click":"long_release","duration":565}
2019.01.31 19:59:00 4: MQTT2_FHEM_Server_127.0.0.1_52580 mqttjs_18951ddb PUBLISH zigbee2mqtt/0x00158d00027c9041:{"battery":100,"voltage":3072,"linkquality":23,"click":"long_release","duration":565}
2019.01.31 19:59:00 5: MQTT2_FHEM_Server: dispatch autocreate\000mqttjs_18951ddb\000zigbee2mqtt/0x00158d00027c9041\000{"battery":100,"voltage":3072,"linkquality":23,"click":"long_release","duration":565}
2019.01.31 19:59:00 4: MQTT2_DEVICE_Parse: Taster_1 zigbee2mqtt/0x00158d00027c9041 => { json2nameValue($EVENT) }
2019.01.31 19:59:01 4: MQTT2_FHEM_Server_192.168.190.106_49284 ESPClient_80:7D:3A:6E:98:10_5 PINGREQ

2019.01.31 19:59:08 5: PUBLISH: (0)(30)zigbee2mqtt/0x00158d00027c9041{"battery":100,"voltage":3072,"linkquality":15,"click":"single"}
2019.01.31 19:59:08 4: MQTT2_FHEM_Server_127.0.0.1_52580 mqttjs_18951ddb PUBLISH zigbee2mqtt/0x00158d00027c9041:{"battery":100,"voltage":3072,"linkquality":15,"click":"single"}
2019.01.31 19:59:08 5: MQTT2_FHEM_Server: dispatch autocreate\000mqttjs_18951ddb\000zigbee2mqtt/0x00158d00027c9041\000{"battery":100,"voltage":3072,"linkquality":15,"click":"single"}
2019.01.31 19:59:08 4: MQTT2_DEVICE_Parse: Taster_1 zigbee2mqtt/0x00158d00027c9041 => { json2nameValue($EVENT) }

2019.01.31 19:59:13 5: PUBLISH: (0)(30)zigbee2mqtt/0x00158d00027c9041{"battery":100,"voltage":3072,"linkquality":13,"click":"single"}
2019.01.31 19:59:13 4: MQTT2_FHEM_Server_127.0.0.1_52580 mqttjs_18951ddb PUBLISH zigbee2mqtt/0x00158d00027c9041:{"battery":100,"voltage":3072,"linkquality":13,"click":"single"}
2019.01.31 19:59:13 5: MQTT2_FHEM_Server: dispatch autocreate\000mqttjs_18951ddb\000zigbee2mqtt/0x00158d00027c9041\000{"battery":100,"voltage":3072,"linkquality":13,"click":"single"}
2019.01.31 19:59:13 4: MQTT2_DEVICE_Parse: Taster_1 zigbee2mqtt/0x00158d00027c9041 => { json2nameValue($EVENT) }

2019.01.31 19:59:16 5: PUBLISH: (0)(30)zigbee2mqtt/0x00158d00027c9041{"battery":100,"voltage":3072,"linkquality":21,"click":"single"}
2019.01.31 19:59:16 4: MQTT2_FHEM_Server_127.0.0.1_52580 mqttjs_18951ddb PUBLISH zigbee2mqtt/0x00158d00027c9041:{"battery":100,"voltage":3072,"linkquality":21,"click":"single"}
2019.01.31 19:59:16 5: MQTT2_FHEM_Server: dispatch autocreate\000mqttjs_18951ddb\000zigbee2mqtt/0x00158d00027c9041\000{"battery":100,"voltage":3072,"linkquality":21,"click":"single"}
2019.01.31 19:59:16 4: MQTT2_DEVICE_Parse: Taster_1 zigbee2mqtt/0x00158d00027c9041 => { json2nameValue($EVENT) }

2019.01.31 19:59:18 5: PUBLISH: (0)(30)zigbee2mqtt/0x00158d00027c9041{"battery":100,"voltage":3072,"linkquality":13,"click":"single"}
2019.01.31 19:59:18 4: MQTT2_FHEM_Server_127.0.0.1_52580 mqttjs_18951ddb PUBLISH zigbee2mqtt/0x00158d00027c9041:{"battery":100,"voltage":3072,"linkquality":13,"click":"single"}
2019.01.31 19:59:18 5: MQTT2_FHEM_Server: dispatch autocreate\000mqttjs_18951ddb\000zigbee2mqtt/0x00158d00027c9041\000{"battery":100,"voltage":3072,"linkquality":13,"click":"single"}
2019.01.31 19:59:18 4: MQTT2_DEVICE_Parse: Taster_1 zigbee2mqtt/0x00158d00027c9041 => { json2nameValue($EVENT) }


Und das sind die Events im Eventmonitor:


2019-01-31 19:59:00 MQTT2_DEVICE Taster_1 linkquality: 13
2019-01-31 19:59:00 MQTT2_DEVICE Taster_1 click: long

2019-01-31 19:59:00 MQTT2_DEVICE Taster_1 linkquality: 23
2019-01-31 19:59:00 MQTT2_DEVICE Taster_1 duration: 565
2019-01-31 19:59:00 MQTT2_DEVICE Taster_1 click: long_release

2019-01-31 19:59:08 MQTT2_DEVICE Taster_1 click: single
2019-01-31 19:59:08 MQTT2_DEVICE Taster_1 linkquality: 15

2019-01-31 19:59:13 MQTT2_DEVICE Taster_1 linkquality: 13

2019-01-31 19:59:16 MQTT2_DEVICE Taster_1 linkquality: 21

2019-01-31 19:59:18 MQTT2_DEVICE Taster_1 linkquality: 13

Beta-User

Hmm, vielleicht löschst du als erste Maßnahme event-on-change-reading .*?
Der Zeitstempel des Readings wird ja aktualisiert, auch wenn die Daten nicht so ganz zusammenpassen...
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

Nighthawk

Danke, ich sah den Wald vor lauter Bäumen nicht..

skyline

#310
Ich habe jetzt mal einen Xiaomi Motion Sensor angelernt, welches auch geklappt hat.
Neben dem eigentliche Sensor wurde mir aber noch ein MQTT2_Device angelegt "MQTT2_zigbee_bridge", welche sich aber auch nicht mit den Server verbindet.

Wo kommt das Device her und wird das gebraucht (im Wiki ist dazu nichts zu finden)?

MQTT2_zigbee_bridge:
Internals:
   CFGFN     
   CID        zigbee_bridge
   DEF        zigbee_bridge
   DEVICETOPIC MQTT2_zigbee_bridge
   FUUID      5c5356cb-f33f-0c42-32a3-ca59b77d79c6f5ad
   IODev      MQTT2_FHEM_Server
   LASTInputDev MQTT2_FHEM_Server
   MQTT2_FHEM_Server_MSGCNT 5
   MQTT2_FHEM_Server_TIME 2019-01-31 21:18:26
   MSGCNT     5
   NAME       MQTT2_zigbee_bridge
   NR         1352
   STATE      ???
   TYPE       MQTT2_DEVICE
   READINGS:
     2019-01-31 21:12:59   associatedWith  MQTT2_zigbee_stick
     2019-01-31 21:18:26   log_level       info
     2019-01-31 21:18:26   permit_join     false
Attributes:
   IODev      MQTT2_FHEM_Server
   readingList zigbee2mqtt/bridge/config:.* { json2nameValue($EVENT) }
   room       MQTT2_DEVICE


MQTT2_zigbee_stick (MQTT2_zigbee_pi):
Internals:
   CID        zigbee_stick
   DEF        zigbee_stick
   DEVICETOPIC MQTT2_zigbee_stick
   FUUID      5c51feca-f33f-0c42-02a0-60c703176e259987
   IODev      MQTT2_FHEM_Server
   LASTInputDev MQTT2_FHEM_Server
   MQTT2_FHEM_Server_MSGCNT 3
   MQTT2_FHEM_Server_TIME 2019-01-31 21:13:57
   MSGCNT     3
   NAME       MQTT2_zigbee_stick
   NR         613
   STATE      online
   TYPE       MQTT2_DEVICE
   READINGS:
     2019-01-31 21:13:57   log             {"type":"pairing","message":"device incoming"}
     2019-01-31 21:18:26   permit_join     set false
     2019-01-30 21:41:35   state           online
Attributes:
   IODev      MQTT2_FHEM_Server
   bridgeRegexp zigbee2mqtt/([A-Za-z0-9]*)[/]?.*:.* "zigbee_$1"
   getList    devicelist:noArg log zigbee2mqtt/bridge/config/devices
  networkmap_raw:noArg raw zigbee2mqtt/bridge/networkmap raw
  networkmap_graphviz:noArg graphviz zigbee2mqtt/bridge/networkmap graphviz
   model      L_01_zigbee2mqtt_bridge
   readingList zigbee2mqtt/bridge/state:.* state
  zigbee2mqtt/bridge/config/devices:.* {}
  zigbee2mqtt/bridge/config/log_level:.* log_level
  zigbee2mqtt/bridge/config/permit_join:.* permit_join
  zigbee2mqtt/bridge/config/rename:.* { json2nameValue($EVENT, 'rename_') }
  zigbee2mqtt/bridge/log:.*\"type\".\"devices\".\"message\".* devices
  zigbee2mqtt/bridge/log:.* log
  zigbee2mqtt/bridge/networkmap:.* {}
  zigbee2mqtt/bridge/networkmap/graphviz:.* graphviz
  zigbee2mqtt/bridge/networkmap/raw:.* raw
   room       MQTT2_DEVICE
   setList    log_level:debug,info,warn,error zigbee2mqtt/bridge/config/log_level $EVTPART1
  permit_join:true,false zigbee2mqtt/bridge/config/permit_join $EVTPART1
  remove:textField zigbee2mqtt/bridge/config/remove $EVTPART1
  rename:textField zigbee2mqtt/bridge/config/rename  {"old":"$EVTPART1","new":"$EVTPART2"}
   setStateList on off


MQTT2_zigbee_bridge: ???
Internals:
   CFGFN     
   CID        zigbee_bridge
   DEF        zigbee_bridge
   DEVICETOPIC MQTT2_zigbee_bridge
   FUUID      5c5356cb-f33f-0c42-32a3-ca59b77d79c6f5ad
   IODev      MQTT2_FHEM_Server
   LASTInputDev MQTT2_FHEM_Server
   MQTT2_FHEM_Server_MSGCNT 5
   MQTT2_FHEM_Server_TIME 2019-01-31 21:18:26
   MSGCNT     5
   NAME       MQTT2_zigbee_bridge
   NR         1352
   STATE      ???
   TYPE       MQTT2_DEVICE
   READINGS:
     2019-01-31 21:12:59   associatedWith  MQTT2_zigbee_stick
     2019-01-31 21:18:26   log_level       info
     2019-01-31 21:18:26   permit_join     false
Attributes:
   IODev      MQTT2_FHEM_Server
   readingList zigbee2mqtt/bridge/config:.* { json2nameValue($EVENT) }
   room       MQTT2_DEVICE


MQTT2_zigbee_0x00158d0002b95f04 (Xiaomi Motion Sensor):
Internals:
   CFGFN     
   CID        zigbee_0x00158d0002b95f04
   DEF        zigbee_0x00158d0002b95f04
   DEVICETOPIC MQTT2_zigbee_0x00158d0002b95f04
   FUUID      5c5357cd-f33f-0c42-b45b-682159de1115f89d
   IODev      MQTT2_FHEM_Server
   LASTInputDev MQTT2_FHEM_Server
   MQTT2_FHEM_Server_MSGCNT 205
   MQTT2_FHEM_Server_TIME 2019-02-01 09:28:03
   MSGCNT     205
   NAME       MQTT2_zigbee_0x00158d0002b95f04
   NR         1358
   STATE      ???
   TYPE       MQTT2_DEVICE
   READINGS:
     2019-01-31 21:17:17   associatedWith  MQTT2_zigbee_stick
     2019-02-01 09:28:03   battery         100
     2019-02-01 09:28:03   illuminance     32
     2019-02-01 09:28:03   linkquality     26
     2019-02-01 09:28:03   occupancy       false
     2019-02-01 09:28:03   voltage         3025
Attributes:
   IODev      MQTT2_FHEM_Server
   readingList zigbee2mqtt/0x00158d0002b95f04:.* { json2nameValue($EVENT) }
   room       MQTT2_DEVICE


Soll man die Bridge nicht unter dem Namen "MQTT2_zigbee_stick" sondern "MQTT2_zigbee_bridge" anlegen?

edit:
Die MQTT2_zigbee_bridge wird wohl automatisch angelegt, liegt wohl mit dem bridgeRegexp zusammen.
Bei einem Mqtt2_Server besser
zigbee2mqtt bridgeRegexp zigbee2mqtt/0x........([^/]+):.* "zigbee_$1"
verwenden.

Könnte man aber vielleicht auch gleich mit ins Wiki schreiben, da es dort noch anders steht.

Beta-User

Zitat von: skyline am 01 Februar 2019, 09:33:29
Könnte man aber vielleicht auch gleich mit ins Wiki schreiben, da es dort noch anders steht.
Nachdem wir in diesem Thread lange darüber diskutiert haben, welche bridgeRegexp denn nun sinnvoll ist, bitte ich darum, das im Wiki vorläufig nicht zu ändern.

Es kommt mir so vor, als würde es (wegen Änderungen bei zigbee2mqtt, jetzt wird der Status von permit join scheinbar auch geschickt...) schlicht ein neues Element in der readingList geben, das in das template aufgenommen werden sollte? Vielleicht kann da jemand mal Vorschläge machen, der auf der aktuellen Version ist (komme grad nicht zum updaten...)
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

Folgendes:
In der configuration.yaml kann man u.a. auch den Parameter "availability_timeout" setzen (Abschnitt "advanced", steht bei mir derzeit auf "availability_timeout: '300'" mit einem Leerzeichen). Dann erhält man (hier nach 5 Minuten) ein neues Reading "availability" mit dem Inhalt "online" oder "offline".
Finde ich sehr praktisch, weil meine Zigbee-Leuchten hinter Schaltern sitzen; so sollte man feststellen können, ob die Leuchten an oder aus sind (sicher ist: offline=aus). Da jedenfalls die IKEA-GU10 und tint E27 white+color beim Wiedereinschalten des Stroms auch angeschaltet sind, kann man auch den Wechsel von offline zu online verwenden. So weit, so gut.

Anschlußfragen:
- Die regex zur Ermittlung der DeviceID mußte angepaßt werden, weil nicht mehr alle messages direkt an BASE_TOPIC/DEV_ID: gehen, sondern dann auch an BASE_TOPIC/DEV_ID/availability:. Das habe ich eben als Änderung eingecheckt, bitte um Rückmeldung, wenn das so nicht paßt oder jemand Verbesserungsvorschläge dazu hat.

- Da autocreate ja in der Regel aktiv ist, habe ich in den templates
attr DEVICE readingList\
  BASE_TOPIC/DEV_ID:.* { json2nameValue($EVENT) }
  BASE_TOPIC/DEV_ID/availability:.* { json2nameValue($EVENT) }
_nicht_ eingefügt, bin aber nicht sicher, wie herum das optimal ist. An sich würde es nicht schaden, aber wenn man es reinschreibt, gibt es sicher Fragen, wo das her kommt, aber nicht jeder will ggf. das feature auch nutzen; mir ist z.B. nicht klar, ob das mit den 5 Min. z.B. eine gute Idee wäre bei batteriebetriebenen Sensoren - sowas habe ich nicht...

Zitat von: Beta-User am 04 Februar 2019, 17:06:10
Es kommt mir so vor, als würde es (wegen Änderungen bei zigbee2mqtt, jetzt wird der Status von permit join scheinbar auch geschickt...) schlicht ein neues Element in der readingList geben, das in das template aufgenommen werden sollte?
So, jetzt war doch Gelegenheit, das selbst auszutesten:

Es genügt, die readingList des bridge-Devices zu ergänzen (letztes Element):
attr DEVICE readingList\
  [...]
  BASE_TOPIC/bridge/config:.* { json2nameValue($EVENT) }
Angepaßtes template ist im svn.

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

Für den Fall, dass es jemand brauchen kann, noch das notify, um den Gerätestatus bei (nicht-) Verfügbarkeit zu aktualisieren (RAW-Format, meine Devices habe ich nicht umbenannt, sondern mit einem alias versehen):

defmod n_Zigbeedevice_availability notify MQTT2_zigbee.*:availability:.* {\
if (Value($NAME) =~ /ON|on/ and $EVENT =~ /offline/) {fhem "setreading $NAME state off";}\
elsif (Value($NAME) =~ /OFF|off/ and $EVENT =~ /online/){fhem "setreading $NAME state on"}\
}

Dazu dann event-on-change-reading .* setzen.
Das ganze funktioniert bislang (V. 1.1.1) nur mit Geräten, die als Router bekannt sind, batteriebetriebene Geräte kennen das bislang nicht, da ist was vergleichbares wohl erst in Vorbereitung; ob bzw. wie man das ggf. via MQTT konfigurieren kann (es gibt auch eine Blacklist-Option), habe ich bisher nicht in Erfahrung bringen können, ist für mich im Moment auch nicht wichtig. Aber wenn es jemand rausfindet, sollte man es m.E. in das Bridge-template aufnehmen.
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

JoGu

Hilfe ! Ich bekomme nichts in der neighbor map angezeigt :-(
Die readings devices und graphviz werden erzeugt. Alle updates sind gemacht.
devices
{"type":"devices","message":[{"ieeeAddr":"0x00158d0002271dd2","type":"EndDevice","model":"WSDCGQ11LM","friendly_name":"XmiTemp_Test"},{"ieeeAddr":"0x00158d000232343d","type":"EndDevice","model":"WSDCGQ11LM","friendly_name":"XmiTemp_Igel"},{"ieeeAddr":"0x00158d00022725e5","type":"EndDevice","model":"WSDCGQ11LM","friendly_name":"XmiTemp_Waschen"},{"ieeeAddr":"0x00158d0002288766","type":"EndDevice","model":"WSDCGQ11LM","friendly_name":"XmiTemp_Keller"},{"ieeeAddr":"0x00158d0002282a7a","type":"EndDevice","model":"MCCGQ01LM","friendly_name":"XmiWin_Test"},{"ieeeAddr":"0x00158d000224f95b","type":"EndDevice","model":"RTCGQ11LM","friendly_name":"XmiMotion_Wohnen"},{"ieeeAddr":"0x00158d000205a542","type":"EndDevice","model":"WXKG01LM","friendly_name":"XmiSwitch_Test"},{"ieeeAddr":"0x00158d00019c91ec","type":"EndDevice","model":"WSDCGQ01LM","friendly_name":"XmiTemp_Bad"},{"ieeeAddr":"0x00158d00019db02e","type":"EndDevice","model":"MCCGQ01LM","friendly_name":"XmiWin_Kueche"}]}

graphviz
digraph G {
node[shape=record];
  "0x00124b0018e33b1c" [style="bold", label="{0x00124b0018e33b1c|Coordinator|No model information available|online}"];
  "0x00158d0002271dd2" [style="rounded, dashed", label="{XmiTemp_Test|EndDevice|Xiaomi Aqara temperature, humidity and pressure sensor (WSDCGQ11LM)|online}"];
  "0x00158d0002271dd2" -> "0x00124b0018e33b1c" [label="119"]
  "0x00158d000232343d" [style="rounded, dashed", label="{XmiTemp_Igel|EndDevice|Xiaomi Aqara temperature, humidity and pressure sensor (WSDCGQ11LM)|online}"];
  "0x00158d000232343d" -> "0x00124b0018e33b1c" [label="54"]
  "0x00158d00022725e5" [style="rounded, dashed", label="{XmiTemp_Waschen|EndDevice|Xiaomi Aqara temperature, humidity and pressure sensor (WSDCGQ11LM)|online}"];
  "0x00158d00022725e5" -> "0x00124b0018e33b1c" [label="39"]
  "0x00158d0002288766" [style="rounded, dashed", label="{XmiTemp_Keller|EndDevice|Xiaomi Aqara temperature, humidity and pressure sensor (WSDCGQ11LM)|online}"];
  "0x00158d0002288766" -> "0x00124b0018e33b1c" [label="35"]
  "0x00158d0002282a7a" [style="rounded, dashed", label="{XmiWin_Test|EndDevice|Xiaomi MiJia door & window contact sensor (MCCGQ01LM)|online}"];
  "0x00158d0002282a7a" -> "0x00124b0018e33b1c" [label="80"]
  "0x00158d000224f95b" [style="rounded, dashed", label="{XmiMotion_Wohnen|EndDevice|Xiaomi Aqara human body movement and illuminance sensor (RTCGQ11LM)|online}"];
  "0x00158d000224f95b" -> "0x00124b0018e33b1c" [label="11"]
  "0x00158d000205a542" [style="rounded, dashed", label="{XmiSwitch_Test|EndDevice|Xiaomi MiJia wireless switch (WXKG01LM)|online}"];
  "0x00158d000205a542" -> "0x00124b0018e33b1c" [label="31"]
  "0x00158d00019c91ec" [style="rounded, dashed", label="{XmiTemp_Bad|EndDevice|Xiaomi MiJia temperature & humidity sensor  (WSDCGQ01LM)|online}"];
  "0x00158d00019c91ec" -> "0x00124b0018e33b1c" [label="44"]
  "0x00158d00019db02e" [style="rounded, dashed", label="{XmiWin_Kueche|EndDevice|Xiaomi MiJia door & window contact sensor (MCCGQ01LM)|online}"];
  "0x00158d00019db02e" -> "0x00124b0018e33b1c" [label="39"]
}