rebell21 hat geschrieben: ↑5. Dez 2024 23:12
Diese kommen aber in openhab nicht an
Das kann fast nicht sein. Ich habe zwar keinen MQTT-Explorer, aber MQTT.fx. Das ist aber fast das Gleiche. Und da sehe ich z.B. einen JSON-String
Code: Alles auswählen
{"battery":100,"battery_low":false,"last_seen":"2024-12-05T23:24:06+01:00","linkquality":196,"occupancy":true,"tamper":false,"voltage":3000}
und das Ganze auch noch als Einzelwerte. Z.B. der Einzelwert "zigbee2mqtt/snzb_03_01/last_seen"
2024-12-05T23:24:06+01:00
Jetzt fällt mir gerade ein, dass ich einen bestimmten Parameter in configuration.yal gesetzt habe.
Code: Alles auswählen
frontend:
port: 8081
homeassistant: false
permit_join: false
mqtt:
base_topic: zigbee2mqtt
server: mqtt://localhost
user: hab4
password: ''
serial:
adapter: ember
port: >-
/dev/serial/by-id/usb-ITEAD_SONOFF_Zigbee_3.0_USB_Dongle_Plus_V2_20231220110104-if00
advanced:
network_key:
- 36
- 41
- 144
- 231
- 124
- 142
- 185
- 1
- 224
- 246
- 34
- 111
- 10
- 204
- 197
- 171
pan_id: 26470
log_level: warning
channel: 25
output: attribute_and_json
log_directory: /var/log/zigbee2mqtt/%TIMESTAMP%al
........
Es handelt sich dabei um den Parameter "
output". Hier habe ich
attribute und json gesetzt. Da ich in den Channels (fast allen) die Einzelwerte abfrage, bis auf den Channel "Linkquality", da lese ich aus dem Json-String. Frag mich bitte nicht warum; einfach weil ich's kann

. Einfach so halt um nicht zu vergessen, dass man sowohl aus den Einzelwerten als auch aus dem Json-String die Wert erhalten kann. Ich denke, dass du, wenn du nur
json eingestellt hast, weniger Logs hast. Wenn du das so willst, kannst du
das .things-File so modifizieren:
Code: Alles auswählen
Thing mqtt:topic:danny:snzb0301 "Bewegungs-Sensor SZNB-03-01" (mqtt:broker:danny ) @ "zigbee2mqtt"// [ availabilityTopic="tele/snzb_04_03/LWT", payloadNotAvailable="Offline", payloadAvailable= "Online" ]
{
Channels:
Type number : voltage "SNZB-03 Spannung" [ stateTopic="zigbee2mqtt/snzb_03_01", transformationPattern="JSONPATH:$.voltage", unit="mV" ]
Type number : battery "SNZB-03 Batterie" [ stateTopic="zigbee2mqtt/snzb_03_01", transformationPattern="JSONPATH:$.battery", unit="%" ]
Type switch : batterylow "SNZB-03 Batterie Niedrig" [ stateTopic="zigbee2mqtt/snzb_03_01", transformationPattern="JSONPATH:$.battery_low", on="true", off="false" ]
Type switch : occupancy "SNZB-03 Bewegung" [ stateTopic="zigbee2mqtt/snzb_03_01", transformationPattern="JSONPATH:$.occupancy", on="true", off="false" ]
Type switch : tamper "SNZB-03 Sabotage" [ stateTopic="zigbee2mqtt/snzb_03_01", transformationPattern="JSONPATH:$.tamper", on="true", off="false" ]
Type number : linkquality "SNZB-03 Empfangsstäreke LQI" [ stateTopic="zigbee2mqtt/snzb_03_01", transformationPattern="JSONPATH:$.linkquality", unit="lqi" ]
Type datetime : lastseen "SNZB-03 letzte Änderung" [ stateTopic="zigbee2mqtt/snzb_03_01", transformationPattern="JSONPATH:$.last_seen" ]
}
Ich hoffe, dass das richtig ist. Hab's nohmal geändert und so funktioniert es auch mit der Auflösung als Json-String.
Das kannst du eigentlich aber jetzt schon prüfen, denn die Eigenschaft bzw. das Item "Linkquality" sollte in openHAB auf jeden Fall schon einen Wert enthalten.