First, I would like to thank Lennart Kuijs for making this app many years ago. I have found it extremely useful and it inspired me to write some of my own apps. However, Lennart no longer has the spare time to maintain the app, so he has handed the reins over to me.
I hope to bring the app up to date with Athoms and Node.js latest standards plus add support for new devices that users have connected to their hub.
I have released my first version of the app to the Athom store at version 2.0.0 to make it easier to see the transition point.
This version has support for new devices plus it uses a more modern communication library that is smaller and faster.
The currently supported devices are:
- IO vertical exterior blinds
- IO roller shutters
- IO horizontal awnings
- IO exterior venetian blinds
- Velux IO roof windows
- Velux IO blinds
- Velux IO roller shutters
- Sunis wirefree IO sensor
- Thermis wirefree IO sensor
- Opening Detector IO sensor
- TaHoma scenarios
- Somfy One Alarm
- Outdoor Camera Light Controller
- Enocean Window Handle (requires Enocean USB module)
- Somfy receiver IZYMO io shutter
- IO motion sensor
- IO vertical interior blind
- IO garage door
- IO horizontal awnings with silent mode
- RTS interior curtains
- RTS vertical blind
- RTS interior venetian blind
- IO Pergola
- IO Dimmable Light
- Several Hue Lights
- Pilot Wire Programmer
- Atlanta Heating System
- RTS Exterior Blind
- KeyGo remote
- Atlantic Main Zone Controller
- Atlantic Electric Heater
- Radiator Valve
- RTDS Water Sensor
- Sliding Gate
- RTS Horzontal Awning
Once you have installed the app you will need to open the Configure App page to enter your Somfy username and password so the app is able to connect to your account.
Enter your credentials and tap on Save Credentials and the app will attempt to log into your Somfy account. If the login is successful your details will be saved and you will see a green successful message.
If there is a problem the message will appear in red. First double check the details have been entered in correctly. If you still have problems the try changing to a different Connection URL.
If they all fail then set it back to the Default option and try again later. Somfy often have issues with logging in.
Further down the page you will see an option for polling:
Polling is the method used to get updates about the status of you devices. When polling is enabled the app will request updated from the server every ‘Sync Speed’ seconds.
If only have covers that you want to operate but don’t need to keep in sync with the app then switch off the polling.
If you have sensors such as the Sunis, presence detector or opening detectors that will trigger flows then you will need to have polling switched on. The lower the Sync Speed value the faster the app will respond to state changes.
Keep the server request low
Somfy don’t like having their servers polled. So turn off polling if you don’t need to poll or if you do need it then try to select the highest Sync Speed value that allows you to just do what you want.
There are flow action cards that can change the speed and switch polling on and off. To reduce the traffic between the app and the servers even more you might want to setup flows to reduce the speed when you are not home or when you are in bed. If you just have a Sunis then turn polling off after sunset and back on just before sunset.
Requesting new features / devices
I have also added features that make it easier for user to collect the information required for new devices and locate any problems. These features are found in the Apps section for the Somfy Tahoma & Conexoon app by taping on the Configure Application, Which is the same place that you o to log into your Somfy Tahoma or Connexoon account.
The main feature there is the Device Log tab.
This is where you can gather the information form your system that contains the data I need to add new devices. I have been very careful to ensure that any personal information has been removed so it is safe to post the information.
To capture the data, tap on the Get Log button and wait for the list below it to fill with data.
Then copy the data from the list box and send it to me in a PM on here.
There is also a Send Log button that emails the data you see directly to me, however the information I receive dose not identify you so I will not be able to reply. Therefore, please follow up with a message on here or in GitHub (Issues · AdyRock/com.somfy.tahoma · GitHub)
The main advantage of sending me the log is I can feed that back in to a simulator page which allows me to do some basic testing.
You will also see the Information tab here. If you are having problems with the app then switch Information the on, wait for a few minutes until the log has gathered some data and then tap on the Send log button to send the information to me.
Another feature that I have just added to version 2.0.2 is the option to reverse the direction of the controls. This is per device and is access by taping on the gear in the top right corner of the device screens and then tap on Advanced Settings.
The Invert Up / Down settings changes the direction of the Up / Stop / Down buttons so I you covers move up when you press down and down when you press up then toggle this option. This also changes the flows so they match the buttons.
The Invert Position setting changes the direction of the slider control and the move to position flow cards.
If you have any requests for new features or have found a bug please let me know by either a PM, posting below or create an issue on GitHub. I will do my best to help you but please remember I do this in my spare time for fun so I might not be able to respond straight away.
One of the new features is the tile goes dark when the covers are closed and taping on the tile moves the cover to the opposite position to provide quick open / close control.
- Urgent: Fixed an issue that could prevent a new access token being obtained.
- Added options to invert the position and Up / Down functions.
- This fixes an issue with the reverse direction of Up / Down buttons option.
- It also has an option to invert the logic of the tile action / display.
- Added option to select Somfy server.
- Added option to select OAuth login method
- Big rewrite of network functions to convert to async so it is easier to track operations.
- Fixed checks for login failure.
- Converted more functions to async
- Fixed Logout button.
- Clear out cookies and headers when logging out.
- Prevent race condition with data sync and logout.
- Display a more appropriate message when adding devices before logging in.
- The login information is now displayed in the ‘Error’ log even though it’s not an error. I probably need to rename that now
- Changed \setup endpoint to individual fetches of states in compliance with the email from Somfy.
- implemented Event method of refreshing capabilities.
Version 2.0.9 * Added more logging for the events to try and see why they are not working.
- Fixed missing return data after reauthenticating.
- Added flags to control startup sequence.
- Fixed variable name error in app init that prevented full initialisation.
- changed global exception handler output to hopefully show more information.
- Fixed erroneous conversion of Open / Closed state from event to an integer.
- Fixed event value issue with opening sensor and light controller.
- Add option to toggle Information log off/on (default is off).
- Now prevents excessive login attempts. Maximum 5 attempts in 10 seconds. If blocked more than 3 times in a row then login is blocked for 5 minutes. Hopefully this should prevent the account being temporarily blocked and if it does get blocked it will allow time to recover. These figures are just a guess so they might need tweaking.
- Updated Dutch translations.
- Version number aligned to show a bigger updated and submitted for release to stable.
- Fixes a crash on Homey version 4.1.0 and lower.
*Fixed an issue with renewing expired access token.
*Login method is now selected automatically.
*Added a flow card to switch the polling on and off.
- Added flow card to change sync speed.
- Forced refresh of status if login token expires.
- Fix for idle state when cover is partially open
- Added setting to switch off polling.
- Changes to polling mode and sync speed now show in app settings.
- Added Boost mode to temporarily increase polling speed when a cover command is sent.
- Added support for io:SimpleBioclimaticPergolaIOComponent
Added support for
- Changed Sync Speed to Sync Interval.
- Limited size of Information log.
- Added io:DiscreteGarageOpenerWithPartialPositionIOComponent
- My position value in Device and flow tag if reported by the device.
- Added io:AwningReceiverUnoIOComponent.
- Added rts:GarageDoor4TRTSComponent.
- Added rts:SlidingGateOpener4TRTSComponent.
- Fixed crash when adding new rts:GarageDoor4TRTSComponent or rts:SlidingGateOpener4TRTSComponent device.
- Added io:LightMicroModuleSomfyIOComponent,.
- Added rts:LightRTSComponent.
- Fixed dim and on/off cancelling each other.
- Improved boost sync to capture new command events when session had timed out / disconnected.
- Delay sync flow actions if sync is currently boosted.
- Auto login method is now active all the time and not just when the credentials are saved
- Updated node.js libraries to latest versions.
- Major changes to login with a different way of passing data to axios.
- Other changes to the way the app retries failed log in.
- Auto login method back to only detecting the best method when the credentials are saved.
- Log in attempts restricted to 2 in 20 seconds and 6 in 5 minutes.
- Fix rts:LightRTSComponent and io:LightMicroModuleSomfyIOComponent controllable names.
- Stopped rts:LightRTSComponent and io:LightMicroModuleSomfyIOComponent devices form send On command when dim set.
- Added ovp:SomfyPilotWireHeatingInterfaceOVPComponent and ovp:SomfyPilotWireTemperatureSensorOVPComponent.
- Added rts:RollerShutterRTSComponent.
- Potential fix for failed login at start up.
- Added logout when app closed (during app update, etc).
- Fixed an error during OAuth login
- Added support for rts:CurtainRTSComponent
- Fix for the recently added rts:RollerShutterRTSComponent and rts:CurtainRTSComponent
- Added io:OnOffIOComponent and myfox:HomeKeeperProAlarmController.
- Provides success feedback when sending logs.
- Failed to upload due to as sever issue.
- Added rtds:RTDSSmokeSensor, rtds:RTDSContactSensor and rtds:RTDSMotionSensor
- Added rts:ExteriorVenetianBlindRTSComponent and set tilt position for exterior venetian blind
- Added trigger and action flow cards for tilt function of the exterior venetian blind.
- Increased minimum polling interval to 30 seconds to comply with Somfy’s new conditions of use.
- Added an ‘Is Moving’ condition card to IO window cover devices. This only works when the move command was sent by Homey.
- Fix Is Moving condition for other IO covers.
- The Poll for status updates action card will now start the polling immediately if possible, without breaking the 30 second rule.
- Added ‘Once’ option to the Poll for status updates action card.
- Changed lower limit on Polling Interval action card to 30 seconds.
- Added the flow ID to the error message in the log.
- Fixed Motion has changed trigger.
- Added support for io smoke detectors and remote control.
- Added support for EnOceanOnOffLight.
- Added support for hue:GenericDimmableLightHUEComponent and hue:ColorTemperatureLightSpotHUEComponent.
Version 2.1.37 & 38
- Added Atlanta Heating System components.
- Added rts:ExteriorBlindRTSComponent and renamed ‘Interior Blind (RTS)’ to ‘Blind (RTS)’.
- Fix tilt flow trigger issue.
- Added a watchdog to the alarm type capabilities to check if they switched off with notifying.
- Added ‘io:AtlanticPassAPCZoneControlZoneComponent’,
- Added ‘io:CumulatedElectricalEnergyConsumptionIOSystemDeviceSensor’
- Added ‘io:TemperatureInCelciusIOSystemDeviceSensor’"
- Add KeyGo remote.
- Added MY position to io:RollerShutterGenericIOComponent.
- Fixed a typo in io:IORemoteController that would stop the initial state being set"
- Fix ‘stop’ button sending null as the command.
- Added Atlantic Main Zone Controller and Atlantic Hot Water Production
- Added Atlantic Electric Heater
- Added Radiator Valve
- Added Somfy RTDS Water Sensor
- Added io sliding gate.
- Fixed a potential lock up of the event registration process.
- When polling is switched back on, it now refreshes all the capabilities as they might have changed while not polling.
- Fixes for Radiator valve.
- Fixes to clear Lockstate when it no longer appears in the state data.
- Another attempt to fix the lock state.
- Fixed inconsistent naming of a function that was introduced in version 2.1.50.
- Fixed an issue that prevent some controls from completing a command if polling is disabled.
- Added RTS horizontal awning.
- Added dirty and battery alarms to smoke detectors.
- Changed login screen text to make it clearer that the details are for both Tahoma and Connexoon.
- Fixed error when clearing login details.
- Fix for potential issue when polling is dissabled that could prevent starting it again…
- Extended lockout period after a failed authentication to prevent re-triggering Somfy’s temporary account lock out.
Version 2.1.58 to 2.1.62
- Added RTS Gate Opener
- Added Velux external sunscreen (io:VerticalExteriorAwningVeluxIOComponent)
- Added Lock State to the Exterior blind (io) covers
- Added Lock State to the Velux Roof Window
- Added support for the io:RollerShutterUnoIOComponent to the Roller shutter (io) device"
- Added Command Complete flow trigger.
- Optimized logging.
- Fixed an error when event data had no value.
- Fixed completely skipping event data if a duplicate exists
Please report any problems via PM on here