Skip to content

Support: Innr SP 120 smart plug #588

Closed
@tunip

Description

I have two Innr SP 120 Smart Plugs (https://shop.innrlighting.com/en/shop/113/smart-plug) which is a unknown device.

I started with the "How to support new devices" Wiki.

After pairing the new entry in database.db:

{"id":7,"type":"Router","ieeeAddr":"0x00158d000217be5c","nwkAddr":34681,"manufId":4454,"manufName":"innr","powerSource":"Mains (single phase)","modelId":"SP 120","epList":[1,2],"status":"offline","joinTime":null,"endpoints":{"1":{"profId":49246,"epId":1,"devId":16,"inClusterList":[0,3,4,5,6,8,10,1794,2820],"outClusterList":[3,10,25],"clusters":{"genBasic":{"dir":{"value":1},"attrs":{"10":{},"zclVersion":2,"appVersion":1,"stackVersion":2,"hwVersion":1,"manufacturerName":"innr","modelId":"SP 120","dateCode":"20171027-100","powerSource":1,"swBuildId":"2.0"}},"genIdentify":{"dir":{"value":3},"attrs":{"identifyTime":0}},"genGroups":{"dir":{"value":1},"attrs":{"nameSupport":0}},"genScenes":{"dir":{"value":1},"attrs":{"count":1,"currentScene":0,"currentGroup":0,"sceneValid":0,"nameSupport":0,"lastCfgBy":"0xffffffffffffffff"}},"genOnOff":{"dir":{"value":1},"attrs":{"onOff":0,"globalSceneCtrl":1,"onTime":0,"offWaitTime":0}},"genLevelCtrl":{"dir":{"value":1},"attrs":{"currentLevel":254,"remainingTime":0,"onOffTransitionTime":0}},"genTime":{"dir":{"value":3},"attrs":{"time":0,"timeStatus":0}},"genOta":{"dir":{"value":2},"attrs":{}},"seMetering":{"dir":{"value":1},"attrs":{"currentSummDelivered":{"0":0,"1":0},"status":0,"unitOfMeasure":0,"summaFormatting":42,"meteringDeviceType":0}},"haElectricalMeasurement":{"dir":{"value":1},"attrs":{"measurementType":0,"rmsVoltage":0,"rmsCurrent":0,"activePower":0}}}},"2":{"profId":49246,"epId":2,"devId":4096,"inClusterList":[4096],"outClusterList":[],"clusters":{"lightLink":{"dir":{"value":1},"attrs":{}}}}},"_id":"zgD1NYq2y3W3N0w9"}

Added new device with report in devices.js

    {
        zigbeeModel: ['SP 120'],
        model: 'SP 120',
        vendor: 'Innr',
        description: 'Smart Plug',
        supports: 'on/off, power measurement',
        fromZigbee: [fz.generic_state, fz.ignore_onoff_change, fz.ignore_electrical_change, fz.SP120_power],
        toZigbee: [tz.onoff],
        configure: (ieeeAddr, shepherd, coordinator, callback) => {
                const device = shepherd.find(ieeeAddr, 1);
                const cfg = {direction: 0, attrId: 0, dataType: 16, minRepIntval: 0, maxRepIntval: 1000, repChange: 0};
                const actions = [
                        (cb) => device.bind('genOnOff', coordinator, cb),
                        (cb) => device.foundation('genOnOff', 'configReport', [cfg], foundationCfg, cb),
                        (cb) => device.report('haElectricalMeasurement', 'rmsVoltage', 10, 1000, 1, cb),
                        (cb) => device.report('haElectricalMeasurement', 'rmsCurrent', 10, 1000, 1, cb),
                        (cb) => device.report('haElectricalMeasurement', 'activePower', 10, 1000, 1, cb),
                ];
                execute(device, actions, callback);
        },
    },

fromZigbee.js

    SP120_power: {
        cid: 'haElectricalMeasurement',
        type: 'attReport',
        convert: (model, msg, publish, options) => {
            return {
                voltage: msg.data.data['rmsVoltage'],
                current: msg.data.data['rmsCurrent'],
                power: msg.data.data['activePower'],
            };
        },
    },

If I started zigbee2mqtt with DEBUG=zigbee-shepherd* npm start

  zigbee2mqtt:info 2018-11-12 09:14:03 MQTT publish, topic: 'zigbee2mqtt/0x00158d000217be5c', payload: '{"state":"ON","linkquality":92}'
  zigbee-shepherd:msgHdlr IND <-- ZDO:permitJoinInd +60ms
  zigbee-shepherd:msgHdlr IND <-- ZDO:mgmtPermitJoinRsp +0ms
  zigbee-shepherd:msgHdlr IND <-- ZDO:bindRsp +53ms
  zigbee-shepherd-converters:devices Configured '(cb) => device.bind('genOnOff', coordinator, cb)' with result 'OK' +0ms
  zigbee-shepherd:request REQ --> AF:dataRequest, transId: 1 +313ms
  zigbee-shepherd:request RSP <-- AF:dataRequest, status: 0 +16ms
  zigbee-shepherd:af dispatchIncomingMsg(): type: dataConfirm, msg: [object Object] +24ms
  zigbee-shepherd:msgHdlr IND <-- AF:dataConfirm, transId: 1 +1ms
  zigbee-shepherd:af dispatchIncomingMsg(): type: incomingMsg, msg: [object Object] +17ms
  zigbee-shepherd:msgHdlr IND <-- AF:incomingMsg, transId: 0 +10ms
  zigbee-shepherd:af dispatchIncomingMsg(): type: zclIncomingMsg, msg: [object Object] +1ms
  zigbee-shepherd-converters:devices Configured '(cb) => device.foundation('genOnOff', 'configReport', [cfg], foundationCfg, cb)' with result 'OK' +382ms
  zigbee-shepherd-converters:devices Configured '(cb) => device.report('haElectricalMeasurement', 'rmsVoltage', 10, 1000, 1, cb)' with result 'Error: Profile: 49246 is not supported.' +320ms
  zigbee2mqtt:error 2018-11-12 09:14:04 Failed to configure 0x00158d000217be5c 0x00158d000217be5c
  zigbee-shepherd:af dispatchIncomingMsg(): type: incomingMsg, msg: [object Object] +12s
  zigbee-shepherd:msgHdlr IND <-- AF:incomingMsg, transId: 0 +27ms
  zigbee-shepherd:af dispatchIncomingMsg(): type: zclIncomingMsg, msg: [object Object] +2ms

on/off via mqtt topic works. Incoming message would be send twice. No idea why...

  zigbee2mqtt:debug 2018-11-12 09:58:04 Received mqtt message on topic 'zigbee2mqtt/0x00158d000217be5c/set' with data '{ "state": "ON" }'
  zigbee2mqtt:info 2018-11-12 09:58:04 Zigbee publish to '0x00158d000217be5c', genOnOff - on - {} - {"manufSpec":0,"disDefaultRsp":0} - null
  zigbee-shepherd:request REQ --> AF:dataRequest, transId: 9 +4m
  zigbee-shepherd:request RSP <-- AF:dataRequest, status: 0 +19ms
  zigbee-shepherd:af dispatchIncomingMsg(): type: dataConfirm, msg: [object Object] +15ms
  zigbee-shepherd:msgHdlr IND <-- AF:dataConfirm, transId: 9 +1ms
  zigbee-shepherd:af dispatchIncomingMsg(): type: incomingMsg, msg: [object Object] +20ms
  zigbee-shepherd:msgHdlr IND <-- AF:incomingMsg, transId: 0 +14ms
  zigbee-shepherd:af dispatchIncomingMsg(): type: zclIncomingMsg, msg: [object Object] +1ms
  zigbee-shepherd:request REQ --> AF:dataRequest, transId: 10 +6ms
  zigbee2mqtt:info 2018-11-12 09:58:05 MQTT publish, topic: 'zigbee2mqtt/0x00158d000217be5c', payload: '{"state":"ON","linkquality":89}'
  zigbee-shepherd:request RSP <-- AF:dataRequest, status: 0 +20ms
  zigbee-shepherd:af dispatchIncomingMsg(): type: dataConfirm, msg: [object Object] +21ms
  zigbee-shepherd:msgHdlr IND <-- AF:dataConfirm, transId: 10 +1ms
  zigbee-shepherd:af dispatchIncomingMsg(): type: incomingMsg, msg: [object Object] +19ms
  zigbee-shepherd:msgHdlr IND <-- AF:incomingMsg, transId: 0 +12ms
  zigbee-shepherd:af dispatchIncomingMsg(): type: zclIncomingMsg, msg: [object Object] +1ms
  zigbee-shepherd:request REQ --> AF:dataRequest, transId: 11 +2ms
  zigbee-shepherd:request RSP <-- AF:dataRequest, status: 0 +12ms
  zigbee-shepherd:af dispatchIncomingMsg(): type: dataConfirm, msg: [object Object] +21ms
  zigbee-shepherd:msgHdlr IND <-- AF:dataConfirm, transId: 11 +0ms
  zigbee-shepherd:af dispatchIncomingMsg(): type: incomingMsg, msg: [object Object] +13ms
  zigbee-shepherd:msgHdlr IND <-- AF:incomingMsg, transId: 0 +17ms
  zigbee-shepherd:af dispatchIncomingMsg(): type: zclIncomingMsg, msg: [object Object] +2ms
  zigbee2mqtt:debug 2018-11-12 09:58:05 Received zigbee message of type 'devChange' with data '{"cid":"genOnOff","data":{"onOff":1}}' of device 'SP 120' (0x00158d000217be5c)
  zigbee-shepherd:af dispatchIncomingMsg(): type: incomingMsg, msg: [object Object] +762ms
  zigbee-shepherd:msgHdlr IND <-- AF:incomingMsg, transId: 0 +7ms
  zigbee-shepherd:af dispatchIncomingMsg(): type: zclIncomingMsg, msg: [object Object] +1ms
  zigbee2mqtt:debug 2018-11-12 09:58:05 Received zigbee message of type 'attReport' with data '{"cid":"genOnOff","data":{"onOff":1}}' of device 'SP 120' (0x00158d000217be5c)
  zigbee2mqtt:info 2018-11-12 09:58:05 MQTT publish, topic: 'zigbee2mqtt/0x00158d000217be5c', payload: '{"state":"ON","linkquality":92}'
  zigbee-shepherd:request REQ --> AF:dataRequest, transId: 12 +37ms
  zigbee-shepherd:request RSP <-- AF:dataRequest, status: 0 +20ms
  zigbee-shepherd:af dispatchIncomingMsg(): type: dataConfirm, msg: [object Object] +20ms
  zigbee-shepherd:msgHdlr IND <-- AF:dataConfirm, transId: 12 +1ms
  zigbee-shepherd:af dispatchIncomingMsg(): type: incomingMsg, msg: [object Object] +11ms
  zigbee-shepherd:msgHdlr IND <-- AF:incomingMsg, transId: 0 +4ms
  zigbee-shepherd:af dispatchIncomingMsg(): type: zclIncomingMsg, msg: [object Object] +1ms
  zigbee2mqtt:debug 2018-11-12 10:00:59 Saving state to file /opt/zigbee2mqtt/data/state.json

In deCONZ it works fine:
grafik

No electrical measurement. What could I do next? Thx

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions