FreshlyBrewedCode / hacs-homee

a Home Assistant custom component to integrate the homee smart home platform
MIT License
18 stars 6 forks source link

Garage doors discovered but commands dont exist or do not work #26

Closed godza closed 1 year ago

godza commented 1 year ago

Type of problem

Version

2.1.0

Detailed description

hacs-homee detects two of my garage doors properly, but there are no commands for opening/closing, only the position slider which does not work. By that I mean, I can drag the slider, but the gate does not move.

Logbook shows the history of opening/closing doors, so it works properly, and there is open/closed sensor with % open and that works properly.

Error log


Unfortunately, there are now warnings/error logs. I have logger: in my configuration file and there are logs by other components but none from hacs-homee
Taraman17 commented 1 year ago

I am on it to create a pullrequest that adds logging of found devices if you add the Integration - with that we should be able to see what garage door opener you use and which features it has.

godza commented 1 year ago

Thank you very much

serdar-22 commented 1 year ago

Hello

i have the same issue. since today with update, i see the status of Hörmann Supramatic E4 Garage.

But i can`t open or close by homeassistant. I dont have any errors. can you please help me, thank you very much

image image

godza commented 1 year ago

Hello

i have the same issue. since today with update, i see the status of Hörmann Supramatic E4 Garage.

But i can`t open or close by homeassistant. I dont have any errors. can you please help me, thank you very much

image image

I forgot to mention, i too have Hörmann Supramatic E4 and also P4.

Taraman17 commented 1 year ago

To be sure: Did the garage-doors work before?

serdar-22 commented 1 year ago

no the garage doors dont work before over home assistant.

its work only directly with homee

godza commented 1 year ago

I just got them so i’m not sure if they ever worked in hacs-homee. In homee app they work flawlesly.

Taraman17 commented 1 year ago

OK, then at least I didn't break anything.

Just got a new version on the way, that adds logging of device capabilities. See the readme on how to obtain logs and when HACS offers you the update, post them here, then I have a look

godza commented 1 year ago

It seems that the new build failed for some reason. Can you check, please. Thanks

Taraman17 commented 1 year ago

Now it worked

godza commented 1 year ago

I added

logger: default: warn logs: custom_components.homee: info

to the configuration file, restarted home assistant, uninstalled homee integration, and installed it again and these are only lines mentioning homee

2023-03-01 18:45:41.140 INFO (MainThread) [custom_components.homee.config_flow] got access token for homee 2023-03-01 18:45:41.140 INFO (MainThread) [custom_components.homee.config_flow] homee task created 2023-03-01 18:45:41.283 INFO (MainThread) [custom_components.homee.config_flow] homee connected 2023-03-01 18:45:41.284 INFO (MainThread) [custom_components.homee.config_flow] homee disconnecting 2023-03-01 18:45:41.295 INFO (MainThread) [custom_components.homee.config_flow] homee config successfully tested 2023-03-01 18:45:41.295 INFO (MainThread) [custom_components.homee.config_flow] created new homee entry with ID 00055112F058

So, no mention of found devices in logs, but hacs-homee found them same way in 2.1.0.

Screenshot 2023-03-01 at 18 52 44
Taraman17 commented 1 year ago

Did you add the config entry in one line as here, or as laid down in readme?

godza commented 1 year ago

Laid down

Screenshot 2023-03-01 at 18 56 38
godza commented 1 year ago

I changed logger default to be info and now i see all information we need

2023-03-01 18:59:03.129 INFO (MainThread) [homee] Found node Smaller Garage Door, with note # Hörmann SupraMatic E4 and Attributes [{'id': 29, 'node_id': 5, 'instance': 0, 'minimum': 0, 'maximum': 1, 'current_value': 0.0, 'target_value': 0.0, 'last_value': 1.0, 'unit': '', 'step_value': 1.0, 'editable': 1, 'type': 385, 'state': 1, 'last_changed': 1676974578, 'changed_by': 1, 'changed_by_id': 0, 'based_on': 1, 'data': '', 'name': ''}, {'id': 30, 'node_id': 5, 'instance': 0, 'minimum': 0, 'maximum': 10000, 'current_value': 0.0, 'target_value': 0.0, 'last_value': 0.0, 'unit': 'text', 'step_value': 1.0, 'editable': 0, 'type': 45, 'state': 1, 'last_changed': 1676974575, 'changed_by': 1, 'changed_by_id': 0, 'based_on': 4, 'data': '00174816aa', 'name': ''}, {'id': 31, 'node_id': 5, 'instance': 0, 'minimum': 0, 'maximum': 1, 'current_value': 0.0, 'target_value': 0.0, 'last_value': 1.0, 'unit': 'n%2Fa', 'step_value': 1.0, 'editable': 1, 'type': 305, 'state': 1, 'last_changed': 1677692134, 'changed_by': 1, 'changed_by_id': 0, 'based_on': 1, 'data': '', 'name': ''}, {'id': 32, 'node_id': 5, 'instance': 0, 'minimum': 0, 'maximum': 1, 'current_value': 0.0, 'target_value': 0.0, 'last_value': 0.0, 'unit': 'n%2Fa', 'step_value': 1.0, 'editable': 1, 'type': 306, 'state': 1, 'last_changed': 1677692134, 'changed_by': 1, 'changed_by_id': 0, 'based_on': 1, 'data': '', 'name': ''}, {'id': 33, 'node_id': 5, 'instance': 0, 'minimum': 0, 'maximum': 1, 'current_value': 0.0, 'target_value': 0.0, 'last_value': 0.0, 'unit': 'n%2Fa', 'step_value': 1.0, 'editable': 1, 'type': 378, 'state': 1, 'last_changed': 1677692134, 'changed_by': 1, 'changed_by_id': 0, 'based_on': 1, 'data': '', 'name': ''}, {'id': 34, 'node_id': 5, 'instance': 0, 'minimum': 0, 'maximum': 100, 'current_value': 100.0, 'target_value': 100.0, 'last_value': 100.0, 'unit': '%25', 'step_value': 1.0, 'editable': 0, 'type': 15, 'state': 1, 'last_changed': 1677692134, 'changed_by': 1, 'changed_by_id': 0, 'based_on': 1, 'data': '', 'name': '', 'options': {'history': {'day': 35, 'week': 5, 'month': 1}}}, {'id': 35, 'node_id': 5, 'instance': 0, 'minimum': 0, 'maximum': 1, 'current_value': 0.0, 'target_value': 0.0, 'last_value': 0.0, 'unit': 'n%2Fa', 'step_value': 1.0, 'editable': 0, 'type': 70, 'state': 1, 'last_changed': 1677692134, 'changed_by': 1, 'changed_by_id': 0, 'based_on': 1, 'data': '', 'name': '', 'options': {'history': {'day': 182, 'week': 26, 'month': 6, 'stepped': True}}}, {'id': 36, 'node_id': 5, 'instance': 0, 'minimum': 0, 'maximum': 4, 'current_value': 1.0, 'target_value': 1.0, 'last_value': 1.0, 'unit': 'n%2Fa', 'step_value': 1.0, 'editable': 1, 'type': 135, 'state': 1, 'last_changed': 1677692134, 'changed_by': 1, 'changed_by_id': 0, 'based_on': 1, 'data': '', 'name': '', 'options': {'can_observe': [300], 'automations': ['toggle']}}] 2023-03-01 18:59:03.129 INFO (MainThread) [homee] Found node homee, with note and Attributes [{'id': 1, 'node_id': -1, 'instance': 0, 'minimum': 0, 'maximum': 200, 'current_value': 0.0, 'target_value': 0.0, 'last_value': 0.0, 'unit': 'n%2Fa', 'step_value': 1.0, 'editable': 1, 'type': 205, 'state': 1, 'last_changed': 16, 'changed_by': 1, 'changed_by_id': 0, 'based_on': 1, 'data': '', 'name': '', 'options': {'history': {'day': 182, 'week': 26, 'month': 6, 'stepped': True}}}, {'id': 2, 'node_id': -1, 'instance': 0, 'minimum': 0, 'maximum': 0, 'current_value': 1677774592.0, 'target_value': 1677774592.0, 'last_value': 1677688064.0, 'unit': 'unixtimestamp', 'step_value': 1.0, 'editable': 0, 'type': 241, 'state': 1, 'last_changed': 1677688021, 'changed_by': 1, 'changed_by_id': 0, 'based_on': 1, 'data': '', 'name': ''}, {'id': 3, 'node_id': -1, 'instance': 0, 'minimum': 0, 'maximum': 0, 'current_value': 1677734400.0, 'target_value': 1677734400.0, 'last_value': 1677648128.0, 'unit': 'unixtimestamp', 'step_value': 1.0, 'editable': 0, 'type': 242, 'state': 1, 'last_changed': 1677648121, 'changed_by': 1, 'changed_by_id': 0, 'based_on': 1, 'data': '', 'name': ''}, {'id': 4, 'node_id': -1, 'instance': 0, 'minimum': 0, 'maximum': 255, 'current_value': 7.0, 'target_value': 7.0, 'last_value': 7.0, 'unit': 'n%2Fa', 'step_value': 1.0, 'editable': 0, 'type': 243, 'state': 1, 'last_changed': 1677692101, 'changed_by': 1, 'changed_by_id': 0, 'based_on': 1, 'data': '', 'name': ''}, {'id': 5, 'node_id': -1, 'instance': 0, 'minimum': -20, 'maximum': 45, 'current_value': 6.55, 'target_value': 6.55, 'last_value': 6.55, 'unit': '%C2%B0C', 'step_value': 1.0, 'editable': 0, 'type': 244, 'state': 1, 'last_changed': 1677692101, 'changed_by': 1, 'changed_by_id': 0, 'based_on': 1, 'data': '', 'name': ''}, {'id': 6, 'node_id': -1, 'instance': 0, 'minimum': 0, 'maximum': 100, 'current_value': 77.0, 'target_value': 77.0, 'last_value': 77.0, 'unit': '%25', 'step_value': 1.0, 'editable': 0, 'type': 245, 'state': 1, 'last_changed': 1677692101, 'changed_by': 1, 'changed_by_id': 0, 'based_on': 1, 'data': '', 'name': ''}, {'id': 7, 'node_id': -1, 'instance': 1, 'minimum': 0, 'maximum': 255, 'current_value': 7.0, 'target_value': 7.0, 'last_value': 7.0, 'unit': 'n%2Fa', 'step_value': 1.0, 'editable': 0, 'type': 246, 'state': 1, 'last_changed': 1677692101, 'changed_by': 1, 'changed_by_id': 0, 'based_on': 1, 'data': '', 'name': ''}, {'id': 8, 'node_id': -1, 'instance': 2, 'minimum': 0, 'maximum': 255, 'current_value': 2.0, 'target_value': 2.0, 'last_value': 2.0, 'unit': 'n%2Fa', 'step_value': 1.0, 'editable': 0, 'type': 246, 'state': 1, 'last_changed': 1677692101, 'changed_by': 1, 'changed_by_id': 0, 'based_on': 1, 'data': '', 'name': ''}, {'id': 9, 'node_id': -1, 'instance': 3, 'minimum': 0, 'maximum': 255, 'current_value': 7.0, 'target_value': 7.0, 'last_value': 7.0, 'unit': 'n%2Fa', 'step_value': 1.0, 'editable': 0, 'type': 246, 'state': 1, 'last_changed': 1677692101, 'changed_by': 1, 'changed_by_id': 0, 'based_on': 1, 'data': '', 'name': ''}, {'id': 10, 'node_id': -1, 'instance': 1, 'minimum': -20, 'maximum': 45, 'current_value': 2.08, 'target_value': 2.08, 'last_value': 2.08, 'unit': '%C2%B0C', 'step_value': 1.0, 'editable': 0, 'type': 247, 'state': 1, 'last_changed': 1677692101, 'changed_by': 1, 'changed_by_id': 0, 'based_on': 1, 'data': '', 'name': ''}, {'id': 11, 'node_id': -1, 'instance': 2, 'minimum': -20, 'maximum': 45, 'current_value': 4.0, 'target_value': 4.0, 'last_value': 4.0, 'unit': '%C2%B0C', 'step_value': 1.0, 'editable': 0, 'type': 247, 'state': 1, 'last_changed': 1677692101, 'changed_by': 1, 'changed_by_id': 0, 'based_on': 1, 'data': '', 'name': ''}, {'id': 12, 'node_id': -1, 'instance': 3, 'minimum': -20, 'maximum': 45, 'current_value': 3.99, 'target_value': 3.99, 'last_value': 3.99, 'unit': '%C2%B0C', 'step_value': 1.0, 'editable': 0, 'type': 247, 'state': 1, 'last_changed': 1677692101, 'changed_by': 1, 'changed_by_id': 0, 'based_on': 1, 'data': '', 'name': ''}, {'id': 13, 'node_id': -1, 'instance': 1, 'minimum': -20, 'maximum': 45, 'current_value': 7.8, 'target_value': 7.8, 'last_value': 7.8, 'unit': '%C2%B0C', 'step_value': 1.0, 'editable': 0, 'type': 248, 'state': 1, 'last_changed': 1677692101, 'changed_by': 1, 'changed_by_id': 0, 'based_on': 1, 'data': '', 'name': ''}, {'id': 14, 'node_id': -1, 'instance': 2, 'minimum': -20, 'maximum': 45, 'current_value': 5.47, 'target_value': 5.47, 'last_value': 5.47, 'unit': '%C2%B0C', 'step_value': 1.0, 'editable': 0, 'type': 248, 'state': 1, 'last_changed': 1677692101, 'changed_by': 1, 'changed_by_id': 0, 'based_on': 1, 'data': '', 'name': ''}, {'id': 15, 'node_id': -1, 'instance': 3, 'minimum': -20, 'maximum': 45, 'current_value': 7.31, 'target_value': 7.31, 'last_value': 7.31, 'unit': '%C2%B0C', 'step_value': 1.0, 'editable': 0, 'type': 248, 'state': 1, 'last_changed': 1677692101, 'changed_by': 1, 'changed_by_id': 0, 'based_on': 1, 'data': '', 'name': ''}, {'id': 16, 'node_id': -1, 'instance': 0, 'minimum': 0, 'maximum': 150, 'current_value': 3.19, 'target_value': 3.19, 'last_value': 3.19, 'unit': 'km%2Fh', 'step_value': 1.0, 'editable': 0, 'type': 262, 'state': 1, 'last_changed': 1677692101, 'changed_by': 1, 'changed_by_id': 0, 'based_on': 1, 'data': '', 'name': ''}, {'id': 17, 'node_id': -1, 'instance': 0, 'minimum': 0, 'maximum': 150, 'current_value': 7.03, 'target_value': 7.03, 'last_value': 7.03, 'unit': 'km%2Fh', 'step_value': 1.0, 'editable': 0, 'type': 263, 'state': 1, 'last_changed': 1677692101, 'changed_by': 1, 'changed_by_id': 0, 'based_on': 1, 'data': '', 'name': ''}, {'id': 18, 'node_id': -1, 'instance': 0, 'minimum': 0, 'maximum': 100, 'current_value': 23.05, 'target_value': 23.05, 'last_value': 23.146, 'unit': '%25', 'step_value': 0.1, 'editable': 0, 'type': 311, 'state': 1, 'last_changed': 1677693541, 'changed_by': 1, 'changed_by_id': 0, 'based_on': 1, 'data': '', 'name': '', 'options': {'history': {'day': 1, 'week': 26, 'month': 6}}}, {'id': 19, 'node_id': -1, 'instance': 0, 'minimum': 0, 'maximum': 100, 'current_value': 24.34, 'target_value': 24.34, 'last_value': 24.402, 'unit': '%25', 'step_value': 0.1, 'editable': 0, 'type': 312, 'state': 1, 'last_changed': 1677693541, 'changed_by': 1, 'changed_by_id': 0, 'based_on': 1, 'data': '', 'name': '', 'options': {'history': {'day': 1, 'week': 26, 'month': 6}}}, {'id': 20, 'node_id': -1, 'instance': 0, 'minimum': 0, 'maximum': 100, 'current_value': 9.511, 'target_value': 9.511, 'last_value': 9.511, 'unit': '%25', 'step_value': 0.1, 'editable': 0, 'type': 313, 'state': 1, 'last_changed': 1677693541, 'changed_by': 1, 'changed_by_id': 0, 'based_on': 1, 'data': '', 'name': '', 'options': {'history': {'day': 1, 'week': 26, 'month': 6}}}] 2023-03-01 18:59:03.129 INFO (MainThread) [homee] Found node Larger Garage Door, with note and Attributes [{'id': 21, 'node_id': 4, 'instance': 0, 'minimum': 0, 'maximum': 1, 'current_value': 1.0, 'target_value': 1.0, 'last_value': 0.0, 'unit': '', 'step_value': 1.0, 'editable': 1, 'type': 385, 'state': 1, 'last_changed': 1677582300, 'changed_by': 1, 'changed_by_id': 0, 'based_on': 1, 'data': '', 'name': ''}, {'id': 22, 'node_id': 4, 'instance': 0, 'minimum': 0, 'maximum': 10000, 'current_value': 0.0, 'target_value': 0.0, 'last_value': 0.0, 'unit': 'text', 'step_value': 1.0, 'editable': 0, 'type': 45, 'state': 1, 'last_changed': 1676973816, 'changed_by': 1, 'changed_by_id': 0, 'based_on': 4, 'data': '00174816aa', 'name': ''}, {'id': 23, 'node_id': 4, 'instance': 0, 'minimum': 0, 'maximum': 1, 'current_value': 0.0, 'target_value': 0.0, 'last_value': 1.0, 'unit': 'n%2Fa', 'step_value': 1.0, 'editable': 1, 'type': 305, 'state': 1, 'last_changed': 1677692303, 'changed_by': 1, 'changed_by_id': 0, 'based_on': 1, 'data': '', 'name': ''}, {'id': 24, 'node_id': 4, 'instance': 0, 'minimum': 0, 'maximum': 1, 'current_value': 0.0, 'target_value': 0.0, 'last_value': 0.0, 'unit': 'n%2Fa', 'step_value': 1.0, 'editable': 1, 'type': 306, 'state': 1, 'last_changed': 1677692303, 'changed_by': 1, 'changed_by_id': 0, 'based_on': 1, 'data': '', 'name': ''}, {'id': 25, 'node_id': 4, 'instance': 0, 'minimum': 0, 'maximum': 1, 'current_value': 0.0, 'target_value': 0.0, 'last_value': 0.0, 'unit': 'n%2Fa', 'step_value': 1.0, 'editable': 1, 'type': 378, 'state': 1, 'last_changed': 1677692303, 'changed_by': 1, 'changed_by_id': 0, 'based_on': 1, 'data': '', 'name': ''}, {'id': 26, 'node_id': 4, 'instance': 0, 'minimum': 0, 'maximum': 100, 'current_value': 100.0, 'target_value': 100.0, 'last_value': 100.0, 'unit': '%25', 'step_value': 1.0, 'editable': 0, 'type': 15, 'state': 1, 'last_changed': 1677692303, 'changed_by': 1, 'changed_by_id': 0, 'based_on': 1, 'data': '', 'name': '', 'options': {'history': {'day': 35, 'week': 5, 'month': 1}}}, {'id': 27, 'node_id': 4, 'instance': 0, 'minimum': 0, 'maximum': 1, 'current_value': 0.0, 'target_value': 0.0, 'last_value': 0.0, 'unit': 'n%2Fa', 'step_value': 1.0, 'editable': 0, 'type': 70, 'state': 1, 'last_changed': 1677692303, 'changed_by': 1, 'changed_by_id': 0, 'based_on': 1, 'data': '', 'name': '', 'options': {'history': {'day': 182, 'week': 26, 'month': 6, 'stepped': True}}}, {'id': 28, 'node_id': 4, 'instance': 0, 'minimum': 0, 'maximum': 4, 'current_value': 1.0, 'target_value': 1.0, 'last_value': 1.0, 'unit': 'n%2Fa', 'step_value': 1.0, 'editable': 1, 'type': 135, 'state': 1, 'last_changed': 1677692304, 'changed_by': 1, 'changed_by_id': 0, 'based_on': 1, 'data': '', 'name': '', 'options': {'can_observe': [300], 'automations': ['toggle']}}]

Taraman17 commented 1 year ago

I changed logger default to be info and now i see all information we need

From what I can see, the two garage doors both have the same opener model. It supports open/close by one button, two different partial open position buttons and a light toggle button.

It is not possible to set a position to move it to with a slider in Homee, correct?

godza commented 1 year ago

Exactly, it's not possible to set position to any certain percentage.

Also, you've listed exactly all buttons i have in my homee app.

Here is the screenshot IMG_E59EDB86565C-1

godza commented 1 year ago

Sorry, one correction, it has two buttons on for up and one for down. Also, when it's closing if you press the close button it becomes stop button, and while is opening, open button becomes stop button.

Taraman17 commented 1 year ago

And from an intermediate position, you can either start to open or close with the respective buttons!?

godza commented 1 year ago

Yes. up goes up, down goes down when in intermediate position

Taraman17 commented 1 year ago

If you know how to do it, you could test for me, by replacing cover.py in your config/custom_components/homee directory with the below version and restarting HA (maybe it is also enough to reload the homee integration). Else it will be necessary to delete and then re-add the Integration. This should enable the UP/DOWN and STOP functions and show the position.

For the partly open functions I will have to add additional switches.

cover.py: https://github.com/Taraman17/hacs-homee/blob/master/custom_components/homee/cover.py

godza commented 1 year ago

I did that, and hurrah! up/down/stop buttons showed up on both covers. Both up/down buttons work as expected, but stop does not do anything. Great job!

Taraman17 commented 1 year ago

Thanks. I'll have a look at the stop thing and the others the next days.

godza commented 1 year ago

Great, thank you for your hard work. Is there a way i can donate to this project?

Taraman17 commented 1 year ago

I just changed switch.py so it should discover your partially open impulses: https://github.com/Taraman17/hacs-homee/blob/master/custom_components/homee/switch.py

For your stop button, I fear there is no really good solution. Since your device only does stop on repressing the previous command, I would have to disable the stop button for it. But since I only get the deviceClass (Garage_Door_Opener) and the information that it supports an UP_DOWN attribute from Homee, I can't distinguish it from other models, that might have a stop function. So I think, you will have to live with the button having no function.

Does the position indication work for you in HA?

godza commented 1 year ago

I replaced my switch.py with the one you provided; no new switches appeared in the integration.

Regarding the stop button, is it possible that on its execution, check if door is_opening and if true, execute command UP, and check if is_closing is true and then execute command DOWN, otherwise, skip executing anything? This would practically function as real stop command should.

Taraman17 commented 1 year ago

Can you make me a screenshot of the upper left field of the device view of one of your garage doors? like this one: grafik

godza commented 1 year ago

Sorry for the late reply. Here is the screenshot of the whole page

Screenshot 2023-03-03 at 00 58 50
Taraman17 commented 1 year ago

No sweat - had to go to bed anyway. ;-)

Hmm, the device class "GARAGE_DOOR_OPERATOR" is as expected, so I wonder, why the switches don't show up.

Since this is not my project and I just got in it because I also want my Garage door to work (A Hörmann Series 3), I'm still not sure, what shows up after reload/reboot/etc. You could check if the file was really replaced correctly and if there are any error messages in the logs...

For the Stop Button:

Regarding the stop button, is it possible that on its execution, check if door is_opening and if true, execute command UP, and check if is_closing is true and then execute command DOWN, otherwise, skip executing anything? This would practically function as real stop command should.

Yes I could do that. The point is, that I don't know all garage door operators supported by Homee. And the only info I get is the class "GARAGE_DOOR_OPERATOR". If there is another one, that has a stop button, that would stop working. So as long as I don't have a way to get the exact model, I don't want to do this. Right now, there is information about the Model in a field that is called "Note", but that is user editable, so not suitable for that.

godza commented 1 year ago

I understand; basically, the example of solution I gave you consider a hack, and without limiting that hack to a certain model of garage door or some identifier that can differentiate garage doors that use this behavior of stop being the same button as up/down, it's irresponsible to apply this logic to all garage doors supported by homee.

Do you know which library is responsible for determining vendor and garage door model? I think that library needs to be updated if homee provides that information.

Regarding the switches, you were right; there was an error in the logs:

2023-03-03 16:30:07.364 INFO (MainThread) [homeassistant.components.light] Setting up light.homee 2023-03-03 16:30:07.365 INFO (MainThread) [homeassistant.components.climate] Setting up climate.homee 2023-03-03 16:30:07.365 INFO (MainThread) [homeassistant.components.binary_sensor] Setting up binary_sensor.homee 2023-03-03 16:30:07.367 INFO (MainThread) [homeassistant.components.switch] Setting up switch.homee 2023-03-03 16:30:07.368 INFO (MainThread) [homeassistant.components.cover] Setting up cover.homee 2023-03-03 16:30:07.368 INFO (MainThread) [homeassistant.components.sensor] Setting up sensor.homee 2023-03-03 16:30:07.397 INFO (MainThread) [homeassistant.setup] Setting up homekit 2023-03-03 16:30:07.406 ERROR (MainThread) [homeassistant.components.switch] Error adding entities for domain switch with platform homee Traceback (most recent call last): File "/usr/src/homeassistant/homeassistant/helpers/entity_platform.py", line 442, in async_add_entities await asyncio.gather(*tasks) File "/usr/src/homeassistant/homeassistant/helpers/entity_platform.py", line 607, in _async_add_entity if not entity.name: File "/config/custom_components/homee/switch.py", line 118, in name return attribute_name[0, attribute_name.find("_IMPULSE")] TypeError: string indices must be integers 2023-03-03 16:30:07.445 INFO (MainThread) [homeassistant.setup] Setting up cast 2023-03-03 16:30:07.445 INFO (MainThread) [homeassistant.setup] Setup of domain cast took 0.0 seconds 2023-03-03 16:30:07.445 INFO (MainThread) [homeassistant.setup] Setup of domain homekit took 0.0 seconds 2023-03-03 16:30:07.448 INFO (MainThread) [custom_components.hacs] Stage changed: setup 2023-03-03 16:30:07.449 INFO (MainThread) [custom_components.hacs] Stage changed: waiting 2023-03-03 16:30:07.449 INFO (MainThread) [custom_components.hacs] Setup complete, waiting for Home Assistant before startup tasks starts 2023-03-03 16:30:07.450 ERROR (MainThread) [homeassistant.components.switch] Error while setting up homee platform for switch Traceback (most recent call last): File "/usr/src/homeassistant/homeassistant/helpers/entity_platform.py", line 301, in _async_setup_platform await asyncio.gather(*pending) File "/usr/src/homeassistant/homeassistant/helpers/entity_platform.py", line 442, in async_add_entities await asyncio.gather(*tasks) File "/usr/src/homeassistant/homeassistant/helpers/entity_platform.py", line 607, in _async_add_entity if not entity.name: File "/config/custom_components/homee/switch.py", line 118, in name return attribute_name[0, attribute_name.find("_IMPULSE")] TypeError: string indices must be integers

godza commented 1 year ago

Found the library in question https://pypi.org/project/pymee/

Taraman17 commented 1 year ago

OK, found the error in switch.py - you can retest.

The problem with device discovery does not lie in the pymee library as far as I know. Homee just is not giving out the exact model of a device. If you want, you could try setting log level to debug - then pymee logs all messages it gets from homee. But finding them in the mass of logs produced then is a pain... ;-)

godza commented 1 year ago

I'm happy to confirm that all new switches are present and working as expected.

If the problem is not with pymee, I think I'll have to implement a hack/workaround to make the "stop" button work as expected. I'll have to use Template Cover and proxy all commands and states from the hacss-homee cover you implemented, except for the STOP button, where I'll add custom logic. That way, I will have my cake and eat it too.

Do you know when these changes will end in the new release of hacss-homee?

Thank you very much for your hard work. You've saved me a lot of money. I thought I had wasted my money on a homee device (i bought it only for garage doors), and I would need to buy additional Hormann equipment and shelly smart switches to accomplish what you did here. Once again, thank you!

Taraman17 commented 1 year ago

Great, I had similar problems with the Hörmann/Homee combo - thats why I ended up here. And if my work helps other people too, thats perfect. I think I will also work something out with templates since my device only has one button to send open/stop/close.

I plan to update some deprecated code to make the integration fit for the future and then submit the code. The project owner has been quite quick with approving pull requests, so I expect it to be live be the end of the week.

godza commented 1 year ago

Great! Thank you for your hard work!

Taraman17 commented 1 year ago

Great, I had similar problems with the Hörmann/Homee combo - thats why I ended up here. And if my work helps other people too, thats perfect. I think I will also work something out with templates since my device only has one button to send open/stop/close.

I plan to update some deprecated code to make the integration fit for the future and then submit the code. The project owner has been quite quick with approving pull requests, so I expect it to be live be the end of the week.

serdar-22 commented 1 year ago

hello

i have copy also the switch.py and replace the file. but i have the error bellow:

Logger: homeassistant.components.websocket_api.http.connection Source: helpers/service.py:663 Integration: Home Assistant WebSocket API (documentation, issues) First occurred: 23:03:55 (4 occurrences) Last logged: 23:06:15

[139859328512640] Entity cover.hormann_garagentor_antrieb_serie_4 does not support this service. [139859369167456] Entity cover.hormann_garagentor_antrieb_serie_4 does not support this service. Traceback (most recent call last): File "/usr/src/homeassistant/homeassistant/components/websocket_api/commands.py", line 198, in handle_call_service await hass.services.async_call( File "/usr/src/homeassistant/homeassistant/core.py", line 1808, in async_call task.result() File "/usr/src/homeassistant/homeassistant/core.py", line 1845, in _execute_service await cast(Callable[[ServiceCall], Awaitable[None]], handler.job.target)( File "/usr/src/homeassistant/homeassistant/helpers/entity_component.py", line 213, in handle_service await service.entity_service_call( File "/usr/src/homeassistant/homeassistant/helpers/service.py", line 663, in entity_service_call raise HomeAssistantError( homeassistant.exceptions.HomeAssistantError: Entity cover.hormann_garagentor_antrieb_serie_4 does not support this service.

should I setup a different setting? thank you very much

Taraman17 commented 1 year ago

Did that happen when trying to use a specific button? Can you maybe provide the part of the raw log, where the device info is logged?

serdar-22 commented 1 year ago

sorry it was my mistake. after replacing the cover.py i can steer the door (up,down and stop)

thank you very much for the support and update