Bewegungsmelder

Hi Homerfan, hast du die Sensoren schon erhalten? ich hab sie selbst und bin ehrlich gesagt, im Moment etwas unglücklich damit. ZHA unterstützt sie nicht wirklich, Batteriestatus leer, es wird gerade mal die laszone erkannt, von Helligkeit ganz zu schweigen. Es wird wohl auf die Erstellung eines Quirks herauslaufen. Leider habe ich davon überhaupt keine Ahnung. Würdest du deine Erfahrungen mit mir teilen?

1 „Gefällt mir“

Hi, leider ist es bei mir das gleiche mit den Sensoren. Habe mir nun doch noch ein Tyja Gateway bestellt, damit sie ich dann auch die Sensoren mit einbinden können, oder?

Wird bei mir wohl auch so kommen. Außer man wartet und hofft, dass jemand einen Quirks bastelt. Hast du ein spezielles Gateway ins Auge gefasst?

Hab nur dieses hier genommen, da es sowohl Zigbee als auch Wlan hat (hoffe ich zumindest).
TUYA ZigBee 3.0 WiFi Mini-Smart Gateway (bei Ebay)

https://www.ebay.de/itm/385168463073?var=653046580807

1 „Gefällt mir“

Ich habe mir ein paar von den Dingern besorgt. [€ 9,19 39%OFF | Tuya 2 in 1 Zigbee Mini Pir-bewegungsmelder + Helle Lux Licht Passive Infrarot Sicherheit Einbrecher Alarm Sensor Tuya 2 in 1 Zigbee Mini Pir-bewegungsmelder + Helle Lux Licht Passive Infrarot Sicherheit Einbrecher Alarm Sensor - AliExpress]

Funktionieren ganz gut. Habe sie aber nicht mit ZHA zum laufen bekommen. Betreibe Sie über Tyua.

Wie meinst Du das mit Tuya? Du meinst mit einem Gateway und dann per Lokal Tuya eingebunden, oder?

Habe einen Zigbee Gateway von Lidl den ich via Tuya laufen habe.

Ich benutze einen dummen “Mini bewegungsmelder” in der Decke mit einem shelly dran. Das Signal löst dann das einschalten des Dimmers hinten Schalter aus. So hat man eine klare Trennung zwischen “was passiert beim drücken des Schalters” und was bei Bewegung (zB Bewegung nachts = Licht an 5% Helligkeit)
https://amzn.eu/d/hwWarMn
Nachteil: Das Relais des Sensors macht ein Klick-geräusch

Im Keller habe ich einfach zwei von denen genommen (günstig, aber keine lux Erkennung).

Ursprünglich war geplant den Shelly 2.0 hinter dem Schalter auf dem zweiten Eingang zu triggern. Der Eingang ist aber sehr empfindlich und die Induktion reicht schon zum auslösen. Ein Widerstand hat das Problem nur bedingt gelöst.

Grüße

Ich habe bisher einen im Keller im Einsatz. Ich habe ein wenig mit der Ausrichtung “gespielt” und dann ein Halter gerdruckt. Nun "schielt er etwas nach unten. Das funktioniert für mich sehr schnell und gut.
Ich mach die Tür auf und das Licht ist an. Entfernung ca. 2,5m.

Es gibt, wie oben schon einmal erwähnt 2 Versionen. Den Alten und den neuen P1, den ich habe. Beim P1 kann man die “Erfassungsfrequenz” per Software (Z2M) einstellen. Allerdings soll das etwas tricky sein mit immerwieder Knopf drücken um ihn aktiv zu halten für die Umstellung. Ich bin mit der Standardeinstellung (30s) zufrieden und hab mir das auch erspart.
Bei dem Alten kann man etwas umlöten, um die “Erfassungsfrequenz” deutlich zu verkürzen, was sich aber logischerweise auch auf die Batterielebensdauer auswirkt.
Aber da ich auch erst kurz dabei bin, habe ich mich dann direkt für den Neuen entschieden, um mir die Bastelei zu ersparen. Der Preisunterschied war nicht sonderlich groß. Allerdings hab ich die neuen bei Ali noch nicht gefunden.

Habe jetzt einen passenden Quirks gefunden Sensor Quirks. Habe jetzt einen Illuminance Sensor und einen Sensor Occupancy. Der Batteriestatus wird auch angezeigt. Jetzt muss ich ihn nur noch irgendwie in eine Automatisierung einbinden.

Hier ist die passende Blueprint Click. Habe die vom User Kytos genommen. Damit funktioniert es prima.

1 „Gefällt mir“

Hallo Zusammen,

Es gibt eine Möglichkeit diese Dinger unter ZHA zum Laufen zu bringen. Scheint mir zwar friemelig zu sein und am Ende bekommt man nicht alle Konfigurationsmöglichkeiten …

Gruß georgy_boy

Hallo zusammen,
ich benutze die Aqara P1 Bewegungsmelder mit ZHA.
Bisher laufen diese ohne Probleme sowohl als Motion und Illumination Melder.

https://www.amazon.de/Aqara-Bewegungsmelder-Aktualisierte-Einstellbares-Erkennungs-Zeitlimit/dp/B0B9XZ1D51/ref=sr_1_1?__mk_de_DE=ÅMÅŽÕÑ&crid=36YXC3PBHZRAQ&keywords=aqara+p1&qid=1682279224&sprefix=aqara+p%2Caps%2C127&sr=8-1

Hallo Zusammen,
kann es sein, dass es Bewegungsmelder und Bewegungsmelder gibt, also solche mit verschiedenen Eigenschaften? Bei mir habe ich diese hier im Einsatz:
snip_20230424114820

Link zu aliexpress …

Sie laufern über den SonOff Stik, der mit ZHA eingebunden ist, also ohne Tuya gateway. Das funktioniert in dem man in der Konfiguration eine Anpassung einrichtet, wie hier beschrieben:

https://github.com/zigpy/zha-device-handlers/issues/1599

Nach einigem Hin- und Her erhielt ich folgendes Ergebnis:

Frage: Kann es sein, dass die Melder eigendlich mehr liefern können? Sieht es beim Betrieb über einen Tuya gateway vielleicht so aus? Man sieht hier einen zusätzlichen Sensor “Belegung”

Vielen Dank für Eure Zeit
georgy_boy

Hallo,
ich kann das Verhalten der Aqara P1 Bewegunsmelder erläutern.
Die Sensoren iaszone und occupancy sind beide für Bewegunserkennung zuständig.

Der iaszone Sensor kann durch den Parameter detection_interval parametirert werden bzw. ist im Stadard 30 Sekunden, danach wird dieser Sensor wieder zurück gesetzt.
Der occupancy Sensor unterscheidet sich nur durch die dauer des Zurücksetzungs Intervalls.

Also beide Sensoren erkennen die Bewegung, mit dem Unterschied das der iaszone schneller wieder in der Lage ist Bewegung zu erkennen.

Vielen Dank, OThon10, das ist ja mal eine aufschlussreiche Erläuterung. Jetzt würde mich noch brennend interessieren:

  • ob für iaszone und occupancy zwei tatsächliche Hardwaresensoren realisiert sind oder ob sie “elektronisch” gebildet werden und …

  • ob der o.g. Bewegungsmelder ( Link zu aliexpress … ) tatsächlich nur den iaszone Sensor ausgeben kann.

Gruß georgy_boy

… noch eine Ergänzung. Ich habe mit dem Begriff “occupancy” in diesem thread nochmal nachgesucht. Dort gibt es eine Codevariante für repacement der die Zeile “TuyaOccupancySensing,” enthält. Die habe ich mal in die Datei “/config/custom_zha_quirks/ts0601-pirmotion.py” eingefügt. Dadurch wird nun unter Sensoren die “Occupancy” angezeigt, bleibt aber auf Abwesend stehen. Hier nochmal den completten Code unter “replacement”:

    replacement = {
        ENDPOINTS: {
            1: {
                PROFILE_ID: zha.PROFILE_ID,
                DEVICE_TYPE: zha.DeviceType.IAS_ZONE,
                INPUT_CLUSTERS: [
                    Basic.cluster_id,
                    TuyaPowerConfigurationCluster,
                    PirMotionManufCluster,
                    MotionSensorCluster,
                    TuyaOccupancySensing,
                    TuyaIlluminanceMeasurement,
                ],
                OUTPUT_CLUSTERS: [
                    Time.cluster_id,
                    Ota.cluster_id,
                ],
            }
        }
    }

grafik

… wenn man hier nachliest erfährt man, dass dieser Bewegungsmelder neben der Illuminace auch die “Belegung” ausgibt:
https://github.com/Koenkk/zigbee2mqtt/issues/12364#issuecomment-1116990428

Hi.
Kannst du mir bitte dein quirks file zukommen lassen.
Bekomme diesen sensor einfach nicht richtig zum laufen.
Danke

Hi PeeWee,
gerne, in der configuration.yaml muss man folgendes ergänzen (bei mir hat es erst genau mit dieser Variante funktioniert. Mit : “custom_quirks_path: /config/zha_quirks/:” hat es erst mal nicht funktioniert):

zha:
  custom_quirks_path: /config/custom_zha_quirks/

hier die quirks, abgespeichert in der Datei: /config/custom_zha_quirks/ts0601-pirmotion.py

"""BlitzWolf IS-3/Tuya motion rechargeable occupancy sensor."""

import math
from typing import Dict

from zigpy.profiles import zha
from zigpy.quirks import CustomDevice
import zigpy.types as t
from zigpy.zcl.clusters.general import Basic, Ota, Time
from zigpy.zcl.clusters.measurement import IlluminanceMeasurement, OccupancySensing
from zigpy.zcl.clusters.security import IasZone

from zhaquirks.const import (
    DEVICE_TYPE,
    ENDPOINTS,
    INPUT_CLUSTERS,
    MODELS_INFO,
    OUTPUT_CLUSTERS,
    PROFILE_ID,
    ZONE_TYPE,
)
from zhaquirks.tuya import TuyaLocalCluster
from zhaquirks.tuya.mcu import (
    DPToAttributeMapping,
    TuyaMCUCluster,
    TuyaPowerConfigurationCluster,
)

class TuyaOccupancySensing(OccupancySensing, TuyaLocalCluster):
    """Tuya local OccupancySensing cluster."""

class TuyaIlluminanceMeasurement(IlluminanceMeasurement, TuyaLocalCluster):
    """Tuya local IlluminanceMeasurement cluster."""

class SensitivityLevel(t.enum8):
    """Sensitivity level enum."""

    LOW = 0x00
    MEDIUM = 0x01
    HIGH = 0x02


class OnTimeValues(t.enum8):
    """Sensitivity level enum."""

    _10_SEC = 0x00
    _30_SEC = 0x01
    _60_SEC = 0x02
    _120_SEC = 0x03

class MotionSensorCluster(IasZone, TuyaLocalCluster):
    """Tuya Motion_Sensor Sensor."""
    
    _CONSTANT_ATTRIBUTES = {ZONE_TYPE: IasZone.ZoneType.Motion_Sensor}

class PirMotionManufCluster(TuyaMCUCluster):
    """Neo manufacturer cluster."""

    attributes = TuyaMCUCluster.attributes.copy()
    attributes.update({0xEF09: ("sensitivity_level", SensitivityLevel)})
    attributes.update({0xEF0A: ("keep_time", OnTimeValues)})

    dp_to_attribute: Dict[int, DPToAttributeMapping] = {
        1: DPToAttributeMapping(
            MotionSensorCluster.ep_attribute,
            "zone_status",
            converter=lambda x: IasZone.ZoneStatus.Alarm_1 if not x else 0,
        ),
        4: DPToAttributeMapping(
            TuyaPowerConfigurationCluster.ep_attribute,
            "battery_percentage_remaining",
            # dp_type=TuyaDPType.VALUE,
        ),
        9: DPToAttributeMapping(
            TuyaMCUCluster.ep_attribute,
            "sensitivity_level",
            # dp_type=TuyaDPType.ENUM,
            converter=lambda x: SensitivityLevel(x),
        ),
        10: DPToAttributeMapping(
            TuyaMCUCluster.ep_attribute,
            "keep_time",
            # dp_type=TuyaDPType.ENUM,
            converter=lambda x: OnTimeValues(x),
        ),
        12: DPToAttributeMapping(
            TuyaIlluminanceMeasurement.ep_attribute,
            "measured_value",
            # dp_type=TuyaDPType.VALUE,
            converter=lambda x: (10000 * math.log10(x) + 1 )
#            converter=lambda x: (10000 * math.log10(x) + 1 )/ 10,
#            converter=lambda x: (10000.0 * math.log10(x) + 1.0 if x != 0 else 0)
        ),
    }

    data_point_handlers = {
        1: "_dp_2_attr_update",
        4: "_dp_2_attr_update",
        9: "_dp_2_attr_update",
        10: "_dp_2_attr_update",
        12: "_dp_2_attr_update",
    }


class PirMotion(CustomDevice):
    """Tuya PIR motion sensor."""

    signature = {
        MODELS_INFO: [("_TZE200_3towulqd", "TS0601")],
        ENDPOINTS: {
           #  endpoints=1 profile=260 device_type=0x0402
           #  in_clusters=[0x0000, 0x0001, 0x0500],
           #  out_clusters=[0x000a, 0x0019]
            1: {
                PROFILE_ID: zha.PROFILE_ID,
                DEVICE_TYPE: zha.DeviceType.IAS_ZONE,
                INPUT_CLUSTERS: [
                    Basic.cluster_id,
                    TuyaPowerConfigurationCluster.cluster_id,
                    IasZone.cluster_id,
                ],
                OUTPUT_CLUSTERS: [
                    Time.cluster_id,
                    Ota.cluster_id,
                ],
            }
        },
    }
    replacement = {
        ENDPOINTS: {
            1: {
                PROFILE_ID: zha.PROFILE_ID,
                DEVICE_TYPE: zha.DeviceType.IAS_ZONE,
                INPUT_CLUSTERS: [
                    Basic.cluster_id,
                    TuyaPowerConfigurationCluster,
                    PirMotionManufCluster,
                    MotionSensorCluster,
                    TuyaOccupancySensing,
                    TuyaIlluminanceMeasurement,
                ],
                OUTPUT_CLUSTERS: [
                    Time.cluster_id,
                    Ota.cluster_id,
                ],
            }
        }
    }