Koenkk / zigbee2mqtt

Zigbee 🐝 to MQTT bridge 🌉, get rid of your proprietary Zigbee bridges 🔨
https://www.zigbee2mqtt.io
GNU General Public License v3.0
12.14k stars 1.68k forks source link

[New device support]: S3 003 Smart in wall plug #17403

Closed maxmib closed 1 year ago

maxmib commented 1 year ago

Link

no product page zigbee chip :EM3585 MODEL : s3 003

IMG_20230421_014621 IMG_20230421_014531

Database entry

{"id":25,"type":"Router","ieeeAddr":"0xedd9a514006f0d00","nwkAddr":43324,"manufId":4638,"manufName":"umeinfo","powerSource":"Unknown","modelId":"zigbee_transfer","epList":[1],"endpoints":{"1":{"profId":260,"epId":1,"devId":43690,"inClusterList":[0,3,4,5,6,8,768,3073],"outClusterList":[25,3073],"clusters":{"genBasic":{"attributes":{"modelId":"zigbee_transfer","manufacturerName":"umeinfo","powerSource":0,"zclVersion":2,"appVersion":1,"stackVersion":98,"hwVersion":133}},"haElectricalMeasurement":{"attributes":{}},"genOnOff":{"attributes":{"onOff":0}}},"binds":[{"cluster":6,"type":"endpoint","deviceIeeeAddress":"0x00124b000be958f7","endpointID":1},{"cluster":2820,"type":"endpoint","deviceIeeeAddress":"0x00124b000be958f7","endpointID":1}],"configuredReportings":[{"cluster":6,"attrId":0,"minRepIntval":0,"maxRepIntval":3600,"repChange":0}],"meta":{}}},"appVersion":1,"stackVersion":98,"hwVersion":133,"zclVersion":2,"interviewCompleted":true,"meta":{},"lastSeen":1682005880346,"defaultSendRequestWhen":"immediate"}

Comments

z2m pairs this plug and receives data ,but I don't know how to convert the data

data received

info  2023-04-20 23:44:29: Device 'S3' joined
info  2023-04-20 23:44:30: MQTT publish: topic 'zigbee2mqtt/bridge/event', payload '{"data":{"friendly_name":"S3","ieee_address":"0xedd9a514006f0d00"},"type":"device_joined"}'
info  2023-04-20 23:44:30: MQTT publish: topic 'zigbee2mqtt/bridge/log', payload '{"message":{"friendly_name":"S3"},"type":"device_connected"}'
info  2023-04-20 23:44:30: Starting interview of 'S3'
info  2023-04-20 23:44:30: MQTT publish: topic 'zigbee2mqtt/bridge/event', payload '{"data":{"friendly_name":"S3","ieee_address":"0xedd9a514006f0d00","status":"started"},"type":"device_interview"}'
info  2023-04-20 23:44:30: MQTT publish: topic 'zigbee2mqtt/bridge/log', payload '{"message":"interview_started","meta":{"friendly_name":"S3"},"type":"pairing"}'
debug 2023-04-20 23:44:30: Device 'S3' announced itself
info  2023-04-20 23:44:30: MQTT publish: topic 'zigbee2mqtt/bridge/event', payload '{"data":{"friendly_name":"S3","ieee_address":"0xedd9a514006f0d00"},"type":"device_announce"}'
info  2023-04-20 23:44:30: MQTT publish: topic 'zigbee2mqtt/bridge/log', payload '{"message":"announce","meta":{"friendly_name":"S3"},"type":"device_announced"}'
debug 2023-04-20 23:44:30: Received Zigbee message from 'S3', type 'raw', cluster '3073', data '{"data":[28,30,18,10,128,47,83,56,53,47,49,47,50,44,56],"type":"Buffer"}' from endpoint 1 with groupID 0
debug 2023-04-20 23:44:30: Skipping message, definition is undefined and still interviewing
debug 2023-04-20 23:44:31: Received Zigbee message from 'S3', type 'raw', cluster '3073', data '{"data":[28,30,18,11,128,47,83,56,52,47,49,47,48],"type":"Buffer"}' from endpoint 1 with groupID 0
debug 2023-04-20 23:44:31: Skipping message, definition is undefined and still interviewing
debug 2023-04-20 23:44:31: Received Zigbee message from 'S3', type 'readResponse', cluster 'genBasic', data '{"modelId":"zigbee_transfer"}' from endpoint 1 with groupID 0
debug 2023-04-20 23:44:31: Skipping message, definition is undefined and still interviewing
debug 2023-04-20 23:44:31: Received Zigbee message from 'S3', type 'raw', cluster '3073', data '{"data":[28,30,18,12,128,47,83,56,53,47,49,47,50,44,56],"type":"Buffer"}' from endpoint 1 with groupID 0
debug 2023-04-20 23:44:31: Skipping message, definition is undefined and still interviewing
debug 2023-04-20 23:44:31: Received Zigbee message from 'S3', type 'readResponse', cluster 'genBasic', data '{"manufacturerName":"umeinfo"}' from endpoint 1 with groupID 0
debug 2023-04-20 23:44:31: Skipping message, definition is undefined and still interviewing
debug 2023-04-20 23:44:31: Received Zigbee message from 'S3', type 'readResponse', cluster 'genBasic', data '{"powerSource":0}' from endpoint 1 with groupID 0
debug 2023-04-20 23:44:31: Skipping message, definition is undefined and still interviewing
debug 2023-04-20 23:44:31: Received Zigbee message from 'S3', type 'readResponse', cluster 'genBasic', data '{"zclVersion":2}' from endpoint 1 with groupID 0
debug 2023-04-20 23:44:31: Skipping message, definition is undefined and still interviewing
debug 2023-04-20 23:44:31: Received Zigbee message from 'S3', type 'readResponse', cluster 'genBasic', data '{"appVersion":1}' from endpoint 1 with groupID 0
debug 2023-04-20 23:44:31: Skipping message, definition is undefined and still interviewing
debug 2023-04-20 23:44:31: Received Zigbee message from 'S3', type 'readResponse', cluster 'genBasic', data '{"stackVersion":98}' from endpoint 1 with groupID 0
debug 2023-04-20 23:44:31: Skipping message, definition is undefined and still interviewing
debug 2023-04-20 23:44:31: Received Zigbee message from 'S3', type 'readResponse', cluster 'genBasic', data '{"hwVersion":133}' from endpoint 1 with groupID 0
debug 2023-04-20 23:44:31: Skipping message, definition is undefined and still interviewing
debug 2023-04-20 23:44:32: Received Zigbee message from 'S3', type 'readResponse', cluster 'genBasic', data '{}' from endpoint 1 with groupID 0
debug 2023-04-20 23:44:32: Skipping message, definition is undefined and still interviewing
debug 2023-04-20 23:44:32: Received Zigbee message from 'S3', type 'raw', cluster '3073', data '{"data":[28,30,18,13,128,47,83,56,53,47,49,47,50,44,56],"type":"Buffer"}' from endpoint 1 with groupID 0
debug 2023-04-20 23:44:32: Skipping message, definition is undefined and still interviewing
debug 2023-04-20 23:44:32: Received Zigbee message from 'S3', type 'readResponse', cluster 'genBasic', data '{}' from endpoint 1 with groupID 0
debug 2023-04-20 23:44:32: Skipping message, definition is undefined and still interviewing
info  2023-04-20 23:44:32: Successfully interviewed 'S3', device has successfully been paired
info  2023-04-20 23:44:32: Device 'S3' is supported, identified as: umeinfo S3 Wall Plug (S3 003)
info  2023-04-20 23:44:32: MQTT publish: topic 'zigbee2mqtt/bridge/event', payload '{"data":{"definition":{"description":"S3 Wall Plug","exposes":[{"features":[{"access":7,"description":"On/off state of the switch","name":"state","property":"state","type":"binary","value_off":"OFF","value_on":"ON","value_toggle":"TOGGLE"}],"type":"switch"},{"access":1,"description":"Instantaneous measured power","name":"power","property":"power","type":"numeric","unit":"W"},{"access":1,"description":"Instantaneous measured electrical current","name":"current","property":"current","type":"numeric","unit":"A"},{"access":1,"description":"Measured electrical potential value","name":"voltage","property":"voltage","type":"numeric","unit":"V"},{"access":1,"description":"Link quality (signal strength)","name":"linkquality","property":"linkquality","type":"numeric","unit":"lqi","value_max":255,"value_min":0}],"model":"S3 003","options":[{"access":2,"description":"State actions will also be published as 'action' when true (default false).","name":"state_action","property":"state_action","type":"binary","value_off":false,"value_on":true},{"access":2,"description":"Calibrates the power value (percentual offset), takes into effect on next report of device.","name":"power_calibration","property":"power_calibration","type":"numeric"},{"access":2,"description":"Number of digits after decimal point for power, takes into effect on next report of device.","name":"power_precision","property":"power_precision","type":"numeric","value_max":3,"value_min":0},{"access":2,"description":"Calibrates the current value (percentual offset), takes into effect on next report of device.","name":"current_calibration","property":"current_calibration","type":"numeric"},{"access":2,"description":"Number of digits after decimal point for current, takes into effect on next report of device.","name":"current_precision","property":"current_precision","type":"numeric","value_max":3,"value_min":0},{"access":2,"description":"Calibrates the voltage value (percentual offset), takes into effect on next report of device.","name":"voltage_calibration","property":"voltage_calibration","type":"numeric"},{"access":2,"description":"Number of digits after decimal point for voltage, takes into effect on next report of device.","name":"voltage_precision","property":"voltage_precision","type":"numeric","value_max":3,"value_min":0}],"supports_ota":false,"vendor":"umeinfo"},"friendly_name":"S3","ieee_address":"0xedd9a514006f0d00","status":"successful","supported":true},"type":"device_interview"}'
info  2023-04-20 23:44:32: Configuring 'S3'
info  2023-04-20 23:44:32: MQTT publish: topic 'zigbee2mqtt/bridge/log', payload '{"message":"interview_successful","meta":{"description":"S3 Wall Plug","friendly_name":"S3","model":"S3 003","supported":true,"vendor":"umeinfo"},"type":"pairing"}'
info  2023-04-20 23:44:32: MQTT publish: topic 'homeassistant/switch/0xedd9a514006f0d00/switch/config', payload '{"availability":[{"topic":"zigbee2mqtt/bridge/state"}],"command_topic":"zigbee2mqtt/S3/set","device":{"identifiers":["zigbee2mqtt_0xedd9a514006f0d00"],"manufacturer":"umeinfo","model":"S3 Wall Plug (S3 003)","name":"S3"},"json_attributes_topic":"zigbee2mqtt/S3","name":"S3","payload_off":"OFF","payload_on":"ON","state_topic":"zigbee2mqtt/S3","unique_id":"0xedd9a514006f0d00_switch_zigbee2mqtt","value_template":"{{ value_json.state }}"}'
info  2023-04-20 23:44:32: MQTT publish: topic 'homeassistant/sensor/0xedd9a514006f0d00/power/config', payload '{"availability":[{"topic":"zigbee2mqtt/bridge/state"}],"device":{"identifiers":["zigbee2mqtt_0xedd9a514006f0d00"],"manufacturer":"umeinfo","model":"S3 Wall Plug (S3 003)","name":"S3"},"device_class":"power","enabled_by_default":true,"entity_category":"diagnostic","json_attributes_topic":"zigbee2mqtt/S3","name":"S3 power","state_class":"measurement","state_topic":"zigbee2mqtt/S3","unique_id":"0xedd9a514006f0d00_power_zigbee2mqtt","unit_of_measurement":"W","value_template":"{{ value_json.power }}"}'
info  2023-04-20 23:44:32: MQTT publish: topic 'homeassistant/sensor/0xedd9a514006f0d00/current/config', payload '{"availability":[{"topic":"zigbee2mqtt/bridge/state"}],"device":{"identifiers":["zigbee2mqtt_0xedd9a514006f0d00"],"manufacturer":"umeinfo","model":"S3 Wall Plug (S3 003)","name":"S3"},"device_class":"current","enabled_by_default":false,"entity_category":"diagnostic","json_attributes_topic":"zigbee2mqtt/S3","name":"S3 current","state_class":"measurement","state_topic":"zigbee2mqtt/S3","unique_id":"0xedd9a514006f0d00_current_zigbee2mqtt","unit_of_measurement":"A","value_template":"{{ value_json.current }}"}'
info  2023-04-20 23:44:32: MQTT publish: topic 'homeassistant/sensor/0xedd9a514006f0d00/voltage/config', payload '{"availability":[{"topic":"zigbee2mqtt/bridge/state"}],"device":{"identifiers":["zigbee2mqtt_0xedd9a514006f0d00"],"manufacturer":"umeinfo","model":"S3 Wall Plug (S3 003)","name":"S3"},"device_class":"voltage","enabled_by_default":false,"entity_category":"diagnostic","json_attributes_topic":"zigbee2mqtt/S3","name":"S3 voltage","state_class":"measurement","state_topic":"zigbee2mqtt/S3","unique_id":"0xedd9a514006f0d00_voltage_zigbee2mqtt","unit_of_measurement":"V","value_template":"{{ value_json.voltage }}"}'
info  2023-04-20 23:44:32: MQTT publish: topic 'homeassistant/sensor/0xedd9a514006f0d00/linkquality/config', payload '{"availability":[{"topic":"zigbee2mqtt/bridge/state"}],"device":{"identifiers":["zigbee2mqtt_0xedd9a514006f0d00"],"manufacturer":"umeinfo","model":"S3 Wall Plug (S3 003)","name":"S3"},"enabled_by_default":false,"entity_category":"diagnostic","icon":"mdi:signal","json_attributes_topic":"zigbee2mqtt/S3","name":"S3 linkquality","state_class":"measurement","state_topic":"zigbee2mqtt/S3","unique_id":"0xedd9a514006f0d00_linkquality_zigbee2mqtt","unit_of_measurement":"lqi","value_template":"{{ value_json.linkquality }}"}'
debug 2023-04-20 23:44:32: Received MQTT message on 'homeassistant/switch/0xedd9a514006f0d00/switch/config' with data '{"availability":[{"topic":"zigbee2mqtt/bridge/state"}],"command_topic":"zigbee2mqtt/S3/set","device":{"identifiers":["zigbee2mqtt_0xedd9a514006f0d00"],"manufacturer":"umeinfo","model":"S3 Wall Plug (S3 003)","name":"S3"},"json_attributes_topic":"zigbee2mqtt/S3","name":"S3","payload_off":"OFF","payload_on":"ON","state_topic":"zigbee2mqtt/S3","unique_id":"0xedd9a514006f0d00_switch_zigbee2mqtt","value_template":"{{ value_json.state }}"}'
debug 2023-04-20 23:44:32: Received MQTT message on 'homeassistant/sensor/0xedd9a514006f0d00/power/config' with data '{"availability":[{"topic":"zigbee2mqtt/bridge/state"}],"device":{"identifiers":["zigbee2mqtt_0xedd9a514006f0d00"],"manufacturer":"umeinfo","model":"S3 Wall Plug (S3 003)","name":"S3"},"device_class":"power","enabled_by_default":true,"entity_category":"diagnostic","json_attributes_topic":"zigbee2mqtt/S3","name":"S3 power","state_class":"measurement","state_topic":"zigbee2mqtt/S3","unique_id":"0xedd9a514006f0d00_power_zigbee2mqtt","unit_of_measurement":"W","value_template":"{{ value_json.power }}"}'
debug 2023-04-20 23:44:32: Received MQTT message on 'homeassistant/sensor/0xedd9a514006f0d00/current/config' with data '{"availability":[{"topic":"zigbee2mqtt/bridge/state"}],"device":{"identifiers":["zigbee2mqtt_0xedd9a514006f0d00"],"manufacturer":"umeinfo","model":"S3 Wall Plug (S3 003)","name":"S3"},"device_class":"current","enabled_by_default":false,"entity_category":"diagnostic","json_attributes_topic":"zigbee2mqtt/S3","name":"S3 current","state_class":"measurement","state_topic":"zigbee2mqtt/S3","unique_id":"0xedd9a514006f0d00_current_zigbee2mqtt","unit_of_measurement":"A","value_template":"{{ value_json.current }}"}'
debug 2023-04-20 23:44:32: Received MQTT message on 'homeassistant/sensor/0xedd9a514006f0d00/voltage/config' with data '{"availability":[{"topic":"zigbee2mqtt/bridge/state"}],"device":{"identifiers":["zigbee2mqtt_0xedd9a514006f0d00"],"manufacturer":"umeinfo","model":"S3 Wall Plug (S3 003)","name":"S3"},"device_class":"voltage","enabled_by_default":false,"entity_category":"diagnostic","json_attributes_topic":"zigbee2mqtt/S3","name":"S3 voltage","state_class":"measurement","state_topic":"zigbee2mqtt/S3","unique_id":"0xedd9a514006f0d00_voltage_zigbee2mqtt","unit_of_measurement":"V","value_template":"{{ value_json.voltage }}"}'
debug 2023-04-20 23:44:32: Received MQTT message on 'homeassistant/sensor/0xedd9a514006f0d00/linkquality/config' with data '{"availability":[{"topic":"zigbee2mqtt/bridge/state"}],"device":{"identifiers":["zigbee2mqtt_0xedd9a514006f0d00"],"manufacturer":"umeinfo","model":"S3 Wall Plug (S3 003)","name":"S3"},"enabled_by_default":false,"entity_category":"diagnostic","icon":"mdi:signal","json_attributes_topic":"zigbee2mqtt/S3","name":"S3 linkquality","state_class":"measurement","state_topic":"zigbee2mqtt/S3","unique_id":"0xedd9a514006f0d00_linkquality_zigbee2mqtt","unit_of_measurement":"lqi","value_template":"{{ value_json.linkquality }}"}'
debug 2023-04-20 23:44:33: Received Zigbee message from 'S3', type 'raw', cluster '3073', data '{"data":[28,30,18,14,128,47,83,56,52,47,49,47,48],"type":"Buffer"}' from endpoint 1 with groupID 0
debug 2023-04-20 23:44:33: No converter available for 'S3 003' with cluster '3073' and type 'raw' and data '{"data":[28,30,18,14,128,47,83,56,52,47,49,47,48],"type":"Buffer"}'
debug 2023-04-20 23:44:33: Received Zigbee message from 'S3', type 'raw', cluster '3073', data '{"data":[28,30,18,15,128,47,83,56,53,47,49,47,50,44,56],"type":"Buffer"}' from endpoint 1 with groupID 0
debug 2023-04-20 23:44:33: No converter available for 'S3 003' with cluster '3073' and type 'raw' and data '{"data":[28,30,18,15,128,47,83,56,53,47,49,47,50,44,56],"type":"Buffer"}'
debug 2023-04-20 23:44:33: Received Zigbee message from 'S3', type 'readResponse', cluster 'haElectricalMeasurement', data '{}' from endpoint 1 with groupID 0
error 2023-04-20 23:44:33: Failed to configure 'S3', attempt 1 (Error: Read 0xedd9a514006f0d00/1 haElectricalMeasurement(["acVoltageMultiplier","acVoltageDivisor","acCurrentMultiplier"], {"sendWhen":"immediate","timeout":10000,"disableResponse":false,"disableRecovery":false,"disableDefaultResponse":true,"direction":0,"srcEndpoint":null,"reservedBits":0,"manufacturerCode":null,"transactionSequenceNumber":null,"writeUndiv":false}) failed (Status 'UNSUPPORTED_ATTRIBUTE')
    at Endpoint.checkStatus (/app/node_modules/zigbee-herdsman/src/controller/model/endpoint.ts:317:28)
    at Endpoint.read (/app/node_modules/zigbee-herdsman/src/controller/model/endpoint.ts:480:22)
    at Object.readEletricalMeasurementMultiplierDivisors (/app/node_modules/zigbee-herdsman-converters/lib/reporting.js:26:5)
    at Object.configure (/app/data/extension/externally-loaded.js:35:9)
    at Configure.configure (/app/lib/extension/configure.ts:117:13))
debug 2023-04-20 23:46:54: Received Zigbee message from 'S3', type 'commandQueryNextImageRequest', cluster 'genOta', data '{"fieldControl":0,"fileVersion":1,"imageType":4369,"manufacturerCode":4638}' from endpoint 1 with groupID 0
debug 2023-04-20 23:46:54: Device 'S3' requested OTA
debug 2023-04-20 23:46:54: Responded to OTA request of 'S3' with 'NO_IMAGE_AVAILABLE'
debug 2023-04-20 23:47:07: Received Zigbee message from 'S3', type 'raw', cluster '3073', data '{"data":[28,30,18,60,128,47,83,56,52,47,49,47,48],"type":"Buffer"}' from endpoint 1 with groupID 0
debug 2023-04-20 23:47:07: No converter available for 'S3 003' with cluster '3073' and type 'raw' and data '{"data":[28,30,18,60,128,47,83,56,52,47,49,47,48],"type":"Buffer"}'
debug 2023-04-20 23:47:09: Received Zigbee message from 'S3', type 'raw', cluster '3073', data '{"data":[28,30,18,61,128,47,83,56,52,47,49,47,48],"type":"Buffer"}' from endpoint 1 with groupID 0
debug 2023-04-20 23:47:09: No converter available for 'S3 003' with cluster '3073' and type 'raw' and data '{"data":[28,30,18,61,128,47,83,56,52,47,49,47,48],"type":"Buffer"}'
debug 2023-04-20 23:47:11: Received Zigbee message from 'S3', type 'raw', cluster '3073', data '{"data":[28,30,18,62,128,47,83,56,52,47,49,47,48],"type":"Buffer"}' from endpoint 1 with groupID 0
debug 2023-04-20 23:47:11: No converter available for 'S3 003' with cluster '3073' and type 'raw' and data '{"data":[28,30,18,62,128,47,83,56,52,47,49,47,48],"type":"Buffer"}'
debug 2023-04-20 23:47:13: Received Zigbee message from 'S3', type 'raw', cluster '3073', data '{"data":[28,30,18,63,128,47,83,56,52,47,49,47,48],"type":"Buffer"}' from endpoint 1 with groupID 0
debug 2023-04-20 23:47:13: No converter available for 'S3 003' with cluster '3073' and type 'raw' and data '{"data":[28,30,18,63,128,47,83,56,52,47,49,47,48],"type":"Buffer"}'

External converter

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 extend = require('zigbee-herdsman-converters/lib/extend');
const e = exposes.presets;
const ea = exposes.access;

const fzLocal = {
    gateway_connection_status: {
        cluster: 'manuSpecificTuya',
        type: ['commandMcuGatewayConnectionStatus'],
        convert: async (model, msg, publish, options, meta) => {
            // "payload" can have the following values:
            // 0x00: The gateway is not connected to the internet.
            // 0x01: The gateway is connected to the internet.
            // 0x02: The request timed out after three seconds.
            const payload = {payloadSize: 1,payload: 1}
            await msg.endpoint.command('manuSpecificTuya', 'mcuGatewayConnectionStatus', payload, {});
        },
    },
}

const definition = {
    zigbeeModel: ['zigbee_transfer'], // The model ID from: Device with modelID 'lumi.sens' is not supported.
    model: 'S3 003', // Vendor model number, look on the device for a model number
    vendor: 'umeinfo', // Vendor of the device (only used for documentation and startup logging)
    description: 'S3 Wall Plug', // Description of the device, copy from vendor site. (only used for documentation and startup logging)
    fromZigbee: [fz.on_off, fz.electrical_measurement,fzLocal.gateway_connection_status], // We will add this later
    toZigbee: [tz.on_off], // Should be empty, unless device can be controlled (e.g. lights, switches).
    configure: async (device, coordinatorEndpoint, logger) => {
        const endpoint = device.getEndpoint(1);
        await reporting.bind(endpoint, coordinatorEndpoint, ['genOnOff', 'haElectricalMeasurement']);
        await reporting.onOff(endpoint);
        await reporting.readEletricalMeasurementMultiplierDivisors(endpoint);
        await reporting.rmsVoltage(endpoint);
        await reporting.rmsCurrent(endpoint);
        await reporting.activePower(endpoint);
    },
    exposes: [e.switch(), e.power(), e.current(), e.voltage()], // Defines what this device exposes, used for e.g. Home Assistant discovery and in the frontend
};

module.exports = definition;

Supported color modes

No response

Color temperature range

No response

github-actions[bot] commented 1 year 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

t9080 commented 1 year ago

我也有这种插座,因为服务器无法访问,请问有方法重新刷固件吗

Nova2003-emoji commented 3 months ago

解决了吗