External integration - Overkiz: VR and Somfy/Velux blinds

Oh, it’s not as cool as I thought! I need to buy another product :neutral_face:
And thanks for this info

So I bought the Somfy connectivity kit and here is the result for my products:

  • IO blinds: it works directly and we get the status feedback. You can also use the original remote control at the same time and you also get the status feedback in Gladys
  • RTS gate and garage door: you need this relay remote control for the installation that allows you to program 2 codes. However, there is no status feedback. And if you use the original remote controls at the same time, Gladys does not update the status of the gate (or door).

This is the main drawback of RTS: no status feedback.

If you’re still controlling with Gladys, you can set timers; that’s the principle behind the matterbridge-tahoma-somfy plugin.
For example, a gate takes 48 seconds to open: the plugin calculates the time it takes to open, and once that timer has passed, it says: it’s open! But of course, no one really knows if that’s the absolute truth :frowning:

What I did back when I was controlling my old garage motor (not connected) with a Z-Wave impulse module (you send a single command to close, stop, or open), I installed sensors for the closed and open positions to know where the door was at the end of the command.
But that was all the information we could get.
So with that, even if I opened or closed it with the remote, I could know in the home automation system whether it was open or closed.
Now I have fewer questions because I’ve replaced it with a Somfy IO motor :wink:

Indeed, to know the status, I will install sensors:
by the way, are there any IP65 sensors (weather-resistant)?

New version v1.7.0 available :tada: (release notes)

New Features

  • “Position My” button on shutters/blinds: Devices with a favorite “My” position (the middle button on the Somfy remote) now display a button to send them there. This also works for shutters and blinds on TaHoma Switch, which don’t have a dedicated “My” command and use their recorded favorite position. :warning: Gladys does not add functionality to an existing device: you need to update your shutters from the discovery screen to see the button appear.
  • “List raw devices” also displays attributes of devices (e.g., recorded favorite positions on a shutter).

Bug Fixes

  • No more “Polling error - socket hang up” after a command. For a few seconds after a command, the integration would query the cloud every 5 seconds and reuse a connection that the cloud had just closed. Each error would pause updates, and this pause would double with each new error without limit: after a cloud outage, an account could stop receiving updates for hours. Connections are no longer reused, and the pause does not exceed one minute.
  • Changes made from a remote or wall switch are no longer lost after a polling error. Previously, they would only appear at the next full refresh, up to 30 minutes later. States are now reread as soon as polling works again, and this refresh also covers sub-devices (energy meters, zone thermometers
) that were ignored until now.

Feel free to give me your feedback!

Hello @cicoub13,

Thanks for this improvement. It’s perfect. I confirm that it works for me with RTS shutters via the Somfy Connectivity Kit.

:ok_hand:

David.

Thanks for this update @cicoub13!

I have my garage door which has a Ventilation position (My position in the end), do you think we can have it in Gladys?
Same, I only have the shutter status in Gladys, is it possible to have the position as well?

If it can help:

[2026-10-25T22:30:13.871Z] [INFO] Device dump: {"account":1,"server":"somfy_europe","deviceURL":"io://xxxxxx/6933858","label":"Garage Door","controllableName":"io:DynamicGarageDoor","uiClass":"GarageDoor","widgetName":"DynamicGarageDoor","commands":["addLockLevel","advancedRefresh","close","delayedStopIdentify","executeManufacturerProcedure","getName","goToAlias","identify","open","readManufacturerData","removeLockLevel","resetLockLevels","saveAlias","setName","startIdentify","stop","stopIdentify","wink","writeManufacturerData","keepOneWayControllersAndDeleteNode","pairOneWayController","sendIOKey","setConfigState","unpairAllOneWayControllersAndDeleteNode","unpairAllOneWayControllers","unpairOneWayController"],"states":[{"name":"core:NameState","value":"Garage Door"},{"name":"io:PriorityLockOriginatorState","value":"unknown"},{"name":"core:PriorityLockTimerState","value":0},{"name":"core:CommandLockLevelsState","value":"[]"},{"name":"core:StatusState","value":"available"},{"name":"core:DiscreteRSSILevelState","value":"good"},{"name":"core:RSSILevelState","value":92},{"name":"core:ReachedAliasesState","value":[]},{"name":"core:OpenClosedState","value":"closed"}],"attributes":[{"name":"core:CommercialName","value":"SERENIA 1100 io"},{"name":"core:ProductReference","value":"5177702A04"},{"name":"core:FirmwareRevision","value":"5177702A04"},{"name":"core:Manufacturer","value":"Somfy"},{"name":"core:SupportedReadableManufacturerData","value":["area_lighting_tempo","autolearning_state","cells_activation","close_tempo_total_mode","cruising_speed_type_closing","cruising_speed_type_opening","current_position","detailed_actuator_type","docking_area_speed_closing","docking_area_type_in_closing","docking_area_type_in_opening","intermediary_position_in_cm","keyswitch_input_status","last_photocells_self_test_status","low_power_mode","m1_race_length","mode_user_total","nb_closing_obstacle_detections","nb_global_cycles","nb_global_cycles_after_learning","nb_obstacle_detections_after_learning","nb_opening_obstacle_detections","nb_partial_cycles","nb_rtx_1w_remote_for_light","photocells_input_status","photocells_input_status_2","resistance_sensitivity","rtx_info_request_partial","rtx_info_request_total","setting_state","settings_lock_status","supply_power_type","wicket_door_input_status"]},{"name":"core:SupportedManufacturerProcedures","value":[{"procedureName":"calibrate_bus_cells"},{"procedureName":"config_remote_one_way"},{"params":{"duration":{}},"procedureName":"dead_man_down"},{"procedureName":"dead_man_impulse_down"},{"procedureName":"dead_man_impulse_up"},{"procedureName":"dead_man_stop"},{"params":{"duration":{}},"procedureName":"dead_man_up"},{"procedureName":"eject_from_setting_mode"},{"procedureName":"enter_settings_mode"},{"procedureName":"invert_rotation"},{"procedureName":"read_photocells_input_status"},{"procedureName":"refresh_all_access_settings"},{"procedureName":"reset_actuator_param"},{"procedureName":"reset_actuator_settings"},{"procedureName":"reset_io_1W_and_key"},{"procedureName":"save_partial_position"},{"procedureName":"start_autolearning"}]},{"name":"io:Features","value":[{"name":"openClose"},{"name":"alias"},{"name":"stop"},{"name":"manufacturerData"}]},{"name":"core:SupportedAliases","value":[{"features":["openClose"],"id":"55305","type":"partial"}]},{"name":"core:SubType","value":"vertical"}]}