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 app currently supports over 100 different devices including:
- 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 can start adding devices. The first time you add a device you will need to enter your Somfy username and password to connect to your Somfy account.
The app uses polling to fetch device status information. It is recommended that you keep the default polling interval of 30 seconds. The app will automatically boost this to 3 seconds during the control phase of a device to get status updates.
Requesting new features / devices
On the Homey Pro, there is a features that makes it easier to collect the information required for new devices and locate any problems. These features are found in the Apps section for the Somfy Tahoma & Connexoon app by taping on the Configure Application,
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 (blue tick), wait for a few minutes until the problem has occurred and 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 start up 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
- Added retry to failed commands.
- Abort previous shutter command when a new command arrives before previous one is complete.
- Deprecates global command complete and replaced it with device command complete.
- Added Contact sensor (io:SomfyBasicContactIOSystemSensor)
- Added Siren (io:SomfyIndoorSimpleSirenIOComponent).
- Added Gate Opener (io:DiscreteGateOpenerIOComponent).
- Added Uno Screen Receiver (io:ScreenReceiverUnoIOComponent).
- Added Siren IO (io:SomfyIndoorSimpleSirenIOComponent).
- Added Tahoma / Connexoon hub (internal:PodV2Component and internal:PodMiniComponent) for switch schedule / timer on and off.
- Added Tahoma Alarm (internal:TSKAlarmComponent)
- Added Heater (io:DiscreteExteriorHeatingIOComponent).
- Fixed an issue with the io valve temperature limits.
- Fix a bug introduced in the last version.
- Fix Hub > Timer / Schedule action cards…
- Fix Heater Valve.
- Updated to SDK 3 and made cloud ready.
- Fix login issues
- Fixed re-authentication issues after a session timeout.
- Fix contact changed flow trigger.
- Added extra checks for validating objects
- Fixed crash due to a missed SDK3 conversion
- Fixed Heat On / Off command.
- Added rts:SwingingShutterRTSComponent
- Added rts:OnOffRTSComponent
- Updated images for publishing
- Enhanced login failure messages
- Fixed Invert setting for window covers.
- Added extra parameter validation and error handling
- Added support for Velux products: ogp:window, ogp:shutter and ogp:light
- Update remaining store images
- Improved error handling
- Fixed an issue with sending some commands (including smoke alarm test)
- Added variable heater io:SimpleExteriorHeatingIOComponent
- Added more lights hue:BloomHUEComponent, hue:HueSpotHUEComponent, hue:HueLampHUEComponent.
- Added Event log page to show Tahoma events.
- Added more lights zwave:OnOffLightZWaveComponent, zwave:OnOffZWaveComponent.
- Add Hitachi AC.
- Added battery alarm to SunIo, Opening Detector (io) and Temperature Sensor (io).
- Added more lights zwave:OnOffLightZWaveComponent, zwave:OnOffZWaveComponent.
- Added battery alarm to SunIo, Opening Detector (io) and Temperature Sensor (io)."
- Fix for AC so it fetches the current status when added or when the app starts up.
- Fix the fan speed command value to be ‘hi’ and ‘lo’"
- Various fixes for the AC device
- Added Horizontal Awning ogp:Awning
- Added Velux blind ogp:Blind
- Added sliding Pergola io:PergolaRailGuidedAwningIOComponent.
- Added Homekit hub.
- Fix for Un-Boost when polling not enabled.
- Fix for some devices not boosting polling.
- Changed back to standard capability for RTS curtains and blinds so they are compatible with Google Home.
- Added support for ogp:VenetianBlind
- New device icons provided by Athom
- Added support for ‘io:CyclicGarageOpenerIOComponent’, ‘io:CyclicSlidingGateOpenerIOComponent’, ‘rts:GarageDoorRTSComponent’ and ‘io:RollerShutterWithBatterySomfyIOComponent’.
- Added upper limit on polling interval of 90 seconds to prevent timeouts
- Added support for ‘io:IzymoController’ and ‘io:DimmableLightMicroModuleSomfyIOComponent’.
- Clean up settings and set maximum polling limit.
- Improved recovery from event fetch error.
- Added Danfoss Icon Thermostat (zigbee:DanfossHeatingFloorComponent).
- Added ‘eliot:OnOffSwitchEliotComponent’, ‘eliot:OnOffLightEliotComponent’, ‘eliot:DimmerLightEliotComponent’, ‘eliot:ElectricVehicleChargerComponent’ and io:AtlanticElectricalHeaterIOComponent
- Split io:AtlanticElectricalHeaterIOComponent to new IO Heating Interface device so it has the correct levels.
- Removed invalid options from io:AtlanticElectricalHeaterIOComponent levels.
- Added ‘io:SwitchMicroModuleSomfyIOComponent’ to the Socket (RTS & io) device.
- Added Move to MY position flow action card to devices that were missing it.
- Added io:ExteriorVenetianBlindUnoIOComponent.
Version 4.0.0 (test branch)
- Re-write to work with local and cloud access. See [APP][Pro] Somfy Tahoma & Connexoon (v4.0.11, test v4.0.13) - #1188 by Adrian_Rockall
Version 4.0.1 (test branch)
- Fix for ‘can’t read properties of null’ when local access is not registered.
- Boost no longer activated for local access.
Version 4.0.2 (test branch)
- Added alternate url for certificate validation (SNI).
Version 4.0.3 to 4.0.6 (test branch)
- Send device log to stderr to assist adding / debugging devices on Homey.
Version 4.0.7 (test branch)
- Added support for ogp:Blind (RTS) to ‘Blind or Shutter (RTS)’ device.
Version 4.0.8 (test branch)
- Fix for radiator valve when using local access. Change log function for Homey compatibility
Version 4.0.9 (test branch)
- Added Heating Mode Changed and Set Heating Mode flow cards to the Pilot Wire programmer.
Version 4.0.10 (test branch)
- Added Heating Mode Changed and Set Heating Mode flow cards to the IO Heating Interface.
- Fixed a couple of Date issues
Version 4.0.12 (test branch)
- Add setting to set the class type for window covering, etc.
Version 4.0.13 (test branch)
- Fix issue with diagnostic GetDevices when no local connection is available.
Please report any problems via PM on here