Valve correctly reports local temp, occupied heating setpoint, pi heating demand, and boost (i.e. user request temp change at valve).
Allowed settings are occupied heating set point and keypad lock.
Keypad lockout setting not working.
This is the Drayton Wiser TRV: https://wiser.draytoncontrols.co.uk/radiator-thermostat
{
"id": 2,
"type": "EndDevice",
"ieeeAddr": "0x086bd7fffe7ed5e4",
"nwkAddr": 63976,
"manufId": 4190,
"manufName": "Schneider Electric",
"powerSource": "Battery",
"modelId": "iTRV",
"epList": [ 1, 2 ],
"endpoints": {
"1": {
"profId": 260,
"epId": 1,
"devId": 769,
"inClusterList": [ 0, 1, 3, 32, 513, 516, 2821, 65027 ],
"outClusterList": [ 0, 25 ],
"clusters": {
...
},
"binds": [
{
"cluster": 0,
"type": "endpoint",
"deviceIeeeAddress": "0x00124b000be8a0ed",
"endpointID": 1
},
{
"cluster": 1,
"type": "endpoint",
"deviceIeeeAddress": "0x00124b000be8a0ed",
"endpointID": 1
},
{
"cluster": 3,
"type": "endpoint",
"deviceIeeeAddress": "0x00124b000be8a0ed",
"endpointID": 1
},
{
"cluster": 32,
"type": "endpoint",
"deviceIeeeAddress": "0x00124b000be8a0ed",
"endpointID": 1
},
{
"cluster": 513,
"type": "endpoint",
"deviceIeeeAddress": "0x00124b000be8a0ed",
"endpointID": 1
},
{
"cluster": 516,
"type": "endpoint",
"deviceIeeeAddress": "0x00124b000be8a0ed",
"endpointID": 1
},
{
"cluster": 2821,
"type": "endpoint",
"deviceIeeeAddress": "0x00124b000be8a0ed",
"endpointID": 1
}
]
},
"2": {
"profId": 260,
"epId": 2,
"devId": 7,
"inClusterList": [],
"outClusterList": [ 513 ],
"clusters": {},
"binds": []
}
},
...
}
{
zigbeeModel: ['iTRV'],
model: 'iTRV',
vendor: 'Dryton Wiser',
description: 'Smart heating thermostat',
supports: 'temperature, battery, keypad lock, heating demand',
fromZigbee: [
fz.ignore_basic_report,
fz.ignore_haDiagnostic,
fz.ignore_genOta,
fz.ignore_zclversion_read,
fz.thermostat_att_report,
fz.drayton_itrv_battery,
fz.drayton_user_interface,
fz.drayton_device_info,
],
toZigbee: [
tz.thermostat_occupied_heating_setpoint,
tz.thermostat_keypad_lockout,
],
meta: {configureKey: 2},
configure: async (device, coordinatorEndpoint) => {
let endpoint = device.getEndpoint(1);
const binds = [
'genBasic', 'genPowerCfg', 'genIdentify', 'genPollCtrl',
'hvacThermostat', 'hvacUserInterfaceCfg', 'haDiagnostic'
];
await bind(endpoint, coordinatorEndpoint, binds);
await configureReporting.batteryVoltage(endpoint);
await configureReporting.thermostatTemperature(endpoint);
await configureReporting.thermostatOccupiedHeatingSetpoint(endpoint);
await configureReporting.thermostatPIHeatingDemand(endpoint);
const userInterfaceConfig = [
{
attribute: 'keypadLockout',
minimumReportInterval: repInterval.MINUTE,
maximumReportInterval: repInterval.MAX,
reportableChange: 0,
}
];
await endpoint.configureReporting('hvacUserInterfaceCfg', userInterfaceConfig);
const draytonDeviceConfig = [
{
attribute: 'ALG',
minimumReportInterval: repInterval.MINUTE,
maximumReportInterval: repInterval.MAX,
reportableChange: 0,
},
{
attribute: 'ADC',
minimumReportInterval: repInterval.MINUTE,
maximumReportInterval: repInterval.MAX,
reportableChange: 0,
},
{
attribute: 'boost',
minimumReportInterval: repInterval.MINUTE,
maximumReportInterval: repInterval.MAX,
reportableChange: 0,
}
];
await endpoint.configureReporting('draytonDeviceInfo', draytonDeviceConfig);
},
},
// Dryton Wiser
drayton_device_info: {
cluster: 'draytonDeviceInfo',
type: 'attributeReport',
convert: (model, msg, publish, options) => {
const result = {};
const data = msg.data['deviceInfo'].split(',');
if (data[0] == 'ALG') {
// TODO What is ALG
result['ALG'] = data.slice(1).join(',');
}
else if (data[0] == 'ADC') {
// TODO What is ADC
result['ADC'] = data.slice(1).join(',');
}
else if (data[0] == 'UI') {
if (data[1] == 'BoostUp') {
result['boost'] = 1;
}
else if (data[1] == 'BoostDown') {
result['boost'] = -1;
}
else {
result['boost'] = 0;
}
}
return result;
},
},
drayton_itrv_battery: {
cluster: 'genPowerCfg',
type: ['attributeReport', 'readResponse'],
convert: (model, msg, publish, options) => {
const result = {};
if (typeof msg.data['batteryVoltage'] == 'number') {
const battery = {max: 30, min: 22};
const voltage = msg.data['batteryVoltage'] ;
result.battery = toPercentage(voltage, battery.min, battery.max);
result.voltage = voltage / 10;
}
if (typeof msg.data['batteryAlarmState'] == 'number') {
const battLow = msg.data['batteryAlarmState'] ;
if (battLow) {
results['battery_low'] = true;
} else {
results['battery_low'] = false;
}
}
return result;
},
},
drayton_user_interface: {
cluster: 'hvacUserInterfaceCfg',
type: 'attributeReport',
convert: (model, msg, publish, options) => {
const result = {};
if (typeof msg.data['keypadLockout'] == 'number') {
const kLock = msg.data['keypadLockout'] ;
if (kLock) {
result['keypad_lockout'] = true;
} else {
result['keypad_lockout'] = false;
}
}
return result;
}
},
// Dryton ignores
ignore_genOta: {
cluster: 'genOta',
type: ['attributeReport', 'readResponse'],
convert: (model, msg, publish, options) => null,
},
ignore_haDiagnostic: {
cluster: 'haDiagnostic',
type: ['attributeReport', 'readResponse'],
convert: (model, msg, publish, options) => null,
},
ignore_zclversion_read: {
cluster: 'genBasic',
type: 'read',
convert: (model, msg, publish, options) => null,
},
Required to get boost messages
// Drayton Wiser
draytonDeviceInfo: {
ID: 0xFE03, // 65027
attributes: {
deviceInfo: { ID: 32, type: dataType_1.default.charStr },
},
commands: {},
commandsResponse: {}
}
zigbee2mqtt version: 1.7.1
CC253X firmware version: latest
Any reason why fz.thermostat_att_report is not a good starting point? That should handle things like local_temperature, system_node, set_point,...
fz.thermostat_att_report is there. What else do you have in mind?
🤦♂ I didn't find it so I searched for it, but I searched from tz.thermostat_att_report so I didn't find it.
All looks good... kind of want to see if I can find one of those as I am not super happy with the eurotronics one I got as a test.
Is this the same device? https://www.amazon.de/gp/product/B077XJBL6H/ref=ox_sc_saved_title_1?smid=A3JWKAKR8XB7XF&psc=1
Yep, that is the one
Great, I may pick one up to compare next month.
Is the reporting of local_temp and such consistent with this one? (As in at a set interval not completely random with big gaps of hours of no updates)
Seems to be reporting constantly, too much I would think hehehe. Still playing with it as setting temp and keypad doesn't work always, some times it always replies with MAC transaction expires. Trying to figure out why it sometimes works and sometimes no.
@Koenkk we can raise the minimal we also the device to report right?
I think https://github.com/Koenkk/zigbee-herdsman/pull/10 is related to this. I am sometimes seeing a default response error. And in the log I see a lot of zcl messages.
@arcanefoam can you try https://github.com/Koenkk/zigbee-herdsman-converters/issues/715#issuecomment-547073703
@sjorge changing the minimal reportable interval is indeed possible.
@Koenkk I have loaded the alternative firmware. In the initial run I am getting an error:
2019-12-16T17:17:31: Failed to configure 'DW_TRV_1', attempt 3 (Error: Don't know value type for 'undefined'
at Object.IsDataTypeAnalogOrDiscrete ...\zigbee2mqtt\node_modules\zigbee-herdsman\dist\zcl\utils.js:30:15)
Apparently the valve has an undefined type attribute. This is the log: https://pastebin.com/2Vc4Lijs
I "fixed" utils.js so it will graciously handle 'undefined':
// throw new Error(`Don't know value type for '${definition_1.DataType[dataType]}'`);
console.warn(`Don't know value type for '${definition_1.DataType[dataType]}'`);
return '';
Then ran again, it configured correctly.
Still getting erratic behaviour. Sometimes commands still fail:
zigbee2mqtt:debug 2019-12-16T17:47:31: Received MQTT message on 'house/DW_TRV_1/set' with data '{
"keypad_lock": "unlock"
}'
zigbee2mqtt:debug 2019-12-16T17:47:31: Publishing 'set' 'keypad_lock' to 'DW_TRV_1'
zigbee-herdsman:adapter:zStack:znp:SREQ --> AF - dataRequest - {"dstaddr":52876,"destendpoint":1,"srcendpoint":1,"clusterid"
:516,"transid":17,"options":0,"radius":30,"len":7,"data":{"type":"Buffer","data":[16,10,2,1,0,48,0]}} +7s
zigbee-herdsman:adapter:zStack:unpi:writer --> frame [254,17,36,1,140,206,1,1,4,2,17,0,30,7,16,10,2,1,0,48,0,81] +7s
zigbee-herdsman:adapter:zStack:unpi:parser <-- [254,1,100,1,0,100] +5s
zigbee-herdsman:adapter:zStack:unpi:parser --- parseNext [254,1,100,1,0,100] +1ms
zigbee-herdsman:adapter:zStack:unpi:parser --> parsed 1 - 3 - 4 - 1 - [ ] - 100 +1ms
zigbee-herdsman:adapter:zStack:znp:SRSP <-- AF - dataRequest - {"status":0} +7s
zigbee-herdsman:adapter:zStack:unpi:parser --- parseNext [] +2ms
zigbee-herdsman:adapter:zStack:unpi:parser <-- [254,3,68,128,240,1,17,39] +6s
zigbee-herdsman:adapter:zStack:unpi:parser --- parseNext [254,3,68,128,240,1,17,39] +2ms
zigbee-herdsman:adapter:zStack:unpi:parser --> parsed 3 - 2 - 4 - 128 - [�☺◄] - 39 +20ms
zigbee-herdsman:adapter:zStack:znp:AREQ <-- AF - dataConfirm - {"status":240,"endpoint":1,"transid":17} +11s
zigbee-herdsman:adapter:zStack:unpi:parser --- parseNext [] +3ms
zigbee2mqtt:error 2019-12-16T17:47:37: Publish 'set' 'keypad_lock' to 'DW_TRV_1' failed: 'Error: Data request failed with erro
r: 'MAC transaction expired' (240)'
zigbee2mqtt:info 2019-12-16T17:47:37: MQTT publish: topic 'house/bridge/log', payload '{"type":"zigbee_publish_error","messag
e":"Publish 'set' 'keypad_lock' to 'DW_TRV_1' failed: 'Error: Data request failed with error: 'MAC transaction expired' (240)'
","meta":{"friendly_name":"DW_TRV_1"}}'
zigbee-herdsman:adapter:zStack:unpi:parser <-- [254,25,68,129,0,0,0,0,140,206,1,1,0,92,0,150,85,98,0,0,5,0,12,0,0,0,140,206,
29,53] +47s
zigbee-herdsman:adapter:zStack:unpi:parser --- parseNext [254,25,68,129,0,0,0,0,140,206,1,1,0,92,0,150,85,98,0,0,5,0,12,0,0,
0,140,206,29,53] +2ms
Here is another log. I think the valve is communicating a lot, but not sure if that is the intended rate:
Hi - I'm trying to decode the raw data from the iTRV for use directly with Hubitat..
Are you aware of any documentation on the functions of each endpoint and how to set the setpoint and read the current temp etc?
I see data strings like this:
)ALG,f,1,215,236,-26,-13,171,35,2469,6,100
*ALG,10,1,215,236,-21,-10,101,40,2539,0,100
5ADC,1333,1338,2,236,-32768,2150,0,126,100,241,239,248
5ADC,1332,1335,2,236,-32768,2150,0,111,100,241,240,248
TRV1: Cluster 0B05: read attr - raw: BF4C010B050A01E0210000, dni: BF4C, endpoint: 01, cluster: 0B05, size: 0A, attrId: E001, encoding: 21, command: 0A, value: 0000
TRV1: Cluster 0B05: read attr - raw: BF4C010B05101C0120BC1D0128CB, dni: BF4C, endpoint: 01, cluster: 0B05, size: 10, attrId: 011C, encoding: 20, command: 0A, value: BC1D0128CB
Any pointers would be greatly appreciated!
@Koenkk Seems to be working perfectly with version 1.8 (and the corresponding herdsman improvements)! How do I open a bug to add it to the supported devices? I can write the wiki page too as I have figured out how to reset and put the valve into pairing mode.
@radix50 I could not find any documentation. The hvacThermostat cluster has all the information about the valve (i.e. temp, heating demand, etc), hvacUserInterfaceCfg for the keypad lock. I only had to add a new cluster with id 0xFE03 (65027) which provides de ALG and ADC messages you mention, but also provides the "BOOST" info to know if someone manually adjusted the valve, and the MOT (motor) state. I haven't taken the time to decode the information in the ALG and ADC messages as all information needed is provided in the hvac clusters. I think the ALG has information of the time/date since the valve has been reset/turned on. I would guess the ADC has the temp and valve information in "voltage" values.
Awesome news @arcanefoam ! Can't wait for mine to arrive!
The repository for the docs are over here, if you did not see it already.
I also picked one up, not super happy with the eurotronic one so I hope this will be better!
Should get here end of january...
Also of interest, it looks like this correctly exposes the in/out clusters for msTemperature so in theory we should be able to bind an aqara or other temp sensor to it as external temperature input!
I have been using the valve for three/four days know and its working fine. I still sometimes get time-outs when sending the temperature settings but eventually it gets through. Now I am starting to work in the integration with Home Assistant. I think I want to make a custom component that behaves somewhat like the Drayton Wiser mobile app.
I was wondering what was the difference between the in and out clusters. I have also ordered some aqara temp sensors and plan to do a test to see to does the valve temp compares with the room temp (with the aqara further away from the radiator). I would be interested in hooking them together as you mention.
@arcanefoam from my understanding, in/out cluster of the same type is like a slot to accept messages of the type.
So the msTemperature output of the aqara could go into the input of the trv... so in as I understand it, the aqara sensor could work like the little optional seperate sensor Drayton also sells. AFAIK that is also just a zigbee temp/humidity sensor.
If it does indeed work like that, that would be lovely as my aqara is placed more central so it is a better reflection of the overal room temp.
I am not sure which way the binding goes, but I think the source should be the sensor and the target the trv.
@arcanefoam I have a few of these - are the changes in a PR somewhere? Keen to give it a try!
I believe they got merged a while ago, 1.8.0+dev should have it I think.
~ sjorge
On 30 Dec 2019, at 11:12, richdr notifications@github.com wrote:
@arcanefoam I have a few of these - are the changes in a PR somewhere? Keen to give it a try!—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub, or unsubscribe.
@arcanefoam I have a few of these - are the changes in a PR somewhere? Keen to give it a try!
Not yet, unless someone else have added them (I have not made the PRs). I am fine-tuning some final details and will make the PRs. Hopefully by the end of the day :).
@radix50 After looking at the MQTT messages for some time, this is what I can see:
Given (id in parenthesis)
ADC, 1333, 1338, 2, 236, -32768 , 2150, 0, 126, 100, 241, 239, 248
(1) (2) (3) (4) (5) (6) (7) (8) (9) (10) (11) (12)
Hi - thanks for that - 10/11/12 also look like temperatures (x10) , of course - I wonder if they are previous readings?
Dont think they are temps. As local temp gets closer to setpoint they change. But who knows? hehe
piHeatingDemand should be 0-255 (which is a valve position %, so 0=closed, 255=100% open)
So probably not that then if he upperl imit is 500
Ah OK... it would be great if there was a common repository for devices and their inputs/outputs so they could be more easily implemented on different platforms instead of re-inventing the wheel each time!
That might be true for other models. The highest I've seen the piHeatingDemand fo up on this valve is 39. Which doing the inverse math of the fromZigbee, translates to a 100 value... so this one might be actually returning 0-100 value.
Most (all?) attribute should be in the Z-Stack ZCL docs, there is a pdf floating around somehwere but i can't find the link (on my phone atm).
IIRC there is at least one other TRV that has support that was also returning 0-100, so might be that some incorrectly implement it? If that the case, we can probably just have a different function for those to deal with it.
Edit: found it! https://github.com/Koenkk/zigbee-herdsman/blob/master/docs/07-5123-06-zigbee-cluster-library-specification.pdf
Ahh thanks - Interesting... I might finally get some useful devices working on my Hubitat...
I have found it very useful, generally most devices do as the zcl says.
attribute XYZ is range X-Y... ofcourse there are some odd balls in there, like already mentioned piHeatingDemand and piCoolingDemand seem to be 0-255 as % valve open, but also sometimes reported s 0-100... which I guess does technically fit in 0-255 and... is a valve open %, so I would not say either is wrong.
But overal it's a good starting point!
Also of interest, I found https://download.schneider-electric.com/files?p_enDocType=User+guide&p_File_Name=MEG5935_0000_HW_en.pdf&p_Doc_Ref=MEG5935_0000_HW_en which is the english manual online. As the one I got from amazon (not yet installed) only came with german instructions... should be useful for the pairing instructions near the bottom to create a support page.
Mine is of the 'Erberle' brand, but it looks to be the same unit from Schneider Eletric sold onder different local brand names... so maybe we should change the manufacturer to what it is reported like in the database.db to 'Schneider Electric' ?
@richdr Here are the PRs:
Docs
Converters
Herdsman
Have 5 of these babies at the house now. But having a lot of issues sending commands to them. I have to send the set temperature command multiple times to get a response. Any ideas? Even after I set the temperature it returns to the default (20) after some time. I think we are missing a command that let's the valve know it has been added to a "system". We would need someone with a sniffer and a Wiser hub to do some debugging.
Also, boost events are persistent. So we can no identify to events of the same type. Perhaps we need to create a command to send "Boost: Off" or similar?
Any help improving this work is appreciated
I only have 4 "babies", but have been using them in their standard configuration for about a year and they work really well. I managed to read the first on my zigbee2mqtt network, literally minutes ago, so will be able to assist a little.
I also have the room stat and the boiler controller as well, but not seen any mention of these, so I'm guessing that these have not yet been integrated with zigbee2mqtt yet?
The roomstat thing, seems interesting... but the website is very vague on it... like it can control multiple rooms but only works as a temp sensor for one?
The room stat controls multiple iTRVs, but for the SAME room, in my case, 3 radiators.
Yes, only the iTVRs as I didn't wanted to get the router/boiler control and
lock into their ecosystem.
I am writing a Home Assistant platform thst mimics the phone app, with a
separate switch for the boiler. Schedule and boiler control are working. If
the communication with the valves were stable it would make me a happy
panda and we could provide a really nice project to the community
On Thu, 16 Jan 2020, 22:50 davidscottparker, notifications@github.com
wrote:
The room stat controls multiple iTRVs, but for the SAME room, in my case,
3 radiators.—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/Koenkk/zigbee2mqtt/issues/2521?email_source=notifications&email_token=AAQOU3J2INAF42EHWF5FFILQ6DQDHA5CNFSM4J2QFNAKYY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOEJF2TDQ#issuecomment-575383950,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AAQOU3NTXCILNLTZX3XJ3S3Q6DQDHANCNFSM4J2QFNAA
.
I am connecting via nodeRED and as you, am now only interested in direct control of the iTRVs
For some unknown reason the babies are behaving better now. Tried reading/setting "system state" and"running state" from hvacThermostat to see if the boost info modified any of these values, no luck. I also tried adding a command to change the boost value, but not sure if "UI,BoostOff" is the message the valve is expecting to receive to clear the flag. From my analysis, it now seems the valves want to return to their "default" state (set point to 20) after 2 hours and 13 minutes. You can see the spikes in the following image. Schedule is running smoothly, boiler activated as needed, house at wanted temps, looking good so far.

I think according to the manual that is normal, boost + or - is temporary for 1hour.
From the manual
Changing the room temperature Is it too cool? +2 °C (1 h)Start a temperature pulse. Increase the room temperature by 2 °C for 1 hour.Is it too warm? -2 °C (1 h)Start a temperature pulse. Decrease the room tempera-ture by 2 °C for 1 hour
I need to swap my TRV back to this one, currently have the eurotronic one back because I did a few PR's for that.
I want to play with lowering the max reporting interval, Eurotronic had the suggested value at 10 minutes, after changing it to that, the unit has been much more stable and I have less timeouts talking to it. We could also try setting a reporting interval for the boost value... not sure it will do much though but it is worth experimenting with.
boiler activated as needed
What are you using to control the boiler?
I am not boosting valve via +/- twist, they just act up.
I am using an AC switch, my boiler uses a live (230V) signal for control,
so I used one of these:
https://rover.ebay.com/rover/0/0/0?mpre=https%3A%2F%2Fwww.ebay.co.uk%2Fulk%2Fitm%2F303114657380
It also provides a really powerful router and all my valves connect to it
instead of the USB router. I also left my mechanic thermostat wired in
parallel so I have a fall back if the pc/software fails.
On Sun, 19 Jan 2020, 19:56 Jorge Schrauwen, notifications@github.com
wrote:
I think according to the manual that is normal, boost + or - is temporary
for 1hour.From the manual
Changing the room temperature Is it too cool? +2 °C (1 h)Start a temperature pulse. Increase the room temperature by 2 °C for 1 hour.Is it too warm? -2 °C (1 h)Start a temperature pulse. Decrease the room tempera-ture by 2 °C for 1 hour
I need to swap my TRV back to this one, currently have the eurotronic one
back because I did a few PR's for that.I want to play with lowering the max reporting interval, Eurotronic had
the suggested value at 10 minutes, after changing it to that, the unit has
been much more stable and I have less timeouts talking to it. We could also
try setting a reporting interval for the boost value... not sure it will do
much though but it is worth experimenting with.boiler activated as needed
What are you using to control the boiler?
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/Koenkk/zigbee2mqtt/issues/2521?email_source=notifications&email_token=AAQOU3IPTGHGG67T5UBEY23Q6SV7HA5CNFSM4J2QFNAKYY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOEJK233Y#issuecomment-576040431,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AAQOU3ORQ3SKA6P7LN5V773Q6SV7HANCNFSM4J2QFNAA
.
I get this error in Zigbeemqtt log:
zigbee2mqtt:error 2020-01-25 11:41:37: Failed to configure '0x086bd7fffedfee28', attempt 1 (Error: Cluster with key 'draytonDeviceInfo' does not exist
at Object.getCluster (/zigbee2mqtt-1.9.0/node_modules/zigbee-herdsman/dist/zcl/utils.js:59:15)
at Endpoint.<anonymous> (/zigbee2mqtt-1.9.0/node_modules/zigbee-herdsman/dist/controller/model/endpoint.js:215:39)
at Generator.next (<anonymous>)
at /zigbee2mqtt-1.9.0/node_modules/zigbee-herdsman/dist/controller/model/endpoint.js:8:71
at new Promise (<anonymous>)
at __awaiter (/zigbee2mqtt-1.9.0/node_modules/zigbee-herdsman/dist/controller/model/endpoint.js:4:12)
at Endpoint.configureReporting (/zigbee2mqtt-1.9.0/node_modules/zigbee-herdsman/dist/controller/model/endpoint.js:213:16)
at Object.configure (/zigbee2mqtt-1.9.0/node_modules/zigbee-herdsman-converters/devices.js:7044:28)
at async DeviceConfigure.configure (/zigbee2mqtt-1.9.0/lib/extension/deviceConfigure.js:99:13))
The Schneider Electric WV704R0A0902 does not respond to the thermostat card in HA. When I try I get this error in Zigbee2mqtt log:
zigbee2mqtt:error 2020-01-25 11:45:44: No converter available for 'system_mode' (off)
zigbee2mqtt:error 2020-01-25 11:45:45: No converter available for 'system_mode' (heat)
Are both herdsman and herdsman-conveters up to date? Those were renamed to the ‘wiser’ prefix.
~ sjorge
On 25 Jan 2020, at 11:46, sand3rk notifications@github.com wrote:
I get this error in Zigbeemqtt log:
zigbee2mqtt:error 2020-01-25 11:41:37: Failed to configure '0x086bd7fffedfee28', attempt 1 (Error: Cluster with key 'draytonDeviceInfo' does not exist at Object.getCluster (/zigbee2mqtt-1.9.0/node_modules/zigbee-herdsman/dist/zcl/utils.js:59:15) at Endpoint.(/zigbee2mqtt-1.9.0/node_modules/zigbee-herdsman/dist/controller/model/endpoint.js:215:39) at Generator.next ( ) at /zigbee2mqtt-1.9.0/node_modules/zigbee-herdsman/dist/controller/model/endpoint.js:8:71 at new Promise ( ) at __awaiter (/zigbee2mqtt-1.9.0/node_modules/zigbee-herdsman/dist/controller/model/endpoint.js:4:12) at Endpoint.configureReporting (/zigbee2mqtt-1.9.0/node_modules/zigbee-herdsman/dist/controller/model/endpoint.js:213:16) at Object.configure (/zigbee2mqtt-1.9.0/node_modules/zigbee-herdsman-converters/devices.js:7044:28) at async DeviceConfigure.configure (/zigbee2mqtt-1.9.0/lib/extension/deviceConfigure.js:99:13)) —
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub, or unsubscribe.
You might need the latest develop versions. Or copy the cluster.js from the
herdsman repo to your local install into the node_modules/zigbee_herdsman
On Sat, 25 Jan 2020, 11:53 Jorge Schrauwen, notifications@github.com
wrote:
Are both herdsman and herdsman-conveters up to date? Those were renamed to
the ‘wiser’ prefix.~ sjorge
On 25 Jan 2020, at 11:46, sand3rk notifications@github.com wrote:
I get this error in Zigbeemqtt log:
zigbee2mqtt:error 2020-01-25 11:41:37: Failed to configure
'0x086bd7fffedfee28', attempt 1 (Error: Cluster with key
'draytonDeviceInfo' does not exist at Object.getCluster
(/zigbee2mqtt-1.9.0/node_modules/zigbee-herdsman/dist/zcl/utils.js:59:15)
at Endpoint.
(/zigbee2mqtt-1.9.0/node_modules/zigbee-herdsman/dist/controller/model/endpoint.js:215:39)
at Generator.next () at
/zigbee2mqtt-1.9.0/node_modules/zigbee-herdsman/dist/controller/model/endpoint.js:8:71
at new Promise () at __awaiter
(/zigbee2mqtt-1.9.0/node_modules/zigbee-herdsman/dist/controller/model/endpoint.js:4:12)
at Endpoint.configureReporting
(/zigbee2mqtt-1.9.0/node_modules/zigbee-herdsman/dist/controller/model/endpoint.js:213:16)
at Object.configure
(/zigbee2mqtt-1.9.0/node_modules/zigbee-herdsman-converters/devices.js:7044:28)
at async DeviceConfigure.configure
(/zigbee2mqtt-1.9.0/lib/extension/deviceConfigure.js:99:13))—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub, or unsubscribe.—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/Koenkk/zigbee2mqtt/issues/2521?email_source=notifications&email_token=AAQOU3P2BH3TSYGLPT5JH5DQ7QR4VA5CNFSM4J2QFNAKYY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOEJ426NY#issuecomment-578400055,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AAQOU3MFVENLD7HF33EHPR3Q7QR4VANCNFSM4J2QFNAA
.
Interesting, I tried to join mine again (Eberle, but same unit) and I'm not having any luck either.
I'm not seeing an error though, it's just not joining.
I did move channels since I last played with TRV... is there a specific one we need to be on?
I managed to get mine to rejoin, I hit the same error and have a solution.
Will open a PR in a few minutes.
@sand3rk can you try with the changes from https://github.com/Koenkk/zigbee-herdsman-converters/pull/939 applied to devices.js... although I am now hitting a different error but I've never seen that one before.
You might need the latest develop versions. Or copy the cluster.js from the herdsman repo to your local install into the node_modules/zigbee_herdsman On Sat, 25 Jan 2020, 11:53 Jorge Schrauwen, notifications@github.com wrote:
…
Are both herdsman and herdsman-conveters up to date? Those were renamed to the ‘wiser’ prefix. ~ sjorge > On 25 Jan 2020, at 11:46, sand3rk @.*> wrote: > > > I get this error in Zigbeemqtt log: > zigbee2mqtt:error 2020-01-25 11:41:37: Failed to configure '0x086bd7fffedfee28', attempt 1 (Error: Cluster with key 'draytonDeviceInfo' does not exist at Object.getCluster (/zigbee2mqtt-1.9.0/node_modules/zigbee-herdsman/dist/zcl/utils.js:59:15) at Endpoint.(/zigbee2mqtt-1.9.0/node_modules/zigbee-herdsman/dist/controller/model/endpoint.js:215:39) at Generator.next ( ) at /zigbee2mqtt-1.9.0/node_modules/zigbee-herdsman/dist/controller/model/endpoint.js:8:71 at new Promise ( ) at __awaiter (/zigbee2mqtt-1.9.0/node_modules/zigbee-herdsman/dist/controller/model/endpoint.js:4:12) at Endpoint.configureReporting (/zigbee2mqtt-1.9.0/node_modules/zigbee-herdsman/dist/controller/model/endpoint.js:213:16) at Object.configure (/zigbee2mqtt-1.9.0/node_modules/zigbee-herdsman-converters/devices.js:7044:28) at async DeviceConfigure.configure (/zigbee2mqtt-1.9.0/lib/extension/deviceConfigure.js:99:13)) > > — > You are receiving this because you were mentioned. > Reply to this email directly, view it on GitHub, or unsubscribe. — You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub <#2521?email_source=notifications&email_token=AAQOU3P2BH3TSYGLPT5JH5DQ7QR4VA5CNFSM4J2QFNAKYY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOEJ426NY#issuecomment-578400055>, or unsubscribe https://github.com/notifications/unsubscribe-auth/AAQOU3MFVENLD7HF33EHPR3Q7QR4VANCNFSM4J2QFNAA .
I don't see a cluster.js file in the repo.
I just have zigbee2mqtt installed through hassio and get the error. How do I install herdsman or herdsman-converters? I don't see a devices.js anywhere, just have /share/zigbee2mqtt before the config folder.
It should be under node_modules/zigbee-herdsman-converters
I have to follow this guide i guess: https://www.zigbee2mqtt.io/how_tos/how_to_support_new_devices.html#hassio-addon
Where can I find the lastest dev version of cluster.js?
I also tried adding a command to change the boost value, but not sure if "UI,BoostOff" is the message the valve is expecting to receive to clear the flag.
I swapped back to the wiser trv to check the error earlier today. I hit the error, after fixing it still fails to configure the wiserDeviceInfo endpoint for reporting. I do get updates to boostUp and boostDown (maybe we should rename those to be up,down,none ?) but it never goes to None for me... probably because the reporting for that endpoint failed to configure.
I also found no way on the TRV to turn off boost it is either up or down... kind of sucks.
I only have the log folder under /share/zigbee2mqtt
I'm not familiar with how home assitant plugins work, but it seems you can just drop it into the path you mentioned: https://github.com/danielwelch/hassio-zigbee2mqtt/blob/master/zigbee2mqtt-edge/run.sh#L38
There seems to be some code that copies it to the right location.
Where can I find the lastest dev version of cluster.js?
The one from dev is still broken, I fixed the error... but I got a new one now on configuring one of the reporting endpoints. (But at least the device shows up now)
The one from dev is still broken, I fixed the error... but I got a new one now on configuring one of the reporting endpoints. (But at least the device shows up now)
Thanks, is this link the fixed one?
I now get the follow error:
zigbee2mqtt:error 2020-01-25 17:32:41: Failed to configure '0x086bd7fffedfee28', attempt 1 (Error: AREQ - ZDO - bindRsp after 10000ms
at Timeout._onTimeout (/zigbee2mqtt-1.9.0/node_modules/zigbee-herdsman/dist/utils/waitress.js:44:24)
at listOnTimeout (internal/timers.js:531:17)
at processTimers (internal/timers.js:475:7))
zigbee2mqtt:error 2020-01-25 17:33:16: Failed to configure '0x086bd7fffedfee28', attempt 2 (Error: Data request failed with error: 'MAC transaction expired' (240)
at ZStackAdapter.<anonymous> (/zigbee2mqtt-1.9.0/node_modules/zigbee-herdsman/dist/adapter/z-stack/adapter/zStackAdapter.js:578:27)
at Generator.next (<anonymous>)
at fulfilled (/zigbee2mqtt-1.9.0/node_modules/zigbee-herdsman/dist/adapter/z-stack/adapter/zStackAdapter.js:5:58))
zigbee2mqtt:error 2020-01-25 17:34:15: Failed to configure '0x086bd7fffedfee28', attempt 3 (Error: Cluster with key 'draytonDeviceInfo' does not exist
at Object.getCluster (/zigbee2mqtt-1.9.0/node_modules/zigbee-herdsman/dist/zcl/utils.js:59:15)
at Endpoint.<anonymous> (/zigbee2mqtt-1.9.0/node_modules/zigbee-herdsman/dist/controller/model/endpoint.js:215:39)
at Generator.next (<anonymous>)
at /zigbee2mqtt-1.9.0/node_modules/zigbee-herdsman/dist/controller/model/endpoint.js:8:71
at new Promise (<anonymous>)
at __awaiter (/zigbee2mqtt-1.9.0/node_modules/zigbee-herdsman/dist/controller/model/endpoint.js:4:12)
at Endpoint.configureReporting (/zigbee2mqtt-1.9.0/node_modules/zigbee-herdsman/dist/controller/model/endpoint.js:213:16)
at Object.configure (/zigbee2mqtt-1.9.0/node_modules/zigbee-herdsman-converters/devices.js:7044:28)
at async DeviceConfigure.configure (/zigbee2mqtt-1.9.0/lib/extension/deviceConfigure.js:99:13))
zigbee2mqtt:error 2020-01-25 17:34:28: No converter available for 'system_mode' (off)
zigbee2mqtt:error 2020-01-25 17:34:29: No converter available for 'system_mode' (heat)
But the error from before is gone
Yes, it should get you past the error you are having. But you might hit another one after I haven't been able to fix yet.
@sand3rk did you remove and rejoin the device? It looks like zigbee2mqtt could not reach it to do the configure step.
@sjorge , no not yet. I will try that.
My valves do not report any configuration errors. I might get the timeout
on one attempt, but then it succeeeds.
Regarding the boost I have tried adding toZigbee functions to send data to
the deviceInfo and tried sending BoostOff, BoostNone and others but still
no luck.
I also tried sending system_state but it does not change the valves
behavior.
I still feel that some other configuration/command is needed to tell the
valve that it is part of a system. Looking at my Home Assistant graphs it
seems that every two hours that I get a occupied_heating_setpoint spike to
20 degrees the valve opens (pi_heating_demand =100) so it kind of ovverides
the setpoint I am sending it.
It seems it might be something in the deviceInfo cluster but with no
information from the manufacturer we are blind. Unless someone has a wiser
hub and does some sniffing.
On Sat, 25 Jan 2020, 16:35 sand3rk, notifications@github.com wrote:
@sjorge https://github.com/sjorge , no not yet. I will try that.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/Koenkk/zigbee2mqtt/issues/2521?email_source=notifications&email_token=AAQOU3LUB7UZ4AL4BPHRN33Q7RS43A5CNFSM4J2QFNAKYY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOEJ5ABPY#issuecomment-578420927,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AAQOU3PBR6ONJJTPMFWYJW3Q7RS43ANCNFSM4J2QFNAA
.
I am also getting timeouts occasionally when sending setpoint changes. I
really don't understand much of the zigbee protocol or how herdsman work or
else I would do some more debugging.
On Sat, 25 Jan 2020, 17:22 [email protected], arcanefoam@gmail.com
wrote:
My valves do not report any configuration errors. I might get the timeout
on one attempt, but then it succeeeds.Regarding the boost I have tried adding toZigbee functions to send data to
the deviceInfo and tried sending BoostOff, BoostNone and others but still
no luck.
I also tried sending system_state but it does not change the valves
behavior.I still feel that some other configuration/command is needed to tell the
valve that it is part of a system. Looking at my Home Assistant graphs it
seems that every two hours that I get a occupied_heating_setpoint spike to
20 degrees the valve opens (pi_heating_demand =100) so it kind of ovverides
the setpoint I am sending it.
It seems it might be something in the deviceInfo cluster but with no
information from the manufacturer we are blind. Unless someone has a wiser
hub and does some sniffing.On Sat, 25 Jan 2020, 16:35 sand3rk, notifications@github.com wrote:
@sjorge https://github.com/sjorge , no not yet. I will try that.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/Koenkk/zigbee2mqtt/issues/2521?email_source=notifications&email_token=AAQOU3LUB7UZ4AL4BPHRN33Q7RS43A5CNFSM4J2QFNAKYY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOEJ5ABPY#issuecomment-578420927,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AAQOU3PBR6ONJJTPMFWYJW3Q7RS43ANCNFSM4J2QFNAA
.
This are the setpoint spikes and the heating demand.

On Sat, 25 Jan 2020, 17:25 [email protected], arcanefoam@gmail.com
wrote:
I am also getting timeouts occasionally when sending setpoint changes. I
really don't understand much of the zigbee protocol or how herdsman work or
else I would do some more debugging.On Sat, 25 Jan 2020, 17:22 [email protected], arcanefoam@gmail.com
wrote:My valves do not report any configuration errors. I might get the timeout
on one attempt, but then it succeeeds.Regarding the boost I have tried adding toZigbee functions to send data
to the deviceInfo and tried sending BoostOff, BoostNone and others but
still no luck.
I also tried sending system_state but it does not change the valves
behavior.I still feel that some other configuration/command is needed to tell the
valve that it is part of a system. Looking at my Home Assistant graphs it
seems that every two hours that I get a occupied_heating_setpoint spike to
20 degrees the valve opens (pi_heating_demand =100) so it kind of ovverides
the setpoint I am sending it.
It seems it might be something in the deviceInfo cluster but with no
information from the manufacturer we are blind. Unless someone has a wiser
hub and does some sniffing.On Sat, 25 Jan 2020, 16:35 sand3rk, notifications@github.com wrote:
@sjorge https://github.com/sjorge , no not yet. I will try that.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/Koenkk/zigbee2mqtt/issues/2521?email_source=notifications&email_token=AAQOU3LUB7UZ4AL4BPHRN33Q7RS43A5CNFSM4J2QFNAKYY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOEJ5ABPY#issuecomment-578420927,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AAQOU3PBR6ONJJTPMFWYJW3Q7RS43ANCNFSM4J2QFNAA
.
I re-paired, but still got this error:
zigbee2mqtt:error 2020-01-26 13:52:03: Failed to configure '0x086bd7fffedfee28', attempt 3 (Error: Cluster with key 'draytonDeviceInfo' does not exist
at Object.getCluster (/zigbee2mqtt-1.9.0/node_modules/zigbee-herdsman/dist/zcl/utils.js:59:15)
at Endpoint.<anonymous> (/zigbee2mqtt-1.9.0/node_modules/zigbee-herdsman/dist/controller/model/endpoint.js:215:39)
at Generator.next (<anonymous>)
at /zigbee2mqtt-1.9.0/node_modules/zigbee-herdsman/dist/controller/model/endpoint.js:8:71
at new Promise (<anonymous>)
at __awaiter (/zigbee2mqtt-1.9.0/node_modules/zigbee-herdsman/dist/controller/model/endpoint.js:4:12)
at Endpoint.configureReporting (/zigbee2mqtt-1.9.0/node_modules/zigbee-herdsman/dist/controller/model/endpoint.js:213:16)
at Object.configure (/zigbee2mqtt-1.9.0/node_modules/zigbee-herdsman-converters/devices.js:7044:28)
at async DeviceConfigure.configure (/zigbee2mqtt-1.9.0/lib/extension/deviceConfigure.js:99:13))
But climate card is still grey, it does not respond to the card, but it does not say: No converter available.
I guess the zigbee-herdsman changes haven't been merged to zigbee2mqtt 1.9.0 . So you need to modify: /zigbee2mqtt-1.9.0/node_modules\zigbee-herdsman\dist\zcl\definition\clister.js and add
wiserDeviceInfo: {
ID: 0xFE03, // 65027
attributes: {
deviceInfo: { ID: 32, type: dataType_1.default.charStr },
},
commands: {},
commandsResponse: {}
}
At the end of the file before the final }; which closes the Cluster const.
I’m in dev though, and it’s there?
~ sjorge
On 27 Jan 2020, at 18:34, Horacio Hoyos notifications@github.com wrote:
I guess the zigbee-herdsman changes haven't been merged to zigbee2mqtt 1.9.0 . So you need to modify: /zigbee2mqtt-1.9.0/node_modules\zigbee-herdsman\dist\zcl\definition\clister.js and addwiserDeviceInfo: {
ID: 0xFE03, // 65027
attributes: {
deviceInfo: { ID: 32, type: dataType_1.default.charStr },
},
commands: {},
commandsResponse: {}
}
At the end of the file before the final }; which closes the Cluster const.—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub, or unsubscribe.
On a closer look, it seems that the cluster has been added, but the issues is that the reporting is using the wrong name. Line 7047 of devices.js should be
await endpoint.configureReporting('wiserDeviceInfo', draytonDeviceConfig);
It currently uses 'draytonDeviceInfo' which is an undefined cluster.
On Mon, 27 Jan 2020, 17:52 Jorge Schrauwen, notifications@github.com
wrote:
I’m in dev though, and it’s there?
~ sjorge
On 27 Jan 2020, at 18:34, Horacio Hoyos notifications@github.com
wrote:
I guess the zigbee-herdsman changes haven't been merged to zigbee2mqtt
1.9.0 . So you need to modify:
/zigbee2mqtt-1.9.0/node_modules\zigbee-herdsman\dist\zcl\definition\clister.js
and addwiserDeviceInfo: {
ID: 0xFE03, // 65027
attributes: {
deviceInfo: { ID: 32, type: dataType_1.default.charStr },
},
commands: {},
commandsResponse: {}
}
At the end of the file before the final }; which closes the Cluster
const.—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub, or unsubscribe.—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/Koenkk/zigbee2mqtt/issues/2521?email_source=notifications&email_token=AAQOU3LO6BGZVWX75TVSRTDQ74NNFA5CNFSM4J2QFNAKYY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOEKANZXA#issuecomment-578870492,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AAQOU3LRWQ2ZRHBDNIHCDRDQ74NNFANCNFSM4J2QFNAA
.
I have https://github.com/Koenkk/zigbee-herdsman-converters/pull/939/files open to fix that, but i hit another issue. See koenkk's comment on the PR
I'm also experiencing this issue, looking forward to the PR being pushed through. Is there a reason some users have been unaffected and others are seeing this issue?
I bumbed the PR, there is still an issue a I am hitting that I haven't been able to fix.
Hi all, after some more testing the only way I can manage to keep the babies happy is with constant attention. That is, I will send my desired set-point (from a schedule) every-time the valve sends a report. The peaks I mentioned earlier are gone and everything is working nicely. I am working on a custom wiser component and card for home assistant. Its work in progress but this is what it looks so far (its based on the Wiser phone app):

The wiser component lets you define rooms and specify what valves are in each room, and lets you define a schedule. The card shows the information for each room, which room needs heat and will eventually let you control stuff like away mode and "boost all". Ideally it will allow you to change the schedule too.
Great work Horacio, thank you - I am following your progress with interest.
Kind regards
Dave Parker
[email protected]
07971 807853
01726 813557
On 15 Feb 2020, at 07:47, Horacio Hoyos notifications@github.com wrote:
Hi all, after some more testing the only way I can manage to keep the babies happy is with constant attention. That is, I will send my desired set-point (from a schedule) every-time the valve sends a report. The peaks I mentioned earlier are gone and everything is working nicely. I am working on a custom wiser component and card for home assistant. Its work in progress but this is what it looks so far (its based on the Wiser phone app):
https://user-images.githubusercontent.com/2157165/74584159-0a699800-4fc7-11ea-9b99-9a8c81cc37d3.png
The wiser component lets you define rooms and specify what valves are in each room, and lets you define a schedule. The card shows the information for each room, which room needs heat and will eventually let you control stuff like away mode and "boost all". Ideally it will allow you to change the schedule too.—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub https://github.com/Koenkk/zigbee2mqtt/issues/2521?email_source=notifications&email_token=AGADFSJDIXWDGLKI2ALD3YDRC6MYLA5CNFSM4J2QFNAKYY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOEL3EKVA#issuecomment-586564948, or unsubscribe https://github.com/notifications/unsubscribe-auth/AGADFSPDR62H4Y36FOIEULDRC6MYLANCNFSM4J2QFNAA.
Hi all, after some more testing the only way I can manage to keep the babies happy is with constant attention. That is, I will send my desired set-point (from a schedule) every-time the valve sends a report. The peaks I mentioned earlier are gone and everything is working nicely. I am working on a custom wiser component and card for home assistant. Its work in progress but this is what it looks so far (its based on the Wiser phone app):
The wiser component lets you define rooms and specify what valves are in each room, and lets you define a schedule. The card shows the information for each room, which room needs heat and will eventually let you control stuff like away mode and "boost all". Ideally it will allow you to change the schedule too.
Are you using wall thermostat together with TRV's? I'm trying to figure out working standalone TRV.
I've got issue here:
sending occupied_heating_setpoint sometimes has no impact on occupied_heating_setpoint (Status message), but instead it keeps apearing nicely in ADC and ALG
I've read that ADC is Analog to Digital Converter - so maybe that's the key.
ALG is Application Layer Gateway, so maybe this is something that needs to be used when communicating with TRV. Messages sent using occupied_heating_setpoint have impact on ALG somehow, correct temp apears in 3rd place, but occupied_heating_setpoint status value can be still old.
Hey. Sorry for the late reply but since the ticket is closed, seem to not send notifications.
Nice finding and I saw you made a PR to fix this! Excellent.
I am using standalone setting, with a switch to control to boiler so no need for the thermostat. The card and related component are still WIP, but if you are interested you can follow progress here https://github.com/arcanefoam/wiser-home-assistant/tree/develop