[Modul] Zigbee2MQTT

Hallo Kai,

nachdem ich jetzt Zigbee2Mqtt auf v1.4.0 und die CC2531-Coordinator-FW auf 20190425 hochgezogen habe, kommen jetzt auch zuverlässig die Werte von zwei neuen Devices.

Zigbee Startlog mit Vibrationssensor und Rauchmelder:

Starting zigbee2mqtt version 1.4.0 (commit #18913a1)
Starting zigbee-shepherd
zigbee-shepherd started
Coordinator firmware version: '20190425'
Currently 17 devices are joined:
....
Vibration01 (0x00158d0002bxxxxx): DJT11LM - Xiaomi Aqara vibration sensor (EndDevice)
Rauchmelder01 (0x000d6f0011fxxxxx): HS1SA - HEIMAN Smoke detector (EndDevice)
...

Log DJT11LM - Xiaomi Aqara vibration sensor:

payload '{"linkquality":47,"angle":24,"angle_x":0,"angle_y":-2,"angle_z":88,"angle_x_absolute":90,"angle_y_absolute":92,"action":"vibration"}'
payload '{"linkquality":68,"angle":24,"angle_x":0,"angle_y":-2,"angle_z":88,"angle_x_absolute":90,"angle_y_absolute":92,"action":"drop"}'
payload '{"linkquality":68,"angle":24,"angle_x":0,"angle_y":-1,"angle_z":89,"angle_x_absolute":90,"angle_y_absolute":91}'

Log HS1SA - HEIMAN Smoke detector:

payload '{"battery":100,"linkquality":84,"smoke":true,"battery_low":false}'
payload '{"battery":100,"linkquality":84,"smoke":false,"battery_low":false}'

Könntest du die fehlenden Attribute bitte in dein Modul mit integrieren. Ansonsten läuft alles sehr stabil. Nochmals vielen Dank an dich.

Bin schon gespannt, wie MQTT in Symcon 5.2 aussehen wird. Wenn das dann ein vollwertiger Broker ist und deine Module für Tasmota, Shelly und Zigbee nativ eingebaut würden, wäre das eine klasse Sache.

Gruss
Bernd

Klar, baue ich noch ein.
Ich denke die Module werde ich weiterhin pflegen. Funktioniert doch super so! :slight_smile:

Kannst du mir die Werte vom Vibrationssensor noch erklären?

Grüße,
Kai

Im Store findest du im Beta Kanal eine Version 1.6, da sollten die Variablen angelegt werden.
Kannst du mir die Übersetzung für die Variablen vom Vibrationssensor geben?

Grüße,
Kai

Hallo Kai,

die muss erst selber noch erforschen, vor allem ob die auch nützlich sind. Xiamoi hat ja auch noch so eine Zauberwürfel, da werden auch die x,y,r-Werte und x,y,z-Beschleunigungen für alle möglichen Dinge verwendet. Ob das sinnvoll ist, muss man sich erst mal anschauen. Wenn ich mehr Infos habe, gebe ich hier Bescheid.

Gruss
Bernd

Hallo Kai,

folgendes habe ich zu dem Xiaomi DJT11LM gefunden. Basis scheint der Beschleunigungssensor ADXL362 zu sein, den Funk macht ein JN5169 von NXP [Info-Link].

Bezüglich der Attribute war die beste Aussage auf github bei Koenkk zu finden. [Link]
Kannst du noch bei dir neben Angle_X_Absolute auch noch AngleYAbsolute aufnehmen, das scheint zu fehlen.

Zu den vielfältigen Anwendungsfällen die im Internet genannt wurden, war ich sichtlich erstaunt:

[ul]
[li]Fenstereinbruch (Vibrationserkennung der Scheibe)
[/li][li]Waschmaschine (neben Stromüberwachung zusätzliche Kontrolle, ob noch etwas aktiv ist)
[/li][li]Holztreppe (Tritterkennung, wenn z.B. Licht eingeschaltet werden soll, aber Piri nicht möglich ist)
[/li][li]Schubladen, Tresore und anderes (alles was man wissen möchte, wenn es im Heim angerührt, bewegt wurde)
[/li][li]Aktivitäten bei Bürostuhl oder auch Bett (das genannte Beispiel im Link aus Russland ist amüsant)
[/li][/ul]
Gruss
Bernd

Hallo Bernd,
ewenn ich das so sehe, müsste der x,y,z Bewegung übertragen, oder ?
Wenn es so ist, sollten alle Werte mit ins Modul.

Hallo Thomas,

das kann ich so noch nicht sagen. Erst mit den Werten und dem Sensor „spielen“ zu können, zeigt einem was man wirklich braucht. Darum wäre es schon gut, alle Werte zu haben die der Sensor bereit stellt.

Das ganze zeigt aber auch ein aufkommendes Problem. Xiaomi hat sicher hinter der Auswertung der x,y,z Positions/Beschleunigungswerte eine „mächtige KI“ hängen. Da werden wir mit unseren lokalen Systemen irgend wann nicht mehr mit kommen :frowning:

Gruss
Bernd

Gibt es hier jemanden, der Erfahrung mit dem Xiaomi Magic Cube hat?
Ich habe diesen mal gepaired und bekomme leider nicht alle Variablen:

payload '{"linkquality":63,"from_side":2,"to_side":0,"side":0,"angle":119.59,"battery":91,"voltage":2985,"action":"rotate_right"}'

from_side to_side, angle fehlen aktuell bei mir.

Hier gibt es mehr Infos: Xiaomi Aqara Magic Cube Smart Home Controller: Alles per Würfel steuern

War schon drin, aber ich hatte wohl einen Tippfehler. Gefixt in Version 1.7.

Ich habe die Variablen hinzugefügt.

Version 1.7 ist im im Sotre als Beta online.

Grüße,
Kai

ACHTUNG
Bei der nächsten Beta Version (Version 2.0) werden sich die Idents der Variablen leider nochmal ändern.
Das heißt, gespeicherte Werte (Archiv) werden in den neuen Variablen nicht vorhanden sein, außer ihr migriert diese Werte.

Das passiert dadurch, dass ich im Hintergrund das Modul nochmal umgebaut habe.
Jetzt muss ich die neuen Variablen nicht mehr im Code fest hinterlegen, sondern kann diese in einer JSON Datei hinterlegen.
Evtl. kann man das ja so bauen, dass man selbst Variablen in einem Konfigurator hinzufügen kann, mal schauen.

Die JSON Datei wird so aussehen:


{
  "temperature": {
    "name": "Temperature",
    "type": 2,
    "profile": "~Temperature",
    "action": 0
  },
  "linkquality": {
    "name": "Linkquality",
    "type": 1,
    "profile": "",
    "action": 0
  },
  "humidity": {
    "name": "Humidity",
    "type": 2,
    "profile": "",
    "action": 0
  },
  "pressure": {
    "name": "Pressure",
    "type": 2,
    "profile": "",
    "action": 0
  },
  "battery": {
    "name": "Battery",
    "type": 2,
    "profile": "",
    "action": 0
  },
  "voltage": {
    "name": "Voltage",
    "type": 2,
    "profile": "",
    "action": 0
  },
  "action": {
    "name": "Action",
    "type": 3,
    "profile": "",
    "action": 0
  },
  "click": {
    "name": "Click",
    "type": 3,
    "profile": "",
    "action": 0
  },
  "brightness": {
    "name": "Brightness",
    "type": 2,
    "profile": "~Intensity.255",
    "action": 1
  },
  "occupancy": {
    "name": "Occupancy",
    "type": 0,
    "profile": "",
    "action": 0
  },
  "illuminance": {
    "name": "Illuminance",
    "type": 1,
    "profile": "",
    "action": 0
  },
  "water_leak": {
    "name": "Water Leak",
    "type": 0,
    "profile": "",
    "action": 0
  },
  "contact": {
    "name": "Contact",
    "type": 0,
    "profile": "",
    "action": 0
  },
  "smoke": {
    "name": "Smoke",
    "type": 0,
    "profile": "",
    "action": 0
  },
  "battery_low": {
    "name": "Battery Low",
    "type": 0,
    "profile": "",
    "action": 0
  },
  "angle": {
    "name": "Angle",
    "type": 1,
    "profile": "",
    "action": 0
  },
  "angle_x": {
    "name": "Angle X",
    "type": 1,
    "profile": "",
    "action": 0
  },
  "angle_y": {
    "name": "Angle Y",
    "type": 1,
    "profile": "",
    "action": 0
  },
  "angle_x_absolute": {
    "name": "Angle X Absolute",
    "type": 1,
    "profile": "",
    "action": 0
  },
  "angle_y_absolute": {
    "name": "Angle Y Absolute",
    "type": 1,
    "profile": "",
    "action": 0
  },
  "angle_z": {
    "name": "Angle Z",
    "type": 1,
    "profile": "",
    "action": 0
  },
  "from_side": {
    "name": "From Side",
    "type": 1,
    "profile": "",
    "action": 0
  },
  "to_side": {
    "name": "To Side",
    "type": 1,
    "profile": "",
    "action": 0
  },
  "state": {
    "name": "State",
    "type": 0,
    "profile": "~Switch",
    "action": 1,
    "boolean": {
      "true": "ON",
      "false": "OFF"
    }
  }
}

Zur Erklärung:
Name: Ist der Name der Variable
Type: Typ der Variable (0 Boolean, 1 Integer, 2 Float, 3 String)
Profile: Profil der Variable
Action: 1 Variable hat eine Aktion, 0 Variable hat keine Aktion
Boolean : true Mapping von ON auf True und false Mapping von OFF auf false.

Somit können auch mal schnell selbst Variablen ergänzt werden, die nur lesend sind. Variablen mit Aktionen müssen immer noch von mir hinzugefügt werden, da hierfür im Hintergrund noch eine Funktion geschrieben werden muss.

Variablen die selbst in der JSON Datei eingetragen werden, werden bei einem Modul Update überschrieben, von daher wäre es dann ratsam direkt hier zu posten, welche Variable hinzugefügt wurde oder einen Pull Request auf Github zu machen.

Wir können auch zusammen noch darüber diskutieren, ob diese Änderung sinnvoll ist, ich muss es nicht so umsetzen. Also wenn noch jemand Einwände hat, dann kann er diese gerne äußern! :slight_smile:

Grüße,
Kai

Hallo Kai,

die Idee finde ich gut. Damit hätte ich mein gestriges Beispiel mit Angle_Y_Absolute eventuell sogar selber lösen könne (die Variable ist jetzt übrigens mit der 1.7b da, danke). Es muessten nur alle die etwas finden und dies selbst ergänzen, dir eine Rückmeldung geben, damit es zentral für alle im Modul landet.

Ich finde es auch gut, dass du eine solche Änderung vorher ankündigst. Bis wann wird den mit der 2.0b zu rechnen sein?

Gruss
Bernd

Hallo Kai,

kannst du bitte noch in dein Modul das Setzen der Sensitivity für den Xiaomi-Vibrationssensor einbauen.

Link dazu bei Koenkk

[b]Xiaomi Aqara vibration sensor (DJT11LM)[/b]

Set the sensitivity of the sensor. NOTE: As this device is sleeping most of the time, 
right before sending this command press the button on the device.

{
  "sensitivity": "medium"     // Possible values: 'low', 'medium', 'high'
}

Gruss
Bernd

Bevor ich die neue Version mit den Änderungen freigebe, werde ich das hier bekannt geben. Im Stable Kanal wird die alte Version dann natürlich erstmal bestehen bleiben.

Es gibt eine neue Beta Version. (Version 1.8).
Da solltest du nun Sensitivity setzen können. Die Variable wird erst angelegt, wenn der Wert einmal vom Modul empfangen wird.
Setzen kannst du den Wert auch per Funktion:

Z2M_setSensitivity($InstanceID, $Value)

Value muss ein Integer von 1-3 sein.
1: Medium
2: Low
3: High

Grüße,
Kai

Hai Kai,
der Aqara Motion Sensor, der mit dem Fuß, scheint noch nicht drin zu sein:

{„illuminance“:35,„linkquality“:0,„occupancy“:false}

Ralf

Sollte eigentlich drin sein.
Schick mal bitte ein Debug aus der Instanz.

Grüße,
Kai

Gesendet von iPhone mit Tapatalk

Ist drin, zumindest bei der 1.7b, werde aber gleich auf 1.8b hochziehen.

Gruss
Bernd

AqaraPiri.png

Hi,

ich hoffe Du meinst vom MQTT-Server oder?


TXT: 22.05.2019, 20:57:05 |            BUFFER IN | 0T<NUL><RS>zigbee2mqtt/0x00158d000319bda2{"illuminance":52,"linkquality":23,"occupancy":true}
TXT: 22.05.2019, 20:57:05 |      MQTT:RX:PUBLISH | Topic: zigbee2mqtt/0x00158d000319bda2, Payload: {"illuminance":52,"linkquality":23,"occupancy":true}

angelegt wird Device aber nur mit Payload als String.

Ralf

Nutzt du mein Modul überhaupt? :smiley:
Oder nutzt du nur das MQTT Device Modul von Symcon?

Grüße,
Kai

Gesendet von iPhone mit Tapatalk

Hi,
ja ich benutze es. Ich hatte aber in einer Woche wieder vergessen wie ich es schon gemacht hatte:-) Der 1. Sensor ist wieder drin.

Jetzt frage ich aber mal nach. Ich lege manuell eine neue IPS-Z2MDevice an und trage dann den Topic ein oder geht es besser?

Sorry Ralf mit 5 Wochen noch ein IPS-Baby

Im Moment legst du es noch manuell an.
Mal schauen ob es noch eine bessere Lösung gibt.

Grüße,
Kai

Gesendet von iPhone mit Tapatalk