Koenkk / zigbee-herdsman-converters

Collection of device converters to be used with zigbee-herdsman
MIT License
917 stars 3.04k forks source link

Device request Smart Siren Immax Neo 07504L #2470

Closed baotse closed 3 years ago

baotse commented 3 years ago

Hi,

I recently bought a siren and trying to put together an alarm system. The device seems to be related to WOOX r7051 Siren #1822. Somehow I can read out some metrics like battery status and linkquality using the external converter example light.js and TS0216 as template.

Unfortunately, there are no buttons on the unit to trigger messages (except pairing). What would be the usual procedure to obtain the necessary information to program the converter. Do I need a bridge and an sniffer for the rest of the information?

light.js

const fz = require('zigbee-herdsman-converters/converters/fromZigbee');
const tz = require('zigbee-herdsman-converters/converters/toZigbee');
const exposes = require('zigbee-herdsman-converters/lib/exposes');
const reporting = require('zigbee-herdsman-converters/lib/reporting');
const e = exposes.presets;
const ea = exposes.access;

const device = {
        zigbeeModel: ['TS0219'],
        model: 'TS0219',
        vendor: 'Immax',
        description: 'Sound and flash siren',
        fromZigbee: [fz.ts0216_siren, fz.battery],
        exposes: [e.battery(), exposes.binary('alarm', ea.STATE_SET, true, false),
            exposes.numeric('volume', ea.ALL).withValueMin(0).withValueMax(100).withDescription('Volume of siren')],
        toZigbee: [tz.ts0216_alarm, tz.ts0216_duration, tz.ts0216_volume],
        meta: {configureKey: 1},
        configure: async (device, coordinatorEndpoint, logger) => {
            const endpoint = device.getEndpoint(1);
            await reporting.bind(endpoint, coordinatorEndpoint, ['genPowerCfg']);
        },
};

module.exports = device;

database.db entry

{
  "id": 2,
  "type": "Router",
  "ieeeAddr": "0x847127fffea82dd1",
  "nwkAddr": 37073,
  "manufId": 0,
  "manufName": "_TYZB01_b6eaxdlh",
  "powerSource": "Mains (3 phase)",
  "modelId": "TS0219",
  "epList": [
    1
  ],
  "endpoints": {
    "1": {
      "profId": 260,
      "epId": 1,
      "devId": 1027,
      "inClusterList": [
        0,
        1,
        3,
        4,
        5,
        1280,
        1282,
        61183
      ],
      "outClusterList": [
        3,
        25
      ],
      "clusters": {
        "genBasic": {
          "attributes": {
            "modelId": "TS0219",
            "manufacturerName": "_TYZB01_b6eaxdlh",
            "powerSource": 6,
            "zclVersion": 3,
            "appVersion": 80,
            "stackVersion": 2,
            "hwVersion": 2,
            "dateCode": "20190430"
          }
        },
        "genPowerCfg": {
          "attributes": {
            "batteryVoltage": 42,
            "batteryPercentageRemaining": 200
          }
        },
        "ssIasZone": {
          "attributes": {
            "zoneStatus": 16,
            "iasCieAddr": "0x00124b001938a9a9",
            "zoneState": 1
          }
        },
        "ssIasWd": {
          "attributes": {
            "1": 50,
            "2": 50,
            "3": 0,
            "maxDuration": 240
          }
        }
      },
      "binds": [

      ],
      "configuredReportings": [

      ],
      "meta": {

      }
    }
  },
  "appVersion": 80,
  "stackVersion": 2,
  "hwVersion": 2,
  "dateCode": "20190430",
  "zclVersion": 3,
  "interviewCompleted": true,
  "meta": {

  },
  "lastSeen": 1618166578557
}
Koenkk commented 3 years ago

Do I need a bridge and an sniffer for the rest of the information?

Yes to add any other features you need to sniff the traffic with the original gateway.

github-actions[bot] commented 3 years ago

This issue is stale because it has been open 30 days with no activity. Remove stale label or comment or this will be closed in 7 days

razmoket89 commented 1 year ago

Hi,

I recently bought a siren and trying to put together an alarm system. The device seems to be related to WOOX r7051 Siren #1822. Somehow I can read out some metrics like battery status and linkquality using the external converter example light.js and TS0216 as template.

Unfortunately, there are no buttons on the unit to trigger messages (except pairing). What would be the usual procedure to obtain the necessary information to program the converter. Do I need a bridge and an sniffer for the rest of the information?

light.js

const fz = require('zigbee-herdsman-converters/converters/fromZigbee');
const tz = require('zigbee-herdsman-converters/converters/toZigbee');
const exposes = require('zigbee-herdsman-converters/lib/exposes');
const reporting = require('zigbee-herdsman-converters/lib/reporting');
const e = exposes.presets;
const ea = exposes.access;

const device = {
        zigbeeModel: ['TS0219'],
        model: 'TS0219',
        vendor: 'Immax',
        description: 'Sound and flash siren',
        fromZigbee: [fz.ts0216_siren, fz.battery],
        exposes: [e.battery(), exposes.binary('alarm', ea.STATE_SET, true, false),
            exposes.numeric('volume', ea.ALL).withValueMin(0).withValueMax(100).withDescription('Volume of siren')],
        toZigbee: [tz.ts0216_alarm, tz.ts0216_duration, tz.ts0216_volume],
        meta: {configureKey: 1},
        configure: async (device, coordinatorEndpoint, logger) => {
            const endpoint = device.getEndpoint(1);
            await reporting.bind(endpoint, coordinatorEndpoint, ['genPowerCfg']);
        },
};

module.exports = device;

database.db entry

{
  "id": 2,
  "type": "Router",
  "ieeeAddr": "0x847127fffea82dd1",
  "nwkAddr": 37073,
  "manufId": 0,
  "manufName": "_TYZB01_b6eaxdlh",
  "powerSource": "Mains (3 phase)",
  "modelId": "TS0219",
  "epList": [
    1
  ],
  "endpoints": {
    "1": {
      "profId": 260,
      "epId": 1,
      "devId": 1027,
      "inClusterList": [
        0,
        1,
        3,
        4,
        5,
        1280,
        1282,
        61183
      ],
      "outClusterList": [
        3,
        25
      ],
      "clusters": {
        "genBasic": {
          "attributes": {
            "modelId": "TS0219",
            "manufacturerName": "_TYZB01_b6eaxdlh",
            "powerSource": 6,
            "zclVersion": 3,
            "appVersion": 80,
            "stackVersion": 2,
            "hwVersion": 2,
            "dateCode": "20190430"
          }
        },
        "genPowerCfg": {
          "attributes": {
            "batteryVoltage": 42,
            "batteryPercentageRemaining": 200
          }
        },
        "ssIasZone": {
          "attributes": {
            "zoneStatus": 16,
            "iasCieAddr": "0x00124b001938a9a9",
            "zoneState": 1
          }
        },
        "ssIasWd": {
          "attributes": {
            "1": 50,
            "2": 50,
            "3": 0,
            "maxDuration": 240
          }
        }
      },
      "binds": [

      ],
      "configuredReportings": [

      ],
      "meta": {

      }
    }
  },
  "appVersion": 80,
  "stackVersion": 2,
  "hwVersion": 2,
  "dateCode": "20190430",
  "zclVersion": 3,
  "interviewCompleted": true,
  "meta": {

  },
  "lastSeen": 1618166578557
}

Hey mate, I'm considering buying it. Did you get it to work with Z2M ?

microsoluce commented 1 year ago

Hello, I recently buy this siren (https://zigbee.blakadder.com/Immax_07504L.html), but it's still not supported in zigbee2mqtt. Any chance to get it work soon ? Thanks ! Regards

haade-administrator commented 1 year ago

immax cz send me Uart table

DP ID DP Name Identifier Data Transfer Type Data Type Properties
4 alert alert_state Send and Report Bool  
5 Alarm Volume alarm_volume Send and Report Enum Enum Value: mute, low, middle, high
6 Power supply state supply_state Report Only Bool  
13 Alarm Switch alarm_switch Send and Report Bool  
14 Battery level battery_percentage Report Only Value Value Range: 0-500, Pitch: 1, Scale: 0, Unit: %
17 Brightness Adjustment alarm_bright Send and Report Enum Enum Value: dark, weak, middle, strong
18 alarm time alarm_time2 Send and Report Value Value Range: 0-180, Pitch: 1, Scale: 0, Unit:

my js:

fingerprint: [
    {
        modelID: 'TS0219',
        manufacturerName: '_TYZB01_b6eaxdlh',
    },
],
model: '07504L',
vendor: 'Immax',
description: 'Smart siren',
    fromZigbee: [fz.battery, fz.ts0216_siren, fz.power_source],
    toZigbee: [tz.ts0216_alarm, tz.ts0216_duration, tz.ts0216_volume],
    exposes: [
        e.battery(), 
        e.battery_voltage(), 
        exposes.binary('alarm', ea.STATE, true, false), 
        exposes.enum('volume', 
        ea.STATE_SET, ['mute', 'low', 'middle', 'high']).withDescription('Alarm Volume')
        ],
    meta: {disableDefaultResponse: true,},
    configure: async (device, coordinatorEndpoint, logger) => {
        const endpoint = device.getEndpoint(1);
        const bindClusters = ['genPowerCfg'];
        await reporting.bind(endpoint, coordinatorEndpoint, bindClusters);
        await reporting.batteryVoltage(endpoint);
        await reporting.batteryPercentageRemaining(endpoint);
        if (device.powerSource == 'Mains (3 phase)') {
        device.powerSource = 'Mains (single phase)';
        } else if (device.powerSource == 'Emergency mains and transfer switch') {
        device.powerSource = 'Battery';
        }
        device.save();
    },

immax

any help please

gustonator commented 1 year ago

Hi. Any progress on this? I bought the siren, and found out too late that it's not supported :/