Connexoon RTS entities always in unknown state - expected?
Closed this issue · 4 comments
Did you read the instructions?
- I have read the README, including the advanced debugging section.
The problem
I've installed the most recent version in my custom_components
directory. All my devices are detected and I can control the devices (up/down/my button). However, the state of the device is not reflected in Home Assitent. It always tells the state is unknown
:
I know that the RTS device is not capable of returning its state. However, I was hoping ha-tahoma
would optimistically set the state to whatever I executed. That would work for me as I usually don't use the physical switches.
Question is: Is the unknown
state in my situation by design or is there any issue with my setup?
What version of this integration (ha-tahoma) has the issue?
2.12.1 (latest, today)
What version of Home Assistant Core has the issue?
core-2021.12.10
Which gateway / hub do you use?
Somfy Connexoon RTS
Device model
UpDownRollerShutter
Home Assistant log
Logs
2022-01-26 19:29:18 WARNING (SyncWorker_0) [homeassistant.loader] We found a custom integration tahoma which has not been tested by Home Assistant. This component might cause stability problems, be sure to disable it if you experience issues with Home Assistant
2022-01-26 19:29:59 DEBUG (MainThread) [custom_components.tahoma] Finished fetching device events data in 0.034 seconds (success: True)
2022-01-26 19:29:59 DEBUG (MainThread) [custom_components.tahoma] All devices have assumed state. Update interval has been reduced to: 1:00:00
2022-01-26 19:29:59 DEBUG (MainThread) [custom_components.tahoma] Added device (Device(attributes=States(_states=[State(name='rts:diy', type=<DataType.BOOLEAN: 6>, value=False)]), available=True, enabled=True, label=**, device_url=rts://****-****-7665/16713475, controllable_name='rts:RollerShutterRTSComponent', definition=Definition(commands=CommandDefinitions(_commands=[CommandDefinition(command_name='close', nparams=1), CommandDefinition(command_name='down', nparams=1), CommandDefinition(command_name='identify', nparams=0), CommandDefinition(command_name='my', nparams=1), CommandDefinition(command_name='open', nparams=1), CommandDefinition(command_name='rest', nparams=1), CommandDefinition(command_name='stop', nparams=1), CommandDefinition(command_name='test', nparams=0), CommandDefinition(command_name='up', nparams=1), CommandDefinition(command_name='openConfiguration', nparams=1)]), states=[], widget_name='UpDownRollerShutter', ui_class='RollerShutter', qualified_name='rts:RollerShutterRTSComponent'), data_properties=None, widget=<UIWidget.UP_DOWN_ROLLER_SHUTTER: 'UpDownRollerShutter'>, ui_class=<UIClass.ROLLER_SHUTTER: 'RollerShutter'>, states=States(_states=[]), type=<ProductType.ACTUATOR: 1>, place_oid='c05581ba-0f7c-4ab5-8330-04f100739f77'))
2022-01-26 19:29:59 DEBUG (MainThread) [custom_components.tahoma] Added device (Device(attributes=States(_states=[State(name='rts:diy', type=<DataType.BOOLEAN: 6>, value=False)]), available=True, enabled=True, label=**ü**ü**, device_url=rts://****-****-7665/16715189, controllable_name='rts:RollerShutterRTSComponent', definition=Definition(commands=CommandDefinitions(_commands=[CommandDefinition(command_name='close', nparams=1), CommandDefinition(command_name='down', nparams=1), CommandDefinition(command_name='identify', nparams=0), CommandDefinition(command_name='my', nparams=1), CommandDefinition(command_name='open', nparams=1), CommandDefinition(command_name='rest', nparams=1), CommandDefinition(command_name='stop', nparams=1), CommandDefinition(command_name='test', nparams=0), CommandDefinition(command_name='up', nparams=1), CommandDefinition(command_name='openConfiguration', nparams=1)]), states=[], widget_name='UpDownRollerShutter', ui_class='RollerShutter', qualified_name='rts:RollerShutterRTSComponent'), data_properties=None, widget=<UIWidget.UP_DOWN_ROLLER_SHUTTER: 'UpDownRollerShutter'>, ui_class=<UIClass.ROLLER_SHUTTER: 'RollerShutter'>, states=States(_states=[]), type=<ProductType.ACTUATOR: 1>, place_oid='c05581ba-0f7c-4ab5-8330-04f100739f77'))
2022-01-26 19:29:59 DEBUG (MainThread) [custom_components.tahoma] Added device (Device(attributes=States(_states=[State(name='rts:diy', type=<DataType.BOOLEAN: 6>, value=False)]), available=True, enabled=True, label=**ü**, device_url=rts://****-****-7665/16723116, controllable_name='rts:RollerShutterRTSComponent', definition=Definition(commands=CommandDefinitions(_commands=[CommandDefinition(command_name='close', nparams=1), CommandDefinition(command_name='down', nparams=1), CommandDefinition(command_name='identify', nparams=0), CommandDefinition(command_name='my', nparams=1), CommandDefinition(command_name='open', nparams=1), CommandDefinition(command_name='rest', nparams=1), CommandDefinition(command_name='stop', nparams=1), CommandDefinition(command_name='test', nparams=0), CommandDefinition(command_name='up', nparams=1), CommandDefinition(command_name='openConfiguration', nparams=1)]), states=[], widget_name='UpDownRollerShutter', ui_class='RollerShutter', qualified_name='rts:RollerShutterRTSComponent'), data_properties=None, widget=<UIWidget.UP_DOWN_ROLLER_SHUTTER: 'UpDownRollerShutter'>, ui_class=<UIClass.ROLLER_SHUTTER: 'RollerShutter'>, states=States(_states=[]), type=<ProductType.ACTUATOR: 1>, place_oid='c05581ba-0f7c-4ab5-8330-04f100739f77'))
2022-01-26 19:29:59 DEBUG (MainThread) [custom_components.tahoma] Added device (Device(attributes=States(_states=[State(name='rts:diy', type=<DataType.BOOLEAN: 6>, value=False)]), available=True, enabled=True, label=**ü**ü**, device_url=rts://****-****-7665/16730343, controllable_name='rts:RollerShutterRTSComponent', definition=Definition(commands=CommandDefinitions(_commands=[CommandDefinition(command_name='close', nparams=1), CommandDefinition(command_name='down', nparams=1), CommandDefinition(command_name='identify', nparams=0), CommandDefinition(command_name='my', nparams=1), CommandDefinition(command_name='open', nparams=1), CommandDefinition(command_name='rest', nparams=1), CommandDefinition(command_name='stop', nparams=1), CommandDefinition(command_name='test', nparams=0), CommandDefinition(command_name='up', nparams=1), CommandDefinition(command_name='openConfiguration', nparams=1)]), states=[], widget_name='UpDownRollerShutter', ui_class='RollerShutter', qualified_name='rts:RollerShutterRTSComponent'), data_properties=None, widget=<UIWidget.UP_DOWN_ROLLER_SHUTTER: 'UpDownRollerShutter'>, ui_class=<UIClass.ROLLER_SHUTTER: 'RollerShutter'>, states=States(_states=[]), type=<ProductType.ACTUATOR: 1>, place_oid='c05581ba-0f7c-4ab5-8330-04f100739f77'))
2022-01-26 19:29:59 DEBUG (MainThread) [custom_components.tahoma] Added device (Device(attributes=States(_states=[State(name='rts:diy', type=<DataType.BOOLEAN: 6>, value=False)]), available=True, enabled=True, label=**, device_url=rts://****-****-7665/16731473, controllable_name='rts:RollerShutterRTSComponent', definition=Definition(commands=CommandDefinitions(_commands=[CommandDefinition(command_name='close', nparams=1), CommandDefinition(command_name='down', nparams=1), CommandDefinition(command_name='identify', nparams=0), CommandDefinition(command_name='my', nparams=1), CommandDefinition(command_name='open', nparams=1), CommandDefinition(command_name='rest', nparams=1), CommandDefinition(command_name='stop', nparams=1), CommandDefinition(command_name='test', nparams=0), CommandDefinition(command_name='up', nparams=1), CommandDefinition(command_name='openConfiguration', nparams=1)]), states=[], widget_name='UpDownRollerShutter', ui_class='RollerShutter', qualified_name='rts:RollerShutterRTSComponent'), data_properties=None, widget=<UIWidget.UP_DOWN_ROLLER_SHUTTER: 'UpDownRollerShutter'>, ui_class=<UIClass.ROLLER_SHUTTER: 'RollerShutter'>, states=States(_states=[]), type=<ProductType.ACTUATOR: 1>, place_oid='c05581ba-0f7c-4ab5-8330-04f100739f77'))
2022-01-26 19:29:59 DEBUG (MainThread) [custom_components.tahoma] Added device (Device(attributes=States(_states=[State(name='rts:diy', type=<DataType.BOOLEAN: 6>, value=False)]), available=True, enabled=True, label=**ü**, device_url=rts://****-****-7665/16757382, controllable_name='rts:ExteriorVenetianBlindRTSComponent', definition=Definition(commands=CommandDefinitions(_commands=[CommandDefinition(command_name='close', nparams=1), CommandDefinition(command_name='down', nparams=1), CommandDefinition(command_name='identify', nparams=0), CommandDefinition(command_name='my', nparams=1), CommandDefinition(command_name='open', nparams=1), CommandDefinition(command_name='rest', nparams=1), CommandDefinition(command_name='stop', nparams=1), CommandDefinition(command_name='test', nparams=0), CommandDefinition(command_name='up', nparams=1), CommandDefinition(command_name='moveOf', nparams=2), CommandDefinition(command_name='openConfiguration', nparams=1), CommandDefinition(command_name='tiltNegative', nparams=2), CommandDefinition(command_name='tiltPositive', nparams=2)]), states=[], widget_name='UpDownExteriorVenetianBlind', ui_class='ExteriorVenetianBlind', qualified_name='rts:ExteriorVenetianBlindRTSComponent'), data_properties=None, widget=<UIWidget.UP_DOWN_EXTERIOR_VENETIAN_BLIND: 'UpDownExteriorVenetianBlind'>, ui_class=<UIClass.EXTERIOR_VENETIAN_BLIND: 'ExteriorVenetianBlind'>, states=States(_states=[]), type=<ProductType.ACTUATOR: 1>, place_oid='c05581ba-0f7c-4ab5-8330-04f100739f77'))
2022-01-26 19:29:59 DEBUG (MainThread) [custom_components.tahoma] Added device (Device(attributes=States(_states=[State(name='rts:diy', type=<DataType.BOOLEAN: 6>, value=False)]), available=True, enabled=True, label=**ü**ü**, device_url=rts://****-****-7665/16760210, controllable_name='rts:RollerShutterRTSComponent', definition=Definition(commands=CommandDefinitions(_commands=[CommandDefinition(command_name='close', nparams=1), CommandDefinition(command_name='down', nparams=1), CommandDefinition(command_name='identify', nparams=0), CommandDefinition(command_name='my', nparams=1), CommandDefinition(command_name='open', nparams=1), CommandDefinition(command_name='rest', nparams=1), CommandDefinition(command_name='stop', nparams=1), CommandDefinition(command_name='test', nparams=0), CommandDefinition(command_name='up', nparams=1), CommandDefinition(command_name='openConfiguration', nparams=1)]), states=[], widget_name='UpDownRollerShutter', ui_class='RollerShutter', qualified_name='rts:RollerShutterRTSComponent'), data_properties=None, widget=<UIWidget.UP_DOWN_ROLLER_SHUTTER: 'UpDownRollerShutter'>, ui_class=<UIClass.ROLLER_SHUTTER: 'RollerShutter'>, states=States(_states=[]), type=<ProductType.ACTUATOR: 1>, place_oid='c05581ba-0f7c-4ab5-8330-04f100739f77'))
2022-01-26 19:29:59 DEBUG (MainThread) [custom_components.tahoma] Added device (Device(attributes=States(_states=[State(name='rts:diy', type=<DataType.BOOLEAN: 6>, value=False)]), available=True, enabled=True, label=**, device_url=rts://****-****-7665/16770277, controllable_name='rts:ExteriorVenetianBlindRTSComponent', definition=Definition(commands=CommandDefinitions(_commands=[CommandDefinition(command_name='close', nparams=1), CommandDefinition(command_name='down', nparams=1), CommandDefinition(command_name='identify', nparams=0), CommandDefinition(command_name='my', nparams=1), CommandDefinition(command_name='open', nparams=1), CommandDefinition(command_name='rest', nparams=1), CommandDefinition(command_name='stop', nparams=1), CommandDefinition(command_name='test', nparams=0), CommandDefinition(command_name='up', nparams=1), CommandDefinition(command_name='moveOf', nparams=2), CommandDefinition(command_name='openConfiguration', nparams=1), CommandDefinition(command_name='tiltNegative', nparams=2), CommandDefinition(command_name='tiltPositive', nparams=2)]), states=[], widget_name='UpDownExteriorVenetianBlind', ui_class='ExteriorVenetianBlind', qualified_name='rts:ExteriorVenetianBlindRTSComponent'), data_properties=None, widget=<UIWidget.UP_DOWN_EXTERIOR_VENETIAN_BLIND: 'UpDownExteriorVenetianBlind'>, ui_class=<UIClass.EXTERIOR_VENETIAN_BLIND: 'ExteriorVenetianBlind'>, states=States(_states=[]), type=<ProductType.ACTUATOR: 1>, place_oid='c05581ba-0f7c-4ab5-8330-04f100739f77'))
2022-01-26 19:29:59 DEBUG (MainThread) [custom_components.tahoma] Added device (Device(attributes=States(_states=[State(name='rts:diy', type=<DataType.BOOLEAN: 6>, value=False)]), available=True, enabled=True, label=**ü**, device_url=rts://****-****-7665/16773498, controllable_name='rts:RollerShutterRTSComponent', definition=Definition(commands=CommandDefinitions(_commands=[CommandDefinition(command_name='close', nparams=1), CommandDefinition(command_name='down', nparams=1), CommandDefinition(command_name='identify', nparams=0), CommandDefinition(command_name='my', nparams=1), CommandDefinition(command_name='open', nparams=1), CommandDefinition(command_name='rest', nparams=1), CommandDefinition(command_name='stop', nparams=1), CommandDefinition(command_name='test', nparams=0), CommandDefinition(command_name='up', nparams=1), CommandDefinition(command_name='openConfiguration', nparams=1)]), states=[], widget_name='UpDownRollerShutter', ui_class='RollerShutter', qualified_name='rts:RollerShutterRTSComponent'), data_properties=None, widget=<UIWidget.UP_DOWN_ROLLER_SHUTTER: 'UpDownRollerShutter'>, ui_class=<UIClass.ROLLER_SHUTTER: 'RollerShutter'>, states=States(_states=[]), type=<ProductType.ACTUATOR: 1>, place_oid='c05581ba-0f7c-4ab5-8330-04f100739f77'))
2022-01-26 19:29:59 DEBUG (MainThread) [custom_components.tahoma] Added device (Device(attributes=States(_states=[State(name='rts:diy', type=<DataType.BOOLEAN: 6>, value=False)]), available=True, enabled=True, label=**, device_url=rts://****-****-7665/16774285, controllable_name='rts:RollerShutterRTSComponent', definition=Definition(commands=CommandDefinitions(_commands=[CommandDefinition(command_name='close', nparams=1), CommandDefinition(command_name='down', nparams=1), CommandDefinition(command_name='identify', nparams=0), CommandDefinition(command_name='my', nparams=1), CommandDefinition(command_name='open', nparams=1), CommandDefinition(command_name='rest', nparams=1), CommandDefinition(command_name='stop', nparams=1), CommandDefinition(command_name='test', nparams=0), CommandDefinition(command_name='up', nparams=1), CommandDefinition(command_name='openConfiguration', nparams=1)]), states=[], widget_name='UpDownRollerShutter', ui_class='RollerShutter', qualified_name='rts:RollerShutterRTSComponent'), data_properties=None, widget=<UIWidget.UP_DOWN_ROLLER_SHUTTER: 'UpDownRollerShutter'>, ui_class=<UIClass.ROLLER_SHUTTER: 'RollerShutter'>, states=States(_states=[]), type=<ProductType.ACTUATOR: 1>, place_oid='c05581ba-0f7c-4ab5-8330-04f100739f77'))
2022-01-26 19:29:59 DEBUG (MainThread) [custom_components.tahoma] Added gateway (Gateway(partners=[], functions='INTERNET_AUTHORIZATION,SCENARIO_DOWNLOAD,SCENARIO_TELECO_LAUNCHING,INTERNET_UPLOAD,INTERNET_UPDATE,TRIGGERS_SENSORS', sub_type=<GatewaySubType.TAHOMA_BASIC: 1>, id=****-****-7665, gateway_id=****-****-7665, alive=True, mode='NO_AUTO', place_oid='c05581ba-0f7c-4ab5-8330-04f100739f77', time_reliable=True, connectivity=Connectivity(status='OK', protocol_version='2021.5.4'), up_to_date=True, update_status=<UpdateBoxStatus.UP_TO_DATE: 'UP_TO_DATE'>, sync_in_progress=False, type=<GatewayType.CONNEXOON_RTS: 53>))
2022-01-26 19:30:02 DEBUG (MainThread) [custom_components.tahoma.config_flow] ZeroConf discovery detected gateway ****-****-7665
2022-01-26 19:30:02 DEBUG (MainThread) [custom_components.tahoma.config_flow] Gateway ****-****-7665 is already configured
2022-01-26 19:31:01 DEBUG (MainThread) [custom_components.tahoma.coordinator] Event(timestamp=1643221863219, name=<EventName.EXECUTION_REGISTERED: 'ExecutionRegisteredEvent'>, setupoid=_CountingAttr(counter=304, _default=None, repr=<function obfuscate_id at 0x6d57e610>, eq=True, order=True, hash=None, init=True, on_setattr=None, metadata={}), owner_key=None, type=1, sub_type=1, time_to_next_state=None, failed_commands=None, failure_type_code=None, failure_type=None, condition_groupoid=None, place_oid=None, label='Home Assistant', metadata='', camera_id=None, deleted_raw_devices_count=None, protocol_type=None, gateway_id=None, exec_id='97a7cb32-98e4-e192-3324-f085b977bf35', device_url=None, device_states=[], old_state=None, new_state=None)
2022-01-26 19:31:01 DEBUG (MainThread) [custom_components.tahoma.coordinator] Event(timestamp=1643221863219, name=<EventName.EXECUTION_STATE_CHANGED: 'ExecutionStateChangedEvent'>, setupoid=_CountingAttr(counter=304, _default=None, repr=<function obfuscate_id at 0x6d57e610>, eq=True, order=True, hash=None, init=True, on_setattr=None, metadata={}), owner_key=e7e6901a-****-4f****-9ed****-84bf658c9fe8, type=1, sub_type=1, time_to_next_state=0, failed_commands=None, failure_type_code=None, failure_type=None, condition_groupoid=None, place_oid=None, label=None, metadata=None, camera_id=None, deleted_raw_devices_count=None, protocol_type=None, gateway_id=None, exec_id='97a7cb32-98e4-e192-3324-f085b977bf35', device_url=None, device_states=[], old_state=<ExecutionState.INITIALIZED: 'INITIALIZED'>, new_state=<ExecutionState.NOT_TRANSMITTED: 'NOT_TRANSMITTED'>)
2022-01-26 19:31:01 DEBUG (MainThread) [custom_components.tahoma.coordinator] Event(timestamp=1643221863219, name=<EventName.GATEWAY_SYNCHRONIZATION_STARTED: 'GatewaySynchronizationStartedEvent'>, setupoid=_CountingAttr(counter=304, _default=None, repr=<function obfuscate_id at 0x6d57e610>, eq=True, order=True, hash=None, init=True, on_setattr=None, metadata={}), owner_key=None, type=None, sub_type=None, time_to_next_state=None, failed_commands=None, failure_type_code=None, failure_type=None, condition_groupoid=None, place_oid=None, label=None, metadata=None, camera_id=None, deleted_raw_devices_count=None, protocol_type=None, gateway_id=****-****-7665, exec_id=None, device_url=None, device_states=[], old_state=None, new_state=None)
2022-01-26 19:31:01 DEBUG (MainThread) [custom_components.tahoma.coordinator] Event(timestamp=1643221863220, name=<EventName.EXECUTION_STATE_CHANGED: 'ExecutionStateChangedEvent'>, setupoid=_CountingAttr(counter=304, _default=None, repr=<function obfuscate_id at 0x6d57e610>, eq=True, order=True, hash=None, init=True, on_setattr=None, metadata={}), owner_key=e7e6901a-****-4f****-9ed****-84bf658c9fe8, type=1, sub_type=1, time_to_next_state=0, failed_commands=None, failure_type_code=None, failure_type=None, condition_groupoid=None, place_oid=None, label=None, metadata=None, camera_id=None, deleted_raw_devices_count=None, protocol_type=None, gateway_id=None, exec_id='97a7cb32-98e4-e192-3324-f085b977bf35', device_url=None, device_states=[], old_state=<ExecutionState.NOT_TRANSMITTED: 'NOT_TRANSMITTED'>, new_state=<ExecutionState.TRANSMITTED: 'TRANSMITTED'>)
2022-01-26 19:31:01 DEBUG (MainThread) [custom_components.tahoma.coordinator] Event(timestamp=1643221863220, name=<EventName.GATEWAY_SYNCHRONIZATION_ENDED: 'GatewaySynchronizationEndedEvent'>, setupoid=_CountingAttr(counter=304, _default=None, repr=<function obfuscate_id at 0x6d57e610>, eq=True, order=True, hash=None, init=True, on_setattr=None, metadata={}), owner_key=None, type=None, sub_type=None, time_to_next_state=None, failed_commands=None, failure_type_code=None, failure_type=None, condition_groupoid=None, place_oid=None, label=None, metadata=None, camera_id=None, deleted_raw_devices_count=None, protocol_type=None, gateway_id=****-****-7665, exec_id=None, device_url=None, device_states=[], old_state=None, new_state=None)
2022-01-26 19:31:01 DEBUG (MainThread) [custom_components.tahoma] Finished fetching device events data in 0.045 seconds (success: True)
Additional information
No response
By design. We don't support optimistic state as we think this is something that should be provided by Home Assistant core, or tracked via a cover template.
Maybe not the answer you are looking for, but perhaps you can create a cover template or use a custom component that adds this.
Thanks for the hint @iMicknl ! That seems to work 👍
Here an example in case other folks want to do the same thing:
cover:
- platform: template
covers:
wrapped_cover:
device_class: shade
friendly_name: "My wrapper cover"
open_cover:
- service: cover.open_cover
target:
entity_id: cover.$SOMFY_NAME
close_cover:
- service: cover.close_cover
target:
entity_id: cover.$SOMFY_NAME
By design. We don't support optimistic state as we think this is something that should be provided by Home Assistant core, or tracked via a cover template.
That means a PR to make this ☝️ an option for RTS devices in ha-tahoma
would not be accepted, right?
Yes indeed. And if I remember well HA does not allow anymore such option too.
@larsxschneider does your cover template already provide everything you are looking for? It seems that optimistic mode is enabled by default in your scenario. https://www.home-assistant.io/integrations/cover.template/#optimistic
Indeed, we wouldn't accept such modifications for this repo, especially since we are migrating everything to core and it won't be accepted there. Perhaps it is good to create a proposal on https://github.com/home-assistant/architecture/discussions. I can imagine there are other requests and/or integrations that still implement a custom optimistic option?