Shouldn’t buy one per motor?
I’ll look at the TaHoma Switch as well, but actually I’m not able to find a store for that and have no idea about the price. The Box V2 I’ve found is in offer, so that could be an option. Is there a particular reason to not use Box V2 expect price? Switch has zigbee, which is good, btw I’ve already a zigbee2mqtt setup.
Thanks @imick for your help!
Simon
No . You would just need one hub and it will communicate via the IO protocol with all your devices. One hub is enough. I would not use the Zigbee part of your hub though, since every command is going through the Somfy cloud, thus you can better run and control it locally via HA.
I would say that the TaHoma V2 is fine, however it is a bit older hardware and I don’t know about the future support. The TaHoma Switch is newer, but maybe hard to get in your country…
@tetienne anything to add?
You have wired command for your motors? If yes, just run away from Somfy, and buy a shelly 2.5 or a Fibaro Roller Shutter if you have a Zwave stick. You will have local control.
Hello @tetienne sorry not totally understood the question. The 3 motors are controlled actually with a Somfy 5 io Pure controller (this: https://www.somfy.it/soluzioni/1870330/situo-5-io-pure).
The motors are into the Pergola, i know they are controlled only via the controller (or the box if I purchase it) and no wired button to control them otherwise.
Thanks for the help! Simon
By the way I have contacted Somfy support (The Netherlands) 2 or 3 weeks ago (some problems with my smoke detectors in combination with the tahoma v1), i was complaining again about the missing local api support.
The support men was telling me that he gets a lot of complains and that there were considering it to have it at some time.
But I don’t believe it…but maybe.
Then I expect that they will only add it to the newest box Tahoma Switch. So I should definetly buy that box and not the Tahome V2.
Nooo… so sorry, this is way stupid… of course
do we have a link to a bug issue tracker? I do feel this should be fixed.
btw, what should be the entities we see on RTS devices? Right now, I only have the regular device with up/down arrows. there is a MY position registered, because I can set that using the service, but no entity is created for it, nor are any Rssi entities available (and yes, I check hidden entities… there are none)
Since the last Tahoma upgrade, I have also missing state. I will try to understand what happened.
Yes I know, but it is not sure if it also works with the Tahoma v1.
Hello. I don’t find if already asked, if so i’m sorry…
Since some time when I reboot HA your Thaoma Integration will find my thaoma device as a new device and ask for configuration, but I see also another device alredy configured. And if I configure new device I get Device already configured message.
Thanks for help
This is now the second time this week I get this message:
So my automations are not working anymore till I reconfigure the integration.
Are there problems at the Somfy side?
Could you create an issue on GitHub please? (with your debug log). This looks related to our new discovery mechanism, however I wonder why this is still popping up. I assume you have just one hub?
You could check your log, however this is something that we can’t fix easily. This ‘reauth’ flow has been introduced to prevent users from being banned. I would say that Somfy is currently updating their servers and that’s the reason why you see this error.
Perhaps you could create a (mobile) notification when you have to reauth, so that you know it before your automations stop working.
Is there a fix for this error, I get it all the time →
Retrying setup: Too many requests, try again later?
I have to remove the integration for a while, then add it back
Hi there,
yes I have only 1 connexxon with 2 devices: garage door and gate on IO.
Here is log on reboot:
2021-10-01 08:46:12 DEBUG (MainThread) [custom_components.tahoma] Initialized DataUpdateCoordinator with 0:00:30 interval.
2021-10-01 08:46:12 DEBUG (MainThread) [custom_components.tahoma] Finished fetching device events data in 0.108 seconds (success: True)
2021-10-01 08:46:12 DEBUG (MainThread) [custom_components.tahoma] Added device (Device(attributes=States(_states=[State(name='core:FirmwareRevision', type=<DataType.STRING: 3>, value='5102007G06'), State(name='core:Manufacturer', type=<DataType.STRING: 3>, value='Somfy')]), available=True, enabled=True, label='Cancello Carrabile', deviceurl=io://****-****-2035/11704391, controllable_name='io:DiscreteGateOpenerIOComponent', definition=Definition(commands=CommandDefinitions(_commands=[CommandDefinition(command_name='advancedRefresh', nparams=1), CommandDefinition(command_name='close', nparams=0), CommandDefinition(command_name='delayedStopIdentify', nparams=1), CommandDefinition(command_name='getName', nparams=0), CommandDefinition(command_name='identify', nparams=0), CommandDefinition(command_name='open', nparams=0), CommandDefinition(command_name='refreshPedestrianPosition', nparams=0), CommandDefinition(command_name='setName', nparams=1), CommandDefinition(command_name='setPedestrianPosition', nparams=0), CommandDefinition(command_name='startIdentify', nparams=0), CommandDefinition(command_name='stop', nparams=0), CommandDefinition(command_name='stopIdentify', nparams=0), CommandDefinition(command_name='wink', nparams=1), CommandDefinition(command_name='runManufacturerSettingsCommand', nparams=2), CommandDefinition(command_name='keepOneWayControllersAndDeleteNode', nparams=0), CommandDefinition(command_name='pairOneWayController', nparams=2), CommandDefinition(command_name='sendIOKey', nparams=0), CommandDefinition(command_name='setConfigState', nparams=1), CommandDefinition(command_name='unpairAllOneWayControllersAndDeleteNode', nparams=0), CommandDefinition(command_name='unpairAllOneWayControllers', nparams=0), CommandDefinition(command_name='unpairOneWayController', nparams=2)]), states=[StateDefinition(qualified_name='core:AdditionalStatusState', type='DataState', values=None), StateDefinition(qualified_name='core:DiscreteRSSILevelState', type='DiscreteState', values=['good', 'low', 'normal', 'verylow']), StateDefinition(qualified_name='core:ManufacturerSettingsState', type='DataState', values=None), StateDefinition(qualified_name='core:NameState', type='DataState', values=None), StateDefinition(qualified_name='core:OpenClosedPedestrianState', type='DiscreteState', values=['closed', 'open', 'pedestrian', 'unknown']), StateDefinition(qualified_name='core:PedestrianPositionState', type='ContinuousState', values=None), StateDefinition(qualified_name='core:PriorityLockTimerState', type='ContinuousState', values=None), StateDefinition(qualified_name='core:RSSILevelState', type='ContinuousState', values=None), StateDefinition(qualified_name='core:StatusState', type='DiscreteState', values=['available', 'unavailable']), StateDefinition(qualified_name='io:PriorityLockLevelState', type='DiscreteState', values=['comfortLevel1', 'comfortLevel2', 'comfortLevel3', 'comfortLevel4', 'environmentProtection', 'humanProtection', 'userLevel1', 'userLevel2']), StateDefinition(qualified_name='io:PriorityLockOriginatorState', type='DiscreteState', values=['LSC', 'SAAC', 'SFC', 'UPS', 'externalGateway', 'localUser', 'myself', 'rain', 'security', 'temperature', 'timer', 'user', 'wind'])], widget_name='DiscreteGateWithPedestrianPosition', ui_class='Gate', qualified_name='io:DiscreteGateOpenerIOComponent'), data_properties=None, widget='DiscreteGateWithPedestrianPosition', ui_class='Gate', states=States(_states=[State(name='core:NameState', type=<DataType.STRING: 3>, value='Cancello Carrabi'), State(name='core:PriorityLockTimerState', type=<DataType.INTEGER: 1>, value=0), State(name='core:OpenClosedPedestrianState', type=<DataType.STRING: 3>, value='unknown'), State(name='core:StatusState', type=<DataType.STRING: 3>, value='available'), State(name='core:DiscreteRSSILevelState', type=<DataType.STRING: 3>, value='low'), State(name='core:RSSILevelState', type=<DataType.FLOAT: 2>, value=30.0), State(name='core:PedestrianPositionState', type=<DataType.INTEGER: 1>, value=50)]), type=<ProductType.ACTUATOR: 1>, placeoid='cf665f4c-377b-4e80-9e76-eba0f98ca96e'))
2021-10-01 08:46:12 DEBUG (MainThread) [custom_components.tahoma] Added device (Device(attributes=States(_states=[State(name='core:Manufacturer', type=<DataType.STRING: 3>, value='Somfy'), State(name='core:FirmwareRevision', type=<DataType.STRING: 3>, value='5047247X47')]), available=True, enabled=True, label='Garage', deviceurl=io://****-****-2035/12639690, controllable_name='io:GarageOpenerIOComponent', definition=Definition(commands=CommandDefinitions(_commands=[CommandDefinition(command_name='advancedRefresh', nparams=1), CommandDefinition(command_name='close', nparams=0), CommandDefinition(command_name='delayedStopIdentify', nparams=1), CommandDefinition(command_name='down', nparams=0), CommandDefinition(command_name='getName', nparams=0), CommandDefinition(command_name='identify', nparams=0), CommandDefinition(command_name='open', nparams=0), CommandDefinition(command_name='setClosure', nparams=1), CommandDefinition(command_name='setName', nparams=1), CommandDefinition(command_name='startIdentify', nparams=0), CommandDefinition(command_name='stop', nparams=0), CommandDefinition(command_name='stopIdentify', nparams=0), CommandDefinition(command_name='up', nparams=0), CommandDefinition(command_name='wink', nparams=1), CommandDefinition(command_name='runManufacturerSettingsCommand', nparams=2), CommandDefinition(command_name='keepOneWayControllersAndDeleteNode', nparams=0), CommandDefinition(command_name='pairOneWayController', nparams=2), CommandDefinition(command_name='sendIOKey', nparams=0), CommandDefinition(command_name='setConfigState', nparams=1), CommandDefinition(command_name='unpairAllOneWayControllersAndDeleteNode', nparams=0), CommandDefinition(command_name='unpairAllOneWayControllers', nparams=0), CommandDefinition(command_name='unpairOneWayController', nparams=2)]), states=[StateDefinition(qualified_name='core:AdditionalStatusState', type='DataState', values=None), StateDefinition(qualified_name='core:ClosureState', type='ContinuousState', values=None), StateDefinition(qualified_name='core:DiscreteRSSILevelState', type='DiscreteState', values=['good', 'low', 'normal', 'verylow']), StateDefinition(qualified_name='core:ManufacturerSettingsState', type='DataState', values=None), StateDefinition(qualified_name='core:NameState', type='DataState', values=None), StateDefinition(qualified_name='core:OpenClosedUnknownState', type='DiscreteState', values=['closed', 'open', 'unknown']), StateDefinition(qualified_name='core:PriorityLockTimerState', type='ContinuousState', values=None), StateDefinition(qualified_name='core:RSSILevelState', type='ContinuousState', values=None), StateDefinition(qualified_name='core:StatusState', type='DiscreteState', values=['available', 'unavailable']), StateDefinition(qualified_name='io:PriorityLockLevelState', type='DiscreteState', values=['comfortLevel1', 'comfortLevel2', 'comfortLevel3', 'comfortLevel4', 'environmentProtection', 'humanProtection', 'userLevel1', 'userLevel2']), StateDefinition(qualified_name='io:PriorityLockOriginatorState', type='DiscreteState', values=['LSC', 'SAAC', 'SFC', 'UPS', 'externalGateway', 'localUser', 'myself', 'rain', 'security', 'temperature', 'timer', 'user', 'wind'])], widget_name='PositionableGarageDoor', ui_class='GarageDoor', qualified_name='io:GarageOpenerIOComponent'), data_properties=None, widget='PositionableGarageDoor', ui_class='GarageDoor', states=States(_states=[State(name='core:NameState', type=<DataType.STRING: 3>, value='Garage'), State(name='core:PriorityLockTimerState', type=<DataType.INTEGER: 1>, value=0), State(name='core:StatusState', type=<DataType.STRING: 3>, value='available'), State(name='core:DiscreteRSSILevelState', type=<DataType.STRING: 3>, value='good'), State(name='core:RSSILevelState', type=<DataType.FLOAT: 2>, value=100.0), State(name='core:ClosureState', type=<DataType.INTEGER: 1>, value=100), State(name='core:OpenClosedUnknownState', type=<DataType.STRING: 3>, value='closed')]), type=<ProductType.ACTUATOR: 1>, placeoid='cf665f4c-377b-4e80-9e76-eba0f98ca96e'))
2021-10-01 08:46:12 DEBUG (MainThread) [custom_components.tahoma] Added gateway (0817-4709-2035 - GatewayType.CONNEXOON - GatewaySubType.TAHOMA_SERENITY)
2021-10-01 08:46:36 DEBUG (MainThread) [custom_components.tahoma.config_flow] DHCP discovery detected gateway somfy-connexon
2021-10-01 08:46:42 DEBUG (MainThread) [custom_components.tahoma] Finished fetching device events data in 0.127 seconds (success: True)
Thanks! Could you create an issue on GitHub with your log? It seems that the discovery is not detecting your gateway id correctly… However, if you ignore it once, it should not come back on every reboot.
Could you perhaps add your context here. Do you just own RTS devices perhaps?
That is a good idea but according to me there are no possibilities inside Home Assistant to trigger when the integration needs to be re-authenticated?
This is great day With the latest HA release, I was finally able to control locally my cover and awning!
Indeed, there was a fix for the HomeKit Controller allowing HA to be paired with the Tahoma through the Homekit protocol.
And because it’s homekit, the communication is local, no cloud. I just tested it turning off my internet connection and I was still able to control my covers.
How to:
- Your box must be compatible with HomeKit (Tahoma V2 and switch for instance)
- Within HA, go to dev tools > entities
- Look for sensor.homekit_setup_code
- Keep the code somewhere
- Now go to Configuration > Integration > HomeKit Controller
- Normally, you should see your Tahoma listed
- Select it, and enter the PIN code you find previously.
The cons:
- Only few devices are supported. See here. Homekit required full state (meaning no RTS)
- Because of the Somfy implementation of the awning, the state is reversed for the awning. The workaround is to use a cover template.
- I don’t know why, there is no stop button
- You haven’t any sensors related to your cover. So no RSSI, no lockoff sensor, etc.
- No my position support
Nice fix from HA, lots of features are missing on Somfy’s side though (what a surprise…). Velux covers aren’t part of compatible devices either.
That is big news. I have unfortunately a Somfy Tahoma v1.
But I’m willing to buy a new box when it is a very reliable solution.
So let us know if it works stable the comming period.
Some questions:
-
are the RS100 IO and SUNEA IO supported?
-
can you use also template covers locally?
-
will this not trigger anymore messages that you have to reconfigure the integration or other login items?
-
can you have a poll interval of 1 second locally?
- From the link above, yes.
- Template cover behavior will depend of what you do inside. If you map it to only local integrations so yes it will be local.
- You are not using the Overkiz integration, you talk directly to the hub. Only the pairing code is required. I cannot tell you yet if it’s stable. But I guess it is.
- Homekit controller uses local push. So there is no interval. You have the updated state (almost) immediately, even when you use the remote.