Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Please add Tongou TOWSMR1 1-40 _TZE204_kobbcyum #23054

Open
terzo33 opened this issue Jun 14, 2024 · 22 comments
Open

Please add Tongou TOWSMR1 1-40 _TZE204_kobbcyum #23054

terzo33 opened this issue Jun 14, 2024 · 22 comments
Labels
new device support New device support request

Comments

@terzo33
Copy link

terzo33 commented Jun 14, 2024

Link

https://it.elcb.net/categoria-di-prodotto/interruttore-intelligente/

Database entry

{"id":26,"type":"Router","ieeeAddr":"0xdc8e95fffe6546f9","nwkAddr":19851,"manufId":4098,"manufName":"_TZE204_kobbcyum","powerSource":"Mains (single phase)","modelId":"TS0601","epList":[1],"endpoints":{"1":{"profId":260,"epId":1,"devId":81,"inClusterList":[0,4,5,61184],"outClusterList":[25,10],"clusters":{"genBasic":{"attributes":{"65503":"�?�-i�?�-i�?�-i�?�-i�?�-i�?�-i�?�-i�?�-i","65506":31,"65508":0,"65534":0,"modelId":"TS0601","manufacturerName":"_TZE204_kobbcyum","powerSource":1,"zclVersion":3,"appVersion":70,"stackVersion":0,"hwVersion":1,"dateCode":""}},"haElectricalMeasurement":{"attributes":{}},"seMetering":{"attributes":{}},"msTemperatureMeasurement":{"attributes":{}}},"binds":[{"cluster":2820,"type":"endpoint","deviceIeeeAddress":"0x00124b0005a5ebca","endpointID":1}],"configuredReportings":[],"meta":{}}},"appVersion":70,"stackVersion":0,"hwVersion":1,"dateCode":"","zclVersion":3,"interviewCompleted":true,"meta":{"configured":-903893911},"lastSeen":1718367387424}

Comments

Screenshot_20240509_174104_AliExpress.jpg

with this configuration it partially works, i.e. some sensors are missing and those that work are updated every 5/10 minutes

the missing sensors are:

Temperature threshold
Temperature breaker
Power threshold
Power breaker
Over current threshold
Over current breaker
Over voltage threshold
Over voltage breaker
Under voltage threshold
Under voltage breaker
Power outage memory
Indicator mode
Rate current Value
Earth Leakage Value
And other....

Thanks

External definition

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

const definition = {
    // Since a lot of TuYa devices use the same modelID, but use different datapoints
    // it's necessary to provide a fingerprint instead of a zigbeeModel

fingerprint: [
        {
            // The model ID from: Device with modelID 'TS0601' is not supported
            // You may need to add \u0000 at the end of the name in some cases
            modelID: 'TS0601',
            // The manufacturer name from: Device with modelID 'TS0601' is not supported.
            manufacturerName: '_TZE204_kobbcyum',
        },
    ],
    model: 'TOWSMR1',
    vendor: 'Tongou',
    description: 'Smart circuit breaker',
    fromZigbee: [tuya.fz.datapoints],
    toZigbee: [tuya.tz.datapoints],
    onEvent: tuya.onEventSetTime, // Add this if you are getting no converter for 'commandMcuSyncTime'
    configure: tuya.configureMagicPacket,
    exposes: [tuya.exposes.switch(), e.energy(), e.temperature(), e.power(), e.voltage(), e.current(),
        exposes.enum('fault', ea.STATE, ['clear', 'over_current_threshold', 'over_power_threshold',
            'over_voltage threshold', 'wrong_frequency_threshold']).withDescription('Fault status of the device (clear = nothing)'),
        exposes.enum('threshold_1', ea.STATE, ['not_set', 'over_current_threshold', 'over_voltage_threshold'])
            .withDescription('State of threshold_1'),
        exposes.binary('threshold_1_protection', ea.STATE, 'ON', 'OFF')
            .withDescription('OFF - alarm only, ON - relay will be off when threshold reached'),
        exposes.numeric('threshold_1_value', ea.STATE)
            .withDescription('Can be in Volt or Ampere depending on threshold setting. Setup the value on the device'),
        exposes.enum('threshold_2', ea.STATE, ['not_set', 'over_current_threshold', 'over_voltage_threshold'])
            .withDescription('State of threshold_2'),
        exposes.binary('threshold_2_protection', ea.STATE, 'ON', 'OFF')
            .withDescription('OFF - alarm only, ON - relay will be off when threshold reached'),
        exposes.numeric('threshold_2_value', ea.STATE)
            .withDescription('Setup value on the device'),
        exposes.binary('clear_fault', ea.STATE_SET, 'ON', 'OFF')
            .withDescription('Turn ON to clear last the fault'),
        exposes.text('meter_id', ea.STATE).withDescription('Meter ID (ID of device)'),
    ],
    meta: {
        tuyaDatapoints: [
            [1, 'energy', tuya.valueConverter.divideBy100],
            [3, null, null], // Monthly, but sends data only after request
            [4, null, null], // Dayly, but sends data only after request
            [6, null, tuya.valueConverter.phaseVariant2], // voltage and current
            [10, 'fault', tuya.valueConverterBasic.lookup({'clear': 0, 'over_current_threshold': 1,
                'over_power_threshold': 2, 'over_voltage_threshold': 4, 'wrong_frequency_threshold': 8})],
            [11, null, null], // Frozen - strange function, in native app - nothing is clear
            [16, 'state', tuya.valueConverter.onOff],
            [17, null, tuya.valueConverter.threshold], // It's settable, but can't write converter
            [18, 'meter_id', tuya.valueConverter.raw],
            [20, 'clear_fault', tuya.valueConverter.onOff], // Clear fault
            [21, null, null], // Forward Energy T1 - don't know what this
            [22, null, null], // Forward Energy T2 - don't know what this
            [23, null, null], // Forward Energy T3 - don't know what this
            [24, null, null], // Forward Energy T4 - don't know what this
        ],
    },
};

module.exports = definition;
@terzo33 terzo33 added the new device support New device support request label Jun 14, 2024
@Koenkk
Copy link
Owner

Koenkk commented Jun 15, 2024

Feel free to make a PR with the already working converter

@terzo33
Copy link
Author

terzo33 commented Jun 15, 2024

@Koenkk Can you help me?

Koenkk added a commit to Koenkk/zigbee-herdsman-converters that referenced this issue Jun 20, 2024
@Koenkk
Copy link
Owner

Koenkk commented Jun 20, 2024

Added!

@Proncio
Copy link

Proncio commented Aug 18, 2024

Hi,
this is my first post here so forgive me for any mistake/bad procedure spelling etc.

I have enhanced coding for TOWSMR1 device, based on @bifi2090 work for device TOQCB2-80

Koenkk/zigbee-herdsman-converters#7752

Everything works, description in the Database can be changed. Devices are pretty the same, from the original code I just changed

  • Refresh time: 10 seconds
  • Phases: this is single phase, code adapted
  • Adding and formatting "Last event" messages (for some reasons DP name in Expose and Meta sections was different, last_event1 vs last_event, so it was not working)
  • Added DP for leakage, but left commented as they should always stay default 30Mah (life risk)

immagine

immagine

If I should do something else to publish this new version, just tell me.

Thanks

Code:

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

const definition = {

fingerprint: [
        {
            // The model ID from: Device with modelID 'TS0601' is not supported
            // You may need to add \u0000 at the end of the name in some cases
            modelID: 'TS0601',
            // The manufacturer name from: Device with modelID 'TS0601' is not supported.
            manufacturerName: '_TZE204_kobbcyum',
        },
    ],
    
    model: 'TOWSMR1',
    vendor: 'Tongou',
    description: 'Single-phase multifunction energy meter (DIN Module)',
    fromZigbee: [tuya.fz.datapoints],
    toZigbee: [tuya.tz.datapoints],
    // Important: respondToMcuVersionResponse should be false otherweise there are an avalanche of commandMcuVersionResponse messages every second.
    // queryIntervalSeconds: is doing a pooling to update device's parameters, now define to update data every 3 minutes.
    onEvent: tuya.onEvent({respondToMcuVersionResponse: false, queryIntervalSeconds: 10}),
    configure: tuya.configureMagicPacket,
    exposes: [
        tuya.exposes.switch(),
        e.energy(),
        e.power(),
        e.voltage(),
        e.current(),
        e.temperature(),
        e
        .enum('last_event', ea.STATE, [])
            .withDescription('Last event'),
        e.enum('over_current_setting', ea.STATE_SET, ['closed', 'alarm', 'trip']).withDescription('Action if threshold value is reached'),
        e
            .numeric('current_threshold', ea.STATE_SET)
            .withValueMin(1)
            .withValueMax(63)
            .withValueStep(1)
            .withUnit('A')
            .withDescription('Current threshold setting'),
        e.enum('under_voltage_setting', ea.STATE_SET, ['closed', 'alarm', 'trip']).withDescription('Action if threshold value is reached'),
        e
            .numeric('under_voltage_threshold', ea.STATE_SET)
            .withValueMin(145)
            .withValueMax(220)
            .withValueStep(1)
            .withUnit('V')
            .withDescription('Under voltage threshold setting'),
        e.enum('over_voltage_setting', ea.STATE_SET, ['closed', 'alarm', 'trip']).withDescription('Action if threshold value is reached'),
        e
            .numeric('over_voltage_threshold', ea.STATE_SET)
            .withValueMin(245)
            .withValueMax(295)
            .withValueStep(1)
            .withUnit('V')
            .withDescription('Over-voltage threshold setting'),
        e.enum('over_power_setting', ea.STATE_SET, ['closed', 'alarm', 'trip']).withDescription('Action if threshold value is reached'),
        e
            .numeric('over_power_threshold', ea.STATE_SET)
            .withValueMin(200)
            .withValueMax(20000)
            .withValueStep(100)
            .withUnit('W')
            .withDescription('Over-power threshold setting'),
        e.enum('temperature_setting', ea.STATE_SET, ['closed', 'alarm', 'trip']).withDescription('Action if threshold value is reached'),
        e
            .numeric('temperature_threshold', ea.STATE_SET)
            .withValueMin(-40)
            .withValueMax(100)
            .withValueStep(1)
            .withUnit('°C')
            .withDescription('Temperature threshold setting'),
        e.binary('clear_fault', ea.STATE_SET, 'ON', 'OFF').withDescription('Recover from an incident'),
        e.binary('factory_reset', ea.STATE_SET, 'ON', 'OFF').withDescription('Back to factory settings, USE WITH CAUTION'),
    ],
    meta: {
        tuyaDatapoints: [
            [1, 'energy', tuya.valueConverter.divideBy100],
            [6, null, tuya.valueConverter.phaseVariant2],
//            [15, 'leakage_current', tuya.valueConverter.raw],
            [16, 'state', tuya.valueConverter.onOff],
            [102, 'over_voltage_setting', tuya.valueConverterBasic.lookup({closed: tuya.enum(0), alarm: tuya.enum(1), trip: tuya.enum(2)})],
            [103, 'under_voltage_setting', tuya.valueConverterBasic.lookup({closed: tuya.enum(0), alarm: tuya.enum(1), trip: tuya.enum(2)})],
            [104, 'over_current_setting', tuya.valueConverterBasic.lookup({closed: tuya.enum(0), alarm: tuya.enum(1), trip: tuya.enum(2)})],
            [105, 'over_power_setting', tuya.valueConverterBasic.lookup({closed: tuya.enum(0), alarm: tuya.enum(1), trip: tuya.enum(2)})],
            [107, 'temperature_setting', tuya.valueConverterBasic.lookup({closed: tuya.enum(0), alarm: tuya.enum(1), trip: tuya.enum(2)})],
//            [108, 'leakage_setting', tuya.valueConverterBasic.lookup({closed: tuya.enum(0), alarm: tuya.enum(1), trip: tuya.enum(2)})],
            //109, 'online_state, unknown, I have not seen any message from this DP],
            [
                110,
                'last_event',
                tuya.valueConverterBasic.lookup({
                    'Normal': tuya.enum(0),
                    'Trip Over Current': tuya.enum(1),
                    'Trip Over Power': tuya.enum(2),
                    'Trip Over Temperature': tuya.enum(3),
                    'Trip Voltage 1': tuya.enum(4),
                    'Trip Voltage 2': tuya.enum(5),
                    'Alarm Over Current': tuya.enum(6),
                    'Alarm Over Power': tuya.enum(7),
                    'Alarm Over Temperature': tuya.enum(8),
                    'Alarm Voltage 1': tuya.enum(9),
                    'Alarm Voltage 2': tuya.enum(10),
                    'Remote On': tuya.enum(11),
                    'Remote Off': tuya.enum(12),
                    'Manual On': tuya.enum(13),
                    'Manual Off': tuya.enum(14),
                    'Value 15': tuya.enum(15),
                    'Value 16': tuya.enum(16),
                    'Factory Reset': tuya.enum(17),
                }),
            ],
            [112, 'clear_fault', tuya.valueConverter.onOff],
            [113, 'factory_reset', tuya.valueConverter.onOff],
            [114, 'current_threshold', tuya.valueConverter.raw],
            [115, 'over_voltage_threshold', tuya.valueConverter.raw],
            [116, 'under_voltage_threshold', tuya.valueConverter.raw],
//            [117, 'leakage_threshold', tuya.valueConverter.raw],
            [118, 'temperature_threshold', tuya.valueConverter.divideBy10],
            [119, 'over_power_threshold', tuya.valueConverter.raw],
            //[125, 'forward_electricity', tuya.valueConverter.divideBy100],
            [131, 'temperature', tuya.valueConverter.divideBy10],
        ],
    },
};

module.exports = definition;

@Proncio
Copy link

Proncio commented Aug 18, 2024

One note: the original coder @true9741

#21943 (comment)

stated that in his configuration, polling too much congestes his zigbee network, so he used 3 minutes refresh time. I have for now a simple network, so for me it's not an issue, but for some others it could be.

So, a solution could be replacing the fixed number 10 (or 3 * 60 in the original config) with a new virtual DP/setting, representing the # seconds for refresh, and change it like all the other slider settings dinamically in the frontend.

I would do it but I simply don't konw how, but I guess the experts here do ;) Any hint is more than well accepted

@Koenkk
Copy link
Owner

Koenkk commented Aug 19, 2024

Could you make a PR by clicking here?

@terzo33
Copy link
Author

terzo33 commented Aug 19, 2024

Could you make a PR by clicking here?

Done :)

Code with new update. Now all features works fine

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

const definition = {

fingerprint: [
        {
            // The model ID from: Device with modelID 'TS0601' is not supported
            // You may need to add \u0000 at the end of the name in some cases
            modelID: 'TS0601',
            // The manufacturer name from: Device with modelID 'TS0601' is not supported.
            manufacturerName: '_TZE204_kobbcyum',
        },
    ],
    
    model: 'TOWSMR1',
    vendor: 'Tongou',
    description: 'Single-phase multifunction energy meter (DIN Module)',
    fromZigbee: [tuya.fz.datapoints],
    toZigbee: [tuya.tz.datapoints],
    // Important: respondToMcuVersionResponse should be false otherweise there are an avalanche of commandMcuVersionResponse messages every second.
    // queryIntervalSeconds: is doing a pooling to update device's parameters, now define to update data every 3 minutes.
    onEvent: tuya.onEvent({respondToMcuVersionResponse: false, queryIntervalSeconds: 10}),
    configure: tuya.configureMagicPacket,
    exposes: [
        tuya.exposes.switch(),
        e.energy(),
        e.power(),
        e.voltage(),
        e.current(),
        e.temperature(),
        e.enum('last_event', ea.STATE, [])
            .withDescription('Last event'),
        e.numeric('leakage_current', ea.STATE).withUnit('mA').withDescription('Leakage current is current that flows from an electrical circuit to the ground'),
        e.enum('leakage_setting', ea.STATE_SET, ['closed', 'alarm', 'trip']).withDescription('Action if threshold value is reached - USE WITH CAUTION - RISK LIFE !!'),
        e
            .numeric('leakage_threshold', ea.STATE_SET)
            .withValueMin(30)
            .withValueMax(300)
            .withValueStep(1)
            .withUnit('mA')
            .withDescription('leakage threshold setting - USE WITH CAUTION - RISK LIFE !! (default=30mA)'),
        e.enum('over_current_setting', ea.STATE_SET, ['closed', 'alarm', 'trip']).withDescription('Action if threshold value is reached'),
        e
            .numeric('current_threshold', ea.STATE_SET)
            .withValueMin(1)
            .withValueMax(40)
            .withValueStep(1)
            .withUnit('A')
            .withDescription('Current threshold setting'),
        e.enum('under_voltage_setting', ea.STATE_SET, ['closed', 'alarm', 'trip']).withDescription('Action if threshold value is reached'),
        e
            .numeric('under_voltage_threshold', ea.STATE_SET)
            .withValueMin(145)
            .withValueMax(220)
            .withValueStep(1)
            .withUnit('V')
            .withDescription('Under voltage threshold setting'),
        e.enum('over_voltage_setting', ea.STATE_SET, ['closed', 'alarm', 'trip']).withDescription('Action if threshold value is reached'),
        e
            .numeric('over_voltage_threshold', ea.STATE_SET)
            .withValueMin(245)
            .withValueMax(295)
            .withValueStep(1)
            .withUnit('V')
            .withDescription('Over-voltage threshold setting'),
        e.enum('over_power_setting', ea.STATE_SET, ['closed', 'alarm', 'trip']).withDescription('Action if threshold value is reached'),
        e
            .numeric('over_power_threshold', ea.STATE_SET)
            .withValueMin(5)
            .withValueMax(25000)
            .withValueStep(100)
            .withUnit('W')
            .withDescription('Over-power threshold setting'),
        e.enum('temperature_setting', ea.STATE_SET, ['closed', 'alarm', 'trip']).withDescription('Action if threshold value is reached'),
        e
            .numeric('temperature_threshold', ea.STATE_SET)
            .withValueMin(-40)
            .withValueMax(100)
            .withValueStep(1)
            .withUnit('°C')
            .withDescription('Temperature threshold setting'),
        e.binary('clear_fault', ea.STATE_SET, 'ON', 'OFF').withLabel('Auto-Reclosing').withDescription('When the circuit breaker trips due to voltage protection, it will automatically close when the circuit voItage returns to normal.(Note: For safety reasons, this function only applies to trips caused by voltage)'),
        e.binary('factory_reset', ea.STATE_SET, 'ON', 'OFF').withDescription('Back to factory settings, USE WITH CAUTION'),
    ],
    meta: {
        tuyaDatapoints: [
            [1, 'energy', tuya.valueConverter.divideBy100],
            [6, null, tuya.valueConverter.phaseVariant2],
            [15, 'leakage_current', tuya.valueConverter.raw],
            [16, 'state', tuya.valueConverter.onOff],
            [102, 'over_voltage_setting', tuya.valueConverterBasic.lookup({closed: tuya.enum(0), alarm: tuya.enum(1), trip: tuya.enum(2)})],
            [103, 'under_voltage_setting', tuya.valueConverterBasic.lookup({closed: tuya.enum(0), alarm: tuya.enum(1), trip: tuya.enum(2)})],
            [104, 'over_current_setting', tuya.valueConverterBasic.lookup({closed: tuya.enum(0), alarm: tuya.enum(1), trip: tuya.enum(2)})],
            [105, 'over_power_setting', tuya.valueConverterBasic.lookup({closed: tuya.enum(0), alarm: tuya.enum(1), trip: tuya.enum(2)})],
            [107, 'temperature_setting', tuya.valueConverterBasic.lookup({closed: tuya.enum(0), alarm: tuya.enum(1), trip: tuya.enum(2)})],
            [108, 'leakage_setting', tuya.valueConverterBasic.lookup({closed: tuya.enum(0), alarm: tuya.enum(1), trip: tuya.enum(2)})],
            //[109, 'online_state, unknown, I have not seen any message from this DP],
            [
                110,
                'last_event',
                tuya.valueConverterBasic.lookup({
                    'Normal': tuya.enum(0),
                    'Trip Over Current': tuya.enum(1),
                    'Trip Over Power': tuya.enum(2),
                    'Trip Over Temperature': tuya.enum(3),
                    'Trip Voltage 1': tuya.enum(4),
                    'Trip Voltage 2': tuya.enum(5),
                    'Alarm Over Current': tuya.enum(6),
                    'Alarm Over Power': tuya.enum(7),
                    'Alarm Over Temperature': tuya.enum(8),
                    'Alarm Voltage 1': tuya.enum(9),
                    'Alarm Voltage 2': tuya.enum(10),
                    'Remote On': tuya.enum(11),
                    'Remote Off': tuya.enum(12),
                    'Manual On': tuya.enum(13),
                    'Manual Off': tuya.enum(14),
                    'Value 15': tuya.enum(15),
                    'Value 16': tuya.enum(16),
                    'Factory Reset': tuya.enum(17),
                }),
            ],
            [112, 'clear_fault', tuya.valueConverter.onOff],
            [113, 'factory_reset', tuya.valueConverter.raw],
            [114, 'current_threshold', tuya.valueConverter.raw],
            [115, 'over_voltage_threshold', tuya.valueConverter.raw],
            [116, 'under_voltage_threshold', tuya.valueConverter.raw],
            [117, 'leakage_threshold', tuya.valueConverter.raw],
            [118, 'temperature_threshold', tuya.valueConverter.divideBy10],
            [119, 'over_power_threshold', tuya.valueConverter.raw],
            [131, 'temperature', tuya.valueConverter.divideBy10],
        ],
    },
};

module.exports = definition;

@terzo33
Copy link
Author

terzo33 commented Aug 19, 2024

Screenshot_20240820_001728_Home Assistant.jpg

Hi, I have these errors for leakage settings and leakage threshold. Someone can help me to fox it?

Thanks a lot

@Koenkk I opened issue for this error...#23669

@Koenkk
Copy link
Owner

Koenkk commented Aug 20, 2024

Try with the latest dev branch

@terzo33
Copy link
Author

terzo33 commented Aug 20, 2024

Try with the latest dev branch

@Koenkk with zigbee2mqtt dev branch seems works, state change correctly in value tab

Screenshot_20240820_212331_Home Assistant.jpg

But z2m give me this error for all settings, seems a bug of the frontend because new value change correctly

Screenshot_20240820_211733_Home Assistant.jpg

@Koenkk
Copy link
Owner

Koenkk commented Aug 21, 2024

Could you provide the debug log of this?

See this on how to enable debug logging.

@Proncio
Copy link

Proncio commented Aug 21, 2024

Your code in leakage settings section indicates A as unit, it should be mA

@terzo33
Copy link
Author

terzo33 commented Aug 21, 2024

Your code in leakage settings section indicates A as unit, it should be mA

Yes, I fix it in new release

@terzo33
Copy link
Author

terzo33 commented Aug 21, 2024

Could you provide the debug log of this?

See this on how to enable debug logging.

@Koenkk This is my log

[2024-08-22 00:36:41] debug: 	zh:zstack:unpi:parser: --- parseNext [254,33,68,129,0,0,0,239,178,251,1,1,0,57,0,127,155,43,0,0,13,9,75,2,0,190,118,2,0,4,0,0,2,138,102,120,28,189]
[2024-08-22 00:36:41] debug: 	zh:zstack:unpi:parser: --> parsed 33 - 2 - 4 - 129 - [0,0,0,239,178,251,1,1,0,57,0,127,155,43,0,0,13,9,75,2,0,190,118,2,0,4,0,0,2,138,102,120,28] - 189
[2024-08-22 00:36:41] debug: 	zh:zstack:znp: AREQ: <-- AF - incomingMsg - {"groupid":0,"clusterid":61184,"srcaddr":64434,"srcendpoint":1,"dstendpoint":1,"wasbroadcast":0,"linkquality":57,"securityuse":0,"timestamp":2857855,"transseqnumber":0,"len":13,"data":{"type":"Buffer","data":[9,75,2,0,190,118,2,0,4,0,0,2,138]}}
[2024-08-22 00:36:41] debug: 	zh:controller: Received payload: clusterID=61184, address=64434, groupID=0, endpoint=1, destinationEndpoint=1, wasBroadcast=false, linkQuality=57, frame={"header":{"frameControl":{"frameType":1,"manufacturerSpecific":false,"direction":1,"disableDefaultResponse":false,"reservedBits":0},"transactionSequenceNumber":75,"commandIdentifier":2},"payload":{"seq":48640,"dpValues":[{"dp":118,"datatype":2,"data":{"type":"Buffer","data":[0,0,2,138]}}]},"command":{"ID":2,"parameters":[{"name":"seq","type":33},{"name":"dpValues","type":1011}],"name":"dataReport"}}
[2024-08-22 00:36:41] debug: 	zh:controller:endpoint: ZCL command 0x187a3efffe4b5765/1 manuSpecificTuya.defaultRsp({"cmdId":2,"statusCode":0}, {"timeout":10000,"disableResponse":false,"disableRecovery":false,"disableDefaultResponse":true,"direction":0,"reservedBits":0,"transactionSequenceNumber":75,"writeUndiv":false})
[2024-08-22 00:36:41] debug: 	zh:zstack: sendZclFrameToEndpointInternal 0x187a3efffe4b5765:64434/1 (0,0,2)
[2024-08-22 00:36:41] debug: 	zh:zstack:znp: SREQ: --> AF - dataRequest - {"dstaddr":64434,"destendpoint":1,"srcendpoint":1,"clusterid":61184,"transid":120,"options":0,"radius":30,"len":5,"data":{"type":"Buffer","data":[16,75,11,2,0]}}
[2024-08-22 00:36:41] debug: 	zh:zstack:unpi:writer: --> frame [254,15,36,1,178,251,1,1,0,239,120,0,30,5,16,75,11,2,0,189]
[2024-08-22 00:36:41] debug: 	zh:zstack:unpi:parser: --- parseNext []
[2024-08-22 00:36:41] debug: 	z2m: Received Zigbee message from 'Salvavita Seminterrato - Zigbee', type 'commandDataReport', cluster 'manuSpecificTuya', data '{"dpValues":[{"data":{"data":[0,0,2,138],"type":"Buffer"},"datatype":2,"dp":118}],"seq":48640}' from endpoint 1 with groupID 0
[2024-08-22 00:36:41] info: 	z2m:mqtt: MQTT publish: topic 'zigbee2mqtt/Salvavita Seminterrato - Zigbee', payload '{"automatic_closing":"OFF","automatic_reclosing":"OFF","clear_fault":"ON","current":0.87,"current_threshold":20,"energy":1422.97,"factory_reset":"OFF","forward_electricity":1419.7,"last_event":"Normal","leakage_current":8,"leakage_setting":"trip","leakage_threshold":30,"linkquality":57,"over_current_setting":"trip","over_power_setting":"closed","over_power_threshold":3500,"over_voltage_setting":"trip","over_voltage_threshold":270,"power":57,"state":"ON","temperature":34,"temperature_setting":"trip","temperature_threshold":65,"under_voltage_setting":"closed","under_voltage_threshold":180,"voltage":238.1}'
[2024-08-22 00:36:41] debug: 	zh:zstack:unpi:parser: <-- [254,1,100,1,0,100]
[2024-08-22 00:36:41] debug: 	zh:zstack:unpi:parser: --- parseNext [254,1,100,1,0,100]
[2024-08-22 00:36:41] debug: 	zh:zstack:unpi:parser: --> parsed 1 - 3 - 4 - 1 - [0] - 100
[2024-08-22 00:36:41] debug: 	zh:zstack:znp: SRSP: <-- AF - dataRequest - {"status":0}
[2024-08-22 00:36:41] debug: 	zh:zstack:unpi:parser: --- parseNext []
[2024-08-22 00:36:41] debug: 	zh:zstack:unpi:parser: <-- [254,3,68,128,0,1,120,190]
[2024-08-22 00:36:41] debug: 	zh:zstack:unpi:parser: --- parseNext [254,3,68,128,0,1,120,190]
[2024-08-22 00:36:41] debug: 	zh:zstack:unpi:parser: --> parsed 3 - 2 - 4 - 128 - [0,1,120] - 190
[2024-08-22 00:36:41] debug: 	zh:zstack:znp: AREQ: <-- AF - dataConfirm - {"status":0,"endpoint":1,"transid":120}
[2024-08-22 00:36:41] debug: 	zh:zstack:unpi:parser: --- parseNext []
[2024-08-22 00:36:41] debug: 	zh:zstack:unpi:parser: <-- [254,33,68,129,0,0,0,239,178,251,1,1,0,57,0,132,156,43,0,0,13,9,76,2,0,191,119,2,0,4,0,0,13,172,102,120,28,111]
[2024-08-22 00:36:41] debug: 	zh:zstack:unpi:parser: --- parseNext [254,33,68,129,0,0,0,239,178,251,1,1,0,57,0,132,156,43,0,0,13,9,76,2,0,191,119,2,0,4,0,0,13,172,102,120,28,111]
[2024-08-22 00:36:41] debug: 	zh:zstack:unpi:parser: --> parsed 33 - 2 - 4 - 129 - [0,0,0,239,178,251,1,1,0,57,0,132,156,43,0,0,13,9,76,2,0,191,119,2,0,4,0,0,13,172,102,120,28] - 111
[2024-08-22 00:36:41] debug: 	zh:zstack:znp: AREQ: <-- AF - incomingMsg - {"groupid":0,"clusterid":61184,"srcaddr":64434,"srcendpoint":1,"dstendpoint":1,"wasbroadcast":0,"linkquality":57,"securityuse":0,"timestamp":2858116,"transseqnumber":0,"len":13,"data":{"type":"Buffer","data":[9,76,2,0,191,119,2,0,4,0,0,13,172]}}
[2024-08-22 00:36:41] debug: 	zh:controller: Received payload: clusterID=61184, address=64434, groupID=0, endpoint=1, destinationEndpoint=1, wasBroadcast=false, linkQuality=57, frame={"header":{"frameControl":{"frameType":1,"manufacturerSpecific":false,"direction":1,"disableDefaultResponse":false,"reservedBits":0},"transactionSequenceNumber":76,"commandIdentifier":2},"payload":{"seq":48896,"dpValues":[{"dp":119,"datatype":2,"data":{"type":"Buffer","data":[0,0,13,172]}}]},"command":{"ID":2,"parameters":[{"name":"seq","type":33},{"name":"dpValues","type":1011}],"name":"dataReport"}}
[2024-08-22 00:36:41] debug: 	zh:controller:endpoint: ZCL command 0x187a3efffe4b5765/1 manuSpecificTuya.defaultRsp({"cmdId":2,"statusCode":0}, {"timeout":10000,"disableResponse":false,"disableRecovery":false,"disableDefaultResponse":true,"direction":0,"reservedBits":0,"transactionSequenceNumber":76,"writeUndiv":false})
[2024-08-22 00:36:41] debug: 	zh:zstack: sendZclFrameToEndpointInternal 0x187a3efffe4b5765:64434/1 (0,0,2)
[2024-08-22 00:36:41] debug: 	zh:zstack:znp: SREQ: --> AF - dataRequest - {"dstaddr":64434,"destendpoint":1,"srcendpoint":1,"clusterid":61184,"transid":121,"options":0,"radius":30,"len":5,"data":{"type":"Buffer","data":[16,76,11,2,0]}}
[2024-08-22 00:36:41] debug: 	zh:zstack:unpi:writer: --> frame [254,15,36,1,178,251,1,1,0,239,121,0,30,5,16,76,11,2,0,187]
[2024-08-22 00:36:41] debug: 	zh:zstack:unpi:parser: --- parseNext []
[2024-08-22 00:36:41] debug: 	z2m: Received Zigbee message from 'Salvavita Seminterrato - Zigbee', type 'commandDataReport', cluster 'manuSpecificTuya', data '{"dpValues":[{"data":{"data":[0,0,13,172],"type":"Buffer"},"datatype":2,"dp":119}],"seq":48896}' from endpoint 1 with groupID 0
[2024-08-22 00:36:41] info: 	z2m:mqtt: MQTT publish: topic 'zigbee2mqtt/Salvavita Seminterrato - Zigbee', payload '{"automatic_closing":"OFF","automatic_reclosing":"OFF","clear_fault":"ON","current":0.87,"current_threshold":20,"energy":1422.97,"factory_reset":"OFF","forward_electricity":1419.7,"last_event":"Normal","leakage_current":8,"leakage_setting":"trip","leakage_threshold":30,"linkquality":57,"over_current_setting":"trip","over_power_setting":"closed","over_power_threshold":3500,"over_voltage_setting":"trip","over_voltage_threshold":270,"power":57,"state":"ON","temperature":34,"temperature_setting":"trip","temperature_threshold":65,"under_voltage_setting":"closed","under_voltage_threshold":180,"voltage":238.1}'
[2024-08-22 00:36:41] debug: 	zh:zstack:unpi:parser: <-- [254,1,100,1,0,100]
[2024-08-22 00:36:41] debug: 	zh:zstack:unpi:parser: --- parseNext [254,1,100,1,0,100]
[2024-08-22 00:36:41] debug: 	zh:zstack:unpi:parser: --> parsed 1 - 3 - 4 - 1 - [0] - 100
[2024-08-22 00:36:41] debug: 	zh:zstack:znp: SRSP: <-- AF - dataRequest - {"status":0}
[2024-08-22 00:36:41] debug: 	zh:zstack:unpi:parser: --- parseNext []
[2024-08-22 00:36:41] debug: 	zh:zstack:unpi:parser: <-- [254,3,68,128,0,1,121,191]
[2024-08-22 00:36:41] debug: 	zh:zstack:unpi:parser: --- parseNext [254,3,68,128,0,1,121,191]
[2024-08-22 00:36:41] debug: 	zh:zstack:unpi:parser: --> parsed 3 - 2 - 4 - 128 - [0,1,121] - 191
[2024-08-22 00:36:41] debug: 	zh:zstack:znp: AREQ: <-- AF - dataConfirm - {"status":0,"endpoint":1,"transid":121}
[2024-08-22 00:36:41] debug: 	zh:zstack:unpi:parser: --- parseNext []
[2024-08-22 00:36:41] debug: 	zh:zstack:unpi:parser: <-- [254,28,68,129,0,0,4,11,147,38,1,1,0,57,0,13,157,43,0,0,8,24,46,10,8,5,33,195,0,102,120,28]
[2024-08-22 00:36:41] debug: 	zh:zstack:unpi:parser: --- parseNext [254,28,68,129,0,0,4,11,147,38,1,1,0,57,0,13,157,43,0,0,8,24,46,10,8,5,33,195,0,102,120,28]
[2024-08-22 00:36:41] debug: 	zh:zstack:unpi:parser: <-- [56]
[2024-08-22 00:36:41] debug: 	zh:zstack:unpi:parser: --- parseNext [254,28,68,129,0,0,4,11,147,38,1,1,0,57,0,13,157,43,0,0,8,24,46,10,8,5,33,195,0,102,120,28,56]
[2024-08-22 00:36:41] debug: 	zh:zstack:unpi:parser: --> parsed 28 - 2 - 4 - 129 - [0,0,4,11,147,38,1,1,0,57,0,13,157,43,0,0,8,24,46,10,8,5,33,195,0,102,120,28] - 56
[2024-08-22 00:36:41] debug: 	zh:zstack:znp: AREQ: <-- AF - incomingMsg - {"groupid":0,"clusterid":2820,"srcaddr":9875,"srcendpoint":1,"dstendpoint":1,"wasbroadcast":0,"linkquality":57,"securityuse":0,"timestamp":2858253,"transseqnumber":0,"len":8,"data":{"type":"Buffer","data":[24,46,10,8,5,33,195,0]}}
[2024-08-22 00:36:41] debug: 	zh:controller: Received payload: clusterID=2820, address=9875, groupID=0, endpoint=1, destinationEndpoint=1, wasBroadcast=false, linkQuality=57, frame={"header":{"frameControl":{"frameType":0,"manufacturerSpecific":false,"direction":1,"disableDefaultResponse":true,"reservedBits":0},"transactionSequenceNumber":46,"commandIdentifier":10},"payload":[{"attrId":1288,"dataType":33,"attrData":195}],"command":{"ID":10,"name":"report","parameters":[{"name":"attrId","type":33},{"name":"dataType","type":32},{"name":"attrData","type":1000}]}}
[2024-08-22 00:36:41] debug: 	zh:zstack:unpi:parser: --- parseNext []
[2024-08-22 00:36:41] debug: 	z2m: Received Zigbee message from 'Prese Lavanderia - Zigbee', type 'attributeReport', cluster 'haElectricalMeasurement', data '{"rmsCurrent":195}' from endpoint 1 with groupID 0
[2024-08-22 00:36:41] info: 	z2m:mqtt: MQTT publish: topic 'zigbee2mqtt/Prese Lavanderia - Zigbee', payload '{"current":0.2,"energy":161.44,"indicator_mode":"off/on","linkquality":57,"over_current_breaker":"ON","over_current_threshold":65,"over_voltage_breaker":"ON","over_voltage_threshold":265,"power":3,"power_breaker":"ON","power_outage_memory":"restore","power_threshold":13,"state":"ON","temperature":33.06,"temperature_breaker":"ON","temperature_threshold":100,"under_voltage_breaker":"ON","under_voltage_threshold":75,"update":{"installed_version":-1,"latest_version":-1,"state":null},"update_available":null,"voltage":239}'
[2024-08-22 00:36:41] debug: 	zh:zstack:unpi:parser: <-- [254,33,68,129,0,0,0,239,178,251,1,1,0,57,0,151,157,43,0,0,13,9,77,2,0,192,125,2,0,4,0,2]
[2024-08-22 00:36:41] debug: 	zh:zstack:unpi:parser: --- parseNext [254,33,68,129,0,0,0,239,178,251,1,1,0,57,0,151,157,43,0,0,13,9,77,2,0,192,125,2,0,4,0,2]
[2024-08-22 00:36:41] debug: 	zh:zstack:unpi:parser: <-- [43,217,102,120,28,88]
[2024-08-22 00:36:41] debug: 	zh:zstack:unpi:parser: --- parseNext [254,33,68,129,0,0,0,239,178,251,1,1,0,57,0,151,157,43,0,0,13,9,77,2,0,192,125,2,0,4,0,2,43,217,102,120,28,88]
[2024-08-22 00:36:41] debug: 	zh:zstack:unpi:parser: --> parsed 33 - 2 - 4 - 129 - [0,0,0,239,178,251,1,1,0,57,0,151,157,43,0,0,13,9,77,2,0,192,125,2,0,4,0,2,43,217,102,120,28] - 88
[2024-08-22 00:36:41] debug: 	zh:zstack:znp: AREQ: <-- AF - incomingMsg - {"groupid":0,"clusterid":61184,"srcaddr":64434,"srcendpoint":1,"dstendpoint":1,"wasbroadcast":0,"linkquality":57,"securityuse":0,"timestamp":2858391,"transseqnumber":0,"len":13,"data":{"type":"Buffer","data":[9,77,2,0,192,125,2,0,4,0,2,43,217]}}
[2024-08-22 00:36:41] debug: 	zh:controller: Received payload: clusterID=61184, address=64434, groupID=0, endpoint=1, destinationEndpoint=1, wasBroadcast=false, linkQuality=57, frame={"header":{"frameControl":{"frameType":1,"manufacturerSpecific":false,"direction":1,"disableDefaultResponse":false,"reservedBits":0},"transactionSequenceNumber":77,"commandIdentifier":2},"payload":{"seq":49152,"dpValues":[{"dp":125,"datatype":2,"data":{"type":"Buffer","data":[0,2,43,217]}}]},"command":{"ID":2,"parameters":[{"name":"seq","type":33},{"name":"dpValues","type":1011}],"name":"dataReport"}}
[2024-08-22 00:36:41] debug: 	zh:controller:endpoint: ZCL command 0x187a3efffe4b5765/1 manuSpecificTuya.defaultRsp({"cmdId":2,"statusCode":0}, {"timeout":10000,"disableResponse":false,"disableRecovery":false,"disableDefaultResponse":true,"direction":0,"reservedBits":0,"transactionSequenceNumber":77,"writeUndiv":false})
[2024-08-22 00:36:41] debug: 	zh:zstack: sendZclFrameToEndpointInternal 0x187a3efffe4b5765:64434/1 (0,0,2)
[2024-08-22 00:36:41] debug: 	zh:zstack:znp: SREQ: --> AF - dataRequest - {"dstaddr":64434,"destendpoint":1,"srcendpoint":1,"clusterid":61184,"transid":122,"options":0,"radius":30,"len":5,"data":{"type":"Buffer","data":[16,77,11,2,0]}}
[2024-08-22 00:36:41] debug: 	zh:zstack:unpi:writer: --> frame [254,15,36,1,178,251,1,1,0,239,122,0,30,5,16,77,11,2,0,185]
[2024-08-22 00:36:41] debug: 	zh:zstack:unpi:parser: --- parseNext []
[2024-08-22 00:36:41] debug: 	z2m: Received Zigbee message from 'Salvavita Seminterrato - Zigbee', type 'commandDataReport', cluster 'manuSpecificTuya', data '{"dpValues":[{"data":{"data":[0,2,43,217],"type":"Buffer"},"datatype":2,"dp":125}],"seq":49152}' from endpoint 1 with groupID 0
[2024-08-22 00:36:41] debug: 	zhc:tuya: Datapoint 125 not defined for '_TZE204_kobbcyum' with value 142297
[2024-08-22 00:36:41] debug: 	zh:zstack:unpi:parser: <-- [254,1,100,1,0,100]
[2024-08-22 00:36:41] debug: 	zh:zstack:unpi:parser: --- parseNext [254,1,100,1,0,100]
[2024-08-22 00:36:41] debug: 	zh:zstack:unpi:parser: --> parsed 1 - 3 - 4 - 1 - [0] - 100
[2024-08-22 00:36:41] debug: 	zh:zstack:znp: SRSP: <-- AF - dataRequest - {"status":0}
[2024-08-22 00:36:41] debug: 	zh:zstack:unpi:parser: --- parseNext []
[2024-08-22 00:36:41] debug: 	zh:zstack:unpi:parser: <-- [254,3,68,128,0,1,122,188]
[2024-08-22 00:36:41] debug: 	zh:zstack:unpi:parser: --- parseNext [254,3,68,128,0,1,122,188]
[2024-08-22 00:36:41] debug: 	zh:zstack:unpi:parser: --> parsed 3 - 2 - 4 - 128 - [0,1,122] - 188
[2024-08-22 00:36:41] debug: 	zh:zstack:znp: AREQ: <-- AF - dataConfirm - {"status":0,"endpoint":1,"transid":122}
[2024-08-22 00:36:41] debug: 	zh:zstack:unpi:parser: --- parseNext []
[2024-08-22 00:36:41] debug: 	zh:zstack:unpi:parser: <-- [254,33,68,129,0,0,0,239,178,251,1,1,0,57,0,135,158,43,0,0,13,9,78,2,0,193,131,2,0,4,0,0]
[2024-08-22 00:36:41] debug: 	zh:zstack:unpi:parser: --- parseNext [254,33,68,129,0,0,0,239,178,251,1,1,0,57,0,135,158,43,0,0,13,9,78,2,0,193,131,2,0,4,0,0]
[2024-08-22 00:36:41] debug: 	zh:zstack:unpi:parser: <-- [1,84,102,120,28,18]
[2024-08-22 00:36:41] debug: 	zh:zstack:unpi:parser: --- parseNext [254,33,68,129,0,0,0,239,178,251,1,1,0,57,0,135,158,43,0,0,13,9,78,2,0,193,131,2,0,4,0,0,1,84,102,120,28,18]
[2024-08-22 00:36:41] debug: 	zh:zstack:unpi:parser: --> parsed 33 - 2 - 4 - 129 - [0,0,0,239,178,251,1,1,0,57,0,135,158,43,0,0,13,9,78,2,0,193,131,2,0,4,0,0,1,84,102,120,28] - 18
[2024-08-22 00:36:41] debug: 	zh:zstack:znp: AREQ: <-- AF - incomingMsg - {"groupid":0,"clusterid":61184,"srcaddr":64434,"srcendpoint":1,"dstendpoint":1,"wasbroadcast":0,"linkquality":57,"securityuse":0,"timestamp":2858631,"transseqnumber":0,"len":13,"data":{"type":"Buffer","data":[9,78,2,0,193,131,2,0,4,0,0,1,84]}}
[2024-08-22 00:36:41] debug: 	zh:controller: Received payload: clusterID=61184, address=64434, groupID=0, endpoint=1, destinationEndpoint=1, wasBroadcast=false, linkQuality=57, frame={"header":{"frameControl":{"frameType":1,"manufacturerSpecific":false,"direction":1,"disableDefaultResponse":false,"reservedBits":0},"transactionSequenceNumber":78,"commandIdentifier":2},"payload":{"seq":49408,"dpValues":[{"dp":131,"datatype":2,"data":{"type":"Buffer","data":[0,0,1,84]}}]},"command":{"ID":2,"parameters":[{"name":"seq","type":33},{"name":"dpValues","type":1011}],"name":"dataReport"}}
[2024-08-22 00:36:41] debug: 	zh:controller:endpoint: ZCL command 0x187a3efffe4b5765/1 manuSpecificTuya.defaultRsp({"cmdId":2,"statusCode":0}, {"timeout":10000,"disableResponse":false,"disableRecovery":false,"disableDefaultResponse":true,"direction":0,"reservedBits":0,"transactionSequenceNumber":78,"writeUndiv":false})
[2024-08-22 00:36:41] debug: 	zh:zstack: sendZclFrameToEndpointInternal 0x187a3efffe4b5765:64434/1 (0,0,2)
[2024-08-22 00:36:41] debug: 	zh:zstack:znp: SREQ: --> AF - dataRequest - {"dstaddr":64434,"destendpoint":1,"srcendpoint":1,"clusterid":61184,"transid":123,"options":0,"radius":30,"len":5,"data":{"type":"Buffer","data":[16,78,11,2,0]}}
[2024-08-22 00:36:41] debug: 	zh:zstack:unpi:writer: --> frame [254,15,36,1,178,251,1,1,0,239,123,0,30,5,16,78,11,2,0,187]
[2024-08-22 00:36:41] debug: 	zh:zstack:unpi:parser: --- parseNext []
[2024-08-22 00:36:41] debug: 	z2m: Received Zigbee message from 'Salvavita Seminterrato - Zigbee', type 'commandDataReport', cluster 'manuSpecificTuya', data '{"dpValues":[{"data":{"data":[0,0,1,84],"type":"Buffer"},"datatype":2,"dp":131}],"seq":49408}' from endpoint 1 with groupID 0
[2024-08-22 00:36:41] info: 	z2m:mqtt: MQTT publish: topic 'zigbee2mqtt/Salvavita Seminterrato - Zigbee', payload '{"automatic_closing":"OFF","automatic_reclosing":"OFF","clear_fault":"ON","current":0.87,"current_threshold":20,"energy":1422.97,"factory_reset":"OFF","forward_electricity":1419.7,"last_event":"Normal","leakage_current":8,"leakage_setting":"trip","leakage_threshold":30,"linkquality":57,"over_current_setting":"trip","over_power_setting":"closed","over_power_threshold":3500,"over_voltage_setting":"trip","over_voltage_threshold":270,"power":57,"state":"ON","temperature":34,"temperature_setting":"trip","temperature_threshold":65,"under_voltage_setting":"closed","under_voltage_threshold":180,"voltage":238.1}'
[2024-08-22 00:36:41] debug: 	zh:zstack:unpi:parser: <-- [254,1,100,1,0,100]
[2024-08-22 00:36:41] debug: 	zh:zstack:unpi:parser: --- parseNext [254,1,100,1,0,100]
[2024-08-22 00:36:41] debug: 	zh:zstack:unpi:parser: --> parsed 1 - 3 - 4 - 1 - [0] - 100
[2024-08-22 00:36:41] debug: 	zh:zstack:znp: SRSP: <-- AF - dataRequest - {"status":0}
[2024-08-22 00:36:41] debug: 	zh:zstack:unpi:parser: --- parseNext []
[2024-08-22 00:36:41] debug: 	zh:zstack:unpi:parser: <-- [254,3,68,128,0,1,123,189]
[2024-08-22 00:36:41] debug: 	zh:zstack:unpi:parser: --- parseNext [254,3,68,128,0,1,123,189]
[2024-08-22 00:36:41] debug: 	zh:zstack:unpi:parser: --> parsed 3 - 2 - 4 - 128 - [0,1,123] - 189
[2024-08-22 00:36:41] debug: 	zh:zstack:znp: AREQ: <-- AF - dataConfirm - {"status":0,"endpoint":1,"transid":123}
[2024-08-22 00:36:41] debug: 	zh:zstack:unpi:parser: --- parseNext []
[2024-08-22 00:26:29] debug: 	zh:zstack:unpi:parser: --- parseNext [254,1,100,1,0,100]
[2024-08-22 00:26:29] debug: 	zh:zstack:unpi:parser: --> parsed 1 - 3 - 4 - 1 - [0] - 100
[2024-08-22 00:26:29] debug: 	zh:zstack:znp: SRSP: <-- AF - dataRequest - {"status":0}
[2024-08-22 00:26:29] debug: 	zh:zstack:unpi:parser: --- parseNext []
[2024-08-22 00:26:29] debug: 	zh:zstack:unpi:parser: <-- [254,3,68,128,0,1,120,190]
[2024-08-22 00:26:29] debug: 	zh:zstack:unpi:parser: --- parseNext [254,3,68,128,0,1,120,190]
[2024-08-22 00:26:29] debug: 	zh:zstack:unpi:parser: --> parsed 3 - 2 - 4 - 128 - [0,1,120] - 190
[2024-08-22 00:26:29] debug: 	zh:zstack:znp: AREQ: <-- AF - dataConfirm - {"status":0,"endpoint":1,"transid":120}
[2024-08-22 00:26:29] debug: 	zh:zstack:unpi:parser: --- parseNext []
[2024-08-22 00:26:29] debug: 	zh:zstack:unpi:parser: <-- [254,5,69,196,178,251,1,102,120,210]
[2024-08-22 00:26:29] debug: 	zh:zstack:unpi:parser: --- parseNext [254,5,69,196,178,251,1,102,120,210]
[2024-08-22 00:26:29] debug: 	zh:zstack:unpi:parser: --> parsed 5 - 2 - 5 - 196 - [178,251,1,102,120] - 210
[2024-08-22 00:26:29] debug: 	zh:zstack:znp: AREQ: <-- ZDO - srcRtgInd - {"dstaddr":64434,"relaycount":1,"relaylist":[30822]}
[2024-08-22 00:26:29] debug: 	zh:zstack:unpi:parser: --- parseNext []
[2024-08-22 00:26:30] debug: 	zh:zstack:unpi:parser: <-- [254,30,68,129,0,0,0,239,178,251,1,1,0,57,0,220,115,14,0,0,10,9,118,2,0,238,102,4,0,1,2,102]
[2024-08-22 00:26:30] debug: 	zh:zstack:unpi:parser: --- parseNext [254,30,68,129,0,0,0,239,178,251,1,1,0,57,0,220,115,14,0,0,10,9,118,2,0,238,102,4,0,1,2,102]
[2024-08-22 00:26:30] debug: 	zh:zstack:unpi:parser: <-- [120,28,31]
[2024-08-22 00:26:30] debug: 	zh:zstack:unpi:parser: --- parseNext [254,30,68,129,0,0,0,239,178,251,1,1,0,57,0,220,115,14,0,0,10,9,118,2,0,238,102,4,0,1,2,102,120,28,31]
[2024-08-22 00:26:30] debug: 	zh:zstack:unpi:parser: --> parsed 30 - 2 - 4 - 129 - [0,0,0,239,178,251,1,1,0,57,0,220,115,14,0,0,10,9,118,2,0,238,102,4,0,1,2,102,120,28] - 31
[2024-08-22 00:26:30] debug: 	zh:zstack:znp: AREQ: <-- AF - incomingMsg - {"groupid":0,"clusterid":61184,"srcaddr":64434,"srcendpoint":1,"dstendpoint":1,"wasbroadcast":0,"linkquality":57,"securityuse":0,"timestamp":947164,"transseqnumber":0,"len":10,"data":{"type":"Buffer","data":[9,118,2,0,238,102,4,0,1,2]}}
[2024-08-22 00:26:30] debug: 	zh:controller: Received payload: clusterID=61184, address=64434, groupID=0, endpoint=1, destinationEndpoint=1, wasBroadcast=false, linkQuality=57, frame={"header":{"frameControl":{"frameType":1,"manufacturerSpecific":false,"direction":1,"disableDefaultResponse":false,"reservedBits":0},"transactionSequenceNumber":118,"commandIdentifier":2},"payload":{"seq":60928,"dpValues":[{"dp":102,"datatype":4,"data":{"type":"Buffer","data":[2]}}]},"command":{"ID":2,"parameters":[{"name":"seq","type":33},{"name":"dpValues","type":1011}],"name":"dataReport"}}
[2024-08-22 00:26:30] debug: 	zh:controller:endpoint: ZCL command 0x187a3efffe4b5765/1 manuSpecificTuya.defaultRsp({"cmdId":2,"statusCode":0}, {"timeout":10000,"disableResponse":false,"disableRecovery":false,"disableDefaultResponse":true,"direction":0,"reservedBits":0,"transactionSequenceNumber":118,"writeUndiv":false})
[2024-08-22 00:26:30] debug: 	zh:zstack: sendZclFrameToEndpointInternal 0x187a3efffe4b5765:64434/1 (0,0,1)
[2024-08-22 00:26:30] debug: 	zh:zstack:znp: SREQ: --> AF - dataRequest - {"dstaddr":64434,"destendpoint":1,"srcendpoint":1,"clusterid":61184,"transid":121,"options":0,"radius":30,"len":5,"data":{"type":"Buffer","data":[16,118,11,2,0]}}
[2024-08-22 00:26:30] debug: 	zh:zstack:unpi:writer: --> frame [254,15,36,1,178,251,1,1,0,239,121,0,30,5,16,118,11,2,0,129]
[2024-08-22 00:26:30] debug: 	zh:zstack:unpi:parser: --- parseNext []
[2024-08-22 00:26:30] debug: 	z2m: Received Zigbee message from 'Salvavita Seminterrato - Zigbee', type 'commandDataReport', cluster 'manuSpecificTuya', data '{"dpValues":[{"data":{"data":[2],"type":"Buffer"},"datatype":4,"dp":102}],"seq":60928}' from endpoint 1 with groupID 0
[2024-08-22 00:26:30] info: 	z2m:mqtt: MQTT publish: topic 'zigbee2mqtt/Salvavita Seminterrato - Zigbee', payload '{"automatic_closing":"OFF","automatic_reclosing":"OFF","clear_fault":"ON","current":0.87,"current_threshold":20,"energy":1422.96,"factory_reset":"OFF","forward_electricity":1419.7,"last_event":"Normal","leakage_current":8,"leakage_setting":"trip","leakage_threshold":30,"linkquality":57,"over_current_setting":"trip","over_power_setting":"closed","over_power_threshold":3500,"over_voltage_setting":"trip","over_voltage_threshold":270,"power":58,"state":"ON","temperature":34,"temperature_setting":"trip","temperature_threshold":65,"under_voltage_setting":"closed","under_voltage_threshold":180,"voltage":238}'
[2024-08-22 00:26:30] debug: 	zh:zstack:unpi:parser: <-- [254,1,100,1,0,100]
[2024-08-22 00:26:30] debug: 	zh:zstack:unpi:parser: --- parseNext [254,1,100,1,0,100]
[2024-08-22 00:26:30] debug: 	zh:zstack:unpi:parser: --> parsed 1 - 3 - 4 - 1 - [0] - 100
[2024-08-22 00:26:30] debug: 	zh:zstack:znp: SRSP: <-- AF - dataRequest - {"status":0}
[2024-08-22 00:26:30] debug: 	zh:zstack:unpi:parser: --- parseNext []
[2024-08-22 00:26:30] debug: 	zh:zstack:unpi:parser: <-- [254,3,68,128,0,1,121,191]
[2024-08-22 00:26:30] debug: 	zh:zstack:unpi:parser: --- parseNext [254,3,68,128,0,1,121,191]
[2024-08-22 00:26:30] debug: 	zh:zstack:unpi:parser: --> parsed 3 - 2 - 4 - 128 - [0,1,121] - 191
[2024-08-22 00:26:30] debug: 	zh:zstack:znp: AREQ: <-- AF - dataConfirm - {"status":0,"endpoint":1,"transid":121}
[2024-08-22 00:26:30] debug: 	zh:zstack:unpi:parser: --- parseNext []
[2024-08-22 00:26:30] debug: 	zh:zstack:unpi:parser: <-- [254,5,69,196,178,251,1,102,120,210]
[2024-08-22 00:26:30] debug: 	zh:zstack:unpi:parser: --- parseNext [254,5,69,196,178,251,1,102,120,210]
[2024-08-22 00:26:30] debug: 	zh:zstack:unpi:parser: --> parsed 5 - 2 - 5 - 196 - [178,251,1,102,120] - 210
[2024-08-22 00:26:30] debug: 	zh:zstack:znp: AREQ: <-- ZDO - srcRtgInd - {"dstaddr":64434,"relaycount":1,"relaylist":[30822]}
[2024-08-22 00:26:30] debug: 	zh:zstack:unpi:parser: --- parseNext []
[2024-08-22 00:26:30] debug: 	zh:zstack:unpi:parser: <-- [254,30,68,129,0,0,0,239,178,251,1,1,0,57,0,94,117,14,0,0,10,9,119,2,0,239,103,4,0,1,0,102]
[2024-08-22 00:26:30] debug: 	zh:zstack:unpi:parser: --- parseNext [254,30,68,129,0,0,0,239,178,251,1,1,0,57,0,94,117,14,0,0,10,9,119,2,0,239,103,4,0,1,0,102]
[2024-08-22 00:26:30] debug: 	zh:zstack:unpi:parser: <-- [120,28,152]
[2024-08-22 00:26:30] debug: 	zh:zstack:unpi:parser: --- parseNext [254,30,68,129,0,0,0,239,178,251,1,1,0,57,0,94,117,14,0,0,10,9,119,2,0,239,103,4,0,1,0,102,120,28,152]
[2024-08-22 00:26:30] debug: 	zh:zstack:unpi:parser: --> parsed 30 - 2 - 4 - 129 - [0,0,0,239,178,251,1,1,0,57,0,94,117,14,0,0,10,9,119,2,0,239,103,4,0,1,0,102,120,28] - 152
[2024-08-22 00:26:30] debug: 	zh:zstack:znp: AREQ: <-- AF - incomingMsg - {"groupid":0,"clusterid":61184,"srcaddr":64434,"srcendpoint":1,"dstendpoint":1,"wasbroadcast":0,"linkquality":57,"securityuse":0,"timestamp":947550,"transseqnumber":0,"len":10,"data":{"type":"Buffer","data":[9,119,2,0,239,103,4,0,1,0]}}
[2024-08-22 00:26:30] debug: 	zh:controller: Received payload: clusterID=61184, address=64434, groupID=0, endpoint=1, destinationEndpoint=1, wasBroadcast=false, linkQuality=57, frame={"header":{"frameControl":{"frameType":1,"manufacturerSpecific":false,"direction":1,"disableDefaultResponse":false,"reservedBits":0},"transactionSequenceNumber":119,"commandIdentifier":2},"payload":{"seq":61184,"dpValues":[{"dp":103,"datatype":4,"data":{"type":"Buffer","data":[0]}}]},"command":{"ID":2,"parameters":[{"name":"seq","type":33},{"name":"dpValues","type":1011}],"name":"dataReport"}}
[2024-08-22 00:26:30] debug: 	zh:controller:endpoint: ZCL command 0x187a3efffe4b5765/1 manuSpecificTuya.defaultRsp({"cmdId":2,"statusCode":0}, {"timeout":10000,"disableResponse":false,"disableRecovery":false,"disableDefaultResponse":true,"direction":0,"reservedBits":0,"transactionSequenceNumber":119,"writeUndiv":false})
[2024-08-22 00:26:30] debug: 	zh:zstack: sendZclFrameToEndpointInternal 0x187a3efffe4b5765:64434/1 (0,0,1)
[2024-08-22 00:26:30] debug: 	zh:zstack:znp: SREQ: --> AF - dataRequest - {"dstaddr":64434,"destendpoint":1,"srcendpoint":1,"clusterid":61184,"transid":122,"options":0,"radius":30,"len":5,"data":{"type":"Buffer","data":[16,119,11,2,0]}}
[2024-08-22 00:26:30] debug: 	zh:zstack:unpi:writer: --> frame [254,15,36,1,178,251,1,1,0,239,122,0,30,5,16,119,11,2,0,131]
[2024-08-22 00:26:30] debug: 	zh:zstack:unpi:parser: --- parseNext []
[2024-08-22 00:26:30] debug: 	z2m: Received Zigbee message from 'Salvavita Seminterrato - Zigbee', type 'commandDataReport', cluster 'manuSpecificTuya', data '{"dpValues":[{"data":{"data":[0],"type":"Buffer"},"datatype":4,"dp":103}],"seq":61184}' from endpoint 1 with groupID 0
[2024-08-22 00:26:30] info: 	z2m:mqtt: MQTT publish: topic 'zigbee2mqtt/Salvavita Seminterrato - Zigbee', payload '{"automatic_closing":"OFF","automatic_reclosing":"OFF","clear_fault":"ON","current":0.87,"current_threshold":20,"energy":1422.96,"factory_reset":"OFF","forward_electricity":1419.7,"last_event":"Normal","leakage_current":8,"leakage_setting":"trip","leakage_threshold":30,"linkquality":57,"over_current_setting":"trip","over_power_setting":"closed","over_power_threshold":3500,"over_voltage_setting":"trip","over_voltage_threshold":270,"power":58,"state":"ON","temperature":34,"temperature_setting":"trip","temperature_threshold":65,"under_voltage_setting":"closed","under_voltage_threshold":180,"voltage":238}'
[2024-08-22 00:26:30] debug: 	zh:zstack:unpi:parser: <-- [254,1,100,1,0,100]
[2024-08-22 00:26:30] debug: 	zh:zstack:unpi:parser: --- parseNext [254,1,100,1,0,100]
[2024-08-22 00:26:30] debug: 	zh:zstack:unpi:parser: --> parsed 1 - 3 - 4 - 1 - [0] - 100
[2024-08-22 00:26:30] debug: 	zh:zstack:znp: SRSP: <-- AF - dataRequest - {"status":0}
[2024-08-22 00:26:30] debug: 	zh:zstack:unpi:parser: --- parseNext []
[2024-08-22 00:26:30] debug: 	zh:zstack:unpi:parser: <-- [254,3,68,128,0,1,122,188]
[2024-08-22 00:26:30] debug: 	zh:zstack:unpi:parser: --- parseNext [254,3,68,128,0,1,122,188]
[2024-08-22 00:26:30] debug: 	zh:zstack:unpi:parser: --> parsed 3 - 2 - 4 - 128 - [0,1,122] - 188
[2024-08-22 00:26:30] debug: 	zh:zstack:znp: AREQ: <-- AF - dataConfirm - {"status":0,"endpoint":1,"transid":122}
[2024-08-22 00:26:30] debug: 	zh:zstack:unpi:parser: --- parseNext []
[2024-08-22 00:26:30] debug: 	zh:zstack:unpi:parser: <-- [254,5,69,196,178,251,1,102,120,210]
[2024-08-22 00:26:30] debug: 	zh:zstack:unpi:parser: --- parseNext [254,5,69,196,178,251,1,102,120,210]
[2024-08-22 00:26:30] debug: 	zh:zstack:unpi:parser: --> parsed 5 - 2 - 5 - 196 - [178,251,1,102,120] - 210
[2024-08-22 00:26:30] debug: 	zh:zstack:znp: AREQ: <-- ZDO - srcRtgInd - {"dstaddr":64434,"relaycount":1,"relaylist":[30822]}
[2024-08-22 00:26:30] debug: 	zh:zstack:unpi:parser: --- parseNext []
[2024-08-22 00:26:30] debug: 	zh:zstack:unpi:parser: <-- [254,30,68,129,0,0,0,239,178,251,1,1,0,57,0,239,118,14,0,0,10,9,120,2,0,240,104,4,0,1,2,102]
[2024-08-22 00:26:30] debug: 	zh:zstack:unpi:parser: --- parseNext [254,30,68,129,0,0,0,239,178,251,1,1,0,57,0,239,118,14,0,0,10,9,120,2,0,240,104,4,0,1,2,102]
[2024-08-22 00:26:30] debug: 	zh:zstack:unpi:parser: <-- [120,28,55]
[2024-08-22 00:26:30] debug: 	zh:zstack:unpi:parser: --- parseNext [254,30,68,129,0,0,0,239,178,251,1,1,0,57,0,239,118,14,0,0,10,9,120,2,0,240,104,4,0,1,2,102,120,28,55]
[2024-08-22 00:26:30] debug: 	zh:zstack:unpi:parser: --> parsed 30 - 2 - 4 - 129 - [0,0,0,239,178,251,1,1,0,57,0,239,118,14,0,0,10,9,120,2,0,240,104,4,0,1,2,102,120,28] - 55
[2024-08-22 00:26:30] debug: 	zh:zstack:znp: AREQ: <-- AF - incomingMsg - {"groupid":0,"clusterid":61184,"srcaddr":64434,"srcendpoint":1,"dstendpoint":1,"wasbroadcast":0,"linkquality":57,"securityuse":0,"timestamp":947951,"transseqnumber":0,"len":10,"data":{"type":"Buffer","data":[9,120,2,0,240,104,4,0,1,2]}}
[2024-08-22 00:26:30] debug: 	zh:controller: Received payload: clusterID=61184, address=64434, groupID=0, endpoint=1, destinationEndpoint=1, wasBroadcast=false, linkQuality=57, frame={"header":{"frameControl":{"frameType":1,"manufacturerSpecific":false,"direction":1,"disableDefaultResponse":false,"reservedBits":0},"transactionSequenceNumber":120,"commandIdentifier":2},"payload":{"seq":61440,"dpValues":[{"dp":104,"datatype":4,"data":{"type":"Buffer","data":[2]}}]},"command":{"ID":2,"parameters":[{"name":"seq","type":33},{"name":"dpValues","type":1011}],"name":"dataReport"}}
[2024-08-22 00:26:30] debug: 	zh:controller:endpoint: ZCL command 0x187a3efffe4b5765/1 manuSpecificTuya.defaultRsp({"cmdId":2,"statusCode":0}, {"timeout":10000,"disableResponse":false,"disableRecovery":false,"disableDefaultResponse":true,"direction":0,"reservedBits":0,"transactionSequenceNumber":120,"writeUndiv":false})
[2024-08-22 00:26:30] debug: 	zh:zstack: sendZclFrameToEndpointInternal 0x187a3efffe4b5765:64434/1 (0,0,1)
[2024-08-22 00:26:30] debug: 	zh:zstack:znp: SREQ: --> AF - dataRequest - {"dstaddr":64434,"destendpoint":1,"srcendpoint":1,"clusterid":61184,"transid":123,"options":0,"radius":30,"len":5,"data":{"type":"Buffer","data":[16,120,11,2,0]}}
[2024-08-22 00:26:30] debug: 	zh:zstack:unpi:writer: --> frame [254,15,36,1,178,251,1,1,0,239,123,0,30,5,16,120,11,2,0,141]
[2024-08-22 00:26:30] debug: 	zh:zstack:unpi:parser: --- parseNext []
[2024-08-22 00:26:30] debug: 	z2m: Received Zigbee message from 'Salvavita Seminterrato - Zigbee', type 'commandDataReport', cluster 'manuSpecificTuya', data '{"dpValues":[{"data":{"data":[2],"type":"Buffer"},"datatype":4,"dp":104}],"seq":61440}' from endpoint 1 with groupID 0
[2024-08-22 00:26:30] info: 	z2m:mqtt: MQTT publish: topic 'zigbee2mqtt/Salvavita Seminterrato - Zigbee', payload '{"automatic_closing":"OFF","automatic_reclosing":"OFF","clear_fault":"ON","current":0.87,"current_threshold":20,"energy":1422.96,"factory_reset":"OFF","forward_electricity":1419.7,"last_event":"Normal","leakage_current":8,"leakage_setting":"trip","leakage_threshold":30,"linkquality":57,"over_current_setting":"trip","over_power_setting":"closed","over_power_threshold":3500,"over_voltage_setting":"trip","over_voltage_threshold":270,"power":58,"state":"ON","temperature":34,"temperature_setting":"trip","temperature_threshold":65,"under_voltage_setting":"closed","under_voltage_threshold":180,"voltage":238}'
[2024-08-22 00:26:30] debug: 	zh:zstack:unpi:parser: <-- [254,1,100,1,0,100]
[2024-08-22 00:26:30] debug: 	zh:zstack:unpi:parser: --- parseNext [254,1,100,1,0,100]
[2024-08-22 00:26:30] debug: 	zh:zstack:unpi:parser: --> parsed 1 - 3 - 4 - 1 - [0] - 100
[2024-08-22 00:26:30] debug: 	zh:zstack:znp: SRSP: <-- AF - dataRequest - {"status":0}
[2024-08-22 00:26:30] debug: 	zh:zstack:unpi:parser: --- parseNext []
[2024-08-22 00:26:30] debug: 	zh:zstack:unpi:parser: <-- [254,3,68,128,0,1,123,189]
[2024-08-22 00:26:30] debug: 	zh:zstack:unpi:parser: --- parseNext [254,3,68,128,0,1,123,189]
[2024-08-22 00:26:30] debug: 	zh:zstack:unpi:parser: --> parsed 3 - 2 - 4 - 128 - [0,1,123] - 189
[2024-08-22 00:26:30] debug: 	zh:zstack:znp: AREQ: <-- AF - dataConfirm - {"status":0,"endpoint":1,"transid":123}
[2024-08-22 00:26:30] debug: 	zh:zstack:unpi:parser: --- parseNext []
[2024-08-22 00:26:30] debug: 	zh:zstack:unpi:parser: <-- [254,5,69,196,178,251,1,102,120,210]
[2024-08-22 00:26:30] debug: 	zh:zstack:unpi:parser: --- parseNext [254,5,69,196,178,251,1,102,120,210]
[2024-08-22 00:26:30] debug: 	zh:zstack:unpi:parser: --> parsed 5 - 2 - 5 - 196 - [178,251,1,102,120] - 210
[2024-08-22 00:26:30] debug: 	zh:zstack:znp: AREQ: <-- ZDO - srcRtgInd - {"dstaddr":64434,"relaycount":1,"relaylist":[30822]}
[2024-08-22 00:26:30] debug: 	zh:zstack:unpi:parser: --- parseNext []
[2024-08-22 00:26:30] debug: 	zh:zstack:unpi:parser: <-- [254,30,68,129,0,0,0,239,178,251,1,1,0,57,0,158,120,14,0,0,10,9,121,2,0,241,105,4,0,1,0,102]
[2024-08-22 00:26:30] debug: 	zh:zstack:unpi:parser: --- parseNext [254,30,68,129,0,0,0,239,178,251,1,1,0,57,0,158,120,14,0,0,10,9,121,2,0,241,105,4,0,1,0,102]
[2024-08-22 00:26:30] debug: 	zh:zstack:unpi:parser: <-- [120,28,75]
[2024-08-22 00:26:30] debug: 	zh:zstack:unpi:parser: --- parseNext [254,30,68,129,0,0,0,239,178,251,1,1,0,57,0,158,120,14,0,0,10,9,121,2,0,241,105,4,0,1,0,102,120,28,75]
[2024-08-22 00:26:30] debug: 	zh:zstack:unpi:parser: --> parsed 30 - 2 - 4 - 129 - [0,0,0,239,178,251,1,1,0,57,0,158,120,14,0,0,10,9,121,2,0,241,105,4,0,1,0,102,120,28] - 75
[2024-08-22 00:26:30] debug: 	zh:zstack:znp: AREQ: <-- AF - incomingMsg - {"groupid":0,"clusterid":61184,"srcaddr":64434,"srcendpoint":1,"dstendpoint":1,"wasbroadcast":0,"linkquality":57,"securityuse":0,"timestamp":948382,"transseqnumber":0,"len":10,"data":{"type":"Buffer","data":[9,121,2,0,241,105,4,0,1,0]}}
[2024-08-22 00:26:30] debug: 	zh:controller: Received payload: clusterID=61184, address=64434, groupID=0, endpoint=1, destinationEndpoint=1, wasBroadcast=false, linkQuality=57, frame={"header":{"frameControl":{"frameType":1,"manufacturerSpecific":false,"direction":1,"disableDefaultResponse":false,"reservedBits":0},"transactionSequenceNumber":121,"commandIdentifier":2},"payload":{"seq":61696,"dpValues":[{"dp":105,"datatype":4,"data":{"type":"Buffer","data":[0]}}]},"command":{"ID":2,"parameters":[{"name":"seq","type":33},{"name":"dpValues","type":1011}],"name":"dataReport"}}
[2024-08-22 00:26:30] debug: 	zh:controller:endpoint: ZCL command 0x187a3efffe4b5765/1 manuSpecificTuya.defaultRsp({"cmdId":2,"statusCode":0}, {"timeout":10000,"disableResponse":false,"disableRecovery":false,"disableDefaultResponse":true,"direction":0,"reservedBits":0,"transactionSequenceNumber":121,"writeUndiv":false})
[2024-08-22 00:26:30] debug: 	zh:zstack: sendZclFrameToEndpointInternal 0x187a3efffe4b5765:64434/1 (0,0,1)
[2024-08-22 00:26:30] debug: 	zh:zstack:znp: SREQ: --> AF - dataRequest - {"dstaddr":64434,"destendpoint":1,"srcendpoint":1,"clusterid":61184,"transid":124,"options":0,"radius":30,"len":5,"data":{"type":"Buffer","data":[16,121,11,2,0]}}
[2024-08-22 00:26:30] debug: 	zh:zstack:unpi:writer: --> frame [254,15,36,1,178,251,1,1,0,239,124,0,30,5,16,121,11,2,0,139]
[2024-08-22 00:26:30] debug: 	zh:zstack:unpi:parser: --- parseNext []
[2024-08-22 00:26:30] debug: 	z2m: Received Zigbee message from 'Salvavita Seminterrato - Zigbee', type 'commandDataReport', cluster 'manuSpecificTuya', data '{"dpValues":[{"data":{"data":[0],"type":"Buffer"},"datatype":4,"dp":105}],"seq":61696}' from endpoint 1 with groupID 0
[2024-08-22 00:26:30] info: 	z2m:mqtt: MQTT publish: topic 'zigbee2mqtt/Salvavita Seminterrato - Zigbee', payload '{"automatic_closing":"OFF","automatic_reclosing":"OFF","clear_fault":"ON","current":0.87,"current_threshold":20,"energy":1422.96,"factory_reset":"OFF","forward_electricity":1419.7,"last_event":"Normal","leakage_current":8,"leakage_setting":"trip","leakage_threshold":30,"linkquality":57,"over_current_setting":"trip","over_power_setting":"closed","over_power_threshold":3500,"over_voltage_setting":"trip","over_voltage_threshold":270,"power":58,"state":"ON","temperature":34,"temperature_setting":"trip","temperature_threshold":65,"under_voltage_setting":"closed","under_voltage_threshold":180,"voltage":238}'
[2024-08-22 00:26:30] debug: 	zh:zstack:unpi:parser: <-- [254,1,100,1,0,100]
[2024-08-22 00:26:30] debug: 	zh:zstack:unpi:parser: --- parseNext [254,1,100,1,0,100]
[2024-08-22 00:26:30] debug: 	zh:zstack:unpi:parser: --> parsed 1 - 3 - 4 - 1 - [0] - 100
[2024-08-22 00:26:30] debug: 	zh:zstack:znp: SRSP: <-- AF - dataRequest - {"status":0}
[2024-08-22 00:26:30] debug: 	zh:zstack:unpi:parser: --- parseNext []
[2024-08-22 00:26:30] debug: 	zh:zstack:unpi:parser: <-- [254,3,68,128,0,1,124,186]
[2024-08-22 00:26:30] debug: 	zh:zstack:unpi:parser: --- parseNext [254,3,68,128,0,1,124,186]
[2024-08-22 00:26:30] debug: 	zh:zstack:unpi:parser: --> parsed 3 - 2 - 4 - 128 - [0,1,124] - 186
[2024-08-22 00:26:30] debug: 	zh:zstack:znp: AREQ: <-- AF - dataConfirm - {"status":0,"endpoint":1,"transid":124}
[2024-08-22 00:26:30] debug: 	zh:zstack:unpi:parser: --- parseNext []

@Koenkk
Copy link
Owner

Koenkk commented Aug 22, 2024

I don't see the error from #23054 (comment) in this log.

@terzo33
Copy link
Author

terzo33 commented Aug 22, 2024

I don't see the error from #23054 (comment) in this log.

what could this error be?

Screenshot_20240820_211733_Home Assistant.jpg

@Koenkk
Copy link
Owner

Koenkk commented Aug 24, 2024

I need the debug log for that, make sure to capture the logs at the moment this error is logged.

@terzo33
Copy link
Author

terzo33 commented Aug 27, 2024

I need the debug log for that, make sure to capture the logs at the moment this error is logged.!

Hi @Koenkk , see log please. Thanks a lot

log-1.txt

@Koenkk
Copy link
Owner

Koenkk commented Aug 28, 2024

I only see the error level here, I also need the debug one.

See this on how to enable debug logging.

@terzo33
Copy link
Author

terzo33 commented Sep 7, 2024

I only see the error level here, I also need the debug one.

See this on how to enable debug logging.

Hi @Koenkk , I see you fix it in 1.40.1

"This hotfix release primarily addresses the Cannot read properties of undefined (reading 'some') error (#23821)"

I send you 2 weeks ago PR for new code with all features works but I can't see new code in 1.40.1

I'm using zigbee2mqtt dev branch for "leakage_current" parameter. Can you fix this feature in standard zigbee2mqtt ?

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

const definition = {

fingerprint: [
        {
            // The model ID from: Device with modelID 'TS0601' is not supported
            // You may need to add \u0000 at the end of the name in some cases
            modelID: 'TS0601',
            // The manufacturer name from: Device with modelID 'TS0601' is not supported.
            manufacturerName: '_TZE204_kobbcyum',
        },
    ],
    
    model: 'TOWSMR1',
    vendor: 'Tongou',
    description: 'Single-phase multifunction energy meter (DIN Module)',
    fromZigbee: [tuya.fz.datapoints],
    toZigbee: [tuya.tz.datapoints],
    // Important: respondToMcuVersionResponse should be false otherweise there are an avalanche of commandMcuVersionResponse messages every second.
    // queryIntervalSeconds: is doing a pooling to update device's parameters, now define to update data every 3 minutes.
    onEvent: tuya.onEvent({respondToMcuVersionResponse: false, queryIntervalSeconds: 10}),
    configure: tuya.configureMagicPacket,
    exposes: [
        tuya.exposes.switch(),
        e.energy(),
        e.power(),
        e.voltage(),
        e.current(),
        e.temperature(),
        e.enum('last_event', ea.STATE, [])
            .withDescription('Last event'),
        e.numeric('leakage_current', ea.STATE).withUnit('mA').withDescription('Leakage current is current that flows from an electrical circuit to the ground'),
        e.enum('leakage_setting', ea.STATE_SET, ['closed', 'alarm', 'trip']).withDescription('Action if threshold value is reached - USE WITH CAUTION - RISK LIFE !!'),
        e
            .numeric('leakage_threshold', ea.STATE_SET)
            .withValueMin(30)
            .withValueMax(300)
            .withValueStep(1)
            .withUnit('mA')
            .withDescription('leakage threshold setting - USE WITH CAUTION - RISK LIFE !! (default=30mA)'),
        e.enum('over_current_setting', ea.STATE_SET, ['closed', 'alarm', 'trip']).withDescription('Action if threshold value is reached'),
        e
            .numeric('current_threshold', ea.STATE_SET)
            .withValueMin(1)
            .withValueMax(40)
            .withValueStep(1)
            .withUnit('A')
            .withDescription('Current threshold setting'),
        e.enum('under_voltage_setting', ea.STATE_SET, ['closed', 'alarm', 'trip']).withDescription('Action if threshold value is reached'),
        e
            .numeric('under_voltage_threshold', ea.STATE_SET)
            .withValueMin(145)
            .withValueMax(220)
            .withValueStep(1)
            .withUnit('V')
            .withDescription('Under voltage threshold setting'),
        e.enum('over_voltage_setting', ea.STATE_SET, ['closed', 'alarm', 'trip']).withDescription('Action if threshold value is reached'),
        e
            .numeric('over_voltage_threshold', ea.STATE_SET)
            .withValueMin(245)
            .withValueMax(295)
            .withValueStep(1)
            .withUnit('V')
            .withDescription('Over-voltage threshold setting'),
        e.enum('over_power_setting', ea.STATE_SET, ['closed', 'alarm', 'trip']).withDescription('Action if threshold value is reached'),
        e
            .numeric('over_power_threshold', ea.STATE_SET)
            .withValueMin(5)
            .withValueMax(25000)
            .withValueStep(100)
            .withUnit('W')
            .withDescription('Over-power threshold setting'),
        e.enum('temperature_setting', ea.STATE_SET, ['closed', 'alarm', 'trip']).withDescription('Action if threshold value is reached'),
        e
            .numeric('temperature_threshold', ea.STATE_SET)
            .withValueMin(-40)
            .withValueMax(100)
            .withValueStep(1)
            .withUnit('°C')
            .withDescription('Temperature threshold setting'),
        e.binary('clear_fault', ea.STATE_SET, 'ON', 'OFF').withLabel('Auto-Reclosing').withDescription('When the circuit breaker trips due to voltage protection, it will automatically close when the circuit voItage returns to normal.(Note: For safety reasons, this function only applies to trips caused by voltage)'),
        e.binary('factory_reset', ea.STATE_SET, 'ON', 'OFF').withDescription('Back to factory settings, USE WITH CAUTION'),
    ],
    meta: {
        tuyaDatapoints: [
            [1, 'energy', tuya.valueConverter.divideBy100],
            [6, null, tuya.valueConverter.phaseVariant2],
            [15, 'leakage_current', tuya.valueConverter.raw],
            [16, 'state', tuya.valueConverter.onOff],
            [102, 'over_voltage_setting', tuya.valueConverterBasic.lookup({closed: tuya.enum(0), alarm: tuya.enum(1), trip: tuya.enum(2)})],
            [103, 'under_voltage_setting', tuya.valueConverterBasic.lookup({closed: tuya.enum(0), alarm: tuya.enum(1), trip: tuya.enum(2)})],
            [104, 'over_current_setting', tuya.valueConverterBasic.lookup({closed: tuya.enum(0), alarm: tuya.enum(1), trip: tuya.enum(2)})],
            [105, 'over_power_setting', tuya.valueConverterBasic.lookup({closed: tuya.enum(0), alarm: tuya.enum(1), trip: tuya.enum(2)})],
            [107, 'temperature_setting', tuya.valueConverterBasic.lookup({closed: tuya.enum(0), alarm: tuya.enum(1), trip: tuya.enum(2)})],
            [108, 'leakage_setting', tuya.valueConverterBasic.lookup({closed: tuya.enum(0), alarm: tuya.enum(1), trip: tuya.enum(2)})],
            //[109, 'online_state, unknown, I have not seen any message from this DP],
            [
                110,
                'last_event',
                tuya.valueConverterBasic.lookup({
                    'Normal': tuya.enum(0),
                    'Trip Over Current': tuya.enum(1),
                    'Trip Over Power': tuya.enum(2),
                    'Trip Over Temperature': tuya.enum(3),
                    'Trip Voltage 1': tuya.enum(4),
                    'Trip Voltage 2': tuya.enum(5),
                    'Alarm Over Current': tuya.enum(6),
                    'Alarm Over Power': tuya.enum(7),
                    'Alarm Over Temperature': tuya.enum(8),
                    'Alarm Voltage 1': tuya.enum(9),
                    'Alarm Voltage 2': tuya.enum(10),
                    'Remote On': tuya.enum(11),
                    'Remote Off': tuya.enum(12),
                    'Manual On': tuya.enum(13),
                    'Manual Off': tuya.enum(14),
                    'Value 15': tuya.enum(15),
                    'Value 16': tuya.enum(16),
                    'Factory Reset': tuya.enum(17),
                }),
            ],
            [112, 'clear_fault', tuya.valueConverter.onOff],
            [113, 'factory_reset', tuya.valueConverter.raw],
            [114, 'current_threshold', tuya.valueConverter.raw],
            [115, 'over_voltage_threshold', tuya.valueConverter.raw],
            [116, 'under_voltage_threshold', tuya.valueConverter.raw],
            [117, 'leakage_threshold', tuya.valueConverter.raw],
            [118, 'temperature_threshold', tuya.valueConverter.divideBy10],
            [119, 'over_power_threshold', tuya.valueConverter.raw],
            [131, 'temperature', tuya.valueConverter.divideBy10],
        ],
    },
};

module.exports = definition;

@Koenkk
Copy link
Owner

Koenkk commented Sep 8, 2024

I send you 2 weeks ago PR for new code with all features works but I can't see new code in 1.40.1

I think I missed it, could you provide a link to it?

@terzo33
Copy link
Author

terzo33 commented Sep 8, 2024

I send you 2 weeks ago PR for new code with all features works but I can't see new code in 1.40.1

I think I missed it, could you provide a link to it?

Yes @Koenkk

Koenkk/zigbee-herdsman-converters@master...terzo33:zigbee-herdsman-converters:patch-8

I'm using zigbee2mqtt dev branch to make the features "leakage_current" and "leakage_setting" work. Can you fix this feature in final release of zigbee2mqtt ?

Thanks a lot

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
new device support New device support request
Projects
None yet
Development

No branches or pull requests

3 participants