New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Add support for [Somfy Terrace Heater] (io:SimpleExteriorHeatingIOComponent) #161
Comments
@vlebourl Perfect for your climate platform refactor ;) {
"commands": [
{
"commandName": "delayedStopIdentify",
"nparams": 1
},
{
"commandName": "getLevel",
"nparams": 0
},
{
"commandName": "getName",
"nparams": 0
},
{
"commandName": "identify",
"nparams": 0
},
{
"commandName": "off",
"nparams": 0
},
{
"commandName": "on",
"nparams": 0
},
{
"commandName": "setLevel",
"nparams": 1
},
{
"commandName": "setName",
"nparams": 1
},
{
"commandName": "startIdentify",
"nparams": 0
},
{
"commandName": "stopIdentify",
"nparams": 0
},
{
"commandName": "wink",
"nparams": 1
},
{
"commandName": "pairOneWayController",
"nparams": 2
},
{
"commandName": "unpairAllOneWayControllers",
"nparams": 0
},
{
"commandName": "unpairOneWayController",
"nparams": 2
}
],
"states": [
{
"values": [
"good",
"low",
"normal",
"verylow"
],
"type": "DiscreteState",
"qualifiedName": "core:DiscreteRSSILevelState"
},
{
"type": "ContinuousState",
"qualifiedName": "core:LevelState"
},
{
"type": "DataState",
"qualifiedName": "core:NameState"
},
{
"type": "ContinuousState",
"qualifiedName": "core:PriorityLockTimerState"
},
{
"type": "ContinuousState",
"qualifiedName": "core:RSSILevelState"
},
{
"values": [
"available",
"unavailable"
],
"type": "DiscreteState",
"qualifiedName": "core:StatusState"
},
{
"values": [
"comfortLevel1",
"comfortLevel2",
"comfortLevel3",
"comfortLevel4",
"environmentProtection",
"humanProtection",
"userLevel1",
"userLevel2"
],
"type": "DiscreteState",
"qualifiedName": "io:PriorityLockLevelState"
},
{
"values": [
"LSC",
"SAAC",
"SFC",
"UPS",
"externalGateway",
"localUser",
"myself",
"rain",
"security",
"temperature",
"timer",
"user",
"wind"
],
"type": "DiscreteState",
"qualifiedName": "io:PriorityLockOriginatorState"
}
],
"dataProperties": [
{
"value": "500",
"qualifiedName": "core:identifyInterval"
}
],
"widgetName": "DimmerExteriorHeating",
"uiClass": "ExteriorHeatingSystem",
"qualifiedName": "io:SimpleExteriorHeatingIOComponent",
"type": "ACTUATOR"
} |
@mjhcdk You talk about a percent value, how this device works? In the output, I can see values like ComfortLevel1, ComfortLevel2. That's what you set? |
I suppose we would need to use |
very appreciated - Am I ready to perform some testing and troubleshooting |
can you try this branch: https://github.com/iMicknl/ha-tahoma/tree/enhancement/refactor_climate_%23151 Download and extract the zip https://github.com/iMicknl/ha-tahoma/archive/enhancement/refactor_climate_%23151.zip |
hi, still only able to discover my cover device ... I have also tried to remove the integration , deleted folder Tahoma and copied new folder to custom_components and reinstalled from integration page. Anyway to check its using this new test-version? 2020-07-21 13:31:23 DEBUG (MainThread) [custom_components.tahoma] Unsupported Tahoma device (internal:PodMiniComponent). Create an issue on Github with the following information. internal:PodMiniComponent - Pod - Pod io:SimpleExteriorHeatingIOComponent - ExteriorHeatingSystem - DimmerExteriorHeating |
my bad, I forgot an important part, let me fix that very quickly |
great |
please try again with the last version. |
okay, some good progress... One new device discovered, but no new entities - and some errors in log file. DimmerExteriorHeating Log snip:
|
thanks for the report.
|
I wanted to have the slider in percents but unfortunately HA doesn't allow that... |
okay - let me know when its time for another try |
you can have another go at it! |
some more progress. entity created as well. However, it seems not to update attributes and state when changing state of device via Somfy App.
|
"However, it seems not to update attributes and state when changing state of device via Somfy App." HA updates the entity once per minute, so if you interact through the app, you'd need to wait long enough to get it reflected in HA. Have you waited that much? Otherwise I might need to call Second error should be fixed. Can you try again? |
okay, you are right state is updated based on temp changes. However, there is an odd behavior , it seems temperate attribute is opposite : 100 means off and 0 means full power. 90 means 10% (comparing to Somfy App and the heater). and both the power-on/off seems to cause the heater to go to max. One time the state actually changes shortly to "off", but then changed back to "heat" and temp 100 (off)
These are the only log entries I believe may be from Tahoma plug-in
front-end card when device is off |
We have a public discord to talk about issues, it will be more reactive than here, can you join there? https://discord.gg/nNzBsK |
Otherwise, can you change the level in the connexoon app to 0, 25, 50, 75 and 100, and report states in HA after it updates? I've added some debug messages to try to understand better what's happening. |
yes, if I set level to 10 or 15 % in Somfy app, then temperature attribute changes to 90/85 in HA. So assume I need a reverse engine within the integration to translate from Somfy scale to normal scale. similar if I set HA to i.e. 30% it will go to 70% on the Somfy App and the Heather it self. Secondly, temp 100 should be treated as power-off, and power-off action should set temp for 100. Can't understand the behavior, but will try with your latest release with debug. I have also setup a AppDaemon to track all state and attribute changes. |
With very old background in C devl, I do understand the basics of Python, and have started to migrate my automation to AppDaemon. That said, I still quite new to HA. But if I can help in any way , please let me know. |
@mjhcdk if you could try the latest version, to see if the % is reflected, would be great. :-) We are working on rewriting the state mechanism to be smarter and faster, but this will take a while. |
hi. latest release does not work, it says entity is unavailable, and no updates to device are possible from HA, and changes from Somfy App, is not reflected in HA. I also tried to remove entity and restart, then its rediscovered but unavailable. No errors in log. |
Can you try that new branch? |
Sure, but how do I "patch" the fix into existing Tahoma folder. |
just the same as previously, download the zip here: https://github.com/iMicknl/ha-tahoma/archive/fix/fix_161.zip |
okay. Getting these errors in log when try to set temp.
same error when trying from dev-tool |
This one is tougher than I expected... |
I tried both, just in case problem was related to frontend. Will try new version |
seems to be same error. Not an easy one to crack :-)
|
If any help , I could provide you temp access to my tomalink.com account. |
it's not, I was just curious. The problem is that percent is not a unit for temperature, so when the integration is trying to verify the unit and convert the value if not in the right one (Fahrenheit to Celsius for instance), it crashes on Percent as not recognized. |
@vlebourl maybe in the end, it is better to just settle for having Celsius in the interface. Otherwise we are making so many modifications to the climate component, which will cause issues in case it gets updated. |
yeah, its only a minor issue - but of cause nice if it could show what it is really... Maybe some of these fancy custom frontend cards can manipulate the visual appearance. |
And we're back to celsius, sorry I couldn't do more on that... |
No problem - Really appreciate all your efforts getting this to work. Latest release is back to Celcius and works. The slider updates are still a bit unpredictable after performing a temp change or power-off. Maybe the delay between set and get is still a bit too short. but never mind, if you are working on a new state-tracker integration It would make sense to wait for the outcome of that. Please let me know if some additional testing is needed. Thanks again. |
All good for now, thanks. |
closed by #162 |
* First commit for AtlanticElectricalHeater. Github Issue: #151 * Refactored climate. * **Breaking** Removed options flow * **Breaking** Removed SUPPORT_TARGET_TEMPERATURE for AtlanticElectricalHeater IO component * Removed private properties. * Removed update methods. * Removed __init__ when possible. * Moved classes to their own files. * Add DimmerExteriorHeating Github Issue: #151 * Fix/fix 161 (#162) Github Issue: #161
commit 6caeb9a Author: Vincent Le Bourlot <vlebourl@gmail.com> Date: Thu Jul 23 13:21:40 2020 +0200 Round float state to 2 digits. (#164) * Round float state to 2 digits. Github Issue: #163 commit e6b4c22 Author: Vincent Le Bourlot <vlebourl@gmail.com> Date: Thu Jul 23 11:50:11 2020 +0200 Cover position was incorrectly inverted when 0 because bool(0) == False. (#165) commit 05cd609 Author: Vincent Le Bourlot <vlebourl@gmail.com> Date: Thu Jul 23 08:27:39 2020 +0200 Enhancement/refactor climate (#159) * First commit for AtlanticElectricalHeater. Github Issue: #151 * Refactored climate. * **Breaking** Removed options flow * **Breaking** Removed SUPPORT_TARGET_TEMPERATURE for AtlanticElectricalHeater IO component * Removed private properties. * Removed update methods. * Removed __init__ when possible. * Moved classes to their own files. * Add DimmerExteriorHeating Github Issue: #151 * Fix/fix 161 (#162) Github Issue: #161
commit 1de0940 Author: Mick Vleeshouwer <mick@imick.nl> Date: Thu Jul 23 22:21:56 2020 +0200 Squashed commit of the following: commit 6caeb9a Author: Vincent Le Bourlot <vlebourl@gmail.com> Date: Thu Jul 23 13:21:40 2020 +0200 Round float state to 2 digits. (#164) * Round float state to 2 digits. Github Issue: #163 commit e6b4c22 Author: Vincent Le Bourlot <vlebourl@gmail.com> Date: Thu Jul 23 11:50:11 2020 +0200 Cover position was incorrectly inverted when 0 because bool(0) == False. (#165) commit 05cd609 Author: Vincent Le Bourlot <vlebourl@gmail.com> Date: Thu Jul 23 08:27:39 2020 +0200 Enhancement/refactor climate (#159) * First commit for AtlanticElectricalHeater. Github Issue: #151 * Refactored climate. * **Breaking** Removed options flow * **Breaking** Removed SUPPORT_TARGET_TEMPERATURE for AtlanticElectricalHeater IO component * Removed private properties. * Removed update methods. * Removed __init__ when possible. * Moved classes to their own files. * Add DimmerExteriorHeating Github Issue: #151 * Fix/fix 161 (#162) Github Issue: #161 commit 4f1b0a7 Author: Mick Vleeshouwer <mick@imick.nl> Date: Tue Jul 21 14:46:13 2020 +0200 Change debug text commit f212bc6 Author: Mick Vleeshouwer <mick@imick.nl> Date: Tue Jul 21 14:22:44 2020 +0200 Reference to the right DOMAINS commit 67e09af Author: Mick Vleeshouwer <mick@imick.nl> Date: Tue Jul 21 14:17:11 2020 +0200 Reference to official domains commit a1cf008 Author: Mick Vleeshouwer <mick@imick.nl> Date: Tue Jul 21 14:04:37 2020 +0200 Add missing LOCK import commit c971da9 Author: Mick Vleeshouwer <mick@imick.nl> Date: Tue Jul 21 14:00:06 2020 +0200 Add constants instead of ugly strings commit 22a1623 Author: Mick Vleeshouwer <mick@imick.nl> Date: Tue Jul 21 13:49:08 2020 +0200 Change PLATFORMS to SUPPORTED_PLATFORMS commit a57d246 Author: Mick Vleeshouwer <mick@imick.nl> Date: Tue Jul 21 13:08:12 2020 +0200 Revert removal of DOMAIN commit bf410ec Author: Mick Vleeshouwer <mick@imick.nl> Date: Tue Jul 21 13:05:30 2020 +0200 Remove unused imports commit 4884a5f Author: Mick Vleeshouwer <mick@imick.nl> Date: Tue Jul 21 13:02:27 2020 +0200 Reformat switch.py commit 01c1df1 Author: Mick Vleeshouwer <mick@imick.nl> Date: Tue Jul 21 12:59:19 2020 +0200 Bugfix for switch commit a13348f Author: Mick Vleeshouwer <mick@imick.nl> Date: Tue Jul 21 12:48:39 2020 +0200 Close client before removing client... commit 15bb8cd Author: Mick Vleeshouwer <mick@imick.nl> Date: Tue Jul 21 12:45:53 2020 +0200 Make code more readable commit d896200 Author: Mick Vleeshouwer <mick@imick.nl> Date: Tue Jul 21 12:43:59 2020 +0200 Close HTTP client correctly Thanks @eavanvalkenburg! commit 24b7190 Author: Mick Vleeshouwer <mick@imick.nl> Date: Tue Jul 21 10:18:31 2020 +0200 Remove unnecessary loop commit 28cd639 Author: Mick Vleeshouwer <mick@imick.nl> Date: Tue Jul 21 09:45:46 2020 +0200 Refactor based on feedback commit d3ccafe Author: Mick Vleeshouwer <mick@imick.nl> Date: Tue Jul 21 01:07:08 2020 +0200 Simply config flow and add better exception logging commit c38f2e5 Author: Mick Vleeshouwer <mick@imick.nl> Date: Tue Jul 21 01:01:39 2020 +0200 Only initialize platforms with devices and decide platform based on uiclass and widget commit 4f579b8 Author: Mick Vleeshouwer <mick@imick.nl> Date: Tue Jul 21 00:31:28 2020 +0200 Add async Python API wrapper
@mjhcdk are you still active here perhaps? I would love to have you test this implementation for core, so that we can bring this to core! |
Device information
Somfy Terrace heaters module with 6 steps to set heating level. The device can be managed Connexoon io box and Somfy Terrace App, but is not revealed via Somfy API.
The requirements would be to read the state (on/off) and heat level of the device. Secondly, set the heating level from 0 -100 %. and power on/off.
Device details
I am not able to follow the instructions directly as I don't have access to Tahomalink Web gui, as I only have a Connexoon-io-box.
But the home-assistant.log reveals the following output. Hope this can make the device supported.
Please let me know if more information can be revealed in another approach.
thx in advance
The text was updated successfully, but these errors were encountered: