Aqara Fenstersensor über zigbee2mqtt und mosquito zerlegen

Begonnen von Tomte, 19 November 2018, 19:43:57

Vorheriges Thema - Nächstes Thema

Tomte

Hallo,

Da ich bereits einen Mosquito Server am laufen habe, habe ich mich entschlossen meinen Aqara Fenstersensor darüber an FHEM einzubinden.
Leider komme ich mit der Zerlegung der MQTT-Nachricht nicht klar.
Im Moment sieht es so aus wie im Bild dargestellt.
Aber wie extrahiere ich jetzt den Kontaktstatus, Batteriestand usw.? Ich komme leider mit den Beispielen im Wiki (Hauptsächlich zu sonoff) nicht klar.

Ein paar Hinweise zur Vorgehensweise wären super!

Danke, Tomte.

Tomte

Hallo,

ich habe das Problem gelöst.
Dazu habe ich das Device umbenannt (siehe Bild)
und ein expandJSON angelegt:
define ej_aqara expandJSON aqara.*:.*:.{.*}

VG, Tomte

Tomte

Hallo,

eine Sache fehlt mir noch. Der STATE ist nicht gesetzt.
Kann mir jemand bitte einen Tipp geben, wie ich den Kontaktstatus un den STATE bekomme?
Wenigstens das Keyword?

Viele Grüße, Tomte

mark79

Hallo,

schau dir mal MQTT2 an, das macht vieles einfacher. :)
Die MQTT Devices (Zigbee2mqtt, Tasmota etc.) werden automatisch, mit den passenden Readings angelegt:
https://wiki.fhem.de/wiki/MQTT2-Module_-_Praxisbeispiele

Was genau meinst du mit Kontaktstatus? Das stateFormat? Da reicht oft das auf "state" zu setzen.


Viele Grüße
Mark
Rock64 4GB mit Debian Strech, FHEM im LXC, Sonoff Switches/Touch, HM Thermostate, HMUART/Zigbee2MQTT@MapleCUN, ESP RGBWW Wifi Controller, ESP8266 Door Sensor/Briefkastenwächter, BT CSL Stick, BT iTags, Alexa, FireTV, RPi2 mit Kodi, Xiaomi Vacuum v1/Smarthome Komponenten

Tomte

Hallo Mark,

danke, dass sieht besser aus und ist einfacher.
Nur ist jetzt der state "online" und nicht der Status des Sensors.
Da muss ich wohl weiterbasten, um damit ein notify auszulösen.

Viele Grüße, Tomte

Tomte

Hallo,

jetzt habe ich noch einen Aqara Temperatursensor in Betrieb genommen.
Das Problem ist aber nun, das dieser Sensor mit an mein Fenstersensor-Device gehängt wurde, da die Message ebenfalls mit
zigbee2mqtt
beginnt:
mqttjs_ea4b908e:zigbee2mqtt/bridge/state:.* state
mqttjs_ea4b908e:zigbee2mqtt/0x00158d00025293f8:.* { json2nameValue($EVENT) }
mqttjs_ea4b908e:zigbee2mqtt/bridge/log:.* { json2nameValue($EVENT) }
mqttjs_ea4b908e:zigbee2mqtt/0x00158d000273a569:.* { json2nameValue($EVENT) }


Ein großes Problem wird es spätestens, wenn ich mehrere Fenstersensoren nutze!

Wie kann ich bitte die Sensoren anhand ihres "0x00158d*" trennen?

Viele Grüße, Tomte



mark79

Zitat von: Tomte am 30 November 2018, 23:12:40
Hallo,

jetzt habe ich noch einen Aqara Temperatursensor in Betrieb genommen.
Das Problem ist aber nun, das dieser Sensor mit an mein Fenstersensor-Device gehängt wurde, da die Message ebenfalls mit
zigbee2mqtt
beginnt:
mqttjs_ea4b908e:zigbee2mqtt/bridge/state:.* state
mqttjs_ea4b908e:zigbee2mqtt/0x00158d00025293f8:.* { json2nameValue($EVENT) }
mqttjs_ea4b908e:zigbee2mqtt/bridge/log:.* { json2nameValue($EVENT) }
mqttjs_ea4b908e:zigbee2mqtt/0x00158d000273a569:.* { json2nameValue($EVENT) }


Ein großes Problem wird es spätestens, wenn ich mehrere Fenstersensoren nutze!

Wie kann ich bitte die Sensoren anhand ihres "0x00158d*" trennen?

Viele Grüße, Tomte

Du musst noch ein bridgeRegexp setzen, damit spaltet das Modul die MQTT Devices auf und legt in Fhem einzelne Devices an.
z.B. so: attr MQTT2_mqtt2client zigbee2mqtt/([^:]*):.* "zigbee_$1"


Viele Grüße
Mark
Rock64 4GB mit Debian Strech, FHEM im LXC, Sonoff Switches/Touch, HM Thermostate, HMUART/Zigbee2MQTT@MapleCUN, ESP RGBWW Wifi Controller, ESP8266 Door Sensor/Briefkastenwächter, BT CSL Stick, BT iTags, Alexa, FireTV, RPi2 mit Kodi, Xiaomi Vacuum v1/Smarthome Komponenten

Tomte

#7
Hallo Mark,

danke, das klingt gut.
Bei meine Aqara-Device kann ich das aber nicht machen:
attr  aqara_Dachfenster bridgeRegexp zigbee2mqtt/([^:]*):.* "zigbee_$1"
funktioniert nicht.
Muss ich jetzt ein zusätzlich noch einen MQTT2_CLIENT anlegen?
Bisher habe ich nur die MQTT Module wie im Bild gezeigt.
Was muss ich noch bitte tun?

Viele Grüße, Tomte

PS: Für alle meine MQTT2_Devices bekomme ich:
aqara_Dachfenster: unknown attribute bridgeRegexp. Type 'attr aqara_Dachfenster ?' for a detailed list.

mark79

Hallo Tomte,

du musst das bridgeRegexp am MQTT2_Client setzen, also das Fhem Device für den mosquitto-server. Nicht an einem Zigbee Device.
Wenn du das gemacht hast, löscht du am besten noch mal die alten Zigbee Devices und startest Fhem mal neu.

Viele Grüße
Mark
Rock64 4GB mit Debian Strech, FHEM im LXC, Sonoff Switches/Touch, HM Thermostate, HMUART/Zigbee2MQTT@MapleCUN, ESP RGBWW Wifi Controller, ESP8266 Door Sensor/Briefkastenwächter, BT CSL Stick, BT iTags, Alexa, FireTV, RPi2 mit Kodi, Xiaomi Vacuum v1/Smarthome Komponenten

Tomte

Hallo Mark,

ich hatte Mosquitto deinstalliert, so hatte ich Dich verstanden, und MQTT2_Server installiert.
Das war dann wohl falsch. Installiere jetzt mal eben Mosquitto neu, dann sehe ich weiter.

Vielen Dank!

VG, Tomte

Tomte

Also jetzt bin ich komplett verwirrt:

unter https://wiki.fhem.de/wiki/MQTT2-Module_-_Praxisbeispiele wird zunächst kein Mosquitto-Server benutzt.

Ich bin dem Abschnitt von Zigbee bis zu vereinzeln gefolgt.
Ich habe jetzt das MQTT2_zigbee_pi Device - mehr aber auch nicht?!?

Also doch lieber Mosquitto?

Viele Grüße, Tomte

mark79

Moin,

im Wiki wird das das mit dem MQTT2_Server erklärt, das ist ein mosuqitto (Server) Fhem Modul. > define MQTT2_FHEM_Server MQTT2_SERVER 1883 global
Wenn du den benutzt, brauchst du kein mosquitto-server, also z.B. als Debian Paket zu installieren und auch keinen MQTT2_Client.

Dann gibt es noch MQTT2_Client, den man verwendet, wenn man mosquitto-server als Debian Paket installiert hat.

Wegen dem bridgeregex, ich habe davor Blödsinn erzählt.. Du setzt das bridgeregex nicht am MQTT2_Server/Client, sondern am erstellen Sammeldevice (MQTT2_DEVICE). Also das Device, wo er angenommen zwei Xiaomi Sensoren zusammen in ein Device packt.


Viele Grüße
Mark
Rock64 4GB mit Debian Strech, FHEM im LXC, Sonoff Switches/Touch, HM Thermostate, HMUART/Zigbee2MQTT@MapleCUN, ESP RGBWW Wifi Controller, ESP8266 Door Sensor/Briefkastenwächter, BT CSL Stick, BT iTags, Alexa, FireTV, RPi2 mit Kodi, Xiaomi Vacuum v1/Smarthome Komponenten

Tomte

#12
Hallo Mark,

Danke für Deine Antwort.

Keine Ahnung warum, aber das geht nicht:

MQTT2_zigbee_pi: unknown attribute bridgeRegexp. Type 'attr MQTT2_zigbee_pi ?' for a detailed list.

MQTT2_zigbee_pi ist definitiv vom Typ MQTT2_DEVICE

Im thread https://forum.fhem.de/index.php?topic=91394.135 lese ich
ZitatWenn man per bridge mehrere Geraete (z.Bsp. zigbee) anbindet, dann muss man in beiden Faellen (MQTT2_CLIENT und SERVER) auf dem als bridge angelegten MQTT2_DEVICE das bridgeRegexp Attribut setzen, damit die einzelnen zigbee Geraete automatisch angelegt werden.

Wie lege ich eine Bridge an? Verstehst Du das?


Viele Grüße, Tomte

Beta-User

Moin.

Ist dein FHEM aktuell?

Wenn ja, bitte mal ein list -r von dem Device (MQTT2_zigbee_pi) liefern.

Es gab gestern auch noch weitere Empfehlungen, wie die bridgeRegexp zu setzen ist (im läuft: zigbee2mqtt mit mqtt2-Thread); sollte auch schon der aktuellen CR zu entnehmen sein.
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

Tomte

Hallo,

ja, ich aktualisiere FHEM recht oft, habe schon gemerkt, dass sich gerade dieses Modul öfter mal zu ändern scheint.

Ich kenne mich mit list -r nicht aus, das device scheint öfter vorzukommen. Meinst Du das
define MQTT2_zigbee_pi MQTT2_DEVICE zigbee_pi
attr MQTT2_zigbee_pi IODev MQTT2_FHEM_Server
attr MQTT2_zigbee_pi readingList zigbee_pi:zigbee2mqtt/bridge/state:.* state\
zigbee_pi:zigbee2mqtt/0x00158d00025293f8:.* { json2nameValue($EVENT) }\
zigbee_pi:zigbee2mqtt/0x00158d000273a569:.* { json2nameValue($EVENT) }
attr MQTT2_zigbee_pi room MQTT2_DEVICE
attr MQTT2_zigbee_pi setList permit_join:true,false zigbee2mqtt/bridge/config/permit_join $EVTPART1\ remove:textField zigbee2mqtt/bridge/config/remove $EVTPART1\ log_level:debug,info,warn,error zigbee2mqtt/bridge/config/log_level $EVTPART1\ rename:textField zigbee2mqtt/bridge/config/rename  {"old":"$EVTPART1","new":"$EVTPART2"}\ network_map:raw,graphviz zigbee2mqtt/bridge/networkmap  $EVTPART1\ devicelist:noArg zigbee2mqtt/bridge/config/devices


Welche Thread meinst Du genau  (den hier: https://forum.fhem.de/index.php/topic,91394.0.html?) und was bedeutet CR?

Wenn MQTT2 so eine Baustelle ist, vielleicht sollte ich zurück zu MQTT?
Ich habe hier einen Stapel verschiedene Aqara-Sensoren und komme einfach nicht weiter ...

Viele Grüße, Tomte