Koenkk / zigbee-OTA

A collection of Zigbee OTA files
411 stars 189 forks source link

Flash Hive TRV with Danfoss Ally firmware 1.18 #103

Closed robertalexa closed 2 years ago

robertalexa commented 2 years ago

Hi @Koenkk

I have hit a brick wall and I would appreciate your guidance if you have the time.

As you might have heard before, Hive TRV is just a Danfoss Ally hardware but with a Hive firmware on it (I think exactly the same for Popp TRV but i do not have experience with it).

And i hate it :D I hate Hive... but that is offtopic. My aim is to flash the device with the official Danfoss firmware, which should hopefully leave me with native danfoss devices with just a different logo on the plastic.

Here are the steps I have done, in the order I did them:

  1. as the device extends danfoss, it extends the ota functionality. But of course there is no firmware for it in z-ota repo. This gives me Failed to check if update available for 'Rob's Office TRV' (No image available for imageType '66'). So i understand that imageType 66 is what i need
  2. Forked z-ota (https://github.com/robertalexa/zigbee-OTA), copied the danfoss entry but used 66 as imageType. Also added force: true because Hive's version is higher than Danfoss
    {
        "fileVersion": 274,
        "fileSize": 379806,
        "manufacturerCode": 4678,
        "imageType": 66,
        "sha512": "873effaa113e1d07643fbf25f6e26ee4b23f8deb7d006cce7fc490fd8ad7a5754de4c352b6f3d5e172022a34ea2699f5d1d8fda90f4348b25d5feaa169e38c85",
        "url": "https://github.com/Koenkk/zigbee-OTA/raw/master/images/Danfoss/1246-0100-01180118.0002_%28F5BFD8B8%29.ota",
        "path": "images/Danfoss/1246-0100-01180118.0002_(F5BFD8B8).ota",
        "force": true
    },
  3. Commented out the following assertion: This of course is because the device and index are 66 but the file itself is Danfoss' and is 256 (node_modules/zigbee-herdsman-converters/lib/ota/common.js)
    assert(image.header.imageType === current.imageType, 'Image type mismatch');
  4. Run OTA and it fails:
    Zigbee2MQTT:debug 2022-04-02 21:22:51: Received MQTT message on 'zigbee2mqtt/bridge/request/device/ota_update/update' with data '{"id":"0x842e14fffe203c4c","transaction":"z5442-1"}'
    Zigbee2MQTT:info  2022-04-02 21:22:51: Updating '0x842e14fffe203c4c' to latest firmware
    Zigbee2MQTT:debug 2022-04-02 21:22:57: Received Zigbee message from '0x842e14fffe203c4c', type 'readResponse', cluster 'genBasic', data '{"dateCode":"20200402","swBuildId":"02.33.0008 02.33"}' from endpoint 1 with groupID 0
    Zigbee2MQTT:debug 2022-04-02 21:22:57: Updating to latest '0x842e14fffe203c4c' (TRV001)
    Zigbee2MQTT:debug 2022-04-02 21:22:57: Using endpoint '1'
    Zigbee2MQTT:debug 2022-04-02 21:23:01: Received Zigbee message from '0x842e14fffe203c4c', type 'commandQueryNextImageRequest', cluster 'genOta', data '{"fieldControl":0,"fileVersion":545,"imageType":66,"manufacturerCode":4678}' from endpoint 1 with groupID 0
    Zigbee2MQTT:debug 2022-04-02 21:23:01: Device '0x842e14fffe203c4c' requested OTA
    Zigbee2MQTT:debug 2022-04-02 21:23:01: Got OTA request '{"fieldControl":0,"manufacturerCode":4678,"imageType":66,"fileVersion":545}'
    Zigbee2MQTT:debug 2022-04-02 21:23:01: ZigbeeOTA: downloaded main index
    Zigbee2MQTT:debug 2022-04-02 21:23:01: getNewImage for '0x842e14fffe203c4c', meta {"fileVersion":274,"fileSize":379806,"url":"https://github.com/Koenkk/zigbee-OTA/raw/master/images/Danfoss/1246-0100-01180118.0002_%28F5BFD8B8%29.ota","sha512":"873effaa113e1d07643fbf25f6e26ee4b23f8deb7d006cce7fc490fd8ad7a5754de4c352b6f3d5e172022a34ea2699f5d1d8fda90f4348b25d5feaa169e38c85","force":true}
    Zigbee2MQTT:debug 2022-04-02 21:23:01: ZigbeeOTA: downloading firmware image from https://github.com/Koenkk/zigbee-OTA/raw/master/images/Danfoss/1246-0100-01180118.0002_%28F5BFD8B8%29.ota
    Zigbee2MQTT:debug 2022-04-02 21:23:01: OTA update checksum validation succeeded for '0x842e14fffe203c4c'
    Zigbee2MQTT:debug 2022-04-02 21:23:01: getNewImage for '0x842e14fffe203c4c', image header {"otaUpgradeFileIdentifier":{"type":"Buffer","data":[30,241,238,11]},"otaHeaderVersion":256,"otaHeaderLength":56,"otaHeaderFieldControl":0,"manufacturerCode":4678,"imageType":256,"fileVersion":274,"zigbeeStackVersion":2,"otaHeaderString":"29-11-2021 V.0112.0112\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000","totalImageSize":379806}
    Zigbee2MQTT:debug 2022-04-02 21:23:01: Got new image for '0x842e14fffe203c4c'
    Zigbee2MQTT:debug 2022-04-02 21:23:01: Starting upgrade
    Zigbee2MQTT:debug 2022-04-02 21:23:02: Received Zigbee message from '0x842e14fffe203c4c', type 'commandQueryNextImageRequest', cluster 'genOta', data '{"fieldControl":0,"fileVersion":545,"imageType":66,"manufacturerCode":4678}' from endpoint 1 with groupID 0
    Zigbee2MQTT:debug 2022-04-02 21:23:02: Device '0x842e14fffe203c4c' requested OTA
    Zigbee2MQTT:debug 2022-04-02 21:25:29: Received Zigbee message from '0x842e14fffe203c4c', type 'attributeReport', cluster 'hvacThermostat', data '{"localTemp":2172}' from endpoint 1 with groupID 0
    Zigbee2MQTT:info  2022-04-02 21:25:29: MQTT publish: topic 'zigbee2mqtt/0x842e14fffe203c4c', payload '{"battery":39,"external_measured_room_sensor":-8000,"keypad_lockout":"unlock","linkquality":115,"load_estimate":5,"local_temperature":21.72,"mounted_mode_active":false,"system_mode":"heat","update":{"state":"available"}}'
    Zigbee2MQTT:debug 2022-04-02 21:25:31: Update of '0x842e14fffe203c4c' failed (Error: Timeout: device did not request any image blocks)
    Zigbee2MQTT:info  2022-04-02 21:25:31: MQTT publish: topic 'zigbee2mqtt/0x842e14fffe203c4c', payload '{"battery":39,"external_measured_room_sensor":-8000,"keypad_lockout":"unlock","linkquality":115,"load_estimate":5,"local_temperature":21.72,"mounted_mode_active":false,"system_mode":"heat","update":{"state":"available"}}'
    Zigbee2MQTT:info  2022-04-02 21:25:31: MQTT publish: topic 'zigbee2mqtt/bridge/response/device/ota_update/update', payload '{"data":{"id":"0x842e14fffe203c4c"},"error":"Update of '0x842e14fffe203c4c' failed (Timeout: device did not request any image blocks)","status":"error","transaction":"z5442-1"}'
    Zigbee2MQTT:error 2022-04-02 21:25:31: Update of '0x842e14fffe203c4c' failed (Timeout: device did not request any image blocks)
    Zigbee2MQTT:debug 2022-04-02 21:25:31: Error: Timeout: device did not request any image blocks
    at /home/rob/Projects/zigbee2mqtt/node_modules/zigbee-herdsman-converters/lib/ota/common.js:360:28
    at runNextTicks (node:internal/process/task_queues:59:5)
    at listOnTimeout (node:internal/timers:526:9)
    at processTimers (node:internal/timers:500:7)

Notes:

I would appreciate your thoughts on this Koen, i love these TRVs, but I hate Hive and the fact I can't get the most recent features, which would only be software related. And i would rather not have to a) live with it or b) sell them just to buy the Danfoss ones.... i would basically lose money on the exact same device just a different firmware.

Thanks in advance

Koenkk commented 2 years ago

Could you provide the herdsman debug log when running z2m with DEBUG=zigbee-herdsman:controller:device*?

robertalexa commented 2 years ago

Hi Koen,

See below from starting z2m to stopping it, with OTA attempt:

rob@rob-ThinkPad-T590:~/Projects/zigbee2mqtt$ npm start DEBUG=zigbee-herdsman:controller:device*

> zigbee2mqtt@1.25.0 start
> node index.js "DEBUG=zigbee-herdsman:controller:device*"

Zigbee2MQTT:debug 2022-04-03 10:12:36: Loaded state from file /home/rob/Projects/zigbee2mqtt/data/state.json
Zigbee2MQTT:info  2022-04-03 10:12:36: Logging to console and directory: '/home/rob/Projects/zigbee2mqtt/data/log/2022-04-03.10-12-36' filename: log.txt
Zigbee2MQTT:debug 2022-04-03 10:12:36: Removing old log directory '/home/rob/Projects/zigbee2mqtt/data/log/2022-01-21.13-18-41'
Zigbee2MQTT:info  2022-04-03 10:12:36: Starting Zigbee2MQTT version 1.25.0 (commit #6f1460e4)
Zigbee2MQTT:info  2022-04-03 10:12:36: Starting zigbee-herdsman (0.14.20)
Zigbee2MQTT:debug 2022-04-03 10:12:36: Using zigbee-herdsman with settings: '{"adapter":{"concurrent":null,"delay":null,"disableLED":false},"backupPath":"/home/rob/Projects/zigbee2mqtt/data/coordinator_backup.json","databaseBackupPath":"/home/rob/Projects/zigbee2mqtt/data/database.db.backup","databasePath":"/home/rob/Projects/zigbee2mqtt/data/database.db","network":{"channelList":[20],"extendedPanID":[221,221,221,221,221,221,221,221],"networkKey":"HIDDEN","panID":6754},"serialPort":{"path":"/dev/ttyACM0"}}'
Zigbee2MQTT:info  2022-04-03 10:12:39: zigbee-herdsman started (resumed)
Zigbee2MQTT:info  2022-04-03 10:12:39: Coordinator firmware version: '{"meta":{"maintrel":3,"majorrel":2,"minorrel":6,"product":0,"revision":20201128,"transportrev":2},"type":"zStack12"}'
Zigbee2MQTT:debug 2022-04-03 10:12:39: Zigbee network parameters: {"channel":20,"extendedPanID":"0x00124b0018e32e48","panID":6754}
Zigbee2MQTT:info  2022-04-03 10:12:39: Currently 1 devices are joined:
Zigbee2MQTT:info  2022-04-03 10:12:39: 0x842e14fffe203c4c (0x842e14fffe203c4c): UK7004240 - Hive Radiator valve based on Danfoss Ally (014G2461) (EndDevice)
Zigbee2MQTT:info  2022-04-03 10:12:39: Zigbee: disabling joining new devices.
Zigbee2MQTT:info  2022-04-03 10:12:39: Connecting to MQTT server at mqtt://localhost
Zigbee2MQTT:debug 2022-04-03 10:12:39: Using MQTT anonymous login
Zigbee2MQTT:info  2022-04-03 10:12:39: Connected to MQTT server
Zigbee2MQTT:info  2022-04-03 10:12:39: MQTT publish: topic 'zigbee2mqtt/bridge/state', payload 'online'
Zigbee2MQTT:debug 2022-04-03 10:12:39: Received MQTT message on 'zigbee2mqtt/bridge/info' with data '{"commit":"6f1460e4","config":{"advanced":{"adapter_concurrent":null,"adapter_delay":null,"availability_blacklist":[],"availability_blocklist":[],"availability_passlist":[],"availability_whitelist":[],"cache_state":true,"cache_state_persistent":true,"cache_state_send_on_startup":true,"channel":20,"elapsed":false,"ext_pan_id":[221,221,221,221,221,221,221,221],"homeassistant_legacy_entity_attributes":false,"last_seen":"disable","legacy_api":false,"legacy_availability_payload":true,"log_directory":"/home/rob/Projects/zigbee2mqtt/data/log/%TIMESTAMP%","log_file":"log.txt","log_level":"debug","log_output":["console","file"],"log_rotation":true,"log_symlink_current":false,"log_syslog":{},"output":"json","pan_id":6754,"report":false,"soft_reset_timeout":0,"timestamp_format":"YYYY-MM-DD HH:mm:ss"},"blocklist":[],"device_options":{"legacy":false},"devices":{"0x842e14fffe203c4c":{"friendly_name":"0x842e14fffe203c4c"}},"external_converters":[],"frontend":{"host":"0.0.0.0","port":8080},"groups":{},"homeassistant":false,"map_options":{"graphviz":{"colors":{"fill":{"coordinator":"#e04e5d","enddevice":"#fff8ce","router":"#4ea3e0"},"font":{"coordinator":"#ffffff","enddevice":"#000000","router":"#ffffff"},"line":{"active":"#009900","inactive":"#994444"}}}},"mqtt":{"base_topic":"zigbee2mqtt","force_disable_retain":false,"include_device_information":false,"server":"mqtt://localhost"},"ota":{"disable_automatic_update_check":false,"update_check_interval":1440},"passlist":[],"permit_join":false,"serial":{"disable_led":false,"port":"/dev/ttyACM0"}},"config_schema":{"definitions":{"device":{"properties":{"debounce":{"description":"Debounces messages of this device","title":"Debounce","type":"number"},"debounce_ignore":{"description":"Protects unique payload values of specified payload properties from overriding within debounce time","examples":["action"],"items":{"type":"string"},"title":"Ignore debounce","type":"array"},"filtered_attributes":{"description":"Filter attributes from publish payload.","examples":["temperature","battery","action"],"items":{"type":"string"},"title":"Filtered publish attributes","type":"array"},"filtered_optimistic":{"description":"Filter attributes from optimistic publish payload when calling /set. (This has no effect if optimistic is set to false).","examples":["color_mode","color_temp","color"],"items":{"type":"string"},"title":"Filtered optimistic attributes","type":"array"},"friendly_name":{"description":"Used in the MQTT topic of a device. By default this is the device ID","readOnly":true,"title":"Friendly name","type":"string"},"icon":{"description":"The user-defined device icon for the frontend. It can be a link to an image (not a path to a file) or base64 encoded data URL like: image/svg+xml;base64,PHN2ZyB3aW....R0aD","title":"Icon","type":"string"},"optimistic":{"default":true,"description":"Publish optimistic state after set","title":"Optimistic","type":"boolean"},"qos":{"description":"QoS level for MQTT messages of this device","title":"QoS","type":"number"},"retain":{"description":"Retain MQTT messages of this device","title":"Retain","type":"boolean"},"retention":{"description":"Sets the MQTT Message Expiry in seconds, Make sure to set mqtt.version to 5","title":"Retention","type":"number"}},"required":["friendly_name"],"type":"object"},"group":{"properties":{"devices":{"items":{"type":"string"},"type":"array"},"filtered_attributes":{"items":{"type":"string"},"type":"array"},"friendly_name":{"type":"string"},"optimistic":{"type":"boolean"},"qos":{"type":"number"},"retain":{"type":"boolean"}},"required":["friendly_name"],"type":"object"}},"properties":{"advanced":{"properties":{"adapter_concurrent":{"description":"Adapter concurrency (e.g. 2 for CC2531 or 16 for CC26X2R1) (default: null, uses recommended value)","requiresRestart":true,"title":"Adapter concurrency","type":["number","null"]},"adapter_delay":{"description":"Adapter delay","requiresRestart":true,"title":"Adapter delay","type":["number","null"]},"cache_state":{"default":true,"description":"MQTT message payload will contain all attributes, not only changed ones. Has to be true when integrating via Home Assistant","title":"Cache state","type":"boolean"},"cache_state_persistent":{"default":true,"description":"Persist cached state, only used when cache_state: true","title":"Persist cache state","type":"boolean"},"cache_state_send_on_startup":{"default":true,"description":"Send cached state on startup, only used when cache_state: true","title":"Send cached state on startup","type":"boolean"},"channel":{"default":11,"description":"Zigbee channel, changing requires repairing all devices! (Note: use a ZLL channel: 11, 15, 20, or 25 to avoid Problems)","examples":[15,20,25],"maximum":26,"minimum":11,"requiresRestart":true,"title":"ZigBee channel","type":"number"},"elapsed":{"default":false,"description":"Add an elapsed attribute to MQTT messages, contains milliseconds since the previous msg","title":"Elapsed","type":"boolean"},"ext_pan_id":{"description":"Zigbee extended pan ID, changing requires repairing all devices!","items":{"type":"number"},"requiresRestart":true,"title":"Ext Pan ID","type":"array"},"last_seen":{"default":"disable","description":"Add a last_seen attribute to MQTT messages, contains date/time of last Zigbee message","enum":["disable","ISO_8601","ISO_8601_local","epoch"],"title":"Last seen","type":"string"},"legacy_api":{"default":true,"description":"Disables the legacy api (false = disable)","requiresRestart":true,"title":"Legacy API","type":"boolean"},"legacy_availability_payload":{"default":true,"description":"Payload to be used for device availabilty and bridge/state topics. true = text, false = JSON","requiresRestart":true,"title":"Legacy availability payload","type":"boolean"},"log_directory":{"description":"Location of log directory","examples":["data/log/%TIMESTAMP%"],"requiresRestart":true,"title":"Log directory","type":"string"},"log_file":{"default":"log.txt","description":"Log file name, can also contain timestamp","examples":["zigbee2mqtt_%TIMESTAMP%.log"],"requiresRestart":true,"title":"Log file","type":"string"},"log_level":{"default":"info","description":"Logging level","enum":["info","warn","error","debug"],"title":"Log level","type":"string"},"log_output":{"description":"Output location of the log, leave empty to suppress logging","items":{"enum":["console","file","syslog"],"type":"string"},"requiresRestart":true,"title":"Log output","type":"array"},"log_rotation":{"default":true,"description":"Log rotation","requiresRestart":true,"title":"Log rotation","type":"boolean"},"log_symlink_current":{"default":false,"description":"Create symlink to current logs in the log directory","requiresRestart":true,"title":"Log symlink current","type":"boolean"},"log_syslog":{"properties":{"app_name":{"default":"Zigbee2MQTT","description":"The name of the application (Default: Zigbee2MQTT).","title":"Localhost","type":"string"},"eol":{"default":"/n","description":"The end of line character to be added to the end of the message (Default: Message without modifications).","title":"eol","type":"string"},"host":{"default":"localhost","description":"The host running syslogd, defaults to localhost.","title":"Host","type":"string"},"localhost":{"default":"localhost","description":"Host to indicate that log messages are coming from (Default: localhost).","title":"Localhost","type":"string"},"path":{"default":"/dev/log","description":"The path to the syslog dgram socket (i.e. /dev/log or /var/run/syslog for OS X).","examples":["/var/run/syslog"],"title":"Path","type":"string"},"pid":{"default":"process.pid","description":"PID of the process that log messages are coming from (Default process.pid).","title":"PID","type":"string"},"port":{"default":123,"description":"The port on the host that syslog is running on, defaults to syslogd's default port.","title":"Port","type":"number"},"protocol":{"default":"tcp4","description":"The network protocol to log over (e.g. tcp4, udp4, tls4, unix, unix-connect, etc).","examples":["udp4","tls4","unix","unix-connect"],"title":"Protocol","type":"string"},"type":{"default":"5424","description":"The type of the syslog protocol to use (Default: BSD, also valid: 5424).","title":"Type","type":"string"}},"title":"syslog","type":"object"},"network_key":{"description":"Network encryption key, changing requires repairing all devices!","oneOf":[{"title":"Network key(string)","type":"string"},{"items":{"type":"number"},"title":"Network key(array)","type":"array"}],"requiresRestart":true,"title":"Network key"},"output":{"description":"Examples when 'state' of a device is published json: topic: 'zigbee2mqtt/my_bulb' payload '{\"state\": \"ON\"}' attribute: topic 'zigbee2mqtt/my_bulb/state' payload 'ON' attribute_and_json: both json and attribute (see above)","enum":["attribute_and_json","attribute","json"],"title":"MQTT output type","type":"string"},"pan_id":{"description":"ZigBee pan ID, changing requires repairing all devices!","oneOf":[{"title":"Pan ID (string)","type":"string"},{"title":"Pan ID (number)","type":"number"}],"requiresRestart":true,"title":"Pan ID"},"timestamp_format":{"description":"Log timestamp format","examples":["YYYY-MM-DD HH:mm:ss"],"requiresRestart":true,"title":"Timestamp format","type":"string"},"transmit_power":{"description":"Transmit power of adapter, only available for Z-Stack (CC253*/CC2652/CC1352) adapters, CC2652 = 5dbm, CC1352 max is = 20dbm (5dbm default)","requiresRestart":true,"title":"Transmit power","type":["number","null"]}},"title":"Advanced","type":"object"},"availability":{"description":"Checks whether devices are online/offline","oneOf":[{"title":"Availability (simple)","type":"boolean"},{"properties":{"active":{"description":"Options for active devices (routers/mains powered)","properties":{"timeout":{"default":10,"description":"Time after which an active device will be marked as offline in minutes","requiresRestart":true,"title":"Timeout","type":"number"}},"requiresRestart":true,"title":"Active","type":"object"},"passive":{"description":"Options for passive devices (mostly battery powered)","properties":{"timeout":{"default":1500,"description":"Time after which an passive device will be marked as offline in minutes","requiresRestart":true,"title":"Timeout","type":"number"}},"requiresRestart":true,"title":"Passive","type":"object"}},"title":"Availability (advanced)","type":"object"}],"requiresRestart":true,"title":"Availability"},"ban":{"items":{"type":"string"},"readOnly":true,"requiresRestart":true,"title":"Ban (deprecated, use blocklist)","type":"array"},"blocklist":{"description":"Block devices from the network (by ieeeAddr)","items":{"type":"string"},"requiresRestart":true,"title":"Blocklist","type":"array"},"device_options":{"title":"Options that are applied to all devices","type":"object"},"devices":{"patternProperties":{"^.*$":{"$ref":"#/definitions/device"}},"propertyNames":{"pattern":"^0x[\\d\\w]{16}$"},"type":"object"},"external_converters":{"description":"You can define external converters to e.g. add support for a DiY device","examples":["DIYRuZ_FreePad.js"],"items":{"type":"string"},"requiresRestart":true,"title":"External converters","type":"array"},"frontend":{"oneOf":[{"title":"Frontend (simple)","type":"boolean"},{"properties":{"auth_token":{"description":"Enables authentication, disabled by default","requiresRestart":true,"title":"Auth token","type":["string","null"]},"host":{"default":"0.0.0.0","description":"Frontend binding host","requiresRestart":true,"title":"Bind host","type":"string"},"port":{"default":8080,"description":"Frontend binding port","requiresRestart":true,"title":"Port","type":"number"},"url":{"description":"URL on which the frontend can be reached, currently only used for the Home Assistant device configuration page","requiresRestart":true,"title":"URL","type":["string","null"]}},"title":"Frontend (advanced)","type":"object"}],"requiresRestart":true,"title":"Frontend"},"groups":{"patternProperties":{"^.*$":{"$ref":"#/definitions/group"}},"propertyNames":{"pattern":"^[\\w].*$"},"type":"object"},"homeassistant":{"default":false,"description":"Home Assistant integration (MQTT discovery)","oneOf":[{"title":"Home Assistant (simple)","type":"boolean"},{"properties":{"discovery_topic":{"description":"Home Assistant discovery topic","examples":["homeassistant"],"requiresRestart":true,"title":"Homeassistant discovery topic","type":"string"},"legacy_entity_attributes":{"default":true,"description":"Home Assistant legacy entity attributes, when enabled Zigbee2MQTT will add state attributes to each entity, additional to the separate entities and devices it already creates","title":"Home Assistant legacy entity attributes","type":"boolean"},"legacy_triggers":{"default":true,"description":"Home Assistant legacy triggers, when enabled Zigbee2mqt will send an empty 'action' or 'click' after one has been send. A 'sensor_action' and 'sensor_click' will be discoverd","title":"Home Assistant legacy triggers","type":"boolean"},"status_topic":{"description":"Home Assistant status topic","examples":["homeassistant/status"],"requiresRestart":true,"title":"Home Assistant status topic","type":"string"}},"title":"Home Assistant (advanced)","type":"object"}],"requiresRestart":true,"title":"Home Assistant integration"},"map_options":{"properties":{"graphviz":{"properties":{"colors":{"properties":{"fill":{"properties":{"coordinator":{"type":"string"},"enddevice":{"type":"string"},"router":{"type":"string"}},"type":"object"},"font":{"properties":{"coordinator":{"type":"string"},"enddevice":{"type":"string"},"router":{"type":"string"}},"type":"object"},"line":{"properties":{"active":{"type":"string"},"inactive":{"type":"string"}},"type":"object"}},"type":"object"}},"type":"object"}},"title":"Networkmap","type":"object"},"mqtt":{"properties":{"base_topic":{"default":"zigbee2mqtt","description":"MQTT base topic for Zigbee2MQTT MQTT messages","examples":["zigbee2mqtt"],"requiresRestart":true,"title":"Base topic","type":"string"},"ca":{"description":"Absolute path to SSL/TLS certificate of CA used to sign server and client certificates","examples":["/etc/ssl/mqtt-ca.crt"],"requiresRestart":true,"title":"Certificate authority","type":"string"},"cert":{"description":"Absolute path to SSL/TLS certificate for client-authentication","examples":["/etc/ssl/mqtt-client.crt"],"requiresRestart":true,"title":"SSL/TLS certificate","type":"string"},"client_id":{"description":"MQTT client ID","examples":["MY_CLIENT_ID"],"requiresRestart":true,"title":"Client ID","type":"string"},"force_disable_retain":{"default":false,"description":"Disable retain for all send messages. ONLY enable if you MQTT broker doesn't support retained message (e.g. AWS IoT core, Azure IoT Hub, Google Cloud IoT core, IBM Watson IoT Platform). Enabling will break the Home Assistant integration","requiresRestart":true,"title":"Force disable retain","type":"boolean"},"include_device_information":{"default":false,"description":"Include device information to mqtt messages","title":"Include device information","type":"boolean"},"keepalive":{"default":60,"description":"MQTT keepalive in second","requiresRestart":true,"title":"Keepalive","type":"number"},"key":{"description":"Absolute path to SSL/TLS key for client-authentication","examples":["/etc/ssl/mqtt-client.key"],"requiresRestart":true,"title":"SSL/TLS key","type":"string"},"password":{"description":"MQTT server authentication password","examples":["ILOVEPELMENI"],"requiresRestart":true,"title":"Password","type":"string"},"reject_unauthorized":{"default":true,"description":"Disable self-signed SSL certificate","requiresRestart":true,"title":"Reject unauthorized","type":"boolean"},"server":{"description":"MQTT server URL (use mqtts:// for SSL/TLS connection)","examples":["mqtt://localhost:1883"],"requiresRestart":true,"title":"MQTT server","type":"string"},"user":{"description":"MQTT server authentication user","examples":["johnnysilverhand"],"requiresRestart":true,"title":"User","type":"string"},"version":{"default":4,"description":"MQTT protocol version","examples":[5],"requiresRestart":true,"title":"Version","type":["number","null"]}},"required":["server"],"title":"MQTT","type":"object"},"ota":{"properties":{"disable_automatic_update_check":{"default":false,"description":"Zigbee devices may request a firmware update, and do so frequently, causing Zigbee2MQTT to reach out to third party servers. If you disable these device initiated checks, you can still initiate a firmware update check manually.","title":"Disable automatic update check","type":"boolean"},"ikea_ota_use_test_url":{"default":false,"description":"Use IKEA TRADFRI OTA test server, see OTA updates documentation","requiresRestart":true,"title":"IKEA TRADFRI OTA use test url","type":"boolean"},"update_check_interval":{"default":1440,"description":"Your device may request a check for a new firmware update. This value determines how frequently third party servers may actually be contacted to look for firmware updates. The value is set in minutes, and the default is 1 day.","title":"Update check interval","type":"number"},"zigbee_ota_override_index_location":{"description":"Location of override OTA index file","examples":["index.json"],"requiresRestart":true,"title":"OTA index override file name","type":"string"}},"title":"OTA updates","type":"object"},"passlist":{"description":"Allow only certain devices to join the network (by ieeeAddr). Note that all devices not on the passlist will be removed from the network!","items":{"type":"string"},"requiresRestart":true,"title":"Passlist","type":"array"},"permit_join":{"default":false,"description":"Allow new devices to join (re-applied at restart)","title":"Permit join","type":"boolean"},"serial":{"properties":{"adapter":{"default":"auto","description":"Adapter type, not needed unless you are experiencing problems","enum":["deconz","zstack","zigate","ezsp","auto"],"requiresRestart":true,"title":"Adapter","type":["string"]},"baudrate":{"description":"Baud rate speed for serial port, this can be anything firmware support but default is 115200 for Z-Stack and EZSP, 38400 for Deconz, however note that some EZSP firmware need 57600","examples":[38400,57600,115200],"requiresRestart":true,"title":"Baudrate","type":"number"},"disable_led":{"default":false,"description":"Disable LED of the adapter if supported","requiresRestart":true,"title":"Disable led","type":"boolean"},"port":{"description":"Location of the adapter. To autodetect the port, set null","examples":["/dev/ttyACM0"],"requiresRestart":true,"title":"Port","type":["string","null"]},"rtscts":{"description":"RTS / CTS Hardware Flow Control for serial port","requiresRestart":true,"title":"RTS / CTS","type":"boolean"}},"title":"Serial","type":"object"},"whitelist":{"items":{"type":"string"},"readOnly":true,"requiresRestart":true,"title":"Whitelist (deprecated, use passlist)","type":"array"}},"required":["mqtt"],"type":"object"},"coordinator":{"ieee_address":"0x00124b0018e32e48","meta":{"maintrel":3,"majorrel":2,"minorrel":6,"product":0,"revision":20201128,"transportrev":2},"type":"zStack12"},"log_level":"debug","network":{"channel":20,"extended_pan_id":"0x00124b0018e32e48","pan_id":6754},"permit_join":false,"restart_required":false,"version":"1.25.0"}'
Zigbee2MQTT:debug 2022-04-03 10:12:39: Received MQTT message on 'zigbee2mqtt/bridge/devices' with data '[{"definition":null,"endpoints":{"1":{"bindings":[],"clusters":{"input":[],"output":[]},"configured_reportings":[],"scenes":[]},"10":{"bindings":[],"clusters":{"input":[],"output":[]},"configured_reportings":[],"scenes":[]},"11":{"bindings":[],"clusters":{"input":["ssIasAce"],"output":["ssIasZone","ssIasWd"]},"configured_reportings":[],"scenes":[]},"110":{"bindings":[],"clusters":{"input":[],"output":[]},"configured_reportings":[],"scenes":[]},"12":{"bindings":[],"clusters":{"input":[],"output":[]},"configured_reportings":[],"scenes":[]},"13":{"bindings":[],"clusters":{"input":["genOta"],"output":[]},"configured_reportings":[],"scenes":[]},"2":{"bindings":[],"clusters":{"input":[],"output":[]},"configured_reportings":[],"scenes":[]},"242":{"bindings":[],"clusters":{"input":[],"output":[]},"configured_reportings":[],"scenes":[]},"3":{"bindings":[],"clusters":{"input":[],"output":[]},"configured_reportings":[],"scenes":[]},"4":{"bindings":[],"clusters":{"input":[],"output":[]},"configured_reportings":[],"scenes":[]},"47":{"bindings":[],"clusters":{"input":[],"output":[]},"configured_reportings":[],"scenes":[]},"5":{"bindings":[],"clusters":{"input":[],"output":[]},"configured_reportings":[],"scenes":[]},"6":{"bindings":[],"clusters":{"input":[],"output":[]},"configured_reportings":[],"scenes":[]},"8":{"bindings":[],"clusters":{"input":[],"output":[]},"configured_reportings":[],"scenes":[]}},"friendly_name":"Coordinator","ieee_address":"0x00124b0018e32e48","interview_completed":true,"interviewing":false,"network_address":0,"supported":false,"type":"Coordinator"},{"date_code":"20200402","definition":{"description":"Radiator valve based on Danfoss Ally (014G2461)","exposes":[{"access":1,"description":"Remaining battery in %","name":"battery","property":"battery","type":"numeric","unit":"%","value_max":100,"value_min":0},{"access":7,"description":"Enables/disables physical input on the device","name":"keypad_lockout","property":"keypad_lockout","type":"enum","values":["unlock","lock1","lock2"]},{"access":7,"description":"Controls how programming affects the thermostat. Possible values: setpoint (only use specified setpoint), schedule (follow programmed setpoint schedule). Changing this value does not clear programmed schedules.","name":"programming_operation_mode","property":"programming_operation_mode","type":"enum","values":["setpoint","schedule"]},{"access":5,"description":"Is the unit in mounting mode. This is set to `false` for mounted (already on the radiator) or `true` for not mounted (after factory reset)","name":"mounted_mode_active","property":"mounted_mode_active","type":"binary","value_off":false,"value_on":true},{"access":7,"description":"Set the unit mounting mode. `false` Go to Mounted Mode or `true` Go to Mounting Mode","name":"mounted_mode_control","property":"mounted_mode_control","type":"binary","value_off":false,"value_on":true},{"access":7,"description":"Thermostat Orientation. This is important for the PID in how it assesses temperature. `false` Horizontal or `true` Vertical","name":"thermostat_vertical_orientation","property":"thermostat_vertical_orientation","type":"binary","value_off":false,"value_on":true},{"access":7,"description":"Viewing/Display Direction. `false` Horizontal or `true` Vertical","name":"viewing_direction","property":"viewing_direction","type":"binary","value_off":false,"value_on":true},{"access":7,"description":"Not clear how this affects operation. However, it would appear that the device does not execute any motor functions if this is set to false. This may be a means to conserve battery during periods that the heating system is not energized (e.g. during summer). `false` No Heat Available or `true` Heat Available","name":"heat_available","property":"heat_available","type":"binary","value_off":false,"value_on":true},{"access":5,"description":"Whether or not the unit needs warm water. `false` No Heat Request or `true` Heat Request","name":"heat_required","property":"heat_required","type":"binary","value_off":false,"value_on":true},{"access":1,"description":"Values observed are `0` (manual), `1` (schedule) or `2` (externally)","name":"setpoint_change_source","property":"setpoint_change_source","type":"enum","values":["manual","schedule","externally"]},{"features":[{"access":7,"description":"Temperature setpoint","name":"occupied_heating_setpoint","property":"occupied_heating_setpoint","type":"numeric","unit":"°C","value_max":32,"value_min":5,"value_step":0.5},{"access":5,"description":"Current temperature measured on the device","name":"local_temperature","property":"local_temperature","type":"numeric","unit":"°C"},{"access":1,"description":"Position of the valve (= demanded heat) where 0% is fully closed and 100% is fully open","name":"pi_heating_demand","property":"pi_heating_demand","type":"numeric","unit":"%","value_max":100,"value_min":0},{"access":7,"description":"Mode of this device","name":"system_mode","property":"system_mode","type":"enum","values":["heat"]},{"access":1,"description":"The current running state","name":"running_state","property":"running_state","type":"enum","values":["idle","heat"]}],"type":"climate"},{"access":7,"description":"If `radiator_covered` is `true`: Set at maximum 30 minutes interval but not more often than every 5 minutes and 0.1 degrees difference. Resets every 35 minutes to standard. If `radiator_covered` is `false`: Set at maximum 3 hours interval but not more often than every 30 minutes and 0.1 degrees difference. Resets every 3 hours to standard. Value 21C = 2100 (-8000=undefined).","name":"external_measured_room_sensor","property":"external_measured_room_sensor","type":"numeric","value_max":3500,"value_min":-8000},{"access":7,"description":"Set if the TRV should solely rely on external_measured_room_sensor or operate in offset mode. `false` = Auto Offset Mode or `true` = Room Sensor Mode","name":"radiator_covered","property":"radiator_covered","type":"binary","value_off":false,"value_on":true},{"access":7,"description":"Whether or not the window open feature is enabled","name":"window_open_feature","property":"window_open_feature","type":"binary","value_off":false,"value_on":true},{"access":5,"description":"0=Quarantine, 1=Windows are closed, 2=Hold - Windows are maybe about to open, 3=Open window detected, 4=In window open state from external but detected closed locally","name":"window_open_internal","property":"window_open_internal","type":"numeric","value_max":4,"value_min":0},{"access":7,"description":"Set if the window is open or close. This setting will trigger a change in the internal window and heating demand. `false` (windows are closed) or `true` (windows are open)","name":"window_open_external","property":"window_open_external","type":"binary","value_off":false,"value_on":true},{"access":7,"description":"Exercise day of week: 0=Sun...6=Sat, 7=undefined","name":"day_of_week","property":"day_of_week","type":"enum","values":["sunday","monday","tuesday","wednesday","thursday","friday","saturday","away_or_vacation"]},{"access":7,"description":"Exercise trigger time. Minutes since midnight (65535=undefined). Range 0 to 1439","name":"trigger_time","property":"trigger_time","type":"numeric","value_max":65535,"value_min":0},{"access":7,"description":"Scale factor of setpoint filter timeconstant (\"aggressiveness\" of control algorithm) 1= Quick ...  5=Moderate ... 10=Slow","name":"algorithm_scale_factor","property":"algorithm_scale_factor","type":"numeric","value_max":10,"value_min":1},{"access":7,"description":"Whether or not the thermostat acts as standalone thermostat or shares load with other thermostats in the room. The gateway must update load_room_mean if enabled.","name":"load_balancing_enable","property":"load_balancing_enable","type":"binary","value_off":false,"value_on":true},{"access":7,"description":"Mean radiator load for room calculated by gateway for load balancing purposes (-8000=undefined)","name":"load_room_mean","property":"load_room_mean","type":"numeric","value_max":2000,"value_min":-8000},{"access":5,"description":"Load estimate on this radiator","name":"load_estimate","property":"load_estimate","type":"numeric"},{"access":5,"description":"Specific for pre-heat running in Zigbee Weekly Schedule mode","name":"preheat_status","property":"preheat_status","type":"binary","value_off":false,"value_on":true},{"access":5,"description":"Status of adaptation run: None (before first run), In Progress, Valve Characteristic Found, Valve Characteristic Lost","name":"adaptation_run_status","property":"adaptation_run_status","type":"enum","values":["none","in_progress","found","lost"]},{"access":7,"description":"Automatic adaptation run enabled (the one during the night)","name":"adaptation_run_settings","property":"adaptation_run_settings","type":"binary","value_off":false,"value_on":true},{"access":7,"description":"Adaptation run control: Initiate Adaptation Run or Cancel Adaptation Run","name":"adaptation_run_control","property":"adaptation_run_control","type":"enum","values":["initate_adaptation","cancel_adaptation"]},{"access":7,"description":"Regulation SetPoint Offset in range -2.5°C to 2.5°C in steps of 0.1°C. Value 2.5°C = 25.","name":"regulation_setpoint_offset","property":"regulation_setpoint_offset","type":"numeric","value_max":25,"value_min":-25},{"access":1,"description":"Link quality (signal strength)","name":"linkquality","property":"linkquality","type":"numeric","unit":"lqi","value_max":255,"value_min":0}],"model":"UK7004240","options":[],"supports_ota":true,"vendor":"Hive"},"endpoints":{"1":{"bindings":[{"cluster":"genPollCtrl","target":{"endpoint":1,"ieee_address":"0x00124b0018e32e48","type":"endpoint"}},{"cluster":"genPowerCfg","target":{"endpoint":1,"ieee_address":"0x00124b0018e32e48","type":"endpoint"}},{"cluster":"hvacThermostat","target":{"endpoint":1,"ieee_address":"0x00124b0018e32e48","type":"endpoint"}}],"clusters":{"input":["genBasic","genPowerCfg","genIdentify","genTime","genPollCtrl","hvacThermostat","hvacUserInterfaceCfg","haDiagnostic"],"output":["genBasic","genOta"]},"configured_reportings":[{"attribute":"batteryPercentageRemaining","cluster":"genPowerCfg","maximum_report_interval":62000,"minimum_report_interval":3600,"reportable_change":0},{"attribute":"localTemp","cluster":"hvacThermostat","maximum_report_interval":3600,"minimum_report_interval":0,"reportable_change":10},{"attribute":"pIHeatingDemand","cluster":"hvacThermostat","maximum_report_interval":3600,"minimum_report_interval":0,"reportable_change":10},{"attribute":"occupiedHeatingSetpoint","cluster":"hvacThermostat","maximum_report_interval":3600,"minimum_report_interval":0,"reportable_change":10},{"attribute":"danfossMountedModeActive","cluster":"hvacThermostat","maximum_report_interval":62000,"minimum_report_interval":60,"reportable_change":1},{"attribute":"danfossWindowOpenInternal","cluster":"hvacThermostat","maximum_report_interval":3600,"minimum_report_interval":60,"reportable_change":1},{"attribute":"danfossHeatRequired","cluster":"hvacThermostat","maximum_report_interval":3600,"minimum_report_interval":60,"reportable_change":1},{"attribute":"danfossExternalMeasuredRoomSensor","cluster":"hvacThermostat","maximum_report_interval":62000,"minimum_report_interval":60,"reportable_change":1},{"attribute":"danfossAdaptionRunStatus","cluster":"hvacThermostat","maximum_report_interval":3600,"minimum_report_interval":60,"reportable_change":1}],"scenes":[]}},"friendly_name":"0x842e14fffe203c4c","ieee_address":"0x842e14fffe203c4c","interview_completed":true,"interviewing":false,"manufacturer":"Danfoss","model_id":"TRV001","network_address":57989,"power_source":"Battery","software_build_id":"02.33.0008 02.33","supported":true,"type":"EndDevice"}]'
Zigbee2MQTT:debug 2022-04-03 10:12:39: Received MQTT message on 'zigbee2mqtt/bridge/groups' with data '[]'
Zigbee2MQTT:debug 2022-04-03 10:12:39: Received MQTT message on 'zigbee2mqtt/bridge/config' with data '{"commit":"c2b5229f","coordinator":{"meta":{"maintrel":3,"majorrel":2,"minorrel":6,"product":0,"revision":20201128,"transportrev":2},"type":"zStack12"},"log_level":"debug","network":{"channel":14,"extendedPanID":"0x00124b0018e32e48","panID":6754},"permit_join":false,"version":"1.22.1"}'
Zigbee2MQTT:debug 2022-04-03 10:12:39: Received MQTT message on 'zigbee2mqtt/bridge/extensions' with data '[]'
Zigbee2MQTT:info  2022-04-03 10:12:39: Started frontend on port 0.0.0.0:8080
Zigbee2MQTT:info  2022-04-03 10:12:39: MQTT publish: topic 'zigbee2mqtt/0x842e14fffe203c4c', payload '{"battery":39,"external_measured_room_sensor":-8000,"heat_available":true,"heat_required":false,"keypad_lockout":"unlock","load_estimate":-113,"local_temperature":26,"mounted_mode_active":false,"mounted_mode_control":false,"occupied_heating_setpoint":22.5,"pi_heating_demand":6,"running_state":"idle","system_mode":"heat","thermostat_vertical_orientation":true,"update":{"state":"available"}}'
Zigbee2MQTT:debug 2022-04-03 10:12:45: Device '0x842e14fffe203c4c' announced itself
Zigbee2MQTT:info  2022-04-03 10:12:45: MQTT publish: topic 'zigbee2mqtt/bridge/event', payload '{"data":{"friendly_name":"0x842e14fffe203c4c","ieee_address":"0x842e14fffe203c4c"},"type":"device_announce"}'
Zigbee2MQTT:debug 2022-04-03 10:12:47: Retrieving state of '0x842e14fffe203c4c' after reconnect
Zigbee2MQTT:debug 2022-04-03 10:13:10: Received Zigbee message from '0x842e14fffe203c4c', type 'attributeReport', cluster 'hvacThermostat', data '{"localTemp":2161}' from endpoint 1 with groupID 0
Zigbee2MQTT:info  2022-04-03 10:13:10: MQTT publish: topic 'zigbee2mqtt/0x842e14fffe203c4c', payload '{"battery":39,"external_measured_room_sensor":-8000,"heat_available":true,"heat_required":false,"keypad_lockout":"unlock","linkquality":123,"load_estimate":-113,"local_temperature":21.61,"mounted_mode_active":false,"mounted_mode_control":false,"occupied_heating_setpoint":22.5,"pi_heating_demand":6,"running_state":"idle","system_mode":"heat","thermostat_vertical_orientation":true,"update":{"state":"available"}}'
Zigbee2MQTT:debug 2022-04-03 10:13:10: Received Zigbee message from '0x842e14fffe203c4c', type 'commandCheckIn', cluster 'genPollCtrl', data '{}' from endpoint 1 with groupID 0
Zigbee2MQTT:debug 2022-04-03 10:13:28: Received MQTT message on 'zigbee2mqtt/bridge/request/device/ota_update/update' with data '{"id":"0x842e14fffe203c4c","transaction":"kxzij-1"}'
Zigbee2MQTT:info  2022-04-03 10:13:28: Updating '0x842e14fffe203c4c' to latest firmware
Zigbee2MQTT:debug 2022-04-03 10:13:34: Received Zigbee message from '0x842e14fffe203c4c', type 'readResponse', cluster 'genBasic', data '{"dateCode":"20200402","swBuildId":"02.33.0008 02.33"}' from endpoint 1 with groupID 0
Zigbee2MQTT:debug 2022-04-03 10:13:34: Updating to latest '0x842e14fffe203c4c' (TRV001)
Zigbee2MQTT:debug 2022-04-03 10:13:34: Using endpoint '1'
Zigbee2MQTT:debug 2022-04-03 10:13:38: Received Zigbee message from '0x842e14fffe203c4c', type 'commandQueryNextImageRequest', cluster 'genOta', data '{"fieldControl":0,"fileVersion":545,"imageType":66,"manufacturerCode":4678}' from endpoint 1 with groupID 0
Zigbee2MQTT:debug 2022-04-03 10:13:38: Device '0x842e14fffe203c4c' requested OTA
Zigbee2MQTT:debug 2022-04-03 10:13:38: Got OTA request '{"fieldControl":0,"manufacturerCode":4678,"imageType":66,"fileVersion":545}'
Zigbee2MQTT:debug 2022-04-03 10:13:38: ZigbeeOTA: downloaded main index
Zigbee2MQTT:debug 2022-04-03 10:13:38: getNewImage for '0x842e14fffe203c4c', meta {"fileVersion":274,"fileSize":379806,"url":"https://github.com/Koenkk/zigbee-OTA/raw/master/images/Danfoss/1246-0100-01180118.0002_%28F5BFD8B8%29.ota","sha512":"873effaa113e1d07643fbf25f6e26ee4b23f8deb7d006cce7fc490fd8ad7a5754de4c352b6f3d5e172022a34ea2699f5d1d8fda90f4348b25d5feaa169e38c85","force":true}
Zigbee2MQTT:debug 2022-04-03 10:13:38: ZigbeeOTA: downloading firmware image from https://github.com/Koenkk/zigbee-OTA/raw/master/images/Danfoss/1246-0100-01180118.0002_%28F5BFD8B8%29.ota
Zigbee2MQTT:debug 2022-04-03 10:13:39: OTA update checksum validation succeeded for '0x842e14fffe203c4c'
Zigbee2MQTT:debug 2022-04-03 10:13:39: getNewImage for '0x842e14fffe203c4c', image header {"otaUpgradeFileIdentifier":{"type":"Buffer","data":[30,241,238,11]},"otaHeaderVersion":256,"otaHeaderLength":56,"otaHeaderFieldControl":0,"manufacturerCode":4678,"imageType":256,"fileVersion":274,"zigbeeStackVersion":2,"otaHeaderString":"29-11-2021 V.0112.0112\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000","totalImageSize":379806}
Zigbee2MQTT:debug 2022-04-03 10:13:39: Got new image for '0x842e14fffe203c4c'
Zigbee2MQTT:debug 2022-04-03 10:13:39: Starting upgrade
Zigbee2MQTT:debug 2022-04-03 10:13:39: Received Zigbee message from '0x842e14fffe203c4c', type 'commandQueryNextImageRequest', cluster 'genOta', data '{"fieldControl":0,"fileVersion":545,"imageType":66,"manufacturerCode":4678}' from endpoint 1 with groupID 0
Zigbee2MQTT:debug 2022-04-03 10:13:39: Device '0x842e14fffe203c4c' requested OTA
Zigbee2MQTT:debug 2022-04-03 10:14:30: Received Zigbee message from '0x842e14fffe203c4c', type 'attributeReport', cluster 'hvacThermostat', data '{"localTemp":2180}' from endpoint 1 with groupID 0
Zigbee2MQTT:info  2022-04-03 10:14:30: MQTT publish: topic 'zigbee2mqtt/0x842e14fffe203c4c', payload '{"battery":39,"external_measured_room_sensor":-8000,"heat_available":true,"heat_required":false,"keypad_lockout":"unlock","linkquality":128,"load_estimate":-113,"local_temperature":21.8,"mounted_mode_active":false,"mounted_mode_control":false,"occupied_heating_setpoint":22.5,"pi_heating_demand":6,"running_state":"idle","system_mode":"heat","thermostat_vertical_orientation":true,"update":{"state":"available"}}'
Zigbee2MQTT:debug 2022-04-03 10:15:30: Received Zigbee message from '0x842e14fffe203c4c', type 'attributeReport', cluster 'hvacThermostat', data '{"localTemp":2198}' from endpoint 1 with groupID 0
Zigbee2MQTT:info  2022-04-03 10:15:30: MQTT publish: topic 'zigbee2mqtt/0x842e14fffe203c4c', payload '{"battery":39,"external_measured_room_sensor":-8000,"heat_available":true,"heat_required":false,"keypad_lockout":"unlock","linkquality":134,"load_estimate":-113,"local_temperature":21.98,"mounted_mode_active":false,"mounted_mode_control":false,"occupied_heating_setpoint":22.5,"pi_heating_demand":6,"running_state":"idle","system_mode":"heat","thermostat_vertical_orientation":true,"update":{"state":"available"}}'
Zigbee2MQTT:debug 2022-04-03 10:15:30: Received Zigbee message from '0x842e14fffe203c4c', type 'attributeReport', cluster 'hvacThermostat', data '{"danfossLoadEstimate":39}' from endpoint 1 with groupID 0
Zigbee2MQTT:info  2022-04-03 10:15:30: MQTT publish: topic 'zigbee2mqtt/0x842e14fffe203c4c', payload '{"battery":39,"external_measured_room_sensor":-8000,"heat_available":true,"heat_required":false,"keypad_lockout":"unlock","linkquality":134,"load_estimate":39,"local_temperature":21.98,"mounted_mode_active":false,"mounted_mode_control":false,"occupied_heating_setpoint":22.5,"pi_heating_demand":6,"running_state":"idle","system_mode":"heat","thermostat_vertical_orientation":true,"update":{"state":"available"}}'
Zigbee2MQTT:debug 2022-04-03 10:16:09: Update of '0x842e14fffe203c4c' failed (Error: Timeout: device did not request any image blocks)
Zigbee2MQTT:info  2022-04-03 10:16:09: MQTT publish: topic 'zigbee2mqtt/0x842e14fffe203c4c', payload '{"battery":39,"external_measured_room_sensor":-8000,"heat_available":true,"heat_required":false,"keypad_lockout":"unlock","linkquality":134,"load_estimate":39,"local_temperature":21.98,"mounted_mode_active":false,"mounted_mode_control":false,"occupied_heating_setpoint":22.5,"pi_heating_demand":6,"running_state":"idle","system_mode":"heat","thermostat_vertical_orientation":true,"update":{"state":"available"}}'
Zigbee2MQTT:info  2022-04-03 10:16:09: MQTT publish: topic 'zigbee2mqtt/bridge/response/device/ota_update/update', payload '{"data":{"id":"0x842e14fffe203c4c"},"error":"Update of '0x842e14fffe203c4c' failed (Timeout: device did not request any image blocks)","status":"error","transaction":"kxzij-1"}'
Zigbee2MQTT:error 2022-04-03 10:16:09: Update of '0x842e14fffe203c4c' failed (Timeout: device did not request any image blocks)
Zigbee2MQTT:debug 2022-04-03 10:16:09: Error: Timeout: device did not request any image blocks
    at /home/rob/Projects/zigbee2mqtt/node_modules/zigbee-herdsman-converters/lib/ota/common.js:360:28
    at runNextTicks (node:internal/process/task_queues:59:5)
    at listOnTimeout (node:internal/timers:526:9)
    at processTimers (node:internal/timers:500:7)
^CZigbee2MQTT:debug 2022-04-03 10:16:22: Saving state to file /home/rob/Projects/zigbee2mqtt/data/state.json
Zigbee2MQTT:info  2022-04-03 10:16:22: MQTT publish: topic 'zigbee2mqtt/bridge/state', payload 'offline'
Zigbee2MQTT:info  2022-04-03 10:16:22: Disconnecting from MQTT server
Zigbee2MQTT:info  2022-04-03 10:16:22: Stopping zigbee-herdsman...
Zigbee2MQTT:info  2022-04-03 10:16:22: Stopped zigbee-herdsman
Zigbee2MQTT:info  2022-04-03 10:16:22: Stopped Zigbee2MQTT

rob@rob-ThinkPad-T590:~/Projects/zigbee2mqtt$ 
Koenkk commented 2 years ago

npm start DEBUG=zigbee-herdsman:controller:device* should be DEBUG=zigbee-herdsman:controller:device* npm start

robertalexa commented 2 years ago

Doh...

Not a massive difference, there are a couple of lines from the debugged related to the check in command, but that is it

DEBUG=zigbee-herdsman:controller:device* npm start

> zigbee2mqtt@1.25.0 start
> node index.js

Zigbee2MQTT:debug 2022-04-03 13:43:17: Loaded state from file /home/rob/Projects/zigbee2mqtt/data/state.json
Zigbee2MQTT:info  2022-04-03 13:43:17: Logging to console and directory: '/home/rob/Projects/zigbee2mqtt/data/log/2022-04-03.13-43-17' filename: log.txt
Zigbee2MQTT:debug 2022-04-03 13:43:17: Removing old log directory '/home/rob/Projects/zigbee2mqtt/data/log/2022-01-22.18-52-34'
Zigbee2MQTT:info  2022-04-03 13:43:17: Starting Zigbee2MQTT version 1.25.0 (commit #6f1460e4)
Zigbee2MQTT:info  2022-04-03 13:43:17: Starting zigbee-herdsman (0.14.20)
Zigbee2MQTT:debug 2022-04-03 13:43:17: Using zigbee-herdsman with settings: '{"adapter":{"concurrent":null,"delay":null,"disableLED":false},"backupPath":"/home/rob/Projects/zigbee2mqtt/data/coordinator_backup.json","databaseBackupPath":"/home/rob/Projects/zigbee2mqtt/data/database.db.backup","databasePath":"/home/rob/Projects/zigbee2mqtt/data/database.db","network":{"channelList":[20],"extendedPanID":[221,221,221,221,221,221,221,221],"networkKey":"HIDDEN","panID":6754},"serialPort":{"path":"/dev/ttyACM0"}}'
Zigbee2MQTT:info  2022-04-03 13:43:20: zigbee-herdsman started (resumed)
Zigbee2MQTT:info  2022-04-03 13:43:20: Coordinator firmware version: '{"meta":{"maintrel":3,"majorrel":2,"minorrel":6,"product":0,"revision":20201128,"transportrev":2},"type":"zStack12"}'
Zigbee2MQTT:debug 2022-04-03 13:43:20: Zigbee network parameters: {"channel":20,"extendedPanID":"0x00124b0018e32e48","panID":6754}
Zigbee2MQTT:info  2022-04-03 13:43:20: Currently 1 devices are joined:
Zigbee2MQTT:info  2022-04-03 13:43:20: 0x842e14fffe203c4c (0x842e14fffe203c4c): UK7004240 - Hive Radiator valve based on Danfoss Ally (014G2461) (EndDevice)
Zigbee2MQTT:info  2022-04-03 13:43:20: Zigbee: disabling joining new devices.
Zigbee2MQTT:info  2022-04-03 13:43:20: Connecting to MQTT server at mqtt://localhost
Zigbee2MQTT:debug 2022-04-03 13:43:20: Using MQTT anonymous login
Zigbee2MQTT:info  2022-04-03 13:43:20: Connected to MQTT server
Zigbee2MQTT:info  2022-04-03 13:43:20: MQTT publish: topic 'zigbee2mqtt/bridge/state', payload 'online'
Zigbee2MQTT:debug 2022-04-03 13:43:20: Received MQTT message on 'zigbee2mqtt/bridge/info' with data '{"commit":"6f1460e4","config":{"advanced":{"adapter_concurrent":null,"adapter_delay":null,"availability_blacklist":[],"availability_blocklist":[],"availability_passlist":[],"availability_whitelist":[],"cache_state":true,"cache_state_persistent":true,"cache_state_send_on_startup":true,"channel":20,"elapsed":false,"ext_pan_id":[221,221,221,221,221,221,221,221],"homeassistant_legacy_entity_attributes":false,"last_seen":"disable","legacy_api":false,"legacy_availability_payload":true,"log_directory":"/home/rob/Projects/zigbee2mqtt/data/log/%TIMESTAMP%","log_file":"log.txt","log_level":"debug","log_output":["console","file"],"log_rotation":true,"log_symlink_current":false,"log_syslog":{},"output":"json","pan_id":6754,"report":false,"soft_reset_timeout":0,"timestamp_format":"YYYY-MM-DD HH:mm:ss"},"blocklist":[],"device_options":{"legacy":false},"devices":{"0x842e14fffe203c4c":{"friendly_name":"0x842e14fffe203c4c"}},"external_converters":[],"frontend":{"host":"0.0.0.0","port":8080},"groups":{},"homeassistant":false,"map_options":{"graphviz":{"colors":{"fill":{"coordinator":"#e04e5d","enddevice":"#fff8ce","router":"#4ea3e0"},"font":{"coordinator":"#ffffff","enddevice":"#000000","router":"#ffffff"},"line":{"active":"#009900","inactive":"#994444"}}}},"mqtt":{"base_topic":"zigbee2mqtt","force_disable_retain":false,"include_device_information":false,"server":"mqtt://localhost"},"ota":{"disable_automatic_update_check":false,"update_check_interval":1440},"passlist":[],"permit_join":false,"serial":{"disable_led":false,"port":"/dev/ttyACM0"}},"config_schema":{"definitions":{"device":{"properties":{"debounce":{"description":"Debounces messages of this device","title":"Debounce","type":"number"},"debounce_ignore":{"description":"Protects unique payload values of specified payload properties from overriding within debounce time","examples":["action"],"items":{"type":"string"},"title":"Ignore debounce","type":"array"},"filtered_attributes":{"description":"Filter attributes from publish payload.","examples":["temperature","battery","action"],"items":{"type":"string"},"title":"Filtered publish attributes","type":"array"},"filtered_optimistic":{"description":"Filter attributes from optimistic publish payload when calling /set. (This has no effect if optimistic is set to false).","examples":["color_mode","color_temp","color"],"items":{"type":"string"},"title":"Filtered optimistic attributes","type":"array"},"friendly_name":{"description":"Used in the MQTT topic of a device. By default this is the device ID","readOnly":true,"title":"Friendly name","type":"string"},"icon":{"description":"The user-defined device icon for the frontend. It can be a link to an image (not a path to a file) or base64 encoded data URL like: image/svg+xml;base64,PHN2ZyB3aW....R0aD","title":"Icon","type":"string"},"optimistic":{"default":true,"description":"Publish optimistic state after set","title":"Optimistic","type":"boolean"},"qos":{"description":"QoS level for MQTT messages of this device","title":"QoS","type":"number"},"retain":{"description":"Retain MQTT messages of this device","title":"Retain","type":"boolean"},"retention":{"description":"Sets the MQTT Message Expiry in seconds, Make sure to set mqtt.version to 5","title":"Retention","type":"number"}},"required":["friendly_name"],"type":"object"},"group":{"properties":{"devices":{"items":{"type":"string"},"type":"array"},"filtered_attributes":{"items":{"type":"string"},"type":"array"},"friendly_name":{"type":"string"},"optimistic":{"type":"boolean"},"qos":{"type":"number"},"retain":{"type":"boolean"}},"required":["friendly_name"],"type":"object"}},"properties":{"advanced":{"properties":{"adapter_concurrent":{"description":"Adapter concurrency (e.g. 2 for CC2531 or 16 for CC26X2R1) (default: null, uses recommended value)","requiresRestart":true,"title":"Adapter concurrency","type":["number","null"]},"adapter_delay":{"description":"Adapter delay","requiresRestart":true,"title":"Adapter delay","type":["number","null"]},"cache_state":{"default":true,"description":"MQTT message payload will contain all attributes, not only changed ones. Has to be true when integrating via Home Assistant","title":"Cache state","type":"boolean"},"cache_state_persistent":{"default":true,"description":"Persist cached state, only used when cache_state: true","title":"Persist cache state","type":"boolean"},"cache_state_send_on_startup":{"default":true,"description":"Send cached state on startup, only used when cache_state: true","title":"Send cached state on startup","type":"boolean"},"channel":{"default":11,"description":"Zigbee channel, changing requires repairing all devices! (Note: use a ZLL channel: 11, 15, 20, or 25 to avoid Problems)","examples":[15,20,25],"maximum":26,"minimum":11,"requiresRestart":true,"title":"ZigBee channel","type":"number"},"elapsed":{"default":false,"description":"Add an elapsed attribute to MQTT messages, contains milliseconds since the previous msg","title":"Elapsed","type":"boolean"},"ext_pan_id":{"description":"Zigbee extended pan ID, changing requires repairing all devices!","items":{"type":"number"},"requiresRestart":true,"title":"Ext Pan ID","type":"array"},"last_seen":{"default":"disable","description":"Add a last_seen attribute to MQTT messages, contains date/time of last Zigbee message","enum":["disable","ISO_8601","ISO_8601_local","epoch"],"title":"Last seen","type":"string"},"legacy_api":{"default":true,"description":"Disables the legacy api (false = disable)","requiresRestart":true,"title":"Legacy API","type":"boolean"},"legacy_availability_payload":{"default":true,"description":"Payload to be used for device availabilty and bridge/state topics. true = text, false = JSON","requiresRestart":true,"title":"Legacy availability payload","type":"boolean"},"log_directory":{"description":"Location of log directory","examples":["data/log/%TIMESTAMP%"],"requiresRestart":true,"title":"Log directory","type":"string"},"log_file":{"default":"log.txt","description":"Log file name, can also contain timestamp","examples":["zigbee2mqtt_%TIMESTAMP%.log"],"requiresRestart":true,"title":"Log file","type":"string"},"log_level":{"default":"info","description":"Logging level","enum":["info","warn","error","debug"],"title":"Log level","type":"string"},"log_output":{"description":"Output location of the log, leave empty to suppress logging","items":{"enum":["console","file","syslog"],"type":"string"},"requiresRestart":true,"title":"Log output","type":"array"},"log_rotation":{"default":true,"description":"Log rotation","requiresRestart":true,"title":"Log rotation","type":"boolean"},"log_symlink_current":{"default":false,"description":"Create symlink to current logs in the log directory","requiresRestart":true,"title":"Log symlink current","type":"boolean"},"log_syslog":{"properties":{"app_name":{"default":"Zigbee2MQTT","description":"The name of the application (Default: Zigbee2MQTT).","title":"Localhost","type":"string"},"eol":{"default":"/n","description":"The end of line character to be added to the end of the message (Default: Message without modifications).","title":"eol","type":"string"},"host":{"default":"localhost","description":"The host running syslogd, defaults to localhost.","title":"Host","type":"string"},"localhost":{"default":"localhost","description":"Host to indicate that log messages are coming from (Default: localhost).","title":"Localhost","type":"string"},"path":{"default":"/dev/log","description":"The path to the syslog dgram socket (i.e. /dev/log or /var/run/syslog for OS X).","examples":["/var/run/syslog"],"title":"Path","type":"string"},"pid":{"default":"process.pid","description":"PID of the process that log messages are coming from (Default process.pid).","title":"PID","type":"string"},"port":{"default":123,"description":"The port on the host that syslog is running on, defaults to syslogd's default port.","title":"Port","type":"number"},"protocol":{"default":"tcp4","description":"The network protocol to log over (e.g. tcp4, udp4, tls4, unix, unix-connect, etc).","examples":["udp4","tls4","unix","unix-connect"],"title":"Protocol","type":"string"},"type":{"default":"5424","description":"The type of the syslog protocol to use (Default: BSD, also valid: 5424).","title":"Type","type":"string"}},"title":"syslog","type":"object"},"network_key":{"description":"Network encryption key, changing requires repairing all devices!","oneOf":[{"title":"Network key(string)","type":"string"},{"items":{"type":"number"},"title":"Network key(array)","type":"array"}],"requiresRestart":true,"title":"Network key"},"output":{"description":"Examples when 'state' of a device is published json: topic: 'zigbee2mqtt/my_bulb' payload '{\"state\": \"ON\"}' attribute: topic 'zigbee2mqtt/my_bulb/state' payload 'ON' attribute_and_json: both json and attribute (see above)","enum":["attribute_and_json","attribute","json"],"title":"MQTT output type","type":"string"},"pan_id":{"description":"ZigBee pan ID, changing requires repairing all devices!","oneOf":[{"title":"Pan ID (string)","type":"string"},{"title":"Pan ID (number)","type":"number"}],"requiresRestart":true,"title":"Pan ID"},"timestamp_format":{"description":"Log timestamp format","examples":["YYYY-MM-DD HH:mm:ss"],"requiresRestart":true,"title":"Timestamp format","type":"string"},"transmit_power":{"description":"Transmit power of adapter, only available for Z-Stack (CC253*/CC2652/CC1352) adapters, CC2652 = 5dbm, CC1352 max is = 20dbm (5dbm default)","requiresRestart":true,"title":"Transmit power","type":["number","null"]}},"title":"Advanced","type":"object"},"availability":{"description":"Checks whether devices are online/offline","oneOf":[{"title":"Availability (simple)","type":"boolean"},{"properties":{"active":{"description":"Options for active devices (routers/mains powered)","properties":{"timeout":{"default":10,"description":"Time after which an active device will be marked as offline in minutes","requiresRestart":true,"title":"Timeout","type":"number"}},"requiresRestart":true,"title":"Active","type":"object"},"passive":{"description":"Options for passive devices (mostly battery powered)","properties":{"timeout":{"default":1500,"description":"Time after which an passive device will be marked as offline in minutes","requiresRestart":true,"title":"Timeout","type":"number"}},"requiresRestart":true,"title":"Passive","type":"object"}},"title":"Availability (advanced)","type":"object"}],"requiresRestart":true,"title":"Availability"},"ban":{"items":{"type":"string"},"readOnly":true,"requiresRestart":true,"title":"Ban (deprecated, use blocklist)","type":"array"},"blocklist":{"description":"Block devices from the network (by ieeeAddr)","items":{"type":"string"},"requiresRestart":true,"title":"Blocklist","type":"array"},"device_options":{"title":"Options that are applied to all devices","type":"object"},"devices":{"patternProperties":{"^.*$":{"$ref":"#/definitions/device"}},"propertyNames":{"pattern":"^0x[\\d\\w]{16}$"},"type":"object"},"external_converters":{"description":"You can define external converters to e.g. add support for a DiY device","examples":["DIYRuZ_FreePad.js"],"items":{"type":"string"},"requiresRestart":true,"title":"External converters","type":"array"},"frontend":{"oneOf":[{"title":"Frontend (simple)","type":"boolean"},{"properties":{"auth_token":{"description":"Enables authentication, disabled by default","requiresRestart":true,"title":"Auth token","type":["string","null"]},"host":{"default":"0.0.0.0","description":"Frontend binding host","requiresRestart":true,"title":"Bind host","type":"string"},"port":{"default":8080,"description":"Frontend binding port","requiresRestart":true,"title":"Port","type":"number"},"url":{"description":"URL on which the frontend can be reached, currently only used for the Home Assistant device configuration page","requiresRestart":true,"title":"URL","type":["string","null"]}},"title":"Frontend (advanced)","type":"object"}],"requiresRestart":true,"title":"Frontend"},"groups":{"patternProperties":{"^.*$":{"$ref":"#/definitions/group"}},"propertyNames":{"pattern":"^[\\w].*$"},"type":"object"},"homeassistant":{"default":false,"description":"Home Assistant integration (MQTT discovery)","oneOf":[{"title":"Home Assistant (simple)","type":"boolean"},{"properties":{"discovery_topic":{"description":"Home Assistant discovery topic","examples":["homeassistant"],"requiresRestart":true,"title":"Homeassistant discovery topic","type":"string"},"legacy_entity_attributes":{"default":true,"description":"Home Assistant legacy entity attributes, when enabled Zigbee2MQTT will add state attributes to each entity, additional to the separate entities and devices it already creates","title":"Home Assistant legacy entity attributes","type":"boolean"},"legacy_triggers":{"default":true,"description":"Home Assistant legacy triggers, when enabled Zigbee2mqt will send an empty 'action' or 'click' after one has been send. A 'sensor_action' and 'sensor_click' will be discoverd","title":"Home Assistant legacy triggers","type":"boolean"},"status_topic":{"description":"Home Assistant status topic","examples":["homeassistant/status"],"requiresRestart":true,"title":"Home Assistant status topic","type":"string"}},"title":"Home Assistant (advanced)","type":"object"}],"requiresRestart":true,"title":"Home Assistant integration"},"map_options":{"properties":{"graphviz":{"properties":{"colors":{"properties":{"fill":{"properties":{"coordinator":{"type":"string"},"enddevice":{"type":"string"},"router":{"type":"string"}},"type":"object"},"font":{"properties":{"coordinator":{"type":"string"},"enddevice":{"type":"string"},"router":{"type":"string"}},"type":"object"},"line":{"properties":{"active":{"type":"string"},"inactive":{"type":"string"}},"type":"object"}},"type":"object"}},"type":"object"}},"title":"Networkmap","type":"object"},"mqtt":{"properties":{"base_topic":{"default":"zigbee2mqtt","description":"MQTT base topic for Zigbee2MQTT MQTT messages","examples":["zigbee2mqtt"],"requiresRestart":true,"title":"Base topic","type":"string"},"ca":{"description":"Absolute path to SSL/TLS certificate of CA used to sign server and client certificates","examples":["/etc/ssl/mqtt-ca.crt"],"requiresRestart":true,"title":"Certificate authority","type":"string"},"cert":{"description":"Absolute path to SSL/TLS certificate for client-authentication","examples":["/etc/ssl/mqtt-client.crt"],"requiresRestart":true,"title":"SSL/TLS certificate","type":"string"},"client_id":{"description":"MQTT client ID","examples":["MY_CLIENT_ID"],"requiresRestart":true,"title":"Client ID","type":"string"},"force_disable_retain":{"default":false,"description":"Disable retain for all send messages. ONLY enable if you MQTT broker doesn't support retained message (e.g. AWS IoT core, Azure IoT Hub, Google Cloud IoT core, IBM Watson IoT Platform). Enabling will break the Home Assistant integration","requiresRestart":true,"title":"Force disable retain","type":"boolean"},"include_device_information":{"default":false,"description":"Include device information to mqtt messages","title":"Include device information","type":"boolean"},"keepalive":{"default":60,"description":"MQTT keepalive in second","requiresRestart":true,"title":"Keepalive","type":"number"},"key":{"description":"Absolute path to SSL/TLS key for client-authentication","examples":["/etc/ssl/mqtt-client.key"],"requiresRestart":true,"title":"SSL/TLS key","type":"string"},"password":{"description":"MQTT server authentication password","examples":["ILOVEPELMENI"],"requiresRestart":true,"title":"Password","type":"string"},"reject_unauthorized":{"default":true,"description":"Disable self-signed SSL certificate","requiresRestart":true,"title":"Reject unauthorized","type":"boolean"},"server":{"description":"MQTT server URL (use mqtts:// for SSL/TLS connection)","examples":["mqtt://localhost:1883"],"requiresRestart":true,"title":"MQTT server","type":"string"},"user":{"description":"MQTT server authentication user","examples":["johnnysilverhand"],"requiresRestart":true,"title":"User","type":"string"},"version":{"default":4,"description":"MQTT protocol version","examples":[5],"requiresRestart":true,"title":"Version","type":["number","null"]}},"required":["server"],"title":"MQTT","type":"object"},"ota":{"properties":{"disable_automatic_update_check":{"default":false,"description":"Zigbee devices may request a firmware update, and do so frequently, causing Zigbee2MQTT to reach out to third party servers. If you disable these device initiated checks, you can still initiate a firmware update check manually.","title":"Disable automatic update check","type":"boolean"},"ikea_ota_use_test_url":{"default":false,"description":"Use IKEA TRADFRI OTA test server, see OTA updates documentation","requiresRestart":true,"title":"IKEA TRADFRI OTA use test url","type":"boolean"},"update_check_interval":{"default":1440,"description":"Your device may request a check for a new firmware update. This value determines how frequently third party servers may actually be contacted to look for firmware updates. The value is set in minutes, and the default is 1 day.","title":"Update check interval","type":"number"},"zigbee_ota_override_index_location":{"description":"Location of override OTA index file","examples":["index.json"],"requiresRestart":true,"title":"OTA index override file name","type":"string"}},"title":"OTA updates","type":"object"},"passlist":{"description":"Allow only certain devices to join the network (by ieeeAddr). Note that all devices not on the passlist will be removed from the network!","items":{"type":"string"},"requiresRestart":true,"title":"Passlist","type":"array"},"permit_join":{"default":false,"description":"Allow new devices to join (re-applied at restart)","title":"Permit join","type":"boolean"},"serial":{"properties":{"adapter":{"default":"auto","description":"Adapter type, not needed unless you are experiencing problems","enum":["deconz","zstack","zigate","ezsp","auto"],"requiresRestart":true,"title":"Adapter","type":["string"]},"baudrate":{"description":"Baud rate speed for serial port, this can be anything firmware support but default is 115200 for Z-Stack and EZSP, 38400 for Deconz, however note that some EZSP firmware need 57600","examples":[38400,57600,115200],"requiresRestart":true,"title":"Baudrate","type":"number"},"disable_led":{"default":false,"description":"Disable LED of the adapter if supported","requiresRestart":true,"title":"Disable led","type":"boolean"},"port":{"description":"Location of the adapter. To autodetect the port, set null","examples":["/dev/ttyACM0"],"requiresRestart":true,"title":"Port","type":["string","null"]},"rtscts":{"description":"RTS / CTS Hardware Flow Control for serial port","requiresRestart":true,"title":"RTS / CTS","type":"boolean"}},"title":"Serial","type":"object"},"whitelist":{"items":{"type":"string"},"readOnly":true,"requiresRestart":true,"title":"Whitelist (deprecated, use passlist)","type":"array"}},"required":["mqtt"],"type":"object"},"coordinator":{"ieee_address":"0x00124b0018e32e48","meta":{"maintrel":3,"majorrel":2,"minorrel":6,"product":0,"revision":20201128,"transportrev":2},"type":"zStack12"},"log_level":"debug","network":{"channel":20,"extended_pan_id":"0x00124b0018e32e48","pan_id":6754},"permit_join":false,"restart_required":false,"version":"1.25.0"}'
Zigbee2MQTT:debug 2022-04-03 13:43:20: Received MQTT message on 'zigbee2mqtt/bridge/devices' with data '[{"definition":null,"endpoints":{"1":{"bindings":[],"clusters":{"input":[],"output":[]},"configured_reportings":[],"scenes":[]},"10":{"bindings":[],"clusters":{"input":[],"output":[]},"configured_reportings":[],"scenes":[]},"11":{"bindings":[],"clusters":{"input":["ssIasAce"],"output":["ssIasZone","ssIasWd"]},"configured_reportings":[],"scenes":[]},"110":{"bindings":[],"clusters":{"input":[],"output":[]},"configured_reportings":[],"scenes":[]},"12":{"bindings":[],"clusters":{"input":[],"output":[]},"configured_reportings":[],"scenes":[]},"13":{"bindings":[],"clusters":{"input":["genOta"],"output":[]},"configured_reportings":[],"scenes":[]},"2":{"bindings":[],"clusters":{"input":[],"output":[]},"configured_reportings":[],"scenes":[]},"242":{"bindings":[],"clusters":{"input":[],"output":[]},"configured_reportings":[],"scenes":[]},"3":{"bindings":[],"clusters":{"input":[],"output":[]},"configured_reportings":[],"scenes":[]},"4":{"bindings":[],"clusters":{"input":[],"output":[]},"configured_reportings":[],"scenes":[]},"47":{"bindings":[],"clusters":{"input":[],"output":[]},"configured_reportings":[],"scenes":[]},"5":{"bindings":[],"clusters":{"input":[],"output":[]},"configured_reportings":[],"scenes":[]},"6":{"bindings":[],"clusters":{"input":[],"output":[]},"configured_reportings":[],"scenes":[]},"8":{"bindings":[],"clusters":{"input":[],"output":[]},"configured_reportings":[],"scenes":[]}},"friendly_name":"Coordinator","ieee_address":"0x00124b0018e32e48","interview_completed":true,"interviewing":false,"network_address":0,"supported":false,"type":"Coordinator"},{"date_code":"20200402","definition":{"description":"Radiator valve based on Danfoss Ally (014G2461)","exposes":[{"access":1,"description":"Remaining battery in %","name":"battery","property":"battery","type":"numeric","unit":"%","value_max":100,"value_min":0},{"access":7,"description":"Enables/disables physical input on the device","name":"keypad_lockout","property":"keypad_lockout","type":"enum","values":["unlock","lock1","lock2"]},{"access":7,"description":"Controls how programming affects the thermostat. Possible values: setpoint (only use specified setpoint), schedule (follow programmed setpoint schedule). Changing this value does not clear programmed schedules.","name":"programming_operation_mode","property":"programming_operation_mode","type":"enum","values":["setpoint","schedule"]},{"access":5,"description":"Is the unit in mounting mode. This is set to `false` for mounted (already on the radiator) or `true` for not mounted (after factory reset)","name":"mounted_mode_active","property":"mounted_mode_active","type":"binary","value_off":false,"value_on":true},{"access":7,"description":"Set the unit mounting mode. `false` Go to Mounted Mode or `true` Go to Mounting Mode","name":"mounted_mode_control","property":"mounted_mode_control","type":"binary","value_off":false,"value_on":true},{"access":7,"description":"Thermostat Orientation. This is important for the PID in how it assesses temperature. `false` Horizontal or `true` Vertical","name":"thermostat_vertical_orientation","property":"thermostat_vertical_orientation","type":"binary","value_off":false,"value_on":true},{"access":7,"description":"Viewing/Display Direction. `false` Horizontal or `true` Vertical","name":"viewing_direction","property":"viewing_direction","type":"binary","value_off":false,"value_on":true},{"access":7,"description":"Not clear how this affects operation. However, it would appear that the device does not execute any motor functions if this is set to false. This may be a means to conserve battery during periods that the heating system is not energized (e.g. during summer). `false` No Heat Available or `true` Heat Available","name":"heat_available","property":"heat_available","type":"binary","value_off":false,"value_on":true},{"access":5,"description":"Whether or not the unit needs warm water. `false` No Heat Request or `true` Heat Request","name":"heat_required","property":"heat_required","type":"binary","value_off":false,"value_on":true},{"access":1,"description":"Values observed are `0` (manual), `1` (schedule) or `2` (externally)","name":"setpoint_change_source","property":"setpoint_change_source","type":"enum","values":["manual","schedule","externally"]},{"features":[{"access":7,"description":"Temperature setpoint","name":"occupied_heating_setpoint","property":"occupied_heating_setpoint","type":"numeric","unit":"°C","value_max":32,"value_min":5,"value_step":0.5},{"access":5,"description":"Current temperature measured on the device","name":"local_temperature","property":"local_temperature","type":"numeric","unit":"°C"},{"access":1,"description":"Position of the valve (= demanded heat) where 0% is fully closed and 100% is fully open","name":"pi_heating_demand","property":"pi_heating_demand","type":"numeric","unit":"%","value_max":100,"value_min":0},{"access":7,"description":"Mode of this device","name":"system_mode","property":"system_mode","type":"enum","values":["heat"]},{"access":1,"description":"The current running state","name":"running_state","property":"running_state","type":"enum","values":["idle","heat"]}],"type":"climate"},{"access":7,"description":"If `radiator_covered` is `true`: Set at maximum 30 minutes interval but not more often than every 5 minutes and 0.1 degrees difference. Resets every 35 minutes to standard. If `radiator_covered` is `false`: Set at maximum 3 hours interval but not more often than every 30 minutes and 0.1 degrees difference. Resets every 3 hours to standard. Value 21C = 2100 (-8000=undefined).","name":"external_measured_room_sensor","property":"external_measured_room_sensor","type":"numeric","value_max":3500,"value_min":-8000},{"access":7,"description":"Set if the TRV should solely rely on external_measured_room_sensor or operate in offset mode. `false` = Auto Offset Mode or `true` = Room Sensor Mode","name":"radiator_covered","property":"radiator_covered","type":"binary","value_off":false,"value_on":true},{"access":7,"description":"Whether or not the window open feature is enabled","name":"window_open_feature","property":"window_open_feature","type":"binary","value_off":false,"value_on":true},{"access":5,"description":"0=Quarantine, 1=Windows are closed, 2=Hold - Windows are maybe about to open, 3=Open window detected, 4=In window open state from external but detected closed locally","name":"window_open_internal","property":"window_open_internal","type":"numeric","value_max":4,"value_min":0},{"access":7,"description":"Set if the window is open or close. This setting will trigger a change in the internal window and heating demand. `false` (windows are closed) or `true` (windows are open)","name":"window_open_external","property":"window_open_external","type":"binary","value_off":false,"value_on":true},{"access":7,"description":"Exercise day of week: 0=Sun...6=Sat, 7=undefined","name":"day_of_week","property":"day_of_week","type":"enum","values":["sunday","monday","tuesday","wednesday","thursday","friday","saturday","away_or_vacation"]},{"access":7,"description":"Exercise trigger time. Minutes since midnight (65535=undefined). Range 0 to 1439","name":"trigger_time","property":"trigger_time","type":"numeric","value_max":65535,"value_min":0},{"access":7,"description":"Scale factor of setpoint filter timeconstant (\"aggressiveness\" of control algorithm) 1= Quick ...  5=Moderate ... 10=Slow","name":"algorithm_scale_factor","property":"algorithm_scale_factor","type":"numeric","value_max":10,"value_min":1},{"access":7,"description":"Whether or not the thermostat acts as standalone thermostat or shares load with other thermostats in the room. The gateway must update load_room_mean if enabled.","name":"load_balancing_enable","property":"load_balancing_enable","type":"binary","value_off":false,"value_on":true},{"access":7,"description":"Mean radiator load for room calculated by gateway for load balancing purposes (-8000=undefined)","name":"load_room_mean","property":"load_room_mean","type":"numeric","value_max":2000,"value_min":-8000},{"access":5,"description":"Load estimate on this radiator","name":"load_estimate","property":"load_estimate","type":"numeric"},{"access":5,"description":"Specific for pre-heat running in Zigbee Weekly Schedule mode","name":"preheat_status","property":"preheat_status","type":"binary","value_off":false,"value_on":true},{"access":5,"description":"Status of adaptation run: None (before first run), In Progress, Valve Characteristic Found, Valve Characteristic Lost","name":"adaptation_run_status","property":"adaptation_run_status","type":"enum","values":["none","in_progress","found","lost"]},{"access":7,"description":"Automatic adaptation run enabled (the one during the night)","name":"adaptation_run_settings","property":"adaptation_run_settings","type":"binary","value_off":false,"value_on":true},{"access":7,"description":"Adaptation run control: Initiate Adaptation Run or Cancel Adaptation Run","name":"adaptation_run_control","property":"adaptation_run_control","type":"enum","values":["initate_adaptation","cancel_adaptation"]},{"access":7,"description":"Regulation SetPoint Offset in range -2.5°C to 2.5°C in steps of 0.1°C. Value 2.5°C = 25.","name":"regulation_setpoint_offset","property":"regulation_setpoint_offset","type":"numeric","value_max":25,"value_min":-25},{"access":1,"description":"Link quality (signal strength)","name":"linkquality","property":"linkquality","type":"numeric","unit":"lqi","value_max":255,"value_min":0}],"model":"UK7004240","options":[],"supports_ota":true,"vendor":"Hive"},"endpoints":{"1":{"bindings":[{"cluster":"genPollCtrl","target":{"endpoint":1,"ieee_address":"0x00124b0018e32e48","type":"endpoint"}},{"cluster":"genPowerCfg","target":{"endpoint":1,"ieee_address":"0x00124b0018e32e48","type":"endpoint"}},{"cluster":"hvacThermostat","target":{"endpoint":1,"ieee_address":"0x00124b0018e32e48","type":"endpoint"}}],"clusters":{"input":["genBasic","genPowerCfg","genIdentify","genTime","genPollCtrl","hvacThermostat","hvacUserInterfaceCfg","haDiagnostic"],"output":["genBasic","genOta"]},"configured_reportings":[{"attribute":"batteryPercentageRemaining","cluster":"genPowerCfg","maximum_report_interval":62000,"minimum_report_interval":3600,"reportable_change":0},{"attribute":"localTemp","cluster":"hvacThermostat","maximum_report_interval":3600,"minimum_report_interval":0,"reportable_change":10},{"attribute":"pIHeatingDemand","cluster":"hvacThermostat","maximum_report_interval":3600,"minimum_report_interval":0,"reportable_change":10},{"attribute":"occupiedHeatingSetpoint","cluster":"hvacThermostat","maximum_report_interval":3600,"minimum_report_interval":0,"reportable_change":10},{"attribute":"danfossMountedModeActive","cluster":"hvacThermostat","maximum_report_interval":62000,"minimum_report_interval":60,"reportable_change":1},{"attribute":"danfossWindowOpenInternal","cluster":"hvacThermostat","maximum_report_interval":3600,"minimum_report_interval":60,"reportable_change":1},{"attribute":"danfossHeatRequired","cluster":"hvacThermostat","maximum_report_interval":3600,"minimum_report_interval":60,"reportable_change":1},{"attribute":"danfossExternalMeasuredRoomSensor","cluster":"hvacThermostat","maximum_report_interval":62000,"minimum_report_interval":60,"reportable_change":1},{"attribute":"danfossAdaptionRunStatus","cluster":"hvacThermostat","maximum_report_interval":3600,"minimum_report_interval":60,"reportable_change":1}],"scenes":[]}},"friendly_name":"0x842e14fffe203c4c","ieee_address":"0x842e14fffe203c4c","interview_completed":true,"interviewing":false,"manufacturer":"Danfoss","model_id":"TRV001","network_address":57989,"power_source":"Battery","software_build_id":"02.33.0008 02.33","supported":true,"type":"EndDevice"}]'
Zigbee2MQTT:debug 2022-04-03 13:43:20: Received MQTT message on 'zigbee2mqtt/bridge/groups' with data '[]'
Zigbee2MQTT:debug 2022-04-03 13:43:20: Received MQTT message on 'zigbee2mqtt/bridge/config' with data '{"commit":"c2b5229f","coordinator":{"meta":{"maintrel":3,"majorrel":2,"minorrel":6,"product":0,"revision":20201128,"transportrev":2},"type":"zStack12"},"log_level":"debug","network":{"channel":14,"extendedPanID":"0x00124b0018e32e48","panID":6754},"permit_join":false,"version":"1.22.1"}'
Zigbee2MQTT:debug 2022-04-03 13:43:20: Received MQTT message on 'zigbee2mqtt/bridge/extensions' with data '[]'
Zigbee2MQTT:info  2022-04-03 13:43:20: Started frontend on port 0.0.0.0:8080
Zigbee2MQTT:info  2022-04-03 13:43:20: MQTT publish: topic 'zigbee2mqtt/0x842e14fffe203c4c', payload '{"battery":39,"external_measured_room_sensor":-8000,"heat_available":true,"heat_required":false,"keypad_lockout":"unlock","load_estimate":39,"local_temperature":21.98,"mounted_mode_active":false,"mounted_mode_control":false,"occupied_heating_setpoint":22.5,"pi_heating_demand":6,"running_state":"idle","system_mode":"heat","thermostat_vertical_orientation":true,"update":{"state":"available"}}'
Zigbee2MQTT:debug 2022-04-03 13:43:32: Device '0x842e14fffe203c4c' announced itself
Zigbee2MQTT:info  2022-04-03 13:43:32: MQTT publish: topic 'zigbee2mqtt/bridge/event', payload '{"data":{"friendly_name":"0x842e14fffe203c4c","ieee_address":"0x842e14fffe203c4c"},"type":"device_announce"}'
Zigbee2MQTT:debug 2022-04-03 13:43:34: Retrieving state of '0x842e14fffe203c4c' after reconnect
Zigbee2MQTT:debug 2022-04-03 13:43:55: Received Zigbee message from '0x842e14fffe203c4c', type 'commandCheckIn', cluster 'genPollCtrl', data '{}' from endpoint 1 with groupID 0
  zigbee-herdsman:controller:device:log check-in from 0x842e14fffe203c4c: declining fast-poll +0ms
Zigbee2MQTT:debug 2022-04-03 13:44:14: Received Zigbee message from '0x842e14fffe203c4c', type 'commandCheckIn', cluster 'genPollCtrl', data '{}' from endpoint 1 with groupID 0
  zigbee-herdsman:controller:device:log check-in from 0x842e14fffe203c4c: declining fast-poll +19s
Zigbee2MQTT:debug 2022-04-03 13:44:19: Received Zigbee message from '0x842e14fffe203c4c', type 'attributeReport', cluster 'hvacThermostat', data '{"occupiedHeatingSetpoint":2000}' from endpoint 1 with groupID 0
Zigbee2MQTT:info  2022-04-03 13:44:19: MQTT publish: topic 'zigbee2mqtt/0x842e14fffe203c4c', payload '{"battery":39,"external_measured_room_sensor":-8000,"heat_available":true,"heat_required":false,"keypad_lockout":"unlock","linkquality":149,"load_estimate":39,"local_temperature":21.98,"mounted_mode_active":false,"mounted_mode_control":false,"occupied_heating_setpoint":20,"pi_heating_demand":6,"running_state":"idle","system_mode":"heat","thermostat_vertical_orientation":true,"update":{"state":"available"}}'
Zigbee2MQTT:debug 2022-04-03 13:44:19: Received Zigbee message from '0x842e14fffe203c4c', type 'attributeReport', cluster 'hvacThermostat', data '{"pIHeatingDemand":1}' from endpoint 1 with groupID 0
Zigbee2MQTT:info  2022-04-03 13:44:19: MQTT publish: topic 'zigbee2mqtt/0x842e14fffe203c4c', payload '{"battery":39,"external_measured_room_sensor":-8000,"heat_available":true,"heat_required":false,"keypad_lockout":"unlock","linkquality":149,"load_estimate":39,"local_temperature":21.98,"mounted_mode_active":false,"mounted_mode_control":false,"occupied_heating_setpoint":20,"pi_heating_demand":1,"running_state":"idle","system_mode":"heat","thermostat_vertical_orientation":true,"update":{"state":"available"}}'
Zigbee2MQTT:debug 2022-04-03 13:44:19: Received Zigbee message from '0x842e14fffe203c4c', type 'attributeReport', cluster 'hvacThermostat', data '{"danfossWindowOpenInternal":0}' from endpoint 1 with groupID 0
Zigbee2MQTT:info  2022-04-03 13:44:19: MQTT publish: topic 'zigbee2mqtt/0x842e14fffe203c4c', payload '{"battery":39,"external_measured_room_sensor":-8000,"heat_available":true,"heat_required":false,"keypad_lockout":"unlock","linkquality":149,"load_estimate":39,"local_temperature":21.98,"mounted_mode_active":false,"mounted_mode_control":false,"occupied_heating_setpoint":20,"pi_heating_demand":1,"running_state":"idle","system_mode":"heat","thermostat_vertical_orientation":true,"update":{"state":"available"},"window_open_internal":"quarantine"}'
Zigbee2MQTT:debug 2022-04-03 13:44:30: Received MQTT message on 'zigbee2mqtt/bridge/request/device/ota_update/update' with data '{"id":"0x842e14fffe203c4c","transaction":"gxdns-1"}'
Zigbee2MQTT:info  2022-04-03 13:44:30: Updating '0x842e14fffe203c4c' to latest firmware
Zigbee2MQTT:debug 2022-04-03 13:44:36: Received Zigbee message from '0x842e14fffe203c4c', type 'readResponse', cluster 'genBasic', data '{"dateCode":"20200402","swBuildId":"02.33.0008 02.33"}' from endpoint 1 with groupID 0
Zigbee2MQTT:debug 2022-04-03 13:44:36: Updating to latest '0x842e14fffe203c4c' (TRV001)
Zigbee2MQTT:debug 2022-04-03 13:44:36: Using endpoint '1'
Zigbee2MQTT:debug 2022-04-03 13:44:39: Received Zigbee message from '0x842e14fffe203c4c', type 'commandQueryNextImageRequest', cluster 'genOta', data '{"fieldControl":0,"fileVersion":545,"imageType":66,"manufacturerCode":4678}' from endpoint 1 with groupID 0
Zigbee2MQTT:debug 2022-04-03 13:44:39: Device '0x842e14fffe203c4c' requested OTA
Zigbee2MQTT:debug 2022-04-03 13:44:39: Got OTA request '{"fieldControl":0,"manufacturerCode":4678,"imageType":66,"fileVersion":545}'
Zigbee2MQTT:debug 2022-04-03 13:44:40: ZigbeeOTA: downloaded main index
Zigbee2MQTT:debug 2022-04-03 13:44:40: getNewImage for '0x842e14fffe203c4c', meta {"fileVersion":274,"fileSize":379806,"url":"https://github.com/Koenkk/zigbee-OTA/raw/master/images/Danfoss/1246-0100-01180118.0002_%28F5BFD8B8%29.ota","sha512":"873effaa113e1d07643fbf25f6e26ee4b23f8deb7d006cce7fc490fd8ad7a5754de4c352b6f3d5e172022a34ea2699f5d1d8fda90f4348b25d5feaa169e38c85","force":true}
Zigbee2MQTT:debug 2022-04-03 13:44:40: ZigbeeOTA: downloading firmware image from https://github.com/Koenkk/zigbee-OTA/raw/master/images/Danfoss/1246-0100-01180118.0002_%28F5BFD8B8%29.ota
Zigbee2MQTT:debug 2022-04-03 13:44:40: OTA update checksum validation succeeded for '0x842e14fffe203c4c'
Zigbee2MQTT:debug 2022-04-03 13:44:40: getNewImage for '0x842e14fffe203c4c', image header {"otaUpgradeFileIdentifier":{"type":"Buffer","data":[30,241,238,11]},"otaHeaderVersion":256,"otaHeaderLength":56,"otaHeaderFieldControl":0,"manufacturerCode":4678,"imageType":256,"fileVersion":274,"zigbeeStackVersion":2,"otaHeaderString":"29-11-2021 V.0112.0112\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000","totalImageSize":379806}
Zigbee2MQTT:debug 2022-04-03 13:44:40: Got new image for '0x842e14fffe203c4c'
Zigbee2MQTT:debug 2022-04-03 13:44:40: Starting upgrade
Zigbee2MQTT:debug 2022-04-03 13:44:41: Received Zigbee message from '0x842e14fffe203c4c', type 'commandQueryNextImageRequest', cluster 'genOta', data '{"fieldControl":0,"fileVersion":545,"imageType":66,"manufacturerCode":4678}' from endpoint 1 with groupID 0
Zigbee2MQTT:debug 2022-04-03 13:44:41: Device '0x842e14fffe203c4c' requested OTA
Zigbee2MQTT:debug 2022-04-03 13:45:30: Received Zigbee message from '0x842e14fffe203c4c', type 'attributeReport', cluster 'hvacThermostat', data '{"danfossHeatRequired":0}' from endpoint 1 with groupID 0
Zigbee2MQTT:info  2022-04-03 13:45:30: MQTT publish: topic 'zigbee2mqtt/0x842e14fffe203c4c', payload '{"battery":39,"external_measured_room_sensor":-8000,"heat_available":true,"heat_required":false,"keypad_lockout":"unlock","linkquality":120,"load_estimate":39,"local_temperature":21.98,"mounted_mode_active":false,"mounted_mode_control":false,"occupied_heating_setpoint":20,"pi_heating_demand":1,"running_state":"idle","system_mode":"heat","thermostat_vertical_orientation":true,"update":{"state":"available"},"window_open_internal":"quarantine"}'
Zigbee2MQTT:debug 2022-04-03 13:46:30: Received Zigbee message from '0x842e14fffe203c4c', type 'attributeReport', cluster 'hvacThermostat', data '{"localTemp":2249}' from endpoint 1 with groupID 0
Zigbee2MQTT:info  2022-04-03 13:46:30: MQTT publish: topic 'zigbee2mqtt/0x842e14fffe203c4c', payload '{"battery":39,"external_measured_room_sensor":-8000,"heat_available":true,"heat_required":false,"keypad_lockout":"unlock","linkquality":131,"load_estimate":39,"local_temperature":22.49,"mounted_mode_active":false,"mounted_mode_control":false,"occupied_heating_setpoint":20,"pi_heating_demand":1,"running_state":"idle","system_mode":"heat","thermostat_vertical_orientation":true,"update":{"state":"available"},"window_open_internal":"quarantine"}'
Zigbee2MQTT:debug 2022-04-03 13:47:10: Update of '0x842e14fffe203c4c' failed (Error: Timeout: device did not request any image blocks)
Zigbee2MQTT:info  2022-04-03 13:47:10: MQTT publish: topic 'zigbee2mqtt/0x842e14fffe203c4c', payload '{"battery":39,"external_measured_room_sensor":-8000,"heat_available":true,"heat_required":false,"keypad_lockout":"unlock","linkquality":131,"load_estimate":39,"local_temperature":22.49,"mounted_mode_active":false,"mounted_mode_control":false,"occupied_heating_setpoint":20,"pi_heating_demand":1,"running_state":"idle","system_mode":"heat","thermostat_vertical_orientation":true,"update":{"state":"available"},"window_open_internal":"quarantine"}'
Zigbee2MQTT:info  2022-04-03 13:47:10: MQTT publish: topic 'zigbee2mqtt/bridge/response/device/ota_update/update', payload '{"data":{"id":"0x842e14fffe203c4c"},"error":"Update of '0x842e14fffe203c4c' failed (Timeout: device did not request any image blocks)","status":"error","transaction":"gxdns-1"}'
Zigbee2MQTT:error 2022-04-03 13:47:10: Update of '0x842e14fffe203c4c' failed (Timeout: device did not request any image blocks)
Zigbee2MQTT:debug 2022-04-03 13:47:10: Error: Timeout: device did not request any image blocks
    at /home/rob/Projects/zigbee2mqtt/node_modules/zigbee-herdsman-converters/lib/ota/common.js:360:28
^CZigbee2MQTT:debug 2022-04-03 13:47:24: Saving state to file /home/rob/Projects/zigbee2mqtt/data/state.json
Zigbee2MQTT:info  2022-04-03 13:47:24: MQTT publish: topic 'zigbee2mqtt/bridge/state', payload 'offline'
Zigbee2MQTT:info  2022-04-03 13:47:24: Disconnecting from MQTT server
Zigbee2MQTT:info  2022-04-03 13:47:24: Stopping zigbee-herdsman...
Zigbee2MQTT:info  2022-04-03 13:47:25: Stopped zigbee-herdsman
Zigbee2MQTT:info  2022-04-03 13:47:25: Stopped Zigbee2MQTT
Koenkk commented 2 years ago

Ah sorry, it should be DEBUG=zigbee-herdsman:controller:endpoint* npm start (I want to see what commands are send to the device)

robertalexa commented 2 years ago

Done.

Zigbee2MQTT:debug 2022-04-03 22:06:39: Received MQTT message on 'zigbee2mqtt/bridge/request/device/ota_update/update' with data '{"id":"0x842e14fffe203c4c","transaction":"baneb-1"}'
Zigbee2MQTT:info  2022-04-03 22:06:39: Updating '0x842e14fffe203c4c' to latest firmware
  zigbee-herdsman:controller:endpoint Read 0x842e14fffe203c4c/1 genBasic(["dateCode","swBuildId"], {"sendWhen":"immediate","timeout":10000,"disableResponse":false,"disableRecovery":false,"disableDefaultResponse":true,"direction":0,"srcEndpoint":null,"reservedBits":0,"manufacturerCode":null,"transactionSequenceNumber":null,"writeUndiv":false}) +5s
Zigbee2MQTT:debug 2022-04-03 22:06:43: Received Zigbee message from '0x842e14fffe203c4c', type 'readResponse', cluster 'genBasic', data '{"dateCode":"20200402","swBuildId":"02.33.0008 02.33"}' from endpoint 1 with groupID 0
  zigbee-herdsman:controller:endpoint DefaultResponse 0x842e14fffe203c4c/1 0(1, {"sendWhen":"fastpoll","timeout":10000,"disableResponse":false,"disableRecovery":false,"disableDefaultResponse":true,"direction":1,"srcEndpoint":null,"reservedBits":0,"manufacturerCode":null,"transactionSequenceNumber":null,"writeUndiv":false}) +4s
Zigbee2MQTT:debug 2022-04-03 22:06:43: Updating to latest '0x842e14fffe203c4c' (TRV001)
Zigbee2MQTT:debug 2022-04-03 22:06:43: Using endpoint '1'
  zigbee-herdsman:controller:endpoint CommandResponse 0x842e14fffe203c4c/1 genOta.imageNotify({"payloadType":0,"queryJitter":100}, {"sendWhen":"fastpoll","timeout":10000,"disableResponse":false,"disableRecovery":false,"disableDefaultResponse":true,"direction":1,"srcEndpoint":null,"reservedBits":0,"manufacturerCode":null,"transactionSequenceNumber":null,"writeUndiv":false}) +8ms
Zigbee2MQTT:debug 2022-04-03 22:06:47: Received Zigbee message from '0x842e14fffe203c4c', type 'commandQueryNextImageRequest', cluster 'genOta', data '{"fieldControl":0,"fileVersion":545,"imageType":66,"manufacturerCode":4678}' from endpoint 1 with groupID 0
Zigbee2MQTT:debug 2022-04-03 22:06:47: Device '0x842e14fffe203c4c' requested OTA
Zigbee2MQTT:debug 2022-04-03 22:06:47: Got OTA request '{"fieldControl":0,"manufacturerCode":4678,"imageType":66,"fileVersion":545}'
Zigbee2MQTT:debug 2022-04-03 22:06:47: ZigbeeOTA: downloaded main index
Zigbee2MQTT:debug 2022-04-03 22:06:47: getNewImage for '0x842e14fffe203c4c', meta {"fileVersion":274,"fileSize":379806,"url":"https://github.com/Koenkk/zigbee-OTA/raw/master/images/Danfoss/1246-0100-01180118.0002_%28F5BFD8B8%29.ota","sha512":"873effaa113e1d07643fbf25f6e26ee4b23f8deb7d006cce7fc490fd8ad7a5754de4c352b6f3d5e172022a34ea2699f5d1d8fda90f4348b25d5feaa169e38c85","force":true}
Zigbee2MQTT:debug 2022-04-03 22:06:47: ZigbeeOTA: downloading firmware image from https://github.com/Koenkk/zigbee-OTA/raw/master/images/Danfoss/1246-0100-01180118.0002_%28F5BFD8B8%29.ota
Zigbee2MQTT:debug 2022-04-03 22:06:48: OTA update checksum validation succeeded for '0x842e14fffe203c4c'
Zigbee2MQTT:debug 2022-04-03 22:06:48: getNewImage for '0x842e14fffe203c4c', image header {"otaUpgradeFileIdentifier":{"type":"Buffer","data":[30,241,238,11]},"otaHeaderVersion":256,"otaHeaderLength":56,"otaHeaderFieldControl":0,"manufacturerCode":4678,"imageType":256,"fileVersion":274,"zigbeeStackVersion":2,"otaHeaderString":"29-11-2021 V.0112.0112\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000","totalImageSize":379806}
Zigbee2MQTT:debug 2022-04-03 22:06:48: Got new image for '0x842e14fffe203c4c'
Zigbee2MQTT:debug 2022-04-03 22:06:48: Starting upgrade
  zigbee-herdsman:controller:endpoint CommandResponse 0x842e14fffe203c4c/1 genOta.imageNotify({"payloadType":0,"queryJitter":100}, {"sendWhen":"fastpoll","timeout":10000,"disableResponse":false,"disableRecovery":false,"disableDefaultResponse":true,"direction":1,"srcEndpoint":null,"reservedBits":0,"manufacturerCode":null,"transactionSequenceNumber":null,"writeUndiv":false}) +5s
Zigbee2MQTT:debug 2022-04-03 22:06:48: Received Zigbee message from '0x842e14fffe203c4c', type 'commandQueryNextImageRequest', cluster 'genOta', data '{"fieldControl":0,"fileVersion":545,"imageType":66,"manufacturerCode":4678}' from endpoint 1 with groupID 0
Zigbee2MQTT:debug 2022-04-03 22:06:48: Device '0x842e14fffe203c4c' requested OTA
  zigbee-herdsman:controller:endpoint CommandResponse 0x842e14fffe203c4c/1 genOta.queryNextImageResponse({"status":0,"manufacturerCode":4678,"imageType":256,"fileVersion":274,"imageSize":379806}, {"sendWhen":"fastpoll","timeout":10000,"disableResponse":false,"disableRecovery":false,"disableDefaultResponse":true,"direction":1,"srcEndpoint":null,"reservedBits":0,"manufacturerCode":null,"transactionSequenceNumber":null,"writeUndiv":false}) +444ms
Zigbee2MQTT:debug 2022-04-03 22:08:30: Received Zigbee message from '0x842e14fffe203c4c', type 'attributeReport', cluster 'hvacThermostat', data '{"localTemp":2211}' from endpoint 1 with groupID 0
  zigbee-herdsman:controller:endpoint DefaultResponse 0x842e14fffe203c4c/1 513(10, {"sendWhen":"fastpoll","timeout":10000,"disableResponse":false,"disableRecovery":false,"disableDefaultResponse":true,"direction":1,"srcEndpoint":null,"reservedBits":0,"manufacturerCode":null,"transactionSequenceNumber":null,"writeUndiv":false}) +2m
Zigbee2MQTT:debug 2022-04-03 22:08:30: Received Zigbee message from '0x842e14fffe203c4c', type 'attributeReport', cluster 'hvacThermostat', data '{"danfossLoadEstimate":3}' from endpoint 1 with groupID 0
  zigbee-herdsman:controller:endpoint DefaultResponse 0x842e14fffe203c4c/1 513(10, {"sendWhen":"fastpoll","timeout":10000,"disableResponse":false,"disableRecovery":false,"disableDefaultResponse":true,"direction":1,"srcEndpoint":null,"reservedBits":0,"manufacturerCode":null,"transactionSequenceNumber":null,"writeUndiv":false}) +3ms
Zigbee2MQTT:info  2022-04-03 22:08:30: MQTT publish: topic 'zigbee2mqtt/0x842e14fffe203c4c', payload '{"battery":39,"external_measured_room_sensor":-8000,"heat_available":true,"heat_required":false,"keypad_lockout":"unlock","linkquality":141,"load_estimate":-1,"local_temperature":22.11,"mounted_mode_active":false,"mounted_mode_control":false,"occupied_heating_setpoint":19.5,"pi_heating_demand":1,"running_state":"idle","system_mode":"heat","thermostat_vertical_orientation":true,"update":{"state":"available"},"window_open_internal":"quarantine"}'
Zigbee2MQTT:info  2022-04-03 22:08:30: MQTT publish: topic 'zigbee2mqtt/0x842e14fffe203c4c', payload '{"battery":39,"external_measured_room_sensor":-8000,"heat_available":true,"heat_required":false,"keypad_lockout":"unlock","linkquality":141,"load_estimate":3,"local_temperature":22.11,"mounted_mode_active":false,"mounted_mode_control":false,"occupied_heating_setpoint":19.5,"pi_heating_demand":1,"running_state":"idle","system_mode":"heat","thermostat_vertical_orientation":true,"update":{"state":"available"},"window_open_internal":"quarantine"}'
Zigbee2MQTT:debug 2022-04-03 22:09:18: Update of '0x842e14fffe203c4c' failed (Error: Timeout: device did not request any image blocks)
Zigbee2MQTT:info  2022-04-03 22:09:18: MQTT publish: topic 'zigbee2mqtt/0x842e14fffe203c4c', payload '{"battery":39,"external_measured_room_sensor":-8000,"heat_available":true,"heat_required":false,"keypad_lockout":"unlock","linkquality":141,"load_estimate":3,"local_temperature":22.11,"mounted_mode_active":false,"mounted_mode_control":false,"occupied_heating_setpoint":19.5,"pi_heating_demand":1,"running_state":"idle","system_mode":"heat","thermostat_vertical_orientation":true,"update":{"state":"available"},"window_open_internal":"quarantine"}'
Zigbee2MQTT:info  2022-04-03 22:09:18: MQTT publish: topic 'zigbee2mqtt/bridge/response/device/ota_update/update', payload '{"data":{"id":"0x842e14fffe203c4c"},"error":"Update of '0x842e14fffe203c4c' failed (Timeout: device did not request any image blocks)","status":"error","transaction":"baneb-1"}'
Zigbee2MQTT:error 2022-04-03 22:09:18: Update of '0x842e14fffe203c4c' failed (Timeout: device did not request any image blocks)
Zigbee2MQTT:debug 2022-04-03 22:09:18: Error: Timeout: device did not request any image blocks
    at /home/rob/Projects/zigbee2mqtt/node_modules/zigbee-herdsman-converters/lib/ota/common.js:360:28
    at runNextTicks (node:internal/process/task_queues:59:5)
    at listOnTimeout (node:internal/timers:526:9)
    at processTimers (node:internal/timers:500:7)
Zigbee2MQTT:debug 2022-04-03 22:09:30: Received Zigbee message from '0x842e14fffe203c4c', type 'attributeReport', cluster 'hvacThermostat', data '{"localTemp":2235}' from endpoint 1 with groupID 0
  zigbee-herdsman:controller:endpoint DefaultResponse 0x842e14fffe203c4c/1 513(10, {"sendWhen":"fastpoll","timeout":10000,"disableResponse":false,"disableRecovery":false,"disableDefaultResponse":true,"direction":1,"srcEndpoint":null,"reservedBits":0,"manufacturerCode":null,"transactionSequenceNumber":null,"writeUndiv":false}) +60s
Zigbee2MQTT:info  2022-04-03 22:09:30: MQTT publish: topic 'zigbee2mqtt/0x842e14fffe203c4c', payload '{"battery":39,"external_measured_room_sensor":-8000,"heat_available":true,"heat_required":false,"keypad_lockout":"unlock","linkquality":144,"load_estimate":3,"local_temperature":22.35,"mounted_mode_active":false,"mounted_mode_control":false,"occupied_heating_setpoint":19.5,"pi_heating_demand":1,"running_state":"idle","system_mode":"heat","thermostat_vertical_orientation":true,"update":{"state":"available"},"window_open_internal":"quarantine"}'
Zigbee2MQTT:debug 2022-04-03 22:09:30: Received Zigbee message from '0x842e14fffe203c4c', type 'attributeReport', cluster 'hvacThermostat', data '{"danfossLoadEstimate":-5}' from endpoint 1 with groupID 0
  zigbee-herdsman:controller:endpoint DefaultResponse 0x842e14fffe203c4c/1 513(10, {"sendWhen":"fastpoll","timeout":10000,"disableResponse":false,"disableRecovery":false,"disableDefaultResponse":true,"direction":1,"srcEndpoint":null,"reservedBits":0,"manufacturerCode":null,"transactionSequenceNumber":null,"writeUndiv":false}) +351ms
Zigbee2MQTT:info  2022-04-03 22:09:30: MQTT publish: topic 'zigbee2mqtt/0x842e14fffe203c4c', payload '{"battery":39,"external_measured_room_sensor":-8000,"heat_available":true,"heat_required":false,"keypad_lockout":"unlock","linkquality":147,"load_estimate":-5,"local_temperature":22.35,"mounted_mode_active":false,"mounted_mode_control":false,"occupied_heating_setpoint":19.5,"pi_heating_demand":1,"running_state":"idle","system_mode":"heat","thermostat_vertical_orientation":true,"update":{"state":"available"},"window_open_internal":"quarantine"}'
^CZigbee2MQTT:debug 2022-04-03 22:09:33: Saving state to file /home/rob/Projects/zigbee2mqtt/data/state.json
Zigbee2MQTT:info  2022-04-03 22:09:33: MQTT publish: topic 'zigbee2mqtt/bridge/state', payload 'offline'
Zigbee2MQTT:info  2022-04-03 22:09:33: Disconnecting from MQTT server
Zigbee2MQTT:info  2022-04-03 22:09:33: Stopping zigbee-herdsman...
Zigbee2MQTT:info  2022-04-03 22:09:33: Stopped zigbee-herdsman
Zigbee2MQTT:info  2022-04-03 22:09:33: Stopped Zigbee2MQTT
Koenkk commented 2 years ago

I think you have to hack the image type to 66 here https://github.com/Koenkk/zigbee-herdsman-converters/blob/dda3ab3d584f46dc6d48a91aba0bedf36386d30a/lib/ota/common.js#L174

robertalexa commented 2 years ago

After your suggested change i get:

Zigbee2MQTT:debug 2022-04-04 22:13:35: Updating to latest '0x842e14fffe203c4c' (TRV001)
Zigbee2MQTT:debug 2022-04-04 22:13:35: Using endpoint '1'
  zigbee-herdsman:controller:endpoint CommandResponse 0x842e14fffe203c4c/1 genOta.imageNotify({"payloadType":0,"queryJitter":100}, {"sendWhen":"fastpoll","timeout":10000,"disableResponse":false,"disableRecovery":false,"disableDefaultResponse":true,"direction":1,"srcEndpoint":null,"reservedBits":0,"manufacturerCode":null,"transactionSequenceNumber":null,"writeUndiv":false}) +4ms
Zigbee2MQTT:debug 2022-04-04 22:13:38: Received Zigbee message from '0x842e14fffe203c4c', type 'commandQueryNextImageRequest', cluster 'genOta', data '{"fieldControl":0,"fileVersion":545,"imageType":66,"manufacturerCode":4678}' from endpoint 1 with groupID 0
Zigbee2MQTT:info  2022-04-04 22:13:38: MQTT publish: topic 'zigbee2mqtt/0x842e14fffe203c4c', payload '{"battery":39,"external_measured_room_sensor":-8000,"heat_available":true,"heat_required":false,"keypad_lockout":"unlock","last_seen":1649106818942,"linkquality":178,"load_estimate":-5,"local_temperature":22.35,"mounted_mode_active":false,"mounted_mode_control":false,"occupied_heating_setpoint":19.5,"pi_heating_demand":1,"running_state":"idle","system_mode":"heat","thermostat_vertical_orientation":true,"update":{"state":"available"},"window_open_internal":"quarantine"}'
Zigbee2MQTT:debug 2022-04-04 22:13:38: Device '0x842e14fffe203c4c' requested OTA
Zigbee2MQTT:debug 2022-04-04 22:13:38: Got OTA request '{"fieldControl":0,"manufacturerCode":4678,"imageType":66,"fileVersion":545}'
Zigbee2MQTT:debug 2022-04-04 22:13:39: ZigbeeOTA: downloaded main index
Zigbee2MQTT:debug 2022-04-04 22:13:39: getNewImage for '0x842e14fffe203c4c', meta {"fileVersion":274,"fileSize":379806,"url":"https://github.com/Koenkk/zigbee-OTA/raw/master/images/Danfoss/1246-0100-01180118.0002_%28F5BFD8B8%29.ota","sha512":"873effaa113e1d07643fbf25f6e26ee4b23f8deb7d006cce7fc490fd8ad7a5754de4c352b6f3d5e172022a34ea2699f5d1d8fda90f4348b25d5feaa169e38c85","force":true}
Zigbee2MQTT:debug 2022-04-04 22:13:39: ZigbeeOTA: downloading firmware image from https://github.com/Koenkk/zigbee-OTA/raw/master/images/Danfoss/1246-0100-01180118.0002_%28F5BFD8B8%29.ota
Zigbee2MQTT:debug 2022-04-04 22:13:39: OTA update checksum validation succeeded for '0x842e14fffe203c4c'
Zigbee2MQTT:debug 2022-04-04 22:13:39: getNewImage for '0x842e14fffe203c4c', image header {"otaUpgradeFileIdentifier":{"type":"Buffer","data":[30,241,238,11]},"otaHeaderVersion":256,"otaHeaderLength":56,"otaHeaderFieldControl":0,"manufacturerCode":4678,"imageType":256,"fileVersion":274,"zigbeeStackVersion":2,"otaHeaderString":"29-11-2021 V.0112.0112\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000","totalImageSize":379806}
Zigbee2MQTT:debug 2022-04-04 22:13:39: Got new image for '0x842e14fffe203c4c'
Zigbee2MQTT:debug 2022-04-04 22:13:39: Starting upgrade
  zigbee-herdsman:controller:endpoint CommandResponse 0x842e14fffe203c4c/1 genOta.imageNotify({"payloadType":0,"queryJitter":100}, {"sendWhen":"fastpoll","timeout":10000,"disableResponse":false,"disableRecovery":false,"disableDefaultResponse":true,"direction":1,"srcEndpoint":null,"reservedBits":0,"manufacturerCode":null,"transactionSequenceNumber":null,"writeUndiv":false}) +5s
Zigbee2MQTT:debug 2022-04-04 22:13:40: Received Zigbee message from '0x842e14fffe203c4c', type 'commandQueryNextImageRequest', cluster 'genOta', data '{"fieldControl":0,"fileVersion":545,"imageType":66,"manufacturerCode":4678}' from endpoint 1 with groupID 0
Zigbee2MQTT:info  2022-04-04 22:13:40: MQTT publish: topic 'zigbee2mqtt/0x842e14fffe203c4c', payload '{"battery":39,"external_measured_room_sensor":-8000,"heat_available":true,"heat_required":false,"keypad_lockout":"unlock","last_seen":1649106820397,"linkquality":178,"load_estimate":-5,"local_temperature":22.35,"mounted_mode_active":false,"mounted_mode_control":false,"occupied_heating_setpoint":19.5,"pi_heating_demand":1,"running_state":"idle","system_mode":"heat","thermostat_vertical_orientation":true,"update":{"state":"available"},"window_open_internal":"quarantine"}'
Zigbee2MQTT:debug 2022-04-04 22:13:40: Device '0x842e14fffe203c4c' requested OTA
  zigbee-herdsman:controller:endpoint CommandResponse 0x842e14fffe203c4c/1 genOta.queryNextImageResponse({"status":0,"manufacturerCode":4678,"imageType":66,"fileVersion":274,"imageSize":379806}, {"sendWhen":"fastpoll","timeout":10000,"disableResponse":false,"disableRecovery":false,"disableDefaultResponse":true,"direction":1,"srcEndpoint":null,"reservedBits":0,"manufacturerCode":null,"transactionSequenceNumber":null,"writeUndiv":false}) +449ms
Zigbee2MQTT:info  2022-04-04 22:13:41: MQTT publish: topic 'zigbee2mqtt/0x842e14fffe203c4c', payload '{"battery":39,"external_measured_room_sensor":-8000,"heat_available":true,"heat_required":false,"keypad_lockout":"unlock","last_seen":1649106821400,"linkquality":178,"load_estimate":-5,"local_temperature":22.35,"mounted_mode_active":false,"mounted_mode_control":false,"occupied_heating_setpoint":19.5,"pi_heating_demand":1,"running_state":"idle","system_mode":"heat","thermostat_vertical_orientation":true,"update":{"state":"available"},"window_open_internal":"quarantine"}'
Zigbee2MQTT:debug 2022-04-04 22:13:41: Got upgrade end request for '0x842e14fffe203c4c': {"status":150,"manufacturerCode":4678,"imageType":66,"fileVersion":545}
Zigbee2MQTT:debug 2022-04-04 22:13:41: Update failed with reason: 'invalid image'
Zigbee2MQTT:debug 2022-04-04 22:13:41: Update of '0x842e14fffe203c4c' failed (Error: Update failed with reason: 'invalid image')
Zigbee2MQTT:info  2022-04-04 22:13:41: MQTT publish: topic 'zigbee2mqtt/0x842e14fffe203c4c', payload '{"battery":39,"external_measured_room_sensor":-8000,"heat_available":true,"heat_required":false,"keypad_lockout":"unlock","last_seen":1649106821400,"linkquality":178,"load_estimate":-5,"local_temperature":22.35,"mounted_mode_active":false,"mounted_mode_control":false,"occupied_heating_setpoint":19.5,"pi_heating_demand":1,"running_state":"idle","system_mode":"heat","thermostat_vertical_orientation":true,"update":{"state":"available"},"window_open_internal":"quarantine"}'
Zigbee2MQTT:info  2022-04-04 22:13:41: MQTT publish: topic 'zigbee2mqtt/bridge/response/device/ota_update/update', payload '{"data":{"id":"0x842e14fffe203c4c"},"error":"Update of '0x842e14fffe203c4c' failed (Update failed with reason: 'invalid image')","status":"error","transaction":"5ople-1"}'
Zigbee2MQTT:error 2022-04-04 22:13:41: Update of '0x842e14fffe203c4c' failed (Update failed with reason: 'invalid image')
Zigbee2MQTT:debug 2022-04-04 22:13:41: Error: Update failed with reason: 'invalid image'
    at /home/rob/Projects/zigbee2mqtt/node_modules/zigbee-herdsman-converters/lib/ota/common.js:411:24

PS: sorry for the previous reply, did it with my work account accidentaly

LE: just for clarity's sake:

Koenkk commented 2 years ago

Could you set the manufacturer code to 256 and fileversion to 546?

robertalexa commented 2 years ago

Are you sure manuf code 256 is what you meant to say? Both Danfoss and Hive use the same manufacturer code in zigbee commands, so that would be the same already?

LE: devices times out with the above

Zigbee2MQTT:debug 2022-04-05 17:31:19: Device '0x842e14fffe203c4c' requested OTA
  zigbee-herdsman:controller:endpoint CommandResponse 0x842e14fffe203c4c/1 genOta.queryNextImageResponse({"status":0,"manufacturerCode":256,"imageType":66,"fileVersion":546,"imageSize":379806}, {"sendWhen":"fastpoll","timeout":10000,"disableResponse":false,"disableRecovery":false,"disableDefaultResponse":true,"direction":1,"srcEndpoint":null,"reservedBits":0,"manufacturerCode":null,"transactionSequenceNumber":null,"writeUndiv":false}) +494ms
Zigbee2MQTT:info  2022-04-05 17:31:20: MQTT publish: topic 'zigbee2mqtt/0x842e14fffe203c4c', payload '{"battery":37,"external_measured_room_sensor":-8000,"heat_available":true,"heat_required":false,"keypad_lockout":"unlock","last_seen":1649176280020,"linkquality":178,"load_estimate":-1,"local_temperature":22.14,"mounted_mode_active":false,"mounted_mode_control":false,"occupied_heating_setpoint":19,"pi_heating_demand":1,"running_state":"idle","system_mode":"heat","thermostat_vertical_orientation":true,"update":{"state":"available"},"window_open_internal":"quarantine"}'
Zigbee2MQTT:debug 2022-04-05 17:33:30: Received Zigbee message from '0x842e14fffe203c4c', type 'attributeReport', cluster 'hvacThermostat', data '{"localTemp":2228}' from endpoint 1 with groupID 0
  zigbee-herdsman:controller:endpoint DefaultResponse 0x842e14fffe203c4c/1 513(10, {"sendWhen":"fastpoll","timeout":10000,"disableResponse":false,"disableRecovery":false,"disableDefaultResponse":true,"direction":1,"srcEndpoint":null,"reservedBits":0,"manufacturerCode":null,"transactionSequenceNumber":null,"writeUndiv":false}) +2m
Zigbee2MQTT:info  2022-04-05 17:33:30: MQTT publish: topic 'zigbee2mqtt/0x842e14fffe203c4c', payload '{"battery":37,"external_measured_room_sensor":-8000,"heat_available":true,"heat_required":false,"keypad_lockout":"unlock","last_seen":1649176410652,"linkquality":181,"load_estimate":-1,"local_temperature":22.28,"mounted_mode_active":false,"mounted_mode_control":false,"occupied_heating_setpoint":19,"pi_heating_demand":1,"running_state":"idle","system_mode":"heat","thermostat_vertical_orientation":true,"update":{"state":"available"},"window_open_internal":"quarantine"}'
Zigbee2MQTT:debug 2022-04-05 17:33:48: Update of '0x842e14fffe203c4c' failed (Error: Timeout: device did not request any image blocks)
Zigbee2MQTT:info  2022-04-05 17:33:48: MQTT publish: topic 'zigbee2mqtt/0x842e14fffe203c4c', payload '{"battery":37,"external_measured_room_sensor":-8000,"heat_available":true,"heat_required":false,"keypad_lockout":"unlock","last_seen":1649176410652,"linkquality":181,"load_estimate":-1,"local_temperature":22.28,"mounted_mode_active":false,"mounted_mode_control":false,"occupied_heating_setpoint":19,"pi_heating_demand":1,"running_state":"idle","system_mode":"heat","thermostat_vertical_orientation":true,"update":{"state":"available"},"window_open_internal":"quarantine"}'
Zigbee2MQTT:info  2022-04-05 17:33:48: MQTT publish: topic 'zigbee2mqtt/bridge/response/device/ota_update/update', payload '{"data":{"id":"0x842e14fffe203c4c"},"error":"Update of '0x842e14fffe203c4c' failed (Timeout: device did not request any image blocks)","status":"error","transaction":"n25ht-1"}'
Zigbee2MQTT:error 2022-04-05 17:33:48: Update of '0x842e14fffe203c4c' failed (Timeout: device did not request any image blocks)
Zigbee2MQTT:debug 2022-04-05 17:33:48: Error: Timeout: device did not request any image blocks
    at /home/rob/Projects/zigbee2mqtt/node_modules/zigbee-herdsman-converters/lib/ota/common.js:363:28
    at runNextTicks (node:internal/process/task_queues:59:5)
    at listOnTimeout (node:internal/timers:526:9)
    at processTimers (node:internal/timers:500:7)

LE2: just reverted manufacturer code back to what it was, and only kept image

Seems like it is working, will report back in a bit. ETA 3 hours!!!

robertalexa commented 2 years ago

So @Koenkk

2:30h later, the update failed :) The device is still operational, even after unpairing, re-pairing, and is still recognised as a Hive TRV.

See below the log including the final part of the updating showing 99% progress

Zigbee2MQTT:info  2022-04-05 19:45:15: MQTT publish: topic 'zigbee2mqtt/0x842e14fffe203c4c', payload '{"battery":36,"external_measured_room_sensor":-8000,"heat_available":true,"heat_required":false,"keypad_lockout":"unlock","last_seen":1649184315420,"linkquality":170,"load_estimate":-10,"local_temperature":22.22,"mounted_mode_active":false,"mounted_mode_control":false,"occupied_heating_setpoint":19,"pi_heating_demand":0,"running_state":"idle","system_mode":"heat","thermostat_vertical_orientation":true,"update":{"progress":99.67,"remaining":26,"state":"updating"},"window_open_internal":"closed"}'
  zigbee-herdsman:controller:endpoint CommandResponse 0x842e14fffe203c4c/1 genOta.imageBlockResponse({"status":0,"manufacturerCode":4678,"imageType":66,"fileVersion":546,"fileOffset":379800,"dataSize":6,"data":{"type":"Buffer","data":[129,15,148,51,91,98]}}, {"sendWhen":"fastpoll","timeout":10000,"disableResponse":false,"disableRecovery":false,"disableDefaultResponse":true,"direction":1,"srcEndpoint":null,"reservedBits":0,"manufacturerCode":null,"transactionSequenceNumber":null,"writeUndiv":false}) +1s
Zigbee2MQTT:info  2022-04-05 19:45:16: MQTT publish: topic 'zigbee2mqtt/0x842e14fffe203c4c', payload '{"battery":36,"external_measured_room_sensor":-8000,"heat_available":true,"heat_required":false,"keypad_lockout":"unlock","last_seen":1649184316442,"linkquality":170,"load_estimate":-10,"local_temperature":22.22,"mounted_mode_active":false,"mounted_mode_control":false,"occupied_heating_setpoint":19,"pi_heating_demand":0,"running_state":"idle","system_mode":"heat","thermostat_vertical_orientation":true,"update":{"progress":99.67,"remaining":26,"state":"updating"},"window_open_internal":"closed"}'
Zigbee2MQTT:debug 2022-04-05 19:45:16: Got upgrade end request for '0x842e14fffe203c4c': {"status":150,"manufacturerCode":4678,"imageType":66,"fileVersion":546}
Zigbee2MQTT:debug 2022-04-05 19:45:16: Update failed with reason: 'invalid image'
Zigbee2MQTT:debug 2022-04-05 19:45:16: Update of '0x842e14fffe203c4c' failed (Error: Update failed with reason: 'invalid image')
Zigbee2MQTT:info  2022-04-05 19:45:16: MQTT publish: topic 'zigbee2mqtt/0x842e14fffe203c4c', payload '{"battery":36,"external_measured_room_sensor":-8000,"heat_available":true,"heat_required":false,"keypad_lockout":"unlock","last_seen":1649184316442,"linkquality":170,"load_estimate":-10,"local_temperature":22.22,"mounted_mode_active":false,"mounted_mode_control":false,"occupied_heating_setpoint":19,"pi_heating_demand":0,"running_state":"idle","system_mode":"heat","thermostat_vertical_orientation":true,"update":{"state":"available"},"window_open_internal":"closed"}'
Zigbee2MQTT:info  2022-04-05 19:45:16: MQTT publish: topic 'zigbee2mqtt/bridge/response/device/ota_update/update', payload '{"data":{"id":"0x842e14fffe203c4c"},"error":"Update of '0x842e14fffe203c4c' failed (Update failed with reason: 'invalid image')","status":"error","transaction":"n25ht-2"}'
Zigbee2MQTT:error 2022-04-05 19:45:16: Update of '0x842e14fffe203c4c' failed (Update failed with reason: 'invalid image')
Zigbee2MQTT:debug 2022-04-05 19:45:16: Error: Update failed with reason: 'invalid image'
    at /home/rob/Projects/zigbee2mqtt/node_modules/zigbee-herdsman-converters/lib/ota/common.js:413:24
Koenkk commented 2 years ago

Update failed with reason: 'invalid image' looks to me that the device refused the image.

robertalexa commented 2 years ago

I was getting the same error before setting fileversion to 546.

So i take it that we have reached the z2m's software assertions/validations and we now hit a brick wall because of the device itself?

In my mind i would have expected the device to be "braindead" when it comes to this and just accept whatever, but maybe that isn't the case with OTA vs serial flashing? The fact the OTA process went on for over 2 hours made me thing that it would work...

Koenkk commented 2 years ago

@robertalexa once the firmware has been transferred to the device (this is what happens during the two hours) the device executes some validation before flashing it, this is what seems to fail.

robertalexa commented 2 years ago

Yeah, i was fearing that would be the case. I will close this thread as it is clear we have reached the limits of what can be done via OTA, but i will try and do some research, maybe even ask Danfoss, and see if i can figure out how to flash this via serial, as the devices has what appears to be a debug "port" with 8 connectors.

Thanks for your assistance Koen!