I just followed your steps and I can confirm it is working great also with Ochsner AirHawk 208C! Amazing work! ![]()
Update - converted it to a HACS custom repo to allow for easier install / updates
Hi, this is great! That is what I was looking for all the time! When reading,it was to much for me to understand at once and I will not have time to follow this up until end of the month. Once I do, I will report my experience.here
Thank you very much for this excellent work and time you spent into this topic.
A shame, that Ochsner doesn’t support an api officially, In a mail - discusssion with ochsner erarly last year they said " We are discussing smart home issues internalyl"
Pretty sure the support won’t be any better for this one than for the modbus
in fact better not tell them at all lest they break it.
It should theoretically be possible to convert this into a dynamic integration that only requires you to input your ochsner credentials once for onboarding and your local controller ip for the api, and have the integration automatically parse all the values in the config file with the same logic as the app, and add them to HA with their names and types already configured. But for now, I think its simpler to go with the manual route. Most of the values you really don’t need to view / control in HA anyway, mainly a few key ones are of interest I guess. But maybe once the AI tools get a bit better that can also be done in a prompt or two…
Alright. Apparently the AI made me a liar. After 5h of back and forth this afternoon I finished the thing I said I wouldn’t do:
OTS-HomeAssistant - v1.0.0 Release!
It’s now a full-blown UI Integration where all you have to do is add the Repo to HACS, and then add the Ochsner Integration, enter your user and pw once, then enter your heat pump IP, and it automatically imports all readable values and even auto-translates them to readable names! No more manually searching for values with the python script!
It even groups all the values all by heating circuit when adding them.
AI is really getting crazy.
I’d recommend going through and disabling any entities you don’t need / want to control once, to reduce the polling load, and so that your HA entities are less cluttered.
Also, the cloud credentials are not saved, they are only needed to initially download the config during setup, after which the integration runs entirely offline.
I updated the repo on github, let me know if it works for you. If you still have the old climatix_generic: config section, either remove that and do it entirely via the UI, or you can also rename the section to ochsner_local_ots: and continue using your manually configured version (at least in theory). I’d recommend just using the UI version since that’s what the latest release has been tested for.
Note: I also just realized that Ochsner released a new app last year (Ochsner Smart app as opposed to the OTS app), and that app wants me to update the heat pump in order to use it. Would be curious if anyone managed to get this script to work after they already updated their system to work with the new app still, or if that will brick it.
Thanks a lot to @permissionBRICK for the great effort in integrating the Ochsner heat pumps.
Also thanks to @Alfred99, I’m using the Modbus integration as well.
I personally have an Air Falcon 212 C11 AT200. Since I’m using the Ochsner Smart App, I had to update the heat pump firmware about two months ago.
I’ve just installed version 1.0.3, and so far everything is working perfectly!
WOOOHO Thanks a thousand times @permissionBRICK
Confirming that your integration is working fine on AirHawk 726
Finally I am able to see more details and automatically set the option of warm water to “reduced” in summer where PV makes warm water.
And finally I am able to use the BOOST option in HomeAssistant ![]()
@permissionBRICK → where’s the configuration yaml after installation?
my original configuration.yaml was not modified and i don’t find any other location
The new version doesn’t use the manual configuration per default, you just set it up via the UI by adding the OTS integration, entering the credentials and it imports every single entity that is discovered and available automatically. All the entities and UI config is stored in the home assistant entity storage registry, which should not be manually modified since home assistant overwrites it. If you still want to use manual config, you can remove the integration / device from the ui and add it to the configuration.yaml manually instead. (see old readme here)
If you really want to try modifying the automatically generated config, shut down home assistant first and then modify the /config/.storage/core.entity_registry at your own peril. No guarantees that any changes you make there would work with future versions or won’t get overwritten though.
Ah thats why… well integration is well done, but the sensor values don’t have a type. for example sensor.temperatur_vor_expansionsventil is not classified as “C”
if you give me a list of examples, maybe I can find a way to make a general fix for the next version → best make an issue in github
Although it might be tricky since some of these values don’t even have the correct unit in the app, much less the config…
I’m currently looking into a way where you can manually override the sensor unit/config in the UI settings so it gets saved to the config.
Ok I opened an issue and did screenshots to show what i mean.
thanks
Just posted v1.1.0 that adds an option to manually adjust sensor type and unit via the Integration settings.
Working great thanks!
Are you able to get a list of all id’s?
I have to dig into this… settings like delta-t or end-temperature for defrosting would be interesting ![]()
The list of all known Ids for the model is whats contained in the bundle json that the integration downloads from ochsner. you can look through it in the /config/.storage/ochsner_local_ots_bundles file.
Or you can just play around with the python tool in the tools dir on github to manually parse that. Although I’m afraid you won’t find many more values than the ones already in the integration, what it does is run through every single id that has a readProperty, and attempts to read the value from the api. If it responds with any value at all, it is added. If it responds empty, the value is skipped.
There may be more ids that the bundle doesn’t expose, but seeing how even the json api doesn’t accept blind values and still has some limits (like if you set a value to anything outside the available min or max range via the api, it will just discard the request and not change the value), I guess the json api isn’t able to access every single register that may exist inside the siemens controller either, only the ones that ochsner needs access to either remotely or for the display. I also found no way yet to remove the cooling lock, if you have the heatpump set up only for heating. That seems to be set through some kind of flag instead of by writing values, but I haven’t found a way to change that so far. Feel free to play around with the python tool here, and let me know if you find anything that isn’t already in the integration ![]()
Major breakthrough following some discussions and account issues due to the rollout of the new Ochsner SMART App:
The new app doesnt offer the bundle download anymore, and any accounts that haven’t been created with the old app also cant use the api anymore. - This broke the integration for anyone with new accounts.
Luckily it turns out that the reason for this is that the new app instead just hardcodes the required value IDs directly - which actually proves that all the Climatixs IDs are the same for all Ochsner devices. This instead actually makes the whole cloud account login step obsolete, turning this project into a true fully local integration!
Now the integration ships with all the required IDs from the start, so all you need is to install it and enter your IP address, that’s it.
Any installs who used the old onboarding system will simply keep their entity ids, so nothing about existing installs should break there, since the onboarding / entity scanning only happens during initial install, or instead on manual trigger.
v2.0.0 is live on Github: permissionBRICK/OTS-HomeAssistant: A custom Home Assistant Integration to locally Read and Control Ochsner Heat Pumps
Actually I only now found time to install and start experimenting with the HACS Integration. Thus I could start right away with v2.0.0.To allow control on values available via App I was missing from the very beginning until now.
It’s so easy to install and so powerful! Thanks a lot for the great job by permissionBRICK.
Since I have a lot of cards, badges, some automations based on the modbus interface for now I am just trying to understand how the entities interact in order to provide similar functionality like the app. With the help of chatgpt I have created a dashboard somehow similar to the app. In particular it allows to control:
However, I didn’t manage to control the setpoints for Hot water (DHW) for eco, comfort and boost like available in the app.They are just sensors which can be monitored.
sensor.airhawk208c11a_192_168_0_3_target_value_for_comfort
sensor.airhawk208c11a_192_168_0_3_target_value_for_eco
sensor.airhawk208c11a_192_168_0_3_target_value_for_boost
sensor.airhawk208c11a_192_168_0_3_target_value_for_reduced
Any ideas on how to control these values are highly welcome. To me it would sound logic if those values would be numbers like:
number.fussbodenheizung_target_room_temperature_reduced_cooling
number.fussbodenheizung_target_room_temperature_standard_cooling
number.fussbodenheizung_target_room_temperature_reduced_heating
number.fussbodenheizung_target_room_temperature_standard_heating
For completeness I add the cards currently in the test dashboard for app-like functionality.
so luckily I just finished my autonomos AI sandbox vm setup so all this took was copy pasting the link to your post into GPT Astra, and 5 min later we have a possible fix:
Since I dont have a hot water circuit on my heat pump, can you try to test it from the branch like this?
-
Keep the existing Ochsner installation in HACS.
-
Open Developer Tools → Actions, select Update: Install (
update.install). -
Select the Ochsner Local OTS … update entity provided by HACS.
-
Enable the optional Version field and enter:
feat/dhw-setpoint-controls -
Run the action, wait for the download, then restart Home Assistant.
-
Open Settings → Devices & services → Ochsner Local OTS → Configure. Enable Local catalog scan now (accountless; add missing entities) and submit.
-
Look for the four new number controls: Comfort, Eco, Reduced, and Boost. Existing sensors remain available.
In case that works, here’s the PR: Fix read-only DHW temperature setpoints in local discovery by permissionBRICK · Pull Request #17 · permissionBRICK/OTS-HomeAssistant
Hello,
Thanks for the so quick. However I could not manage to correclty install the feature-variant with the fix.
The entities have been defined as intended:
- entity: number.airhawk208c11a_192_168_0_3_target_value_for_comfort
name: Komfort
- entity: number.airhawk208c11a_192_168_0_3_target_value_for_eco
name: Eco
- entity: number.airhawk208c11a_192_168_0_3_target_value_for_reduced
name: Reduziert
- entity: number.airhawk208c11a_192_168_0_3_target_value_for_boost
name: Boost
However, the integration reports
Thus all entities of the integration are unavailable.
I was fiddling around, but could not find the cause of the problem so far.
After reinstalling v2.0.0 and restarting several times the integration was loaded and the numbers were still present and had values which could be changed. Thus it works absolutely fine besides the temporary failure problem.
Thanks again a lot! Here ist the updated Warmwasser section - for now I kept the old sensors as well, they immediatly take on the value of the corresponding numbr when changed











