Skip to content
New issue

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

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

Already on GitHub? Sign in to your account

Add cooling mode to Bosch room thermostat II (BTH-RM) #7681

Open
wants to merge 7 commits into
base: master
Choose a base branch
from

Conversation

mattreim
Copy link
Contributor

image

@mattreim mattreim changed the title Add cooling mode to Bosch Thermostat II (BTH-RM) Add cooling mode to Bosch room thermostat II (BTH-RM) Mar 26, 2024
@manup
Copy link
Member

manup commented Apr 2, 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?

@manup manup requested a review from SwoopX April 2, 2024 11:10
@manup manup added the Device Improvement Additional tag to attach to a existing issue. label Apr 2, 2024
@mattreim
Copy link
Contributor Author

mattreim commented Apr 2, 2024

ioBroker_room_thermostat

I think renaming "auto" is not necessary, but heat in manual is more understandable here. Incorrect operation could occur if "heat" is used twice.

operation manual:

operation_manual

@mattreim
Copy link
Contributor Author

mattreim commented Apr 2, 2024

The modes auto, manual and off are functional in both channels cool and heat.

@mattreim
Copy link
Contributor Author

Unfortunately, when you turn off the device, the following error message appears:

Room_thermostat_error_message

And this under cluster info:

Room_thermostat_off_temp

Copy link
Collaborator

@SwoopX SwoopX left a 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!

@@ -28,7 +28,7 @@
},
"meta": {
"values": {
"config/mode": {"auto": 0, "heat": 1, "off": 5}
"config/mode": {"auto": 0, "manual": 1, "off": 5}
Copy link
Collaborator

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.

@@ -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 };",
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Same as above

Comment on lines 103 to 128
{
"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"
},
Copy link
Collaborator

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.

Copy link
Contributor Author

@mattreim mattreim Apr 12, 2024

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

At least it works for me. The two channels "heat/cool" then also use the normal modes: auto, manual(heat) and off.

channel_mode

The attribute “devicemode” was also obvious to me.

Copy link
Contributor Author

@mattreim mattreim Apr 12, 2024

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?

Copy link
Contributor Author

@mattreim mattreim Apr 13, 2024

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

Comment on lines 189 to 193
"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"
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Same as above

@SwoopX
Copy link
Collaborator

SwoopX commented Apr 17, 2024

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?

@mattreim
Copy link
Contributor Author

mattreim commented Apr 17, 2024

Sorry, maybe I didn't make myself clear. Here are the device attributes:

0x001C:

0x001C

0x4007:

0x4007

@mattreim
Copy link
Contributor Author

mattreim commented Apr 17, 2024

The different states:

(Mode --> devicemodes)

heat --> manual, auto and off

cool --> manual, auto and off

off --> off

@mattreim
Copy link
Contributor Author

They're just names and it works like that.

@mattreim
Copy link
Contributor Author

mattreim commented Apr 20, 2024

Inspired by Home Assistant;

Home_Assistant

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Device Improvement Additional tag to attach to a existing issue.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

3 participants