Koenkk / zigbee2mqtt

Zigbee šŸ to MQTT bridge šŸŒ‰, get rid of your proprietary Zigbee bridges šŸ”Ø
https://www.zigbee2mqtt.io
GNU General Public License v3.0
11.64k stars 1.64k forks source link

Hive SLR1 #8184

Closed steveuk23 closed 3 years ago

steveuk23 commented 3 years ago

Hi @Koenkk @robertalexa I'm trying to add a Unsupported device to zigbee2mqtt (i use the edge addon btw) The device is listed as SLR1 and i was hoping it was basically the same as the SLR1b that is supported. i found this hive.js and edited it to suit my device and added the below to my zigbee2mqtt configuration.yaml

external_converters:
  - hive.js

But every time i restart the add on it fails to reload until i delete the line again, I'm not great with all this so am just guessing as i go along but have read about adding it to devices.js but not sure how or where that file is. My hive.js code is like below

const exposes = require('../lib/exposes');
const fz = {...require('../converters/fromZigbee'), legacy: require('../lib/legacy').fromZigbee};
const tz = require('../converters/toZigbee');
const globalStore = require('../lib/store');
const constants = require('../lib/constants');
const reporting = require('../lib/reporting');
const extend = require('../lib/extend');
const e = exposes.presets;
const ea = exposes.access;

module.exports = [
    {
        zigbeeModel: ['SLR1'],
        model: 'SLR1',
        vendor: 'Hive',
        description: 'Heating thermostat',
        fromZigbee: [fz.legacy.thermostat_att_report, fz.legacy.thermostat_weekly_schedule_rsp],
        toZigbee: [tz.thermostat_local_temperature, tz.thermostat_system_mode, tz.thermostat_running_state,
            tz.thermostat_occupied_heating_setpoint, tz.thermostat_control_sequence_of_operation, tz.thermostat_weekly_schedule,
            tz.thermostat_clear_weekly_schedule, tz.thermostat_temperature_setpoint_hold, tz.thermostat_temperature_setpoint_hold_duration],
        exposes: [exposes.climate().withSetpoint('occupied_heating_setpoint', 7, 30, 1).withLocalTemperature()
            .withSystemMode(['off', 'auto', 'heat']).withRunningState(['idle', 'heat']).withPiHeatingDemand()],
        meta: {disableDefaultResponse: true},
        configure: async (device, coordinatorEndpoint, logger) => {
            const endpoint = device.getEndpoint(5);
            const binds = ['genBasic', 'genIdentify', 'genAlarms', 'genTime', 'hvacThermostat'];
            await reporting.bind(endpoint, coordinatorEndpoint, binds);
            await reporting.thermostatTemperature(endpoint, {min: 0, max: constants.repInterval.HOUR, change: 1});
            await reporting.thermostatRunningState(endpoint);
            await reporting.thermostatOccupiedHeatingSetpoint(endpoint);
            await reporting.thermostatTemperatureSetpointHold(endpoint);
            await reporting.thermostatTemperatureSetpointHoldDuration(endpoint);
        },
    },
];

hive

robertalexa commented 3 years ago

@steveuk23 Thanks for emailing me, but as explained to you i much prefer to try and help you here for the benefit of everyone else. Hope you can understand :)

Can you please try the following, as per the documentation:

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

const definition = {
    zigbeeModel: ['SLR1'],
    model: 'SLR1',
    vendor: 'Hive',
    description: 'Heating thermostat',
    fromZigbee: [fz.thermostat_att_report, fz.thermostat_weekly_schedule_rsp],
    toZigbee: [tz.thermostat_local_temperature, tz.thermostat_system_mode, tz.thermostat_running_state,
        tz.thermostat_occupied_heating_setpoint, tz.thermostat_control_sequence_of_operation, tz.thermostat_weekly_schedule,
        tz.thermostat_clear_weekly_schedule, tz.thermostat_temperature_setpoint_hold, tz.thermostat_temperature_setpoint_hold_duration],
    exposes: [exposes.climate().withSetpoint('occupied_heating_setpoint', 7, 30, 1).withLocalTemperature()
        .withSystemMode(['off', 'auto', 'heat']).withRunningState(['idle', 'heat']).withPiHeatingDemand()],
    meta: {disableDefaultResponse: true},
    configure: async (device, coordinatorEndpoint, logger) => {
        const endpoint = device.getEndpoint(5);
        const binds = ['genBasic', 'genIdentify', 'genAlarms', 'genTime', 'hvacThermostat'];
        await reporting.bind(endpoint, coordinatorEndpoint, binds);
        await reporting.thermostatTemperature(endpoint, {min: 0, max: constants.repInterval.HOUR, change: 1});
        await reporting.thermostatRunningState(endpoint);
        await reporting.thermostatOccupiedHeatingSetpoint(endpoint);
        await reporting.thermostatTemperatureSetpointHold(endpoint);
        await reporting.thermostatTemperatureSetpointHoldDuration(endpoint);
    },
};

module.exports = definition;

Let me know how it goes, if things do not work, can you please paste your logs in here.

Rob

steveuk23 commented 3 years ago

@steveuk23 Thanks for emailing me, but as explained to you i much prefer to try and help you here for the benefit of everyone else. Hope you can understand :)

Can you please try the following, as per the documentation:

  • in the same location as your configuration.yaml file create a new file called SLR1.js

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

const definition = {
    zigbeeModel: ['SLR1'],
    model: 'SLR1',
    vendor: 'Hive',
    description: 'Heating thermostat',
    fromZigbee: [fz.thermostat_att_report, fz.thermostat_weekly_schedule_rsp],
    toZigbee: [tz.thermostat_local_temperature, tz.thermostat_system_mode, tz.thermostat_running_state,
        tz.thermostat_occupied_heating_setpoint, tz.thermostat_control_sequence_of_operation, tz.thermostat_weekly_schedule,
        tz.thermostat_clear_weekly_schedule, tz.thermostat_temperature_setpoint_hold, tz.thermostat_temperature_setpoint_hold_duration],
    exposes: [exposes.climate().withSetpoint('occupied_heating_setpoint', 7, 30, 1).withLocalTemperature()
        .withSystemMode(['off', 'auto', 'heat']).withRunningState(['idle', 'heat']).withPiHeatingDemand()],
    meta: {disableDefaultResponse: true},
    configure: async (device, coordinatorEndpoint, logger) => {
        const endpoint = device.getEndpoint(5);
        const binds = ['genBasic', 'genIdentify', 'genAlarms', 'genTime', 'hvacThermostat'];
        await reporting.bind(endpoint, coordinatorEndpoint, binds);
        await reporting.thermostatTemperature(endpoint, {min: 0, max: constants.repInterval.HOUR, change: 1});
        await reporting.thermostatRunningState(endpoint);
        await reporting.thermostatOccupiedHeatingSetpoint(endpoint);
        await reporting.thermostatTemperatureSetpointHold(endpoint);
        await reporting.thermostatTemperatureSetpointHoldDuration(endpoint);
    },
};

module.exports = definition;
  • make sure the log level is set to debug so you can check the logs if needed.
  • restart z2m
  • try the device.

Let me know how it goes, if things do not work, can you please paste your logs in here.

Rob

No i understand what you mean about doing it through here for others :) I added the code to a SLR1.js file and placed it in the same folder. But i'm not 100% sure how i add it as a external convertor so i added it in the configuration section of the add on like below

data_path: /share/zigbee2mqtt
external_converters:
  - SLR1.js

is that correct ? But again the add on fails to restart when i press restart this is the error i'm getting in the log

Error: Cannot find module 'zigbee-herdsman-converters/lib/extend'
Require stack:
- /app/lib/util/utils.js
- /app/lib/util/settings.js
- /app/index.js
    at Function.Module._resolveFilename (internal/modules/cjs/loader.js:880:15)
    at Function.Module._load (internal/modules/cjs/loader.js:725:27)
    at Module.require (internal/modules/cjs/loader.js:952:19)
    at require (internal/modules/cjs/helpers.js:88:18)
    at /app/lib/util/externally-loaded.js:5:16
    at Script.runInContext (vm.js:143:18)
    at Script.runInNewContext (vm.js:148:17)
    at Object.runInNewContext (vm.js:303:38)
    at loadModuleFromText (/app/lib/util/utils.js:162:8)
    at loadModuleFromFile (/app/lib/util/utils.js:168:12)
(Use `node --trace-warnings ...` to show where the warning was created)
(node:2569) UnhandledPromiseRejectionWarning: Unhandled promise rejection. This error originated either by throwing inside of an async function without a catch block, or by rejecting a promise which was not handled with .catch(). To terminate the node process on unhandled promise rejection, use the CLI flag `--unhandled-rejections=strict` (see https://nodejs.org/api/cli.html#cli_unhandled_rejections_mode). (rejection id: 1)
(node:2569) [DEP0018] DeprecationWarning: Unhandled promise rejections are deprecated. In the future, promise rejections that are not handled will terminate the Node.js process with a non-zero exit code.
robertalexa commented 3 years ago

@steveuk23 Yes the configuration.yaml bit is correct.

Just to clarify:

steveuk23 commented 3 years ago

@robertalexa Yes it starts back up no problems.

i have about 30 zigbee devices working no problems. I'm actually using the Zigbee2mqtt EDGE addon within HA as it supported another device a while ago but i ended up staying on it to save the hassle of moving back to the standard zigbee2mqtt. I just noticed it says 501 bad gateway where the dashboard should load.

robertalexa commented 3 years ago

It would say 501 bad gateway while the addon properly starts. Give is a minute and it should load.

From the code i gave you, try removing this line and try again

const extend = require('zigbee-herdsman-converters/lib/extend');

With regards to the Edge addon, to my knowledge you can keep both of them installed, as long as one of them is stopped. You can always backup you device data before swapping the addons. My personal opinion on this is to stay on the stable release, this was you don't risk things breaking as they are still in development stage (the reason why the stable one gets released once every beginning of a month). And should you need to test things out, either swap to edge (which personally i don't do) or have a completely separate instance away from your "production" HA. Buy a second cheap adapter and either run it straight on you laptop or in a virtual box if you want to run it in HA environment.

Let me know how the above goes Rob

steveuk23 commented 3 years ago

@robertalexa That did it. Once i deleted that line it restarted fine and shows as a supported device. I just need to work out the next step now as i just added a basic climate card which seems to turn the receiver on and off but obviously doen't show any current temp etc so i need to work that out. But thanks for the help least it seems like i have the device added now to have a mess around. i'm going to move back to the standard zigbee2mqqt add on i just wasn't sure how i did it lol Thanks again

steveuk23 commented 3 years ago

@robertalexa I may have spoken too soon as i am getting a error in the zigbee2mqtt addon And when i turn on the heat through the linked thermostat the heat led turns on the receiver but the climate card doesn't update and vise versa when i adjust the climate card it doesn't affect the receiver it stays as it is

Zigbee2MQTT:error 2021-07-30 18:42:21: Failed to configure 'Hive receiver', attempt 2 (ReferenceError: constants is not defined
    at Object.configure (/app/lib/util/externally-loaded.js:24:71)
    at async Configure.configure (/app/lib/extension/configure.js:131:13))
robertalexa commented 3 years ago

@steveuk23 hey. I am currently not at home anymore to look at code but for now i would suggest you stay away from ha.

While testing stick with the z2m frontend and run all the commands from there. Click on your device then exposes and chekc what is there.

In a different tab open up your logs and keep an eye on them.

Start running commands from physical thermostat and see what the logs output and also if the frontend reflecta the change.

If you get an error make a note of the action you did and then restart the addon. There is a chance that once you get an error it could be a fatal one and nothing will work after it. So always restart it between an error and trying different commands.

Also open the documentation and have a look at slr1b and what commands you can send via mqtt, you can try sending thise commands yourself and aee what you get.

You have a go at that and document as much as possible, keep everything posted here and i will contribute when i get around my computer.

If we nail this down i can submit a pull request and get this device supported for everyone

steveuk23 commented 3 years ago

@steveuk23 hey. I am currently not at home anymore to look at code but for now i would suggest you stay away from ha.

While testing stick with the z2m frontend and run all the commands from there. Click on your device then exposes and chekc what is there.

In a different tab open up your logs and keep an eye on them.

Start running commands from physical thermostat and see what the logs output and also if the frontend reflecta the change.

If you get an error make a note of the action you did and then restart the addon. There is a chance that once you get an error it could be a fatal one and nothing will work after it. So always restart it between an error and trying different commands.

Also open the documentation and have a look at slr1b and what commands you can send via mqtt, you can try sending thise commands yourself and aee what you get.

You have a go at that and document as much as possible, keep everything posted here and i will contribute when i get around my computer.

If we nail this down i can submit a pull request and get this device supported for everyone

Thanks for that. I've run out of time now but will try that tomorrow and see what shows up

steveuk23 commented 3 years ago

Hi @robertalexa I've been testing a few buttons on the Z2M frontend like you said. i have 5 options available:

- system_mode     **auto**        - Same no errors but cant see anything happen

Zigbee2MQTT:debug 2021-07-31 10:41:24: Received MQTT message on 'zigbee2mqtt/Hive receiver/set' with data '{"system_mode":"auto"}' Zigbee2MQTT:debug 2021-07-31 10:41:24: Publishing 'set' 'system_mode' to 'Hive receiver' Zigbee2MQTT:info 2021-07-31 10:41:24: MQTT publish: topic 'zigbee2mqtt/Hive receiver', payload '{"linkquality":78,"system_mode":"auto"}'

- system_mode     **off**        - Same no errors but cant see anything happen

Zigbee2MQTT:debug 2021-07-31 10:44:04: Received MQTT message on 'zigbee2mqtt/Hive receiver/set' with data '{"system_mode":"off"}' Zigbee2MQTT:debug 2021-07-31 10:44:04: Publishing 'set' 'system_mode' to 'Hive receiver' Zigbee2MQTT:info 2021-07-31 10:44:04: MQTT publish: topic 'zigbee2mqtt/Hive receiver', payload '{"linkquality":28,"system_mode":"off"}'

and then on the refresh icon next to each option i get this error

Zigbee2MQTT:error 2021-07-31 10:45:30: Failed to call 'Receive' 'onZigbeeEvent' (TypeError: Cannot read property 'type' of undefined at /app/lib/extension/receive.js:117:42 at Array.filter () at Receive.onZigbeeEvent (/app/lib/extension/receive.js:116:65) at Controller.callExtensionMethod (/app/lib/controller.js:380:44))

And lastly i'm getting this error randomly appearing in the log

Zigbee2MQTT:error 2021-07-30 18:42:21: Failed to configure 'Hive receiver', attempt 3 (ReferenceError: constants is not defined at Object.configure (/app/lib/util/externally-loaded.js:24:71) at async Configure.configure (/app/lib/extension/configure.js:131:13))


Hopefully you can make sense of this as it's beyond me 
Thanks
![hive2](https://user-images.githubusercontent.com/18037536/127736026-da855645-7d55-4f87-9ecb-0bae0414eed6.png)
robertalexa commented 3 years ago

Hi @steveuk23

Did you revert all the files you have manully modified on your own? What I am trying to say - apart from the external converter, are you sure there is no other code that you have either added or removed while trying to support this device on your own?

Rob

steveuk23 commented 3 years ago

@robertalexa The only thing I modified was the default name of the receiver in the devices.yaml in the Z2M folder to "Hive Receiver" Everything else I did was just modifying the js file of the convertor.

robertalexa commented 3 years ago

Could you please go here https://www.zigbee2mqtt.io/information/debug.html And follow the instructions under: Home Assistant OS/Supervised addon

That will turn on the debuging for zigbee herdsman and hopefully will give us some more clues.

Could you please have another play like you did above and post back logs, making sure they are long enough to include the command and everything that was written as a result of it. (hopefully that makes sense)

Please do so for system_mode, the little refresh icons (might be worth you spliting these logs by each command in your reply so it is easy to follow).

Also, should you see the "Failed to configure" error come up again, try to paste it here again with more logging.

I had a look at other zigbee software solutions and it seems that no one has the SLT1 receiver supported, now i do not know if it is because the device is "basic" or no one actually worked with it. Also Hive is not publishing any specs for their devices so the only solution is to sniff the traffic between the receiver and the hub to learn exactly what is what.

But lets see where that takes us, maybe we can get to the bottom of it, maybe not.

@Koenkk and @sjorge any thoughts, you guys are a hell lot more familiar with the codebase than i am.

steveuk23 commented 3 years ago

@robertalexa Thanks again i've enabled that logging and have it copied down i'll post it over a couple of posts.

steveuk23 commented 3 years ago

occupied_heating setpoint refresh

Zigbee2MQTT:debug 2021-07-31 18:59:55: Received MQTT message on 'zigbee2mqtt/Hive receiver/get' with data '{"occupied_heating_setpoint":""}'
Zigbee2MQTT:debug 2021-07-31 18:59:55: Publishing get 'get' 'occupied_heating_setpoint' to 'Hive receiver'
2021-07-31T17:59:55.256Z zigbee-herdsman:controller:endpoint Read 0x001e5e0902193948/5 hvacThermostat(["occupiedHeatingSetpoint"], {"timeout":10000,"disableResponse":false,"disableRecovery":false,"disableDefaultResponse":true,"direction":0,"srcEndpoint":null,"reservedBits":0,"manufacturerCode":null,"transactionSequenceNumber":null,"writeUndiv":false})
2021-07-31T17:59:55.257Z zigbee-herdsman:adapter:zStack:adapter sendZclFrameToEndpointInternal 0x001e5e0902193948:62986/5 (0,0,1)
2021-07-31T17:59:55.258Z zigbee-herdsman:adapter:zStack:znp:SREQ --> AF - dataRequest - {"dstaddr":62986,"destendpoint":5,"srcendpoint":1,"clusterid":513,"transid":53,"options":0,"radius":30,"len":5,"data":{"type":"Buffer","data":[16,12,0,18,0]}}
2021-07-31T17:59:55.259Z zigbee-herdsman:adapter:zStack:unpi:writer --> frame [254,15,36,1,10,246,5,1,1,2,53,0,30,5,16,12,0,18,0,241]
2021-07-31T17:59:55.270Z zigbee-herdsman:adapter:zStack:unpi:parser <-- [254,1,100,1,0,100]
2021-07-31T17:59:55.270Z zigbee-herdsman:adapter:zStack:unpi:parser --- parseNext [254,1,100,1,0,100]
2021-07-31T17:59:55.270Z zigbee-herdsman:adapter:zStack:unpi:parser --> parsed 1 - 3 - 4 - 1 - [0] - 100
2021-07-31T17:59:55.270Z zigbee-herdsman:adapter:zStack:znp:SRSP <-- AF - dataRequest - {"status":0}
2021-07-31T17:59:55.270Z zigbee-herdsman:adapter:zStack:unpi:parser --- parseNext []
2021-07-31T17:59:55.275Z zigbee-herdsman:adapter:zStack:unpi:parser <-- [254,3,68,128,0,1,53,243]
2021-07-31T17:59:55.275Z zigbee-herdsman:adapter:zStack:unpi:parser --- parseNext [254,3,68,128,0,1,53,243]
2021-07-31T17:59:55.276Z zigbee-herdsman:adapter:zStack:unpi:parser --> parsed 3 - 2 - 4 - 128 - [0,1,53] - 243
2021-07-31T17:59:55.276Z zigbee-herdsman:adapter:zStack:znp:AREQ <-- AF - dataConfirm - {"status":0,"endpoint":1,"transid":53}
2021-07-31T17:59:55.276Z zigbee-herdsman:adapter:zStack:unpi:parser --- parseNext []
2021-07-31T17:59:55.292Z zigbee-herdsman:adapter:zStack:unpi:parser <-- [254,5,69,196,10,246,1,217,0,160]
2021-07-31T17:59:55.292Z zigbee-herdsman:adapter:zStack:unpi:parser --- parseNext [254,5,69,196,10,246,1,217,0,160]
2021-07-31T17:59:55.293Z zigbee-herdsman:adapter:zStack:unpi:parser --> parsed 5 - 2 - 5 - 196 - [10,246,1,217,0] - 160
2021-07-31T17:59:55.293Z zigbee-herdsman:adapter:zStack:znp:AREQ <-- ZDO - srcRtgInd - {"dstaddr":62986,"relaycount":1,"relaylist":[217]}
2021-07-31T17:59:55.293Z zigbee-herdsman:adapter:zStack:unpi:parser --- parseNext []
2021-07-31T17:59:55.348Z zigbee-herdsman:adapter:zStack:unpi:parser <-- [254,29,68,129,0,0,1,2,10,246,5,1,0,84,0,77,144,20,0,0,9,8,12,1,18,0,0,41,208,7,217,0,28,155]
2021-07-31T17:59:55.348Z zigbee-herdsman:adapter:zStack:unpi:parser --- parseNext [254,29,68,129,0,0,1,2,10,246,5,1,0,84,0,77,144,20,0,0,9,8,12,1,18,0,0,41,208,7,217,0,28,155]
2021-07-31T17:59:55.348Z zigbee-herdsman:adapter:zStack:unpi:parser --> parsed 29 - 2 - 4 - 129 - [0,0,1,2,10,246,5,1,0,84,0,77,144,20,0,0,9,8,12,1,18,0,0,41,208,7,217,0,28] - 155
2021-07-31T17:59:55.349Z zigbee-herdsman:adapter:zStack:znp:AREQ <-- AF - incomingMsg - {"groupid":0,"clusterid":513,"srcaddr":62986,"srcendpoint":5,"dstendpoint":1,"wasbroadcast":0,"linkquality":84,"securityuse":0,"timestamp":1347661,"transseqnumber":0,"len":9,"data":{"type":"Buffer","data":[8,12,1,18,0,0,41,208,7]}}
2021-07-31T17:59:55.352Z zigbee-herdsman:controller:log Received 'zcl' data '{"frame":{"Header":{"frameControl":{"frameType":0,"manufacturerSpecific":false,"direction":1,"disableDefaultResponse":false,"reservedBits":0},"transactionSequenceNumber":12,"manufacturerCode":null,"commandIdentifier":1},"Payload":[{"attrId":18,"status":0,"dataType":41,"attrData":2000}],"Command":{"ID":1,"name":"readRsp","parameters":[{"name":"attrId","type":33},{"name":"status","type":32},{"name":"dataType","type":32,"conditions":[{"type":"statusEquals","value":0}]},{"name":"attrData","type":1000,"conditions":[{"type":"statusEquals","value":0}]}]}},"address":62986,"endpoint":5,"linkquality":84,"groupID":0}'
Zigbee2MQTT:debug 2021-07-31 18:59:55: Received Zigbee message from 'Hive receiver', type 'readResponse', cluster 'hvacThermostat', data '{"occupiedHeatingSetpoint":2000}' from endpoint 5 with groupID 0
2021-07-31T17:59:55.358Z zigbee-herdsman:controller:endpoint DefaultResponse 0x001e5e0902193948/5 513(1, {"timeout":10000,"disableResponse":false,"disableRecovery":false,"disableDefaultResponse":true,"direction":1,"srcEndpoint":null,"reservedBits":0,"manufacturerCode":null,"transactionSequenceNumber":null,"writeUndiv":false})
2021-07-31T17:59:55.359Z zigbee-herdsman:adapter:zStack:unpi:parser --- parseNext []
Zigbee2MQTT:error 2021-07-31 18:59:55: Failed to call 'Receive' 'onZigbeeEvent' (TypeError: Cannot read property 'type' of undefined
    at /app/lib/extension/receive.js:117:42
    at Array.filter (<anonymous>)
    at Receive.onZigbeeEvent (/app/lib/extension/receive.js:116:65)
    at Controller.callExtensionMethod (/app/lib/controller.js:380:44))
2021-07-31T17:59:55.363Z zigbee-herdsman:adapter:zStack:adapter sendZclFrameToEndpointInternal 0x001e5e0902193948:62986/5 (0,0,1)
2021-07-31T17:59:55.364Z zigbee-herdsman:adapter:zStack:znp:SREQ --> AF - dataRequest - {"dstaddr":62986,"destendpoint":5,"srcendpoint":1,"clusterid":513,"transid":54,"options":0,"radius":30,"len":5,"data":{"type":"Buffer","data":[24,12,11,1,0]}}
2021-07-31T17:59:55.365Z zigbee-herdsman:adapter:zStack:unpi:writer --> frame [254,15,36,1,10,246,5,1,1,2,54,0,30,5,24,12,11,1,0,226]
2021-07-31T17:59:55.376Z zigbee-herdsman:adapter:zStack:unpi:parser <-- [254,1,100,1,0,100]
2021-07-31T17:59:55.376Z zigbee-herdsman:adapter:zStack:unpi:parser --- parseNext [254,1,100,1,0,100]
2021-07-31T17:59:55.376Z zigbee-herdsman:adapter:zStack:unpi:parser --> parsed 1 - 3 - 4 - 1 - [0] - 100
2021-07-31T17:59:55.377Z zigbee-herdsman:adapter:zStack:znp:SRSP <-- AF - dataRequest - {"status":0}
2021-07-31T17:59:55.377Z zigbee-herdsman:adapter:zStack:unpi:parser --- parseNext []
2021-07-31T17:59:55.387Z zigbee-herdsman:adapter:zStack:unpi:parser <-- [254,3,68,128,0,1,54,240]
2021-07-31T17:59:55.388Z zigbee-herdsman:adapter:zStack:unpi:parser --- parseNext [254,3,68,128,0,1,54,240]
2021-07-31T17:59:55.388Z zigbee-herdsman:adapter:zStack:unpi:parser --> parsed 3 - 2 - 4 - 128 - [0,1,54] - 240
2021-07-31T17:59:55.388Z zigbee-herdsman:adapter:zStack:znp:AREQ <-- AF - dataConfirm - {"status":0,"endpoint":1,"transid":54}
2021-07-31T17:59:55.388Z zigbee-herdsman:adapter:zStack:unpi:parser --- parseNext []

local_temperature refresh

Zigbee2MQTT:debug 2021-07-31 18:49:15: Received Zigbee message from 'Hive receiver', type 'readResponse', cluster 'hvacThermostat', data '{"localTemp":2028}' from endpoint 5 with groupID 0
2021-07-31T17:49:15.019Z zigbee-herdsman:controller:endpoint DefaultResponse 0x001e5e0902193948/5 513(1, {"timeout":10000,"disableResponse":false,"disableRecovery":false,"disableDefaultResponse":true,"direction":1,"srcEndpoint":null,"reservedBits":0,"manufacturerCode":null,"transactionSequenceNumber":null,"writeUndiv":false})
2021-07-31T17:49:15.020Z zigbee-herdsman:adapter:zStack:unpi:parser --- parseNext []
Zigbee2MQTT:error 2021-07-31 18:49:15: Failed to call 'Receive' 'onZigbeeEvent' (TypeError: Cannot read property 'type' of undefined
    at /app/lib/extension/receive.js:117:42
    at Array.filter (<anonymous>)
    at Receive.onZigbeeEvent (/app/lib/extension/receive.js:116:65)
    at Controller.callExtensionMethod (/app/lib/controller.js:380:44))
2021-07-31T17:49:15.025Z zigbee-herdsman:adapter:zStack:adapter sendZclFrameToEndpointInternal 0x001e5e0902193948:62986/5 (0,0,1)
2021-07-31T17:49:15.026Z zigbee-herdsman:adapter:zStack:znp:SREQ --> AF - dataRequest - {"dstaddr":62986,"destendpoint":5,"srcendpoint":1,"clusterid":513,"transid":72,"options":0,"radius":30,"len":5,"data":{"type":"Buffer","data":[24,10,11,1,0]}}
2021-07-31T17:49:15.026Z zigbee-herdsman:adapter:zStack:unpi:writer --> frame [254,15,36,1,10,246,5,1,1,2,72,0,30,5,24,10,11,1,0,154]
2021-07-31T17:49:15.037Z zigbee-herdsman:adapter:zStack:unpi:parser <-- [254,1,100,1,0,100]
2021-07-31T17:49:15.038Z zigbee-herdsman:adapter:zStack:unpi:parser --- parseNext [254,1,100,1,0,100]
2021-07-31T17:49:15.038Z zigbee-herdsman:adapter:zStack:unpi:parser --> parsed 1 - 3 - 4 - 1 - [0] - 100
2021-07-31T17:49:15.038Z zigbee-herdsman:adapter:zStack:znp:SRSP <-- AF - dataRequest - {"status":0}
2021-07-31T17:49:15.038Z zigbee-herdsman:adapter:zStack:unpi:parser --- parseNext []
2021-07-31T17:49:15.044Z zigbee-herdsman:adapter:zStack:unpi:parser <-- [254,3,68,128,0,1,72,142]
2021-07-31T17:49:15.045Z zigbee-herdsman:adapter:zStack:unpi:parser --- parseNext [254,3,68,128,0,1,72,142]
2021-07-31T17:49:15.045Z zigbee-herdsman:adapter:zStack:unpi:parser --> parsed 3 - 2 - 4 - 128 - [0,1,72] - 142
2021-07-31T17:49:15.045Z zigbee-herdsman:adapter:zStack:znp:AREQ <-- AF - dataConfirm - {"status":0,"endpoint":1,"transid":72}
2021-07-31T17:49:15.045Z zigbee-herdsman:adapter:zStack:unpi:parser --- parseNext []

system_mode refresh

Zigbee2MQTT:debug 2021-07-31 19:08:50: Received MQTT message on 'zigbee2mqtt/Hive receiver/get' with data '{"system_mode":""}'
Zigbee2MQTT:debug 2021-07-31 19:08:50: Publishing get 'get' 'system_mode' to 'Hive receiver'
2021-07-31T18:08:50.326Z zigbee-herdsman:controller:endpoint Read 0x001e5e0902193948/5 hvacThermostat(["systemMode"], {"timeout":10000,"disableResponse":false,"disableRecovery":false,"disableDefaultResponse":true,"direction":0,"srcEndpoint":null,"reservedBits":0,"manufacturerCode":null,"transactionSequenceNumber":null,"writeUndiv":false})
2021-07-31T18:08:50.327Z zigbee-herdsman:adapter:zStack:adapter sendZclFrameToEndpointInternal 0x001e5e0902193948:62986/5 (0,0,1)
2021-07-31T18:08:50.328Z zigbee-herdsman:adapter:zStack:znp:SREQ --> AF - dataRequest - {"dstaddr":62986,"destendpoint":5,"srcendpoint":1,"clusterid":513,"transid":85,"options":0,"radius":30,"len":5,"data":{"type":"Buffer","data":[16,20,0,28,0]}}
2021-07-31T18:08:50.329Z zigbee-herdsman:adapter:zStack:unpi:writer --> frame [254,15,36,1,10,246,5,1,1,2,85,0,30,5,16,20,0,28,0,135]
2021-07-31T18:08:50.340Z zigbee-herdsman:adapter:zStack:unpi:parser <-- [254,1,100,1,0,100]
2021-07-31T18:08:50.340Z zigbee-herdsman:adapter:zStack:unpi:parser --- parseNext [254,1,100,1,0,100]
2021-07-31T18:08:50.340Z zigbee-herdsman:adapter:zStack:unpi:parser --> parsed 1 - 3 - 4 - 1 - [0] - 100
2021-07-31T18:08:50.341Z zigbee-herdsman:adapter:zStack:znp:SRSP <-- AF - dataRequest - {"status":0}
2021-07-31T18:08:50.341Z zigbee-herdsman:adapter:zStack:unpi:parser --- parseNext []
2021-07-31T18:08:50.347Z zigbee-herdsman:adapter:zStack:unpi:parser <-- [254,3,68,128,0,1,85,147]
2021-07-31T18:08:50.348Z zigbee-herdsman:adapter:zStack:unpi:parser --- parseNext [254,3,68,128,0,1,85,147]
2021-07-31T18:08:50.348Z zigbee-herdsman:adapter:zStack:unpi:parser --> parsed 3 - 2 - 4 - 128 - [0,1,85] - 147
2021-07-31T18:08:50.349Z zigbee-herdsman:adapter:zStack:znp:AREQ <-- AF - dataConfirm - {"status":0,"endpoint":1,"transid":85}
2021-07-31T18:08:50.349Z zigbee-herdsman:adapter:zStack:unpi:parser --- parseNext []
2021-07-31T18:08:50.367Z zigbee-herdsman:adapter:zStack:unpi:parser <-- [254,5,69,196,10,246,1,217,0,160]
2021-07-31T18:08:50.367Z zigbee-herdsman:adapter:zStack:unpi:parser --- parseNext [254,5,69,196,10,246,1,217,0,160]
2021-07-31T18:08:50.368Z zigbee-herdsman:adapter:zStack:unpi:parser --> parsed 5 - 2 - 5 - 196 - [10,246,1,217,0] - 160
2021-07-31T18:08:50.369Z zigbee-herdsman:adapter:zStack:znp:AREQ <-- ZDO - srcRtgInd - {"dstaddr":62986,"relaycount":1,"relaylist":[217]}
2021-07-31T18:08:50.369Z zigbee-herdsman:adapter:zStack:unpi:parser --- parseNext []
2021-07-31T18:08:50.418Z zigbee-herdsman:adapter:zStack:unpi:parser <-- [254,28,68,129,0,0,1,2,10,246,5,1,0,86,0,34,20,46,0,0,8,8,20,1,28,0,0,48,1,217,0,28,145]
2021-07-31T18:08:50.419Z zigbee-herdsman:adapter:zStack:unpi:parser --- parseNext [254,28,68,129,0,0,1,2,10,246,5,1,0,86,0,34,20,46,0,0,8,8,20,1,28,0,0,48,1,217,0,28,145]
2021-07-31T18:08:50.419Z zigbee-herdsman:adapter:zStack:unpi:parser --> parsed 28 - 2 - 4 - 129 - [0,0,1,2,10,246,5,1,0,86,0,34,20,46,0,0,8,8,20,1,28,0,0,48,1,217,0,28] - 145
2021-07-31T18:08:50.420Z zigbee-herdsman:adapter:zStack:znp:AREQ <-- AF - incomingMsg - {"groupid":0,"clusterid":513,"srcaddr":62986,"srcendpoint":5,"dstendpoint":1,"wasbroadcast":0,"linkquality":86,"securityuse":0,"timestamp":3019810,"transseqnumber":0,"len":8,"data":{"type":"Buffer","data":[8,20,1,28,0,0,48,1]}}
2021-07-31T18:08:50.423Z zigbee-herdsman:controller:log Received 'zcl' data '{"frame":{"Header":{"frameControl":{"frameType":0,"manufacturerSpecific":false,"direction":1,"disableDefaultResponse":false,"reservedBits":0},"transactionSequenceNumber":20,"manufacturerCode":null,"commandIdentifier":1},"Payload":[{"attrId":28,"status":0,"dataType":48,"attrData":1}],"Command":{"ID":1,"name":"readRsp","parameters":[{"name":"attrId","type":33},{"name":"status","type":32},{"name":"dataType","type":32,"conditions":[{"type":"statusEquals","value":0}]},{"name":"attrData","type":1000,"conditions":[{"type":"statusEquals","value":0}]}]}},"address":62986,"endpoint":5,"linkquality":86,"groupID":0}'
Zigbee2MQTT:debug 2021-07-31 19:08:50: Received Zigbee message from 'Hive receiver', type 'readResponse', cluster 'hvacThermostat', data '{"systemMode":1}' from endpoint 5 with groupID 0
2021-07-31T18:08:50.429Z zigbee-herdsman:controller:endpoint DefaultResponse 0x001e5e0902193948/5 513(1, {"timeout":10000,"disableResponse":false,"disableRecovery":false,"disableDefaultResponse":true,"direction":1,"srcEndpoint":null,"reservedBits":0,"manufacturerCode":null,"transactionSequenceNumber":null,"writeUndiv":false})
2021-07-31T18:08:50.429Z zigbee-herdsman:adapter:zStack:unpi:parser --- parseNext []
Zigbee2MQTT:error 2021-07-31 19:08:50: Failed to call 'Receive' 'onZigbeeEvent' (TypeError: Cannot read property 'type' of undefined
    at /app/lib/extension/receive.js:117:42
    at Array.filter (<anonymous>)
    at Receive.onZigbeeEvent (/app/lib/extension/receive.js:116:65)
    at Controller.callExtensionMethod (/app/lib/controller.js:380:44))
2021-07-31T18:08:50.434Z zigbee-herdsman:adapter:zStack:adapter sendZclFrameToEndpointInternal 0x001e5e0902193948:62986/5 (0,0,1)
2021-07-31T18:08:50.435Z zigbee-herdsman:adapter:zStack:znp:SREQ --> AF - dataRequest - {"dstaddr":62986,"destendpoint":5,"srcendpoint":1,"clusterid":513,"transid":86,"options":0,"radius":30,"len":5,"data":{"type":"Buffer","data":[24,20,11,1,0]}}
2021-07-31T18:08:50.435Z zigbee-herdsman:adapter:zStack:unpi:writer --> frame [254,15,36,1,10,246,5,1,1,2,86,0,30,5,24,20,11,1,0,154]
2021-07-31T18:08:50.447Z zigbee-herdsman:adapter:zStack:unpi:parser <-- [254,1,100,1,0,100]
2021-07-31T18:08:50.447Z zigbee-herdsman:adapter:zStack:unpi:parser --- parseNext [254,1,100,1,0,100]
2021-07-31T18:08:50.447Z zigbee-herdsman:adapter:zStack:unpi:parser --> parsed 1 - 3 - 4 - 1 - [0] - 100
2021-07-31T18:08:50.447Z zigbee-herdsman:adapter:zStack:znp:SRSP <-- AF - dataRequest - {"status":0}
2021-07-31T18:08:50.448Z zigbee-herdsman:adapter:zStack:unpi:parser --- parseNext []
2021-07-31T18:08:50.453Z zigbee-herdsman:adapter:zStack:unpi:parser <-- [254,3,68,128,0,1,86,144]
2021-07-31T18:08:50.453Z zigbee-herdsman:adapter:zStack:unpi:parser --- parseNext [254,3,68,128,0,1,86,144]
2021-07-31T18:08:50.453Z zigbee-herdsman:adapter:zStack:unpi:parser --> parsed 3 - 2 - 4 - 128 - [0,1,86] - 144
2021-07-31T18:08:50.454Z zigbee-herdsman:adapter:zStack:znp:AREQ <-- AF - dataConfirm - {"status":0,"endpoint":1,"transid":86}
2021-07-31T18:08:50.454Z zigbee-herdsman:adapter:zStack:unpi:parser --- parseNext []
2021-07-31T18:08:50.636Z zigbee-herdsman:adapter:zStack:unpi:parser <-- [254,11,69,200,106,84,176,21,29,2,9,94,30,0,1,74]
2021-07-31T18:08:50.636Z zigbee-herdsman:adapter:zStack:unpi:parser --- parseNext [254,11,69,200,106,84,176,21,29,2,9,94,30,0,1,74]
2021-07-31T18:08:50.636Z zigbee-herdsman:adapter:zStack:unpi:parser --> parsed 11 - 2 - 5 - 200 - [106,84,176,21,29,2,9,94,30,0,1] - 74
2021-07-31T18:08:50.637Z zigbee-herdsman:adapter:zStack:znp:AREQ <-- ZDO - concentratorIndCb - {"srcaddr":21610,"extaddr":"0x001e5e09021d15b0","pktCost":1}
2021-07-31T18:08:50.637Z zigbee-herdsman:adapter:zStack:unpi:parser --- parseNext []

running_state refresh

Zigbee2MQTT:debug 2021-07-31 19:10:16: Received MQTT message on 'zigbee2mqtt/Hive receiver/get' with data '{"running_state":""}'
Zigbee2MQTT:debug 2021-07-31 19:10:16: Publishing get 'get' 'running_state' to 'Hive receiver'
2021-07-31T18:10:16.684Z zigbee-herdsman:controller:endpoint Read 0x001e5e0902193948/5 hvacThermostat(["runningState"], {"timeout":10000,"disableResponse":false,"disableRecovery":false,"disableDefaultResponse":true,"direction":0,"srcEndpoint":null,"reservedBits":0,"manufacturerCode":null,"transactionSequenceNumber":null,"writeUndiv":false})
2021-07-31T18:10:16.685Z zigbee-herdsman:adapter:zStack:adapter sendZclFrameToEndpointInternal 0x001e5e0902193948:62986/5 (0,0,1)
2021-07-31T18:10:16.687Z zigbee-herdsman:adapter:zStack:znp:SREQ --> AF - dataRequest - {"dstaddr":62986,"destendpoint":5,"srcendpoint":1,"clusterid":513,"transid":89,"options":0,"radius":30,"len":5,"data":{"type":"Buffer","data":[16,21,0,41,0]}}
2021-07-31T18:10:16.687Z zigbee-herdsman:adapter:zStack:unpi:writer --> frame [254,15,36,1,10,246,5,1,1,2,89,0,30,5,16,21,0,41,0,191]
2021-07-31T18:10:16.698Z zigbee-herdsman:adapter:zStack:unpi:parser <-- [254,1,100,1,0,100]
2021-07-31T18:10:16.698Z zigbee-herdsman:adapter:zStack:unpi:parser --- parseNext [254,1,100,1,0,100]
2021-07-31T18:10:16.699Z zigbee-herdsman:adapter:zStack:unpi:parser --> parsed 1 - 3 - 4 - 1 - [0] - 100
2021-07-31T18:10:16.699Z zigbee-herdsman:adapter:zStack:znp:SRSP <-- AF - dataRequest - {"status":0}
2021-07-31T18:10:16.699Z zigbee-herdsman:adapter:zStack:unpi:parser --- parseNext []
2021-07-31T18:10:16.709Z zigbee-herdsman:adapter:zStack:unpi:parser <-- [254,3,68,128,0,1,89,159]
2021-07-31T18:10:16.709Z zigbee-herdsman:adapter:zStack:unpi:parser --- parseNext [254,3,68,128,0,1,89,159]
2021-07-31T18:10:16.710Z zigbee-herdsman:adapter:zStack:unpi:parser --> parsed 3 - 2 - 4 - 128 - [0,1,89] - 159
2021-07-31T18:10:16.710Z zigbee-herdsman:adapter:zStack:znp:AREQ <-- AF - dataConfirm - {"status":0,"endpoint":1,"transid":89}
2021-07-31T18:10:16.710Z zigbee-herdsman:adapter:zStack:unpi:parser --- parseNext []
2021-07-31T18:10:16.727Z zigbee-herdsman:adapter:zStack:unpi:parser <-- [254,5,69,196,10,246,1,217,0,160]
2021-07-31T18:10:16.727Z zigbee-herdsman:adapter:zStack:unpi:parser --- parseNext [254,5,69,196,10,246,1,217,0,160]
2021-07-31T18:10:16.727Z zigbee-herdsman:adapter:zStack:unpi:parser --> parsed 5 - 2 - 5 - 196 - [10,246,1,217,0] - 160
2021-07-31T18:10:16.728Z zigbee-herdsman:adapter:zStack:znp:AREQ <-- ZDO - srcRtgInd - {"dstaddr":62986,"relaycount":1,"relaylist":[217]}
2021-07-31T18:10:16.728Z zigbee-herdsman:adapter:zStack:unpi:parser --- parseNext []
2021-07-31T18:10:16.785Z zigbee-herdsman:adapter:zStack:unpi:parser <-- [254,29,68,129,0,0,1,2,10,246,5,1,0,86,0,113,50,50,0,0,9,8,21,1,41,0,0,25,0,0,217,0,28,228]
2021-07-31T18:10:16.785Z zigbee-herdsman:adapter:zStack:unpi:parser --- parseNext [254,29,68,129,0,0,1,2,10,246,5,1,0,86,0,113,50,50,0,0,9,8,21,1,41,0,0,25,0,0,217,0,28,228]
2021-07-31T18:10:16.786Z zigbee-herdsman:adapter:zStack:unpi:parser --> parsed 29 - 2 - 4 - 129 - [0,0,1,2,10,246,5,1,0,86,0,113,50,50,0,0,9,8,21,1,41,0,0,25,0,0,217,0,28] - 228
2021-07-31T18:10:16.787Z zigbee-herdsman:adapter:zStack:znp:AREQ <-- AF - incomingMsg - {"groupid":0,"clusterid":513,"srcaddr":62986,"srcendpoint":5,"dstendpoint":1,"wasbroadcast":0,"linkquality":86,"securityuse":0,"timestamp":3289713,"transseqnumber":0,"len":9,"data":{"type":"Buffer","data":[8,21,1,41,0,0,25,0,0]}}
2021-07-31T18:10:16.791Z zigbee-herdsman:controller:log Received 'zcl' data '{"frame":{"Header":{"frameControl":{"frameType":0,"manufacturerSpecific":false,"direction":1,"disableDefaultResponse":false,"reservedBits":0},"transactionSequenceNumber":21,"manufacturerCode":null,"commandIdentifier":1},"Payload":[{"attrId":41,"status":0,"dataType":25,"attrData":0}],"Command":{"ID":1,"name":"readRsp","parameters":[{"name":"attrId","type":33},{"name":"status","type":32},{"name":"dataType","type":32,"conditions":[{"type":"statusEquals","value":0}]},{"name":"attrData","type":1000,"conditions":[{"type":"statusEquals","value":0}]}]}},"address":62986,"endpoint":5,"linkquality":86,"groupID":0}'
Zigbee2MQTT:debug 2021-07-31 19:10:16: Received Zigbee message from 'Hive receiver', type 'readResponse', cluster 'hvacThermostat', data '{"runningState":0}' from endpoint 5 with groupID 0
2021-07-31T18:10:16.798Z zigbee-herdsman:controller:endpoint DefaultResponse 0x001e5e0902193948/5 513(1, {"timeout":10000,"disableResponse":false,"disableRecovery":false,"disableDefaultResponse":true,"direction":1,"srcEndpoint":null,"reservedBits":0,"manufacturerCode":null,"transactionSequenceNumber":null,"writeUndiv":false})
2021-07-31T18:10:16.798Z zigbee-herdsman:adapter:zStack:unpi:parser --- parseNext []
Zigbee2MQTT:error 2021-07-31 19:10:16: Failed to call 'Receive' 'onZigbeeEvent' (TypeError: Cannot read property 'type' of undefined
    at /app/lib/extension/receive.js:117:42
    at Array.filter (<anonymous>)
    at Receive.onZigbeeEvent (/app/lib/extension/receive.js:116:65)
    at Controller.callExtensionMethod (/app/lib/controller.js:380:44))
2021-07-31T18:10:16.802Z zigbee-herdsman:adapter:zStack:adapter sendZclFrameToEndpointInternal 0x001e5e0902193948:62986/5 (0,0,1)
2021-07-31T18:10:16.803Z zigbee-herdsman:adapter:zStack:znp:SREQ --> AF - dataRequest - {"dstaddr":62986,"destendpoint":5,"srcendpoint":1,"clusterid":513,"transid":90,"options":0,"radius":30,"len":5,"data":{"type":"Buffer","data":[24,21,11,1,0]}}
2021-07-31T18:10:16.803Z zigbee-herdsman:adapter:zStack:unpi:writer --> frame [254,15,36,1,10,246,5,1,1,2,90,0,30,5,24,21,11,1,0,151]
2021-07-31T18:10:16.816Z zigbee-herdsman:adapter:zStack:unpi:parser <-- [254,1,100,1,0,100]
2021-07-31T18:10:16.816Z zigbee-herdsman:adapter:zStack:unpi:parser --- parseNext [254,1,100,1,0,100]
2021-07-31T18:10:16.816Z zigbee-herdsman:adapter:zStack:unpi:parser --> parsed 1 - 3 - 4 - 1 - [0] - 100
2021-07-31T18:10:16.817Z zigbee-herdsman:adapter:zStack:znp:SRSP <-- AF - dataRequest - {"status":0}
2021-07-31T18:10:16.817Z zigbee-herdsman:adapter:zStack:unpi:parser --- parseNext []
2021-07-31T18:10:16.824Z zigbee-herdsman:adapter:zStack:unpi:parser <-- [254,3,68,128,0,1,90,156]
2021-07-31T18:10:16.824Z zigbee-herdsman:adapter:zStack:unpi:parser --- parseNext [254,3,68,128,0,1,90,156]
2021-07-31T18:10:16.824Z zigbee-herdsman:adapter:zStack:unpi:parser --> parsed 3 - 2 - 4 - 128 - [0,1,90] - 156
2021-07-31T18:10:16.825Z zigbee-herdsman:adapter:zStack:znp:AREQ <-- AF - dataConfirm - {"status":0,"endpoint":1,"transid":90}
2021-07-31T18:10:16.825Z zigbee-herdsman:adapter:zStack:unpi:parser --- parseNext []
steveuk23 commented 3 years ago

system_mode TURNED OFF

Zigbee2MQTT:debug 2021-07-31 19:11:23: Received MQTT message on 'zigbee2mqtt/Hive receiver/set' with data '{"system_mode":"off"}'
Zigbee2MQTT:debug 2021-07-31 19:11:23: Publishing 'set' 'system_mode' to 'Hive receiver'
2021-07-31T18:11:23.932Z zigbee-herdsman:controller:endpoint Write 0x001e5e0902193948/5 hvacThermostat({"systemMode":0}, {"timeout":10000,"disableResponse":false,"disableRecovery":false,"disableDefaultResponse":true,"direction":0,"srcEndpoint":null,"reservedBits":0,"manufacturerCode":null,"transactionSequenceNumber":null,"writeUndiv":false})
2021-07-31T18:11:23.933Z zigbee-herdsman:adapter:zStack:adapter sendZclFrameToEndpointInternal 0x001e5e0902193948:62986/5 (0,0,1)
2021-07-31T18:11:23.934Z zigbee-herdsman:adapter:zStack:znp:SREQ --> AF - dataRequest - {"dstaddr":62986,"destendpoint":5,"srcendpoint":1,"clusterid":513,"transid":93,"options":0,"radius":30,"len":7,"data":{"type":"Buffer","data":[16,22,2,28,0,48,0]}}
2021-07-31T18:11:23.935Z zigbee-herdsman:adapter:zStack:unpi:writer --> frame [254,17,36,1,10,246,5,1,1,2,93,0,30,7,16,22,2,28,0,48,0,163]
2021-07-31T18:11:23.946Z zigbee-herdsman:adapter:zStack:unpi:parser <-- [254,1,100,1,0,100]
2021-07-31T18:11:23.946Z zigbee-herdsman:adapter:zStack:unpi:parser --- parseNext [254,1,100,1,0,100]
2021-07-31T18:11:23.946Z zigbee-herdsman:adapter:zStack:unpi:parser --> parsed 1 - 3 - 4 - 1 - [0] - 100
2021-07-31T18:11:23.946Z zigbee-herdsman:adapter:zStack:znp:SRSP <-- AF - dataRequest - {"status":0}
2021-07-31T18:11:23.947Z zigbee-herdsman:adapter:zStack:unpi:parser --- parseNext []
2021-07-31T18:11:23.953Z zigbee-herdsman:adapter:zStack:unpi:parser <-- [254,3,68,128,0,1,93,155]
2021-07-31T18:11:23.953Z zigbee-herdsman:adapter:zStack:unpi:parser --- parseNext [254,3,68,128,0,1,93,155]
2021-07-31T18:11:23.953Z zigbee-herdsman:adapter:zStack:unpi:parser --> parsed 3 - 2 - 4 - 128 - [0,1,93] - 155
2021-07-31T18:11:23.954Z zigbee-herdsman:adapter:zStack:znp:AREQ <-- AF - dataConfirm - {"status":0,"endpoint":1,"transid":93}
2021-07-31T18:11:23.954Z zigbee-herdsman:adapter:zStack:unpi:parser --- parseNext []
2021-07-31T18:11:23.972Z zigbee-herdsman:adapter:zStack:unpi:parser <-- [254,5,69,196,10,246,1,217,0,160]
2021-07-31T18:11:23.972Z zigbee-herdsman:adapter:zStack:unpi:parser --- parseNext [254,5,69,196,10,246,1,217,0,160]
2021-07-31T18:11:23.973Z zigbee-herdsman:adapter:zStack:unpi:parser --> parsed 5 - 2 - 5 - 196 - [10,246,1,217,0] - 160
2021-07-31T18:11:23.973Z zigbee-herdsman:adapter:zStack:znp:AREQ <-- ZDO - srcRtgInd - {"dstaddr":62986,"relaycount":1,"relaylist":[217]}
2021-07-31T18:11:23.974Z zigbee-herdsman:adapter:zStack:unpi:parser --- parseNext []
2021-07-31T18:11:24.025Z zigbee-herdsman:adapter:zStack:unpi:parser <-- [254,24,68,129,0,0,1,2,10,246,5,1,0,86,0,73,103,53,0,0,4,8,22,4,0,217,0,28,176]
2021-07-31T18:11:24.026Z zigbee-herdsman:adapter:zStack:unpi:parser --- parseNext [254,24,68,129,0,0,1,2,10,246,5,1,0,86,0,73,103,53,0,0,4,8,22,4,0,217,0,28,176]
2021-07-31T18:11:24.026Z zigbee-herdsman:adapter:zStack:unpi:parser --> parsed 24 - 2 - 4 - 129 - [0,0,1,2,10,246,5,1,0,86,0,73,103,53,0,0,4,8,22,4,0,217,0,28] - 176
2021-07-31T18:11:24.027Z zigbee-herdsman:adapter:zStack:znp:AREQ <-- AF - incomingMsg - {"groupid":0,"clusterid":513,"srcaddr":62986,"srcendpoint":5,"dstendpoint":1,"wasbroadcast":0,"linkquality":86,"securityuse":0,"timestamp":3499849,"transseqnumber":0,"len":4,"data":{"type":"Buffer","data":[8,22,4,0]}}
2021-07-31T18:11:24.029Z zigbee-herdsman:controller:log Received 'zcl' data '{"frame":{"Header":{"frameControl":{"frameType":0,"manufacturerSpecific":false,"direction":1,"disableDefaultResponse":false,"reservedBits":0},"transactionSequenceNumber":22,"manufacturerCode":null,"commandIdentifier":4},"Payload":[{"status":0}],"Command":{"ID":4,"name":"writeRsp","parameters":[{"name":"status","type":32},{"name":"attrId","type":33,"conditions":[{"type":"statusNotEquals","value":0}]}]}},"address":62986,"endpoint":5,"linkquality":86,"groupID":0}'
2021-07-31T18:11:24.031Z zigbee-herdsman:controller:endpoint DefaultResponse 0x001e5e0902193948/5 513(4, {"timeout":10000,"disableResponse":false,"disableRecovery":false,"disableDefaultResponse":true,"direction":1,"srcEndpoint":null,"reservedBits":0,"manufacturerCode":null,"transactionSequenceNumber":null,"writeUndiv":false})
2021-07-31T18:11:24.032Z zigbee-herdsman:adapter:zStack:unpi:parser --- parseNext []
2021-07-31T18:11:24.032Z zigbee-herdsman:adapter:zStack:adapter sendZclFrameToEndpointInternal 0x001e5e0902193948:62986/5 (0,0,1)
2021-07-31T18:11:24.034Z zigbee-herdsman:adapter:zStack:znp:SREQ --> AF - dataRequest - {"dstaddr":62986,"destendpoint":5,"srcendpoint":1,"clusterid":513,"transid":94,"options":0,"radius":30,"len":5,"data":{"type":"Buffer","data":[24,22,11,4,0]}}
2021-07-31T18:11:24.034Z zigbee-herdsman:adapter:zStack:unpi:writer --> frame [254,15,36,1,10,246,5,1,1,2,94,0,30,5,24,22,11,4,0,149]
Zigbee2MQTT:info  2021-07-31 19:11:24: MQTT publish: topic 'zigbee2mqtt/Hive receiver', payload '{"linkquality":86,"system_mode":"off"}'
2021-07-31T18:11:24.046Z zigbee-herdsman:adapter:zStack:unpi:parser <-- [254,1,100,1,0,100]
2021-07-31T18:11:24.046Z zigbee-herdsman:adapter:zStack:unpi:parser --- parseNext [254,1,100,1,0,100]
2021-07-31T18:11:24.046Z zigbee-herdsman:adapter:zStack:unpi:parser --> parsed 1 - 3 - 4 - 1 - [0] - 100
2021-07-31T18:11:24.047Z zigbee-herdsman:adapter:zStack:znp:SRSP <-- AF - dataRequest - {"status":0}
2021-07-31T18:11:24.047Z zigbee-herdsman:adapter:zStack:unpi:parser --- parseNext []
2021-07-31T18:11:24.053Z zigbee-herdsman:adapter:zStack:unpi:parser <-- [254,3,68,128,0,1,94,152]
2021-07-31T18:11:24.053Z zigbee-herdsman:adapter:zStack:unpi:parser --- parseNext [254,3,68,128,0,1,94,152]
2021-07-31T18:11:24.053Z zigbee-herdsman:adapter:zStack:unpi:parser --> parsed 3 - 2 - 4 - 128 - [0,1,94] - 152
2021-07-31T18:11:24.054Z zigbee-herdsman:adapter:zStack:znp:AREQ <-- AF - dataConfirm - {"status":0,"endpoint":1,"transid":94}
2021-07-31T18:11:24.054Z zigbee-herdsman:adapter:zStack:unpi:parser --- parseNext []

system_mode AUTO PRESSED

Zigbee2MQTT:debug 2021-07-31 19:12:57: Received MQTT message on 'zigbee2mqtt/Hive receiver/set' with data '{"system_mode":"auto"}'
Zigbee2MQTT:debug 2021-07-31 19:12:57: Publishing 'set' 'system_mode' to 'Hive receiver'
2021-07-31T18:12:57.315Z zigbee-herdsman:controller:endpoint Write 0x001e5e0902193948/5 hvacThermostat({"systemMode":1}, {"timeout":10000,"disableResponse":false,"disableRecovery":false,"disableDefaultResponse":true,"direction":0,"srcEndpoint":null,"reservedBits":0,"manufacturerCode":null,"transactionSequenceNumber":null,"writeUndiv":false})
2021-07-31T18:12:57.319Z zigbee-herdsman:adapter:zStack:adapter sendZclFrameToEndpointInternal 0x001e5e0902193948:62986/5 (0,0,1)
2021-07-31T18:12:57.319Z zigbee-herdsman:adapter:zStack:znp:SREQ --> AF - dataRequest - {"dstaddr":62986,"destendpoint":5,"srcendpoint":1,"clusterid":513,"transid":100,"options":0,"radius":30,"len":7,"data":{"type":"Buffer","data":[16,25,2,28,0,48,1]}}
2021-07-31T18:12:57.320Z zigbee-herdsman:adapter:zStack:unpi:writer --> frame [254,17,36,1,10,246,5,1,1,2,100,0,30,7,16,25,2,28,0,48,1,148]
2021-07-31T18:12:57.332Z zigbee-herdsman:adapter:zStack:unpi:parser <-- [254,1,100,1,0,100]
2021-07-31T18:12:57.332Z zigbee-herdsman:adapter:zStack:unpi:parser --- parseNext [254,1,100,1,0,100]
2021-07-31T18:12:57.332Z zigbee-herdsman:adapter:zStack:unpi:parser --> parsed 1 - 3 - 4 - 1 - [0] - 100
2021-07-31T18:12:57.333Z zigbee-herdsman:adapter:zStack:znp:SRSP <-- AF - dataRequest - {"status":0}
2021-07-31T18:12:57.333Z zigbee-herdsman:adapter:zStack:unpi:parser --- parseNext []
2021-07-31T18:12:57.340Z zigbee-herdsman:adapter:zStack:unpi:parser <-- [254,3,68,128,0,1,100,162]
2021-07-31T18:12:57.340Z zigbee-herdsman:adapter:zStack:unpi:parser --- parseNext [254,3,68,128,0,1,100,162]
2021-07-31T18:12:57.340Z zigbee-herdsman:adapter:zStack:unpi:parser --> parsed 3 - 2 - 4 - 128 - [0,1,100] - 162
2021-07-31T18:12:57.341Z zigbee-herdsman:adapter:zStack:znp:AREQ <-- AF - dataConfirm - {"status":0,"endpoint":1,"transid":100}
2021-07-31T18:12:57.341Z zigbee-herdsman:adapter:zStack:unpi:parser --- parseNext []
2021-07-31T18:12:57.364Z zigbee-herdsman:adapter:zStack:unpi:parser <-- [254,5,69,196,10,246,1,148,11,230]
2021-07-31T18:12:57.364Z zigbee-herdsman:adapter:zStack:unpi:parser --- parseNext [254,5,69,196,10,246,1,148,11,230]
2021-07-31T18:12:57.364Z zigbee-herdsman:adapter:zStack:unpi:parser --> parsed 5 - 2 - 5 - 196 - [10,246,1,148,11] - 230
2021-07-31T18:12:57.364Z zigbee-herdsman:adapter:zStack:znp:AREQ <-- ZDO - srcRtgInd - {"dstaddr":62986,"relaycount":1,"relaylist":[2964]}
2021-07-31T18:12:57.364Z zigbee-herdsman:adapter:zStack:unpi:parser --- parseNext []
2021-07-31T18:12:57.416Z zigbee-herdsman:adapter:zStack:unpi:parser <-- [254,24,68,129,0,0,1,2,10,246,5,1,0,86,0,85,219,57,0,0,4,8,25,4,0,148,11,28,85]
2021-07-31T18:12:57.416Z zigbee-herdsman:adapter:zStack:unpi:parser --- parseNext [254,24,68,129,0,0,1,2,10,246,5,1,0,86,0,85,219,57,0,0,4,8,25,4,0,148,11,28,85]
2021-07-31T18:12:57.416Z zigbee-herdsman:adapter:zStack:unpi:parser --> parsed 24 - 2 - 4 - 129 - [0,0,1,2,10,246,5,1,0,86,0,85,219,57,0,0,4,8,25,4,0,148,11,28] - 85
2021-07-31T18:12:57.417Z zigbee-herdsman:adapter:zStack:znp:AREQ <-- AF - incomingMsg - {"groupid":0,"clusterid":513,"srcaddr":62986,"srcendpoint":5,"dstendpoint":1,"wasbroadcast":0,"linkquality":86,"securityuse":0,"timestamp":3791701,"transseqnumber":0,"len":4,"data":{"type":"Buffer","data":[8,25,4,0]}}
2021-07-31T18:12:57.420Z zigbee-herdsman:controller:log Received 'zcl' data '{"frame":{"Header":{"frameControl":{"frameType":0,"manufacturerSpecific":false,"direction":1,"disableDefaultResponse":false,"reservedBits":0},"transactionSequenceNumber":25,"manufacturerCode":null,"commandIdentifier":4},"Payload":[{"status":0}],"Command":{"ID":4,"name":"writeRsp","parameters":[{"name":"status","type":32},{"name":"attrId","type":33,"conditions":[{"type":"statusNotEquals","value":0}]}]}},"address":62986,"endpoint":5,"linkquality":86,"groupID":0}'
2021-07-31T18:12:57.422Z zigbee-herdsman:controller:endpoint DefaultResponse 0x001e5e0902193948/5 513(4, {"timeout":10000,"disableResponse":false,"disableRecovery":false,"disableDefaultResponse":true,"direction":1,"srcEndpoint":null,"reservedBits":0,"manufacturerCode":null,"transactionSequenceNumber":null,"writeUndiv":false})
2021-07-31T18:12:57.422Z zigbee-herdsman:adapter:zStack:unpi:parser --- parseNext []
2021-07-31T18:12:57.423Z zigbee-herdsman:adapter:zStack:adapter sendZclFrameToEndpointInternal 0x001e5e0902193948:62986/5 (0,0,1)
2021-07-31T18:12:57.424Z zigbee-herdsman:adapter:zStack:znp:SREQ --> AF - dataRequest - {"dstaddr":62986,"destendpoint":5,"srcendpoint":1,"clusterid":513,"transid":101,"options":0,"radius":30,"len":5,"data":{"type":"Buffer","data":[24,25,11,4,0]}}
2021-07-31T18:12:57.425Z zigbee-herdsman:adapter:zStack:unpi:writer --> frame [254,15,36,1,10,246,5,1,1,2,101,0,30,5,24,25,11,4,0,161]
Zigbee2MQTT:info  2021-07-31 19:12:57: MQTT publish: topic 'zigbee2mqtt/Hive receiver', payload '{"linkquality":86,"system_mode":"auto"}'
2021-07-31T18:12:57.437Z zigbee-herdsman:adapter:zStack:unpi:parser <-- [254,1,100,1,0,100]
2021-07-31T18:12:57.438Z zigbee-herdsman:adapter:zStack:unpi:parser --- parseNext [254,1,100,1,0,100]
2021-07-31T18:12:57.439Z zigbee-herdsman:adapter:zStack:unpi:parser --> parsed 1 - 3 - 4 - 1 - [0] - 100
2021-07-31T18:12:57.439Z zigbee-herdsman:adapter:zStack:znp:SRSP <-- AF - dataRequest - {"status":0}
2021-07-31T18:12:57.440Z zigbee-herdsman:adapter:zStack:unpi:parser --- parseNext []
2021-07-31T18:12:57.444Z zigbee-herdsman:adapter:zStack:unpi:parser <-- [254,3,68,128,0,1,101,163]
2021-07-31T18:12:57.445Z zigbee-herdsman:adapter:zStack:unpi:parser --- parseNext [254,3,68,128,0,1,101,163]
2021-07-31T18:12:57.445Z zigbee-herdsman:adapter:zStack:unpi:parser --> parsed 3 - 2 - 4 - 128 - [0,1,101] - 163
2021-07-31T18:12:57.446Z zigbee-herdsman:adapter:zStack:znp:AREQ <-- AF - dataConfirm - {"status":0,"endpoint":1,"transid":101}
2021-07-31T18:12:57.446Z zigbee-herdsman:adapter:zStack:unpi:parser --- parseNext []

system_mode HEAT PRESSED

Zigbee2MQTT:debug 2021-07-31 19:14:07: Received MQTT message on 'zigbee2mqtt/Hive receiver/set' with data '{"system_mode":"heat"}'
Zigbee2MQTT:debug 2021-07-31 19:14:07: Publishing 'set' 'system_mode' to 'Hive receiver'
2021-07-31T18:14:07.535Z zigbee-herdsman:controller:endpoint Write 0x001e5e0902193948/5 hvacThermostat({"systemMode":4}, {"timeout":10000,"disableResponse":false,"disableRecovery":false,"disableDefaultResponse":true,"direction":0,"srcEndpoint":null,"reservedBits":0,"manufacturerCode":null,"transactionSequenceNumber":null,"writeUndiv":false})
2021-07-31T18:14:07.536Z zigbee-herdsman:adapter:zStack:adapter sendZclFrameToEndpointInternal 0x001e5e0902193948:62986/5 (0,0,1)
2021-07-31T18:14:07.537Z zigbee-herdsman:adapter:zStack:znp:SREQ --> AF - dataRequest - {"dstaddr":62986,"destendpoint":5,"srcendpoint":1,"clusterid":513,"transid":102,"options":0,"radius":30,"len":7,"data":{"type":"Buffer","data":[16,26,2,28,0,48,4]}}
2021-07-31T18:14:07.537Z zigbee-herdsman:adapter:zStack:unpi:writer --> frame [254,17,36,1,10,246,5,1,1,2,102,0,30,7,16,26,2,28,0,48,4,144]
2021-07-31T18:14:07.548Z zigbee-herdsman:adapter:zStack:unpi:parser <-- [254,1,100,1,0,100]
2021-07-31T18:14:07.548Z zigbee-herdsman:adapter:zStack:unpi:parser --- parseNext [254,1,100,1,0,100]
2021-07-31T18:14:07.548Z zigbee-herdsman:adapter:zStack:unpi:parser --> parsed 1 - 3 - 4 - 1 - [0] - 100
2021-07-31T18:14:07.548Z zigbee-herdsman:adapter:zStack:znp:SRSP <-- AF - dataRequest - {"status":0}
2021-07-31T18:14:07.548Z zigbee-herdsman:adapter:zStack:unpi:parser --- parseNext []
2021-07-31T18:14:07.563Z zigbee-herdsman:adapter:zStack:unpi:parser <-- [254,3,68,128,0,1,102,160]
2021-07-31T18:14:07.564Z zigbee-herdsman:adapter:zStack:unpi:parser --- parseNext [254,3,68,128,0,1,102,160]
2021-07-31T18:14:07.564Z zigbee-herdsman:adapter:zStack:unpi:parser --> parsed 3 - 2 - 4 - 128 - [0,1,102] - 160
2021-07-31T18:14:07.565Z zigbee-herdsman:adapter:zStack:znp:AREQ <-- AF - dataConfirm - {"status":0,"endpoint":1,"transid":102}
2021-07-31T18:14:07.565Z zigbee-herdsman:adapter:zStack:unpi:parser --- parseNext []
2021-07-31T18:14:07.577Z zigbee-herdsman:adapter:zStack:unpi:parser <-- [254,3,69,196,10,246,0,126]
2021-07-31T18:14:07.577Z zigbee-herdsman:adapter:zStack:unpi:parser --- parseNext [254,3,69,196,10,246,0,126]
2021-07-31T18:14:07.577Z zigbee-herdsman:adapter:zStack:unpi:parser --> parsed 3 - 2 - 5 - 196 - [10,246,0] - 126
2021-07-31T18:14:07.578Z zigbee-herdsman:adapter:zStack:znp:AREQ <-- ZDO - srcRtgInd - {"dstaddr":62986,"relaycount":0,"relaylist":[]}
2021-07-31T18:14:07.578Z zigbee-herdsman:adapter:zStack:unpi:parser --- parseNext []
2021-07-31T18:14:07.636Z zigbee-herdsman:adapter:zStack:unpi:parser <-- [254,24,68,129,0,0,1,2,10,246,5,1,0,70,0,142,52,61,0,0,4,8,26,4,0,10,246,29,20]
2021-07-31T18:14:07.637Z zigbee-herdsman:adapter:zStack:unpi:parser --- parseNext [254,24,68,129,0,0,1,2,10,246,5,1,0,70,0,142,52,61,0,0,4,8,26,4,0,10,246,29,20]
2021-07-31T18:14:07.637Z zigbee-herdsman:adapter:zStack:unpi:parser --> parsed 24 - 2 - 4 - 129 - [0,0,1,2,10,246,5,1,0,70,0,142,52,61,0,0,4,8,26,4,0,10,246,29] - 20
2021-07-31T18:14:07.638Z zigbee-herdsman:adapter:zStack:znp:AREQ <-- AF - incomingMsg - {"groupid":0,"clusterid":513,"srcaddr":62986,"srcendpoint":5,"dstendpoint":1,"wasbroadcast":0,"linkquality":70,"securityuse":0,"timestamp":4011150,"transseqnumber":0,"len":4,"data":{"type":"Buffer","data":[8,26,4,0]}}
2021-07-31T18:14:07.641Z zigbee-herdsman:controller:log Received 'zcl' data '{"frame":{"Header":{"frameControl":{"frameType":0,"manufacturerSpecific":false,"direction":1,"disableDefaultResponse":false,"reservedBits":0},"transactionSequenceNumber":26,"manufacturerCode":null,"commandIdentifier":4},"Payload":[{"status":0}],"Command":{"ID":4,"name":"writeRsp","parameters":[{"name":"status","type":32},{"name":"attrId","type":33,"conditions":[{"type":"statusNotEquals","value":0}]}]}},"address":62986,"endpoint":5,"linkquality":70,"groupID":0}'
2021-07-31T18:14:07.642Z zigbee-herdsman:controller:endpoint DefaultResponse 0x001e5e0902193948/5 513(4, {"timeout":10000,"disableResponse":false,"disableRecovery":false,"disableDefaultResponse":true,"direction":1,"srcEndpoint":null,"reservedBits":0,"manufacturerCode":null,"transactionSequenceNumber":null,"writeUndiv":false})
2021-07-31T18:14:07.643Z zigbee-herdsman:adapter:zStack:unpi:parser --- parseNext []
2021-07-31T18:14:07.645Z zigbee-herdsman:adapter:zStack:adapter sendZclFrameToEndpointInternal 0x001e5e0902193948:62986/5 (0,0,1)
2021-07-31T18:14:07.645Z zigbee-herdsman:adapter:zStack:znp:SREQ --> AF - dataRequest - {"dstaddr":62986,"destendpoint":5,"srcendpoint":1,"clusterid":513,"transid":103,"options":0,"radius":30,"len":5,"data":{"type":"Buffer","data":[24,26,11,4,0]}}
2021-07-31T18:14:07.646Z zigbee-herdsman:adapter:zStack:unpi:writer --> frame [254,15,36,1,10,246,5,1,1,2,103,0,30,5,24,26,11,4,0,160]
Zigbee2MQTT:info  2021-07-31 19:14:07: MQTT publish: topic 'zigbee2mqtt/Hive receiver', payload '{"linkquality":70,"system_mode":"heat"}'
2021-07-31T18:14:07.657Z zigbee-herdsman:adapter:zStack:unpi:parser <-- [254,1,100,1,0,100]
2021-07-31T18:14:07.657Z zigbee-herdsman:adapter:zStack:unpi:parser --- parseNext [254,1,100,1,0,100]
2021-07-31T18:14:07.658Z zigbee-herdsman:adapter:zStack:unpi:parser --> parsed 1 - 3 - 4 - 1 - [0] - 100
2021-07-31T18:14:07.659Z zigbee-herdsman:adapter:zStack:znp:SRSP <-- AF - dataRequest - {"status":0}
2021-07-31T18:14:07.659Z zigbee-herdsman:adapter:zStack:unpi:parser --- parseNext []
2021-07-31T18:14:07.664Z zigbee-herdsman:adapter:zStack:unpi:parser <-- [254,3,68,128,0,1,103,161]
2021-07-31T18:14:07.664Z zigbee-herdsman:adapter:zStack:unpi:parser --- parseNext [254,3,68,128,0,1,103,161]
2021-07-31T18:14:07.664Z zigbee-herdsman:adapter:zStack:unpi:parser --> parsed 3 - 2 - 4 - 128 - [0,1,103] - 161
2021-07-31T18:14:07.665Z zigbee-herdsman:adapter:zStack:znp:AREQ <-- AF - dataConfirm - {"status":0,"endpoint":1,"transid":103}
2021-07-31T18:14:07.665Z zigbee-herdsman:adapter:zStack:unpi:parser --- parseNext []
steveuk23 commented 3 years ago

This is the only thing i can see that works occupied_heating_setpoint slider to to max 30

Zigbee2MQTT:debug 2021-07-31 19:14:58: Received MQTT message on 'zigbee2mqtt/Hive receiver/set' with data '{"occupied_heating_setpoint":30}'
Zigbee2MQTT:debug 2021-07-31 19:14:59: Publishing 'set' 'occupied_heating_setpoint' to 'Hive receiver'
2021-07-31T18:14:59.012Z zigbee-herdsman:controller:endpoint Write 0x001e5e0902193948/5 hvacThermostat({"occupiedHeatingSetpoint":3000}, {"timeout":10000,"disableResponse":false,"disableRecovery":false,"disableDefaultResponse":true,"direction":0,"srcEndpoint":null,"reservedBits":0,"manufacturerCode":null,"transactionSequenceNumber":null,"writeUndiv":false})
2021-07-31T18:14:59.014Z zigbee-herdsman:adapter:zStack:adapter sendZclFrameToEndpointInternal 0x001e5e0902193948:62986/5 (0,0,1)
2021-07-31T18:14:59.015Z zigbee-herdsman:adapter:zStack:znp:SREQ --> AF - dataRequest - {"dstaddr":62986,"destendpoint":5,"srcendpoint":1,"clusterid":513,"transid":104,"options":0,"radius":30,"len":8,"data":{"type":"Buffer","data":[16,27,2,18,0,41,184,11]}}
2021-07-31T18:14:59.016Z zigbee-herdsman:adapter:zStack:unpi:writer --> frame [254,18,36,1,10,246,5,1,1,2,104,0,30,8,16,27,2,18,0,41,184,11,51]
2021-07-31T18:14:59.026Z zigbee-herdsman:adapter:zStack:unpi:parser <-- [254,1,100,1,0,100]
2021-07-31T18:14:59.027Z zigbee-herdsman:adapter:zStack:unpi:parser --- parseNext [254,1,100,1,0,100]
2021-07-31T18:14:59.027Z zigbee-herdsman:adapter:zStack:unpi:parser --> parsed 1 - 3 - 4 - 1 - [0] - 100
2021-07-31T18:14:59.027Z zigbee-herdsman:adapter:zStack:znp:SRSP <-- AF - dataRequest - {"status":0}
2021-07-31T18:14:59.027Z zigbee-herdsman:adapter:zStack:unpi:parser --- parseNext []
2021-07-31T18:14:59.032Z zigbee-herdsman:adapter:zStack:unpi:parser <-- [254,3,68,128,0,1,104,174]
2021-07-31T18:14:59.033Z zigbee-herdsman:adapter:zStack:unpi:parser --- parseNext [254,3,68,128,0,1,104,174]
2021-07-31T18:14:59.033Z zigbee-herdsman:adapter:zStack:unpi:parser --> parsed 3 - 2 - 4 - 128 - [0,1,104] - 174
2021-07-31T18:14:59.033Z zigbee-herdsman:adapter:zStack:znp:AREQ <-- AF - dataConfirm - {"status":0,"endpoint":1,"transid":104}
2021-07-31T18:14:59.033Z zigbee-herdsman:adapter:zStack:unpi:parser --- parseNext []
2021-07-31T18:14:59.050Z zigbee-herdsman:adapter:zStack:unpi:parser <-- [254,3,69,196,10,246,0,126]
2021-07-31T18:14:59.050Z zigbee-herdsman:adapter:zStack:unpi:parser --- parseNext [254,3,69,196,10,246,0,126]
2021-07-31T18:14:59.050Z zigbee-herdsman:adapter:zStack:unpi:parser --> parsed 3 - 2 - 5 - 196 - [10,246,0] - 126
2021-07-31T18:14:59.052Z zigbee-herdsman:adapter:zStack:znp:AREQ <-- ZDO - srcRtgInd - {"dstaddr":62986,"relaycount":0,"relaylist":[]}
2021-07-31T18:14:59.052Z zigbee-herdsman:adapter:zStack:unpi:parser --- parseNext []
2021-07-31T18:14:59.101Z zigbee-herdsman:adapter:zStack:unpi:parser <-- [254,24,68,129,0,0,1,2,10,246,5,1,0,76,0,208,168,63,0,0,4,8,27,4,0,10,246,29,223]
2021-07-31T18:14:59.103Z zigbee-herdsman:adapter:zStack:unpi:parser --- parseNext [254,24,68,129,0,0,1,2,10,246,5,1,0,76,0,208,168,63,0,0,4,8,27,4,0,10,246,29,223]
2021-07-31T18:14:59.104Z zigbee-herdsman:adapter:zStack:unpi:parser --> parsed 24 - 2 - 4 - 129 - [0,0,1,2,10,246,5,1,0,76,0,208,168,63,0,0,4,8,27,4,0,10,246,29] - 223
2021-07-31T18:14:59.105Z zigbee-herdsman:adapter:zStack:znp:AREQ <-- AF - incomingMsg - {"groupid":0,"clusterid":513,"srcaddr":62986,"srcendpoint":5,"dstendpoint":1,"wasbroadcast":0,"linkquality":76,"securityuse":0,"timestamp":4171984,"transseqnumber":0,"len":4,"data":{"type":"Buffer","data":[8,27,4,0]}}
2021-07-31T18:14:59.108Z zigbee-herdsman:controller:log Received 'zcl' data '{"frame":{"Header":{"frameControl":{"frameType":0,"manufacturerSpecific":false,"direction":1,"disableDefaultResponse":false,"reservedBits":0},"transactionSequenceNumber":27,"manufacturerCode":null,"commandIdentifier":4},"Payload":[{"status":0}],"Command":{"ID":4,"name":"writeRsp","parameters":[{"name":"status","type":32},{"name":"attrId","type":33,"conditions":[{"type":"statusNotEquals","value":0}]}]}},"address":62986,"endpoint":5,"linkquality":76,"groupID":0}'
2021-07-31T18:14:59.110Z zigbee-herdsman:controller:endpoint DefaultResponse 0x001e5e0902193948/5 513(4, {"timeout":10000,"disableResponse":false,"disableRecovery":false,"disableDefaultResponse":true,"direction":1,"srcEndpoint":null,"reservedBits":0,"manufacturerCode":null,"transactionSequenceNumber":null,"writeUndiv":false})
2021-07-31T18:14:59.111Z zigbee-herdsman:adapter:zStack:unpi:parser --- parseNext []
2021-07-31T18:14:59.112Z zigbee-herdsman:adapter:zStack:adapter sendZclFrameToEndpointInternal 0x001e5e0902193948:62986/5 (0,0,1)
2021-07-31T18:14:59.113Z zigbee-herdsman:adapter:zStack:znp:SREQ --> AF - dataRequest - {"dstaddr":62986,"destendpoint":5,"srcendpoint":1,"clusterid":513,"transid":105,"options":0,"radius":30,"len":5,"data":{"type":"Buffer","data":[24,27,11,4,0]}}
2021-07-31T18:14:59.114Z zigbee-herdsman:adapter:zStack:unpi:writer --> frame [254,15,36,1,10,246,5,1,1,2,105,0,30,5,24,27,11,4,0,175]
2021-07-31T18:14:59.126Z zigbee-herdsman:adapter:zStack:unpi:parser <-- [254,1,100,1,0,100]
2021-07-31T18:14:59.126Z zigbee-herdsman:adapter:zStack:unpi:parser --- parseNext [254,1,100,1,0,100]
2021-07-31T18:14:59.127Z zigbee-herdsman:adapter:zStack:unpi:parser --> parsed 1 - 3 - 4 - 1 - [0] - 100
2021-07-31T18:14:59.127Z zigbee-herdsman:adapter:zStack:znp:SRSP <-- AF - dataRequest - {"status":0}
2021-07-31T18:14:59.127Z zigbee-herdsman:adapter:zStack:unpi:parser --- parseNext []
2021-07-31T18:14:59.132Z zigbee-herdsman:adapter:zStack:unpi:parser <-- [254,3,68,128,0,1,105,175]
2021-07-31T18:14:59.133Z zigbee-herdsman:adapter:zStack:unpi:parser --- parseNext [254,3,68,128,0,1,105,175]
2021-07-31T18:14:59.133Z zigbee-herdsman:adapter:zStack:unpi:parser --> parsed 3 - 2 - 4 - 128 - [0,1,105] - 175
2021-07-31T18:14:59.133Z zigbee-herdsman:adapter:zStack:znp:AREQ <-- AF - dataConfirm - {"status":0,"endpoint":1,"transid":105}
2021-07-31T18:14:59.134Z zigbee-herdsman:adapter:zStack:unpi:parser --- parseNext []

occupied_heating_setpoint slider to to min 7

Zigbee2MQTT:debug 2021-07-31 19:16:01: Received MQTT message on 'zigbee2mqtt/Hive receiver/set' with data '{"occupied_heating_setpoint":7}'
Zigbee2MQTT:debug 2021-07-31 19:16:01: Publishing 'set' 'occupied_heating_setpoint' to 'Hive receiver'
2021-07-31T18:16:01.284Z zigbee-herdsman:controller:endpoint Write 0x001e5e0902193948/5 hvacThermostat({"occupiedHeatingSetpoint":700}, {"timeout":10000,"disableResponse":false,"disableRecovery":false,"disableDefaultResponse":true,"direction":0,"srcEndpoint":null,"reservedBits":0,"manufacturerCode":null,"transactionSequenceNumber":null,"writeUndiv":false})
2021-07-31T18:16:01.285Z zigbee-herdsman:adapter:zStack:adapter sendZclFrameToEndpointInternal 0x001e5e0902193948:62986/5 (0,0,1)
2021-07-31T18:16:01.286Z zigbee-herdsman:adapter:zStack:znp:SREQ --> AF - dataRequest - {"dstaddr":62986,"destendpoint":5,"srcendpoint":1,"clusterid":513,"transid":113,"options":0,"radius":30,"len":8,"data":{"type":"Buffer","data":[16,29,2,18,0,41,188,2]}}
2021-07-31T18:16:01.286Z zigbee-herdsman:adapter:zStack:unpi:writer --> frame [254,18,36,1,10,246,5,1,1,2,113,0,30,8,16,29,2,18,0,41,188,2,33]
2021-07-31T18:16:01.297Z zigbee-herdsman:adapter:zStack:unpi:parser <-- [254,1,100,1,0,100]
2021-07-31T18:16:01.298Z zigbee-herdsman:adapter:zStack:unpi:parser --- parseNext [254,1,100,1,0,100]
2021-07-31T18:16:01.298Z zigbee-herdsman:adapter:zStack:unpi:parser --> parsed 1 - 3 - 4 - 1 - [0] - 100
2021-07-31T18:16:01.298Z zigbee-herdsman:adapter:zStack:znp:SRSP <-- AF - dataRequest - {"status":0}
2021-07-31T18:16:01.298Z zigbee-herdsman:adapter:zStack:unpi:parser --- parseNext []
2021-07-31T18:16:01.305Z zigbee-herdsman:adapter:zStack:unpi:parser <-- [254,3,68,128,0,1,113,183]
2021-07-31T18:16:01.305Z zigbee-herdsman:adapter:zStack:unpi:parser --- parseNext [254,3,68,128,0,1,113,183]
2021-07-31T18:16:01.305Z zigbee-herdsman:adapter:zStack:unpi:parser --> parsed 3 - 2 - 4 - 128 - [0,1,113] - 183
2021-07-31T18:16:01.305Z zigbee-herdsman:adapter:zStack:znp:AREQ <-- AF - dataConfirm - {"status":0,"endpoint":1,"transid":113}
2021-07-31T18:16:01.306Z zigbee-herdsman:adapter:zStack:unpi:parser --- parseNext []
2021-07-31T18:16:01.321Z zigbee-herdsman:adapter:zStack:unpi:parser <-- [254,3,69,196,10,246,0,126]
2021-07-31T18:16:01.321Z zigbee-herdsman:adapter:zStack:unpi:parser --- parseNext [254,3,69,196,10,246,0,126]
2021-07-31T18:16:01.322Z zigbee-herdsman:adapter:zStack:unpi:parser --> parsed 3 - 2 - 5 - 196 - [10,246,0] - 126
2021-07-31T18:16:01.322Z zigbee-herdsman:adapter:zStack:znp:AREQ <-- ZDO - srcRtgInd - {"dstaddr":62986,"relaycount":0,"relaylist":[]}
2021-07-31T18:16:01.322Z zigbee-herdsman:adapter:zStack:unpi:parser --- parseNext []
2021-07-31T18:16:01.374Z zigbee-herdsman:adapter:zStack:unpi:parser <-- [254,24,68,129,0,0,1,2,10,246,5,1,0,73,0,2,161,66,0,0,4,8,29,4,0,10,246,29,122]
2021-07-31T18:16:01.374Z zigbee-herdsman:adapter:zStack:unpi:parser --- parseNext [254,24,68,129,0,0,1,2,10,246,5,1,0,73,0,2,161,66,0,0,4,8,29,4,0,10,246,29,122]
2021-07-31T18:16:01.375Z zigbee-herdsman:adapter:zStack:unpi:parser --> parsed 24 - 2 - 4 - 129 - [0,0,1,2,10,246,5,1,0,73,0,2,161,66,0,0,4,8,29,4,0,10,246,29] - 122
2021-07-31T18:16:01.375Z zigbee-herdsman:adapter:zStack:znp:AREQ <-- AF - incomingMsg - {"groupid":0,"clusterid":513,"srcaddr":62986,"srcendpoint":5,"dstendpoint":1,"wasbroadcast":0,"linkquality":73,"securityuse":0,"timestamp":4366594,"transseqnumber":0,"len":4,"data":{"type":"Buffer","data":[8,29,4,0]}}
2021-07-31T18:16:01.378Z zigbee-herdsman:controller:log Received 'zcl' data '{"frame":{"Header":{"frameControl":{"frameType":0,"manufacturerSpecific":false,"direction":1,"disableDefaultResponse":false,"reservedBits":0},"transactionSequenceNumber":29,"manufacturerCode":null,"commandIdentifier":4},"Payload":[{"status":0}],"Command":{"ID":4,"name":"writeRsp","parameters":[{"name":"status","type":32},{"name":"attrId","type":33,"conditions":[{"type":"statusNotEquals","value":0}]}]}},"address":62986,"endpoint":5,"linkquality":73,"groupID":0}'
2021-07-31T18:16:01.379Z zigbee-herdsman:controller:endpoint DefaultResponse 0x001e5e0902193948/5 513(4, {"timeout":10000,"disableResponse":false,"disableRecovery":false,"disableDefaultResponse":true,"direction":1,"srcEndpoint":null,"reservedBits":0,"manufacturerCode":null,"transactionSequenceNumber":null,"writeUndiv":false})
2021-07-31T18:16:01.380Z zigbee-herdsman:adapter:zStack:unpi:parser --- parseNext []
2021-07-31T18:16:01.381Z zigbee-herdsman:adapter:zStack:adapter sendZclFrameToEndpointInternal 0x001e5e0902193948:62986/5 (0,0,1)
2021-07-31T18:16:01.382Z zigbee-herdsman:adapter:zStack:znp:SREQ --> AF - dataRequest - {"dstaddr":62986,"destendpoint":5,"srcendpoint":1,"clusterid":513,"transid":114,"options":0,"radius":30,"len":5,"data":{"type":"Buffer","data":[24,29,11,4,0]}}
2021-07-31T18:16:01.382Z zigbee-herdsman:adapter:zStack:unpi:writer --> frame [254,15,36,1,10,246,5,1,1,2,114,0,30,5,24,29,11,4,0,178]
2021-07-31T18:16:01.393Z zigbee-herdsman:adapter:zStack:unpi:parser <-- [254,1,100,1,0,100]
2021-07-31T18:16:01.394Z zigbee-herdsman:adapter:zStack:unpi:parser --- parseNext [254,1,100,1,0,100]
2021-07-31T18:16:01.394Z zigbee-herdsman:adapter:zStack:unpi:parser --> parsed 1 - 3 - 4 - 1 - [0] - 100
2021-07-31T18:16:01.394Z zigbee-herdsman:adapter:zStack:znp:SRSP <-- AF - dataRequest - {"status":0}
2021-07-31T18:16:01.394Z zigbee-herdsman:adapter:zStack:unpi:parser --- parseNext []
2021-07-31T18:16:01.400Z zigbee-herdsman:adapter:zStack:unpi:parser <-- [254,3,68,128,0,1,114,180]
2021-07-31T18:16:01.400Z zigbee-herdsman:adapter:zStack:unpi:parser --- parseNext [254,3,68,128,0,1,114,180]
2021-07-31T18:16:01.400Z zigbee-herdsman:adapter:zStack:unpi:parser --> parsed 3 - 2 - 4 - 128 - [0,1,114] - 180
2021-07-31T18:16:01.400Z zigbee-herdsman:adapter:zStack:znp:AREQ <-- AF - dataConfirm - {"status":0,"endpoint":1,"transid":114}
2021-07-31T18:16:01.400Z zigbee-herdsman:adapter:zStack:unpi:parser --- parseNext []
2021-07-31T18:16:05.530Z zigbee-herdsman:adapter:zStack:unpi:parser <-- [254,3,69,196,217,0,0,91]
2021-07-31T18:16:05.530Z zigbee-herdsman:adapter:zStack:unpi:parser --- parseNext [254,3,69,196,217,0,0,91]
2021-07-31T18:16:05.531Z zigbee-herdsman:adapter:zStack:unpi:parser --> parsed 3 - 2 - 5 - 196 - [217,0,0] - 91
2021-07-31T18:16:05.531Z zigbee-herdsman:adapter:zStack:znp:AREQ <-- ZDO - srcRtgInd - {"dstaddr":217,"relaycount":0,"relaylist":[]}
2021-07-31T18:16:05.531Z zigbee-herdsman:adapter:zStack:unpi:parser --- parseNext []
2021-07-31T18:16:05.578Z zigbee-herdsman:adapter:zStack:unpi:parser <-- [254,28,68,129,0,0,4,11,217,0,1,1,0,84,0,83,212,66,0,0,8,8,62,10,8,5,33,95,3,217,0,29,30]
2021-07-31T18:16:05.579Z zigbee-herdsman:adapter:zStack:unpi:parser --- parseNext [254,28,68,129,0,0,4,11,217,0,1,1,0,84,0,83,212,66,0,0,8,8,62,10,8,5,33,95,3,217,0,29,30]
2021-07-31T18:16:05.579Z zigbee-herdsman:adapter:zStack:unpi:parser --> parsed 28 - 2 - 4 - 129 - [0,0,4,11,217,0,1,1,0,84,0,83,212,66,0,0,8,8,62,10,8,5,33,95,3,217,0,29] - 30
2021-07-31T18:16:05.579Z zigbee-herdsman:adapter:zStack:znp:AREQ <-- AF - incomingMsg - {"groupid":0,"clusterid":2820,"srcaddr":217,"srcendpoint":1,"dstendpoint":1,"wasbroadcast":0,"linkquality":84,"securityuse":0,"timestamp":4379731,"transseqnumber":0,"len":8,"data":{"type":"Buffer","data":[8,62,10,8,5,33,95,3]}}
2021-07-31T18:16:05.584Z zigbee-herdsman:controller:log Received 'zcl' data '{"frame":{"Header":{"frameControl":{"frameType":0,"manufacturerSpecific":false,"direction":1,"disableDefaultResponse":false,"reservedBits":0},"transactionSequenceNumber":62,"manufacturerCode":null,"commandIdentifier":10},"Payload":[{"attrId":1288,"dataType":33,"attrData":863}],"Command":{"ID":10,"name":"report","parameters":[{"name":"attrId","type":33},{"name":"dataType","type":32},{"name":"attrData","type":1000}]}},"address":217,"endpoint":1,"linkquality":84,"groupID":0}'
robertalexa commented 3 years ago

@steveuk23 Can you please replace constants.repInterval.HOUR with 3600

That should take care of the constants error, idk if this would mess up with the rest but try to refresh 1 single thing like the local_temp and see if you get the same error message. If you do, no need to post new logs. Post them only if there is something new happening.

With regards to the system_mode, it feels like the commands are successful, so things should be happening? You could try setting it to heat, then from the thermostat set it to a high temperature, listen for your boiler, wait for it to ignite basically. Then set system_mode to off. Theoretically the boiler should stop?

As to the other error, that is a bit unexpected. Without some manual debugging not sure if i can figure it out. Have a look at my above suggestion first and maybe in the meantime Koen or Jorge have a look too.

steveuk23 commented 3 years ago

@robertalexa The receivers not actually connected to the boiler at the moment i didn't want to connect it until i had it working so it's just connected to a plug. I've changed your code and i've not noticed any constant errors so far, But the same errors are still there when i refresh any of the refresh icons. You're right the system_modes are actually working it's just taking time to sync to the linked thermostat. Thanks for all the help with this i'm further on then when i was before ha ha Could i ask how it detects the current temperature is that sent over from the linked Hive thermostat ? as i noticed all the Hive thermostats only expose the link quality. I'm guessing it's not displaying the statues of the receiver exposes because of this error when refreshing ?

steveuk23 commented 3 years ago

i've just been reading https://github.com/Koenkk/zigbee2mqtt/issues/7926 post where @Koenkk replies saying he's missing 2 convertors. Going off that am i right in thinking i'm missing fz.thermostat_att_report and fz.thermostat_weekly_schedule_rsp ?

robertalexa commented 3 years ago

Morning @steveuk23 :)

Glad to hear about system_mode

With regards to local temperature, the thermostat is the one that will measure it and compare it to the temperature that you set, the receiver (SLR1) will just "do the work", but yes, it might appear confusing for the receiver to report the temperature and the thermostat to only act as a remote. In short, the thermostat reports the local temp to the receiver and the receiver "declares/exposes" it basically.

Your URL text is correct but the actual link is broken - but i read the thread and yes I expect it to be something along those lines, thus me asking if for sure you have not removed any other code. Technically all the endpoints should be available.

Can you please replace this line fromZigbee: [fz.thermostat_att_report, fz.thermostat_weekly_schedule_rsp], with fromZigbee: [fz.legacy.thermostat_att_report, fz.legacy.thermostat_weekly_schedule_rsp],

That might be what is causing this. Give it a try and please let me know how it went.

Thanks, Rob

steveuk23 commented 3 years ago

Sorry morning @robertalexa i wasn't sure which time zone you was in ha ha I have just replaced that line of code but the Z2M dashboard fails to load back up until i replace it back. I just want to to double check when you say i might have removed code, where exactly should i look to make sure ?

robertalexa commented 3 years ago

@steveuk23 that makes absolutely no sense. When you replace that line do you get an error in the log?

If by you can't access the dashboard as in you get 502 Bad Gateway, remember you have to give it a minute for the addon to properly start.

Also make sure that you have copied and pasted correctly and not created any syntax errors.

As to code removed, that is very hard for me to advise, you are the only one that knows what files you edited :)

steveuk23 commented 3 years ago

@robertalexa Yeah it's the 502 Bad gateway. i remembered what you said about waiting and have given it nearly 5 minutes but still nothing. I'm getting this error in the logs:

> zigbee2mqtt@1.18.1 start /app
> node index.js
(node:3138) UnhandledPromiseRejectionWarning: TypeError: Cannot read property 'thermostat_att_report' of undefined
(Use `node --trace-warnings ...` to show where the warning was created)
(node:3138) UnhandledPromiseRejectionWarning: Unhandled promise rejection. This error originated either by throwing inside of an async function without a catch block, or by rejecting a promise which was not handled with .catch(). To terminate the node process on unhandled promise rejection, use the CLI flag `--unhandled-rejections=strict` (see https://nodejs.org/api/cli.html#cli_unhandled_rejections_mode). (rejection id: 1)
(node:3138) [DEP0018] DeprecationWarning: Unhandled promise rejections are deprecated. In the future, promise rejections that are not handled will terminate the Node.js process with a non-zero exit code.
[13:43:23] INFO: Zigbee Herdsman debug logging enabled
[13:43:23] INFO: Handing over control to Zigbee2mqtt Core ...
> zigbee2mqtt@1.18.1 start /app
> node index.js
robertalexa commented 3 years ago

Thanks for the logs.

Try changing that line again and on top of that also replace this line const fz = require('zigbee-herdsman-converters/converters/fromZigbee');

with this const fz = {...require('zigbee-herdsman-converters/converters/fromZigbee'), legacy: require('zigbee-herdsman-converters/lib/legacy').fromZigbee};

It's my bad for that. I forgot i didn't include the legacy in my original code.

I have tried this in my z2m instance and it boots up correctly.

Let me know how it goes.

steveuk23 commented 3 years ago

@robertalexa Yes... that seems to have done it :) All the refreshes work and the system_modes etc and it all syncs to HA and to the thermostat Only thing i can't see is the pi_heating_demand but i'm not sure what that's meant to show ? Thanks so much for all you're help it really is appreciated. If this was you would you leave the heating schedule to the one set in the thermostat or maybe create one with node red or a automation etc ? On another note do you happen to know if i can change the default image of the device from the red Z, i do remember seeing a option somewhere but can't find it now. hive3

robertalexa commented 3 years ago

Hi @steveuk23

I am glad it is now working. So yeah, it basically operates like the SLR1b so it will be an easy fix.

My bad for the problem caused by the "legacy". I should have just used it in the code.

pi_heating_demand will technically show how much the valve should be open and it is decided based on the difference between local_temperature and occupied_heating_setpoint. In principle this should update itself once an hour, based on the reporting settings. I do not know however if this actually works or not. Can you please set your temperature to the highest, and leave it running for say an hour or 2 and see if pi_heating_demand gets updated? That will give us a definitive answer.

As mentioned to you before, i have the SLR1b but never found the time to try and get it set up in my z2m, but I plan to do it really soon, and also fix everything that is missing, cause there are some missing features in z2m.

When i get around it, will you please be willing to do some testing for me, as everything new that i will do to the slr1b i will do to slr1, so that people like you benefit from it too. I am also inclined to try to "blindly" improve the SLR2 and SLR2b and i think i can find a couple of people to test for me.

On this topic, could you please tell me something? What is the lowest and highest temperature that you can set on the SLR1 using the physical thermostat? Cause i bet it is different than what you can do in the Frontend.

With regards to the device image, I will add the image when i submit my PR to support your device (which i will do as soon as we both agree things behave as they should, so maybe even today.) Can you confirm if your receiver looks like this? https://www.zigbee2mqtt.io/devices/SLR1b.html

As to the heating schedule, i would personally not do it through the device itself. This is exactly what i have chosen to do for my TRVs. That is also because on the TRVs, if you take out the batteries and put them back in the schedule gets lost. I wouldn't be surprised if the same happens to the thermostat. Instead, I simply change the desired temperature using Node-Red flows. I think system_mode auto actually uses the internal scheduler. Off is obviously off and heat is manual control. So basically I would do Off when you want it off, and "heat" for everything else. Then using node red you decide if it is OFF at night, HEAT 18C when you are away and HEAT 22C when you are home :) But I would test what is the behaviour of OFF, i would expect it to set the temperature around 6 degrees, that is to have frost protection. If it doesn't do that, then i would just stick to HEAT instead and manually setting the temp to 9C

Sorry for the long post, hopefully this answers your questions. If you clarify the things above for me then i can go ahead and submit the PR and get your device officially supported.

robertalexa commented 3 years ago

@steveuk23 Try replacing 3600 with 600 and reload the addon. That would change the reporting of heating demand from hourly to only 10 minutes, which would be better anyway. See if that value gets populated.

steveuk23 commented 3 years ago

@robertalexa Hopefully ill answer all the questions ha ha

Of course i'm more then happy to help you with testing. I do have a working hive attached to my boiler and i think the receiver i have attached is the SLR2b as it's the dual channel but i don't need the dual channel only single and i saw this thermostat and receiver going for Ā£6 for both on eBay and thought they would be great to work on and when i've got it working swap the dual channel to the single channel and go local but i didn't realise i had bought a older version receiver. I am going away tomorrow on a Mon-Fri break so won't be able to help test things for you till afterwards I've updated that code to 600 now but not sure if it's updated yet , i'm sure it would

robertalexa commented 3 years ago

@steveuk23 Thanks for coming back to me.

I know you are probably looking forward to swapping the 2 receivers, but would you be kind to help me test both SLR1 and SLR2b before you do so? This way i can hopefully improve all these devices in one swift movement, and it also means i do not need to find someone else to test it for me. Of course that is when you come back. Please? :)

All this work we did on this device made me really want to get on with my SLR1b, which i now have on my desk. If my research is correct, i should be able to make some changes to it while you are away, then we can look at the other receivers together.

Because of you going on holiday, the fact that the next z2m release is around 1st of Sept, and because I have finally made a start on my receiver, I think there is no rush to submit a PR to support your device just yet. I think it would be better if i can submit a better version of it in one go. Does that work with you?

steveuk23 commented 3 years ago

@robertalexa Yeah sure i don't mind testing both. I'm presuming it's a SLR2b at this point unless i take it off, i'm just guessing at this point i know it's the latest dual channel. Would i be able to test the SLR2b while its still attached to the boiler ? i'm guessing so lol I would have tried setting up my working hive originally but i was worried i wouldn't be able to get it working back with Hive if i was unable to get it working locally and i couldn't understand how climates worked in HA and also find a flow for the heating schedule . Also the wiring is slightly different between the single and dual channel hives and i always worry about blowing up my boiler even though i have the wiring diagram in front of me ha ha i started off by reading this but couldn't get his node red flow to load https://github.com/roadsnail/Hive-SLR2-SLT2-Zigbee2MQTT-with-node-RED

robertalexa commented 3 years ago

It is either an SLR2 or a SLR2b, god knows what the difference is.

Yes you should be able to test it while connected. None of the data goes to the boiler. The boiler only heat the water or not (in a simplified explanation). I do not know the extend of our testing yet. It depends on what i can get working :)

You can always put the devices back into pairing mode, get onto the Hive app, add device and voila.

I am guessing your boiler is a combi one? With the boiler boiling water for both heating and running water at once? Cause only that will work with SLR1 (basically single channel). I am no expert in wiring them so take my advice wiht a pinch of salt, but if your boiler is a combi then you probably have no wires connected to the water side of things on your SLR2b? Which basically means you transfer your existing wires onto the SLR1? Should be simple?

I am familiar with that link, but in my approach I am not using that. The reason for it is because i want my dashboard in HA, not in Node Red. Have a look here: https://www.reddit.com/r/homeassistant/comments/l1hzuv/recommendations_for_an_editable_schedule/

This is a person that wanted to move away from Hive too, but didn't fully do it. Feel free to have a read through it, the guy also provided me with code snippets to form an idea for his approach. But still ended up pretty much doing my own thing. I do not mind sharing some idea with you on this, but I am not sure this thread is the best place, cause this would be very off-topic. I did promise that guy that i will share with him my setup once it is ready (and i just need to do the main thermostat), so maybe we can talk about it in thhat Reddit thread?

steveuk23 commented 3 years ago

@robertalexa Thanks for the link that look good my reddit name is the same as here if you want to tag me to arrange testing through there. I've just undone my working Hive and it is a SLR2b and it's just a case of swapping 1 wire as i have a combi boiler like you thought, from random websites i've read i think the model number change was because of branding as they were moving away from using a company called "alert.me" I've actually just read your line on there about not requiring it to be "Granny Friendly" ha ha never heard that before Wife friendly yeah...

robertalexa commented 3 years ago

Before you take things apart, take photos with your phone. You will be grateful to yourself later in case things don't go well. Write on a piece of paper what colour cable you took out of what hole. Then it should be easy to swap over.

Thanks for the information about versioning :)

Yeah, Wife Friendly in my household means she can see a pretty dashboard, press a button to turn the heating on. The rest of the magic happens with my automations, wife doesn't understand nor care probably. And scheduling would also go above her head. Heck it gave me a really hard time and i work as a developer so... yeah... granny friendly :)

PS: i am currently reviewing all the features, all the possible controls etc and I am trying to filter out the things that should not be exposed, or require a more complex process that will not work through a simple expose. So those things are out of the equation. I would however want to document them, so users can learn what commands they need to run for example to boost their heating "natively" etc. We shall see how it goes. Heck i mind realise that not a lot of these can or should be exposed. As they will make big boo boos if you use them wrong.

PPS: I have create a PR for that image already, so it will be ready when you need it

steveuk23 commented 3 years ago

@robertalexa Thanks yeah I just took pictures then when I took it off it looks a lot simpler then I thought just moving 1 wire across. With you saying that I probably don't really use the schedule as much as I think as my wife and son are constantly manually changing it. That also reminded me of another worry I had about how I would recreate the boost function On my Lovelace at the moment I have 3 buttons for 30,45 and 60 mins boost that run a script that's linked to the boost sensor thing that provides a timer...I would have no idea how to create that.

robertalexa commented 3 years ago

Patience young grass hopper :) All in due time. With good documentation you will understand how to do it. And I will be sorting that out, and you will also participate in testing 2 different devices, so you will get a chance to practice.

Did you get an update on the pi_heating_demand yet?

robertalexa commented 3 years ago

Oh by the way, if you are worried about testing while wired, you can first test on the SLR1, once we are done you get that fitted, we test on the SLR2b on your desk. So realistically nothing horribly wrong can happen.

robertalexa commented 3 years ago

@steveuk23 You wanna hear something funny? My receiver is not a SLR1b, it's actually and SLR1, just like yours.

I just tried pairing it and taaa daaa surprise surprise.

So i will be doing all the work and testing on this. Go enjoy your holiday :)

steveuk23 commented 3 years ago

@robertalexa No it's still reporting N/A I think it's been over a hour now can't remember exactly when I set it lol Hopefully I'll learn some more from doing this. Yeah I might do that what you said about swapping them over to work on the desk. I'm getting further along each day with most things, them 3 buttons I mentioned turn red when the boost is active but because all 3 buttons are linked to one sensor they all turn red no matter which is pressed. Anyway that's a different topic :)

steveuk23 commented 3 years ago

@steveuk23 You wanna hear something funny? My receiver is not a SLR1b, it's actually and SLR1, just like yours.

I just tried pairing it and taaa daaa surprise surprise.

So i will be doing all the work and testing on this. Go enjoy your holiday :)

Ha ha that's a coincidence least you've done all the leg work already.

robertalexa commented 3 years ago

@steveuk23 You wanna hear something funny? My receiver is not a SLR1b, it's actually and SLR1, just like yours. I just tried pairing it and taaa daaa surprise surprise. So i will be doing all the work and testing on this. Go enjoy your holiday :)

Ha ha that's a coincidence least you've done all the leg work already.

Yes but it could also have been sooo much faster without the ping pong. Well, it happens

steveuk23 commented 3 years ago

@robertalexa well yeah suppose. Have you had your hive a few years then ? my wife thinks i'm daft even trying saying whats the point it works and i tell her...... but no it goes down no and again and the local part etc

robertalexa commented 3 years ago

I have bought the house last year and it had it already.

1st - she doesn't need to understand, you probably know better. See my Wife Friendly point above. And then now all the legit reasons

Does that help to convince your wife? :)

steveuk23 commented 3 years ago

@robertalexa Some great points :) TRV's are probably my next purchase i've been looking through different brands already but must say have read some really bad feedback on the HIve ones.

robertalexa commented 3 years ago

Now that i moved them away from Hive and into Z2M, and added a truckload of support for them, I am super pleased with them. I am not trying to say buy these ones in particular, you can probably get TuYa ones for less money. But i bought them before i started my own HA and yeah, i ended up supporting them properly. They are not even Hive products, they are actually Danfoss Ally trvs, and Danfoss is one of the best "heating" companies out there, so the actual device is pretty solid, just Hive is bad :))

steveuk23 commented 3 years ago

@robertalexa i'll have another look at then then thanks.

peterguy04 commented 3 years ago

@steveuk23

Yeah sure i don't mind testing both. I'm presuming it's a SLR2b at this point unless i take it off, i'm just guessing at this point i know it's the latest dual channel.

hey, the difference visually between SLR2 and SLR2b is text vs icons, so on SLR2 its text (hot water / central heating ) and SLR2b is icons (a tap and a flame ) i dont know what changes where actually made but thats how you can tell them apart from my experience image image

also @robertalexa i thought id message ya here seen as i am here, i have a SLT2 , SLR2 and 10x Hive TRVs

robertalexa commented 3 years ago

@peterguy04 Really appreciate you offering to help.

Allow me to put together some code for you to test with, i am currently trying to make sure it works before i give it to you.

  1. TRVs - i have already added the most support I was able to a few months ago. The TRVs now expose a lot more attributes, and more importantly they change temperature instantly skipping the PID

  2. SLR2 - can you confirm that system_mode does not update when you change it from the physical thermostat? As in in order to get an update you need to refresh it manually? If so, i can make a fix and have that report the change and i can also guide you so you can test it fairly quickly. I will also change the temperature based on the info you gave me.

  3. SLT2 - give me a few minutes and i will reply with some instructions

robertalexa commented 3 years ago

@peterguy04

Regarding my 2nd point, if my above thinking is correct, using the Frontend, can you please go on the receiver, click on Reporting, and set a new reporting using the following values?

Endpoint 5 is for heating image

Endpoint 6 is for water Please try to set the same thing on endpoint 6. This one might fail, but i do not know since i do not have a double channel receiver. I will wait for your testing

You will need to receive a successful binding message before you can attempt to change system_mode via the physical thermostat, and then check if the mode changed in z2m

peterguy04 commented 3 years ago

so just a bit of info, when we first pair these to z2m and try set them to a temp it jumps back to 0, this is fixed by physically setting the Tstat to manual mode . it only needs to be done once , then we can change modes etc from there and temp values stick

SLR2 - your right you have to manually hit refresh for the change to happen, this is true for both heat/manual and off. but auto is non functional

adding the reporting as you suggested to EP5 worked EP6 we have 4 modes on thermostat ON , OFF, Boost and Auto setting ON and auto both turned to HEAT in z2m, off worked as expected but Boost made all become unselected.

the water endpoint has a fixed temp reading of 21c and a fixed "setheatpoint" as 22c. so this relay really is just a on/off switch