-
Notifications
You must be signed in to change notification settings - Fork 482
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Add cooling mode to Bosch room thermostat II (BTH-RM) #7681
base: master
Are you sure you want to change the base?
Conversation
mattreim
commented
Mar 26, 2024
Tricky, I don't have any experience with that device, but it looks like the PR introduces a breaking change due the renamed values? Is the removal of "auto" and "heat" really needed or is it better to only extend the existing modes with the new ones? |
The modes auto, manual and off are functional in both channels cool and heat. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Not too sure if we're there yet. Please take the comments into account, thanks!
devices/bosch/room_thermostat2.json
Outdated
@@ -28,7 +28,7 @@ | |||
}, | |||
"meta": { | |||
"values": { | |||
"config/mode": {"auto": 0, "heat": 1, "off": 5} | |||
"config/mode": {"auto": 0, "manual": 1, "off": 5} |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Please do not change the names here. Those are aligned with the respective zigbee attribute and REST API clients do not expect different values. We should stay consistent here.
devices/bosch/room_thermostat2.json
Outdated
@@ -148,19 +178,19 @@ | |||
"cl": "0x0201", | |||
"dt": "0x30", | |||
"ep": 1, | |||
"eval": "if (Item.val == 'auto') { 0 } else if (Item.val == 'heat') { 1 } else if (Item.val == 'off') { 5 };", | |||
"eval": "if (Item.val == 'auto') { 0 } else if (Item.val == 'manual') { 1 } else if (Item.val == 'off') { 5 };", |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Same as above
devices/bosch/room_thermostat2.json
Outdated
{ | ||
"name": "config/devicemode", | ||
"refresh.interval": 3600, | ||
"read": { | ||
"at": "0x001C", | ||
"cl": "0x0201", | ||
"ep": 1, | ||
"fn": "zcl:attr" | ||
}, | ||
"write": { | ||
"at": "0x001C", | ||
"cl": "0x0201", | ||
"dt": "0x30", | ||
"ep": 1, | ||
"eval": "if (Item.val == 'off') { 0 } else if (Item.val == 'cool') { 3 } else if (Item.val == 'heat') { 4 };", | ||
"fn": "zcl:attr" | ||
}, | ||
"parse": { | ||
"at": "0x001C", | ||
"cl": "0x0201", | ||
"ep": 1, | ||
"eval": "if (Attr.val == 0) { Item.val = 'off' } else if (Attr.val == 3) { Item.val = 'cool' } else if (Attr.val == 4) { Item.val = 'heat' };", | ||
"fn": "zcl:attr" | ||
}, | ||
"default": "heat" | ||
}, |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Is this confirmed to be working? Bosch already seems to use a manufacturer specific attribute to set the heating modes and apparently disregards the standard attribute.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
But what do I do here with the double heat and the off(450) problem?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
How about if I use mode/preset instead of devicemode/mode?
mode --> heat, cool and off
preset --> manual, auto and holiday
or
mode --> heat, cool and off
devicemode --> manual, auto and off
devices/bosch/room_thermostat2.json
Outdated
"eval": "if (Attr.val == 0) { Item.val = 'auto' } else if (Attr.val == 1) { Item.val = 'manual' } else if (Attr.val == 5) { Item.val = 'off' };", | ||
"fn": "zcl:attr", | ||
"mf": "0x1209" | ||
}, | ||
"default": "heat" | ||
"default": "manual" |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Same as above
I'm sorry, but I cannot say that the recent changes can get my vote. My perception is that thing got even more complicated and drift away from common user experience. Is there any particular reason why you chose to ignore the requested changes? If I haven't overlooked anything, the amendments you've made over time state that all the required mode changes can be done through attribute 0x001C, being the zigbee intended way. That makes we wonder why not to use it? |
The different states: (Mode --> devicemodes) heat --> manual, auto and off cool --> manual, auto and off off --> off |
They're just names and it works like that. |