Hallo zusammen,
bin gerade am auf einen neuen SmartHome-Server.
Im Docker:
- FHEM
- MQTT (Ich weiß, es gibt MQTT2, möchte das aber so lösen.)
- Zigbee2MQTT
Alle drei Container laufen.
- FHEM und MQTT kommunizieren
- Zigbee2MQTT und MQTT kommunizieren
Zigbee2MQTT kommen in FHEM an, werden aber nicht von der xBridge erkannt.
Wahrscheinlich fehlt hier einfach etwas.
Nun besteht das Problem, wenn ich die xBridge anlege, dann wird kein Coordinator angelegt und auch keine Verbindung aufgebaut.
Habe das ganze auf meinem RPi4 ohne Docker am Laufen. (Habe zwei von den Zigbee Sticks)
Device: xBridge
define xBridge XiaomiMQTTDevice bridge
# CFGFN
# DEF bridge
# FRIENDLYNAME
# FUUID 63b821e5-f33f-6533-1567-bae9557ed9305016
# IODev Mosquitto
# MODEL bridge
# NAME xBridge
# NOTIFYDEV global
# NR 56
# NTFY_ORDER 50-xBridge
# SID
# STATE paired
# TOPIC
# TYPE XiaomiMQTTDevice
# eventCount 32
# Helper:
# DBLOG:
# state:
# DBLogging:
# TIME 1673012712.25958
# VALUE pair 1
# transmission-state:
# DBLogging:
# TIME 1673012712.26105
# VALUE outgoing publish acknowledged
# READINGS:
# 2023-01-06 14:44:55 IODev Mosquitto
# 2023-01-06 14:45:12 transmission-state outgoing publish acknowledged
# message_ids:
# subscribe:
# zigbee2mqtt/
# xiaomi//#
# zigbee2mqtt/bridge/#
# subscribeExpr:
# ^zigbee2mqtt\/$
# ^xiaomi\/.*$
# ^zigbee2mqtt\/bridge.*$
# subscribeQos:
# xiaomi//# 0
# zigbee2mqtt/ 0
# zigbee2mqtt/bridge/# 0
# subscribeReadings:
# zigbee2mqtt/bridge/config/devices:
# zigbee2mqtt/bridge/config/permit_join:
#
setstate xBridge paired
setstate xBridge 2023-01-06 14:44:55 IODev Mosquitto
setstate xBridge 2023-01-06 14:45:12 transmission-state outgoing publish acknowledged
Device: MQTT
define Mosquitto MQTT 172.17.0.1:1883
attr Mosquitto DbLogExclude .*
# DEF 172.17.0.1:1883
# DeviceName 172.17.0.1:1883
# FD 4
# FUUID 63b813ae-f33f-6533-54dd-aa254066161173e7
# FVERSION 00_MQTT.pm:0.249810/2021-09-16
# NAME Mosquitto
# NOTIFYDEV global
# NR 47
# NTFY_ORDER 50-Mosquitto
# PARTIAL
# STATE opened
# TYPE MQTT
# buf
# eventCount 23
# msgid 19
# ping_received 1
# timeout 60
# READINGS:
# 2023-01-06 14:46:46 connection active
# 2023-01-06 14:27:46 state opened
# messages:
#
setstate Mosquitto opened
setstate Mosquitto 2023-01-06 14:46:46 connection active
setstate Mosquitto 2023-01-06 14:27:46 state opened
Device: Zum Testen, ob Zigbee2MQTT in FHEM ankommt.
define Z2M.Test MQTT_DEVICE
attr Z2M.Test DbLogExclude .*
attr Z2M.Test stateFormat state
attr Z2M.Test subscribeReading_state Zigbee2MQTT/0x00158d00022c63fd
# CFGFN
# FUUID 63b826ee-f33f-6533-b5ab-f0e3751f8062dc41
# IODev Mosquitto
# NAME Z2M.Test
# NR 272
# STATE {"battery":100,"humidity":40.76,"linkquality":115,"power_outage_count":7391,"pressure":945.2,"temperature":25.79,"voltage":3065}
# TYPE MQTT_DEVICE
# eventCount 4
# READINGS:
# 2023-01-06 14:49:34 IODev Mosquitto
# 2023-01-06 14:49:43 state {"battery":100,"humidity":40.76,"linkquality":115,"power_outage_count":7391,"pressure":945.2,"temperature":25.79,"voltage":3065}
# 2023-01-06 14:49:43 transmission-state incoming publish received
# message_ids:
# sets:
# subscribe:
# Zigbee2MQTT/0x00158d00022c63fd
# subscribeExpr:
# ^Zigbee2MQTT\/0x00158d00022c63fd$
# subscribeQos:
# Zigbee2MQTT/0x00158d00022c63fd 0
# subscribeReadings:
# Zigbee2MQTT/0x00158d00022c63fd:
# cmd
# name state
#
setstate Z2M.Test {"battery":100,"humidity":40.76,"linkquality":115,"power_outage_count":7391,"pressure":945.2,"temperature":25.79,"voltage":3065}
setstate Z2M.Test 2023-01-06 14:49:34 IODev Mosquitto
setstate Z2M.Test 2023-01-06 14:49:43 state {"battery":100,"humidity":40.76,"linkquality":115,"power_outage_count":7391,"pressure":945.2,"temperature":25.79,"voltage":3065}
setstate Z2M.Test 2023-01-06 14:49:43 transmission-state incoming publish received
Vielen Dank
Grüße
Gear
Bist Du sicher, dass der mqtt Container immer die genannte IP Adresse hat?
Vielleicht hat er die ja nicht mehr. Wenn Du mittels Hostname verbindest, kannst Du das ausschließen.
Grüße Sidey
Per Hostname geht das irgendwie nicht.
Ich nutze die Gateway-IP, diese bleibt immer gleich.
Aber mal davon abgesehen, die Kommunikation funktioniert ja, nur die xBridge nicht.
Theoretisch könnte ich auch einfach MQTT Device's anlegen und per "expandJSON" das JSON "zerlegen".
Schöner wäre halt die xBridge.
Hinweis: "zigbee2mqtt" ist nicht gleich "Zigbee2MQTT"
Zitat von: Gear am 06 Januar 2023, 15:29:54
Per Hostname geht das irgendwie nicht.
Ich nutze die Gateway-IP, diese bleibt immer gleich.
Was verwendest Du denn als hostnamen, dass es nicht geht?
Docker registriert für jeden container automatisch im internen Netzwerk einen Hostnamen. Das die IP-Adressen immer gleich bleiben, das ist mir neu, wie hast Du das realisiert?
Grüße Sidey
Die Hostname Sache funktioniert jetzt.
Das Zigbee2MQTT habe ich jetzt so gelöst:
Habe MQTT Devices für die Geräte und lasse das JSON mit expandJSON zerlegen.
Da ich hier nur Schalter / Buttons / Klimasensoren habe, kein Problem.
Danke und einen schönen Tag.
Grüße
Gear