ELCO Remocon.net AppDaemon

I didn’t yet update to 10.5, can be the issue. do you got something in the log of the appdaemon ?
I will update next week my instance of HA.

Thank you fro your reply.
As I have made a backup before updating to 10.5 I. I made a restore which was then apparently 10.3 as it shows the possibility of update to 10.5.
If I go back in to the database I find out that the connection to Elco stopped after we had an intended power off because of the installation of the PV modules. After power on there was apparently no Elco anymore. So, I do not believe that it has to with the version.
Where do I find the logs of appdemon? Is it possible to delete appdemon/Elco and to reinstall? (after having made a backup)
Thank you Bernd

for logs go to settings add-ons appdaemon, and you will find logs.
you can force reinstall the app via HACS.

Hello nechry
I have succeeded at last .
The reason was (I suppose that that is the reason - but in software you never can sure that you have found the reason):
appdemon 4 did not start. Then I went to appdemon → configuration and have changed the port, but set it back to 5050 - and now the icon was blue and it worked.
I think with the update to appdemon 4 there may be a port problem (which is also discussed in the community). But I did not changed the port - I only “touched” the port in configuration.
Now it works . Thank you for your app.
I have written to Elco as I miss for my heat pump the value for the heat meter. (So you can calculate the "jahresarbeitszahl). As a heat meter was in the description of the heat pump I made a complaint to deliver the values. (If I get the figure and you can defininei an entity I would sponsor for your app)
Kind Reagrds
Bernd
(starting homeassistant at the age of 74)

1 Like

ELCO didn’t like we use the private API, I think they will not answer your request and or ask for stop using it….

1 Like

Once more @nechry big thanks for this integration. It works like a charm on my Elco Thision S 17.1 with remocon.
I’m missing 2 datapoints from my iphone app that I don’t see in the sensor: the flow temperature of the heating and its pressure. Don’t you have this in your app? Or could you just not make sense of it in the API response (I will in the meantime try your trick to add logging from here?.
Happy to run the postman collection on my instance to see what’s coming from my end if you are willing to share them.

ps: it might be worth to add the keyword “Ariston” to your project, as they are the original developers of the app and I believe they use the same hardware to communicate with gas or heat pumps system, that might give more exposure to your project as well and have a larger community participating.

Hey @matfroh Thank for your message.

I will add a debug dump via a parameter to allow users to activate a full dump of what elco api provides. I will also tag Ariston.

Happy to help and if my small contribution is useful

Ok, so from my understanding reading the logs, there must be a separate API call to get the data from the screen I was showing. My logs show exactly the sensors you have set, nothing more, which matches all of the data on the App’s home screen. The “appliance” menu seems to trigger a new API call.
Here is what I’ve got from the log, showing exactly your entities:

023-10-27 20:51:15.603432 INFO remocon: {‘timeProgs’: , ‘plantData’: {‘outsideTemp’: 12.5, ‘hasOutsideTempProbe’: True, ‘dhwComfortTemp’: {‘min’: 37.0, ‘max’: 65.0, ‘value’: 40.0, ‘step’: 1.0}, ‘dhwReducedTemp’: {‘min’: 8.0, ‘max’: 40.0, ‘value’: 37.0, ‘step’: 1.0}, ‘dhwEnabled’: True, ‘dhwMode’: {‘value’: 1, ‘options’: [{‘value’: 0, ‘text’: ‘Off’}, {‘value’: 1, ‘text’: ‘On’}]}, ‘flameSensor’: True, ‘heatPumpOn’: False, ‘dhwStorageTemp’: 58.5, ‘dhwStorageTempError’: False, ‘hasDhwStorageProbe’: True, ‘outsideTempError’: False, ‘isDhwProgReadOnly’: False}, ‘zoneData’: {‘holidays’: , ‘mode’: {‘allowedOptions’: [0, 1, 2, 3], ‘allowedOptionTexts’: [‘Protection’, ‘Automatic’, ‘Reduced’, ‘Comfort’], ‘value’: 1}, ‘isHeatingActive’: True, ‘isCoolingActive’: False, ‘hasRoomSensor’: False, ‘chComfortTemp’: {‘min’: 19.0, ‘max’: 35.0, ‘value’: 20.0, ‘step’: 0.5}, ‘chReducedTemp’: {‘min’: 4.0, ‘max’: 20.0, ‘value’: 19.0, ‘step’: 0.5}, ‘coolComfortTemp’: {‘min’: 0.0, ‘max’: 0.0, ‘value’: 0.0, ‘step’: 0.0}, ‘coolReducedTemp’: {‘min’: 0.0, ‘max’: 0.0, ‘value’: 0.0, ‘step’: 0.0}, ‘roomTemp’: 0.0, ‘heatOrCoolRequest’: True, ‘chProtectionTemp’: 4.0, ‘coolProtectionTemp’: 4.0, ‘chHolidayTemp’: 0.0, ‘coolHolidayTemp’: 0.0, ‘desiredRoomTemp’: 20.0, ‘useReducedOperationModeOnHoliday’: False, ‘roomTempError’: False}}

This is right, so I expose everything I discover but others boilers can also expose more / others details.

I previously investigated others API routes but more complicated to lookup.

I will put me be more effort as this integration got some interest from users.

hello @matfroh I did some research on Ariston and discovered this integration: Ariston NET remotethermo Integration for Home Assistant
I tested with my remocon.net credentials and it works pretty well. In addition we also have set point controls and other control functionalities.

This integration is based on python-ariston-api and supports my boiler.
Certainly easier to configure and use than what I did…lol

So take a look

1 Like

thanks for the tip @nechry . Will go ahead and explore. Small typo in your URL. Here we go!

1 Like

thanks I fixed

I have made a claim to Elco because they offered a heat meter but I cannot read the heat meter values for my heat pump aerotop sx
In the app remocon I found a variable flow-temp (about 33 C), but I did not find on the website. Is ist possible to read the variable flow-temp by adding it somehow to the python script?

Thank you for the great interface.

In case you put even more work into it, please consider expanding it to a second heating circuit. We got an Elco with separate settings for floor heating (doesn’t show), radiators and warm water.

Hello Bernd, unfortunately, in all the tests I’ve done, this information is not available via the API I’m using. As ELCO does not want independent developers to use the API I don’t think it will be available in the near future

is this a second zone? I’ve already planned, but never tested multizone. you can add the zone parameter with the zone number. by default the assumed value is 1, you can test with a 2 if you got information. If it works I could see how to do it. Have even if we could duplicate and have a plugin per zone for example

Where could I edit the zone number?

I updated the readme,

nechry

hi, I have a new ELCO heat pump and I am trying to add it to homeassistant…I am strugling thought, this is my first time using AppDaemon

how should the structure look in here?

/addon_config/<GUID>_appdaemon

I moved everything that HACS created to this folder but I cannot get it to work.

my AppDaemol log:

-----------------------------------------------------------
 Add-on: AppDaemon
 Python Apps and Dashboard using AppDaemon 4.x for Home Assistant
-----------------------------------------------------------
 Add-on version: 0.15.2
 You are running the latest version of this add-on.
 System: Home Assistant OS 11.1  (aarch64 / raspberrypi4-64)
 Home Assistant Core: 2023.11.3
 Home Assistant Supervisor: 2023.11.6
-----------------------------------------------------------
 Please, share the above information when looking for help
 or support in, e.g., GitHub, forums or the Discord chat.
-----------------------------------------------------------
s6-rc: info: service base-addon-banner successfully started
s6-rc: info: service fix-attrs: starting
s6-rc: info: service base-addon-log-level: starting
s6-rc: info: service fix-attrs successfully started
s6-rc: info: service base-addon-log-level successfully started
s6-rc: info: service legacy-cont-init: starting
s6-rc: info: service legacy-cont-init successfully started
s6-rc: info: service init-appdaemon: starting
s6-rc: info: service init-appdaemon successfully started
s6-rc: info: service appdaemon: starting
s6-rc: info: service appdaemon successfully started
s6-rc: info: service legacy-services: starting
[15:32:29] INFO: Starting AppDaemon...
s6-rc: info: service legacy-services successfully started
2023-12-04 15:32:40.548224 INFO AppDaemon: AppDaemon Version 4.4.2 starting
2023-12-04 15:32:40.549898 INFO AppDaemon: Python version is 3.11.6
2023-12-04 15:32:40.552331 INFO AppDaemon: Configuration read from: /config/appdaemon.yaml
2023-12-04 15:32:40.553331 INFO AppDaemon: Added log: AppDaemon
2023-12-04 15:32:40.554929 INFO AppDaemon: Added log: Error
2023-12-04 15:32:40.556330 INFO AppDaemon: Added log: Access
2023-12-04 15:32:40.557371 INFO AppDaemon: Added log: Diag
2023-12-04 15:32:41.336695 INFO AppDaemon: Loading Plugin HASS using class HassPlugin from module hassplugin
2023-12-04 15:32:42.038761 INFO HASS: HASS Plugin Initializing
2023-12-04 15:32:42.039827 WARNING HASS: ha_url not found in HASS configuration - module not initialized
2023-12-04 15:32:42.040333 INFO HASS: HASS Plugin initialization complete
2023-12-04 15:32:42.041785 INFO AppDaemon: Initializing HTTP
2023-12-04 15:32:42.042831 INFO AppDaemon: Using 'ws' for event stream
2023-12-04 15:32:42.054532 INFO AppDaemon: Starting API
2023-12-04 15:32:42.061484 INFO AppDaemon: Starting Admin Interface
2023-12-04 15:32:42.064078 INFO AppDaemon: Starting Dashboards
2023-12-04 15:32:42.159733 INFO HASS: Connected to Home Assistant 2023.11.3
2023-12-04 15:32:42.180916 WARNING AppDaemon: ------------------------------------------------------------
2023-12-04 15:32:42.182127 WARNING AppDaemon: Unexpected error loading config file: /config/apps/apps.yaml
2023-12-04 15:32:42.187187 WARNING AppDaemon: ------------------------------------------------------------
2023-12-04 15:32:42.215843 WARNING AppDaemon: Traceback (most recent call last):
  File "/usr/lib/python3.11/site-packages/appdaemon/app_management.py", line 578, in read_config_file
    return utils.read_config_file(file)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3.11/site-packages/appdaemon/utils.py", line 586, in read_config_file
    return read_yaml_config(path)
           ^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3.11/site-packages/appdaemon/utils.py", line 756, in read_yaml_config
    config = yaml.load(config_file_contents, Loader=yaml.SafeLoader)
             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3.11/site-packages/yaml/__init__.py", line 81, in load
    return loader.get_single_data()
           ^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3.11/site-packages/yaml/constructor.py", line 51, in get_single_data
    return self.construct_document(node)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3.11/site-packages/yaml/constructor.py", line 60, in construct_document
    for dummy in generator:
  File "/usr/lib/python3.11/site-packages/yaml/constructor.py", line 413, in construct_yaml_map
    value = self.construct_mapping(node)
            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3.11/site-packages/yaml/constructor.py", line 218, in construct_mapping
    return super().construct_mapping(node, deep=deep)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3.11/site-packages/yaml/constructor.py", line 143, in construct_mapping
    value = self.construct_object(value_node, deep=deep)
            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3.11/site-packages/yaml/constructor.py", line 100, in construct_object
    data = constructor(self, node)
           ^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3.11/site-packages/appdaemon/utils.py", line 673, in _secret_yaml
    raise ValueError("!secret used but no secrets file found")
ValueError: !secret used but no secrets file found

2023-12-04 15:32:42.224866 WARNING AppDaemon: ------------------------------------------------------------
2023-12-04 15:32:42.230575 WARNING AppDaemon: File '/config/apps/apps.yaml' invalid structure - ignoring
2023-12-04 15:32:42.240452 INFO AppDaemon: Found 0 active apps
2023-12-04 15:32:42.251101 INFO AppDaemon: Found 0 inactive apps
2023-12-04 15:32:42.251662 INFO AppDaemon: Found 0 global libraries
2023-12-04 15:32:42.252100 INFO AppDaemon: Starting Apps with 0 workers and 0 pins
2023-12-04 15:32:42.252839 INFO AppDaemon: Running on port 5050
2023-12-04 15:32:42.381188 INFO HASS: Evaluating startup conditions
2023-12-04 15:32:42.419363 INFO HASS: Startup condition met: hass state=RUNNING
2023-12-04 15:32:42.422155 INFO HASS: All startup conditions met
2023-12-04 15:32:42.515767 INFO AppDaemon: Got initial state from namespace default
2023-12-04 15:32:44.285385 INFO AppDaemon: Scheduler running in realtime
2023-12-04 15:32:44.305470 INFO AppDaemon: Adding /config/apps to module import path
2023-12-04 15:32:44.312312 INFO AppDaemon: Adding /config/apps/assets to module import path
2023-12-04 15:32:44.325438 WARNING AppDaemon: No app description found for: /config/apps/hello.py - ignoring
2023-12-04 15:32:44.338496 WARNING AppDaemon: No app description found for: /config/apps/elco-remocon-net-appdaemon.py - ignoring

and my apps.yaml

---
hello_world:
  module: hello
  class: HelloWorld
remocon:
  module: elco-remocon-net-appdaemon
  class: Remocon
  plugin: HASS
  base_url: https://www.remocon-net.remotethermo.com
  username: !secret remocon_username
  password: !secret remocon_password
  gateway_id: !secret remocon_gateway_id
  bearer_token: !secret remocon_bearer_token
  # refresh_rate: 60 # optional
  #ha_url:  # optional, in case hassplugin ha_url undefined

Hello, It look like your appdaemon.yaml is not corretly configured.
ValueError(“!secret used but no secrets file found”)

ensure the secret is defined like this:
secrets: /homeassistant/secrets.yaml

otherwise share your appdaemon.yaml file content

Your apps.yaml file look good.