Skip to content

Aqara Vibration sensor (DJT11LM)

Sergey edited this page Feb 2, 2025 · 2 revisions

For Xiaomi Gateway 2

using var gw2 = new XiaomiGateway2();
{
    gw2.OnAqaraVirationSensor += (_, device) =>
    {
        if(device.Sid == "<specific sid here>")
        {
            device.OnVibration += (_,__) => Console.WriteLine($"Vibration detected {device.LastStatus}");
            device.OnTilt += (_,__) => Console.WriteLine($"Tilt detected {device.LastStatus}");
            device.OnFreeFall += (_,__) => Console.WriteLine($"Free fall detected {device.LastStatus}");
            // This event usually happens a few seconds after "tilt" event has been raised
            device.OnFinalTiltAngle += (_,__) => Console.WriteLine($"Final tilt angle {device.FinalTiltAngle}");
            // What is "bed activity" you can read here --> https://github.com/Danielhiversen/PyXiaomiGateway/issues/86#issuecomment-418135852
            device.OnBedActivity += (_,__) => Console.WriteLine($"Bed activity {device.BedActivity}");
            // This event usually happens a few seconds after "free fall" detected
            device.OnCoordinations += (_,__) => Console.WriteLine($"Coordinations {device.Coordinations.X},{device.Coordinations.Y},{device.Coordinations.Z}");
        }
    };
}

For Xiaomi Gateway 3

using var gw3 = new XiaomiGateway3("<gateway ip>", "<gateway token>");
{
    gw3.OnDeviceDiscovered += x =>
    {
        if(x is AqaraVirationSensor device && device.Did == "<specific did here>")
        {
            Console.WriteLine(device.ToString());

            device.OnVibration += () => Console.WriteLine($"Vibration detected");
            device.OnTilt += () => Console.WriteLine($"Tilt detected");
            device.OnFreeFall += () => Console.WriteLine($"Free fall detected");
            // This event usually happens a few seconds after "tilt" event has been raised
            device.OnFinalTiltAngle += (oldValue) => Console.WriteLine($"Final tilt angle is {device.FinalTiltAngle}");
            // What is "bed activity" you can read here --> https://github.com/Danielhiversen/PyXiaomiGateway/issues/86#issuecomment-418135852
            device.OnBedActivity += (oldValue) => Console.WriteLine($"Bed activity is {device.BedActivity}");
            device.OnBatteryPercentChange += (oldBatteryValue) => Console.WriteLine($"Battery is {device.BatteryPercent}");
            device.OnChipTemperatureChange += (oldChipTemperatureValue) => Console.WriteLine($"Chip Temperature is {device.ChipTemperature}");
            device.OnVoltageChange += (oldVoltageValue) => Console.WriteLine($"Voltage is {device.Voltage}");
            device.OnLinkQualityChange += (oldLinkQualityValue) => Console.WriteLine($"Linq quality is {device.LinqQuality}");
            
            // set sensor "sensivity", same as in mihome app supported high/middle/low options
            device.SetSensivity(AqaraVirationSensor.SensivityState.High);
        }
    };

    gw3.DiscoverDevices();
}
Clone this wiki locally