ELCO Remocon.net AppDaemon

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.

So when I put in
zone: 2
It gets me both zones or do I have to install the connections twice?

the zone is the ID or index base 1 of the zone. if it work you will only get the second zone info. Just let me know if you got something and if yes, I will try to add multizone requests.

@joachimwwussow did you try the integration ariston-remotethermo-home-assistant-v3

Sorry to be a bit dens, @nechry , but am I understanding it correctly, that you recommend the Ariston integration instead of the one you have written?

I have an ELCO THISION S 25.2 gas boiler, and it seems Elco is a subdivision of Ariston? I do use the Remocon net access though, not Ariston?

Any advice / hints would be much appreciated.

Thanks in advance!

Mads

hello @madsdyd, the Ariston integration will expose a fully functional thermostat device. My integration only provides read-only information. You can use both and see which you prefer. If you already have AppDeamon setup and aren’t afraid of Yaml, feel free to install my integration. Ariston’s is a user interface mode configuration without YAML.

it looks like ELCO uses Ariton’s API and they just encapsulated it.

Hello, has anyone a fix for that?
I have an equal issue.

2024-02-22 14:53:38.900881 INFO AppDaemon: AppDaemon Version 4.4.2 starting
2024-02-22 14:53:38.900979 INFO AppDaemon: Python version is 3.11.6
2024-02-22 14:53:38.901043 INFO AppDaemon: Configuration read from: /config/appdaemon.yaml
2024-02-22 14:53:38.901117 INFO AppDaemon: Added log: AppDaemon
2024-02-22 14:53:38.901196 INFO AppDaemon: Added log: Error
2024-02-22 14:53:38.901253 INFO AppDaemon: Added log: Access
2024-02-22 14:53:38.901311 INFO AppDaemon: Added log: Diag
2024-02-22 14:53:38.983316 WARNING AppDaemon: ------------------------------------------------------------
2024-02-22 14:53:38.983395 WARNING AppDaemon: Unexpected error during run()
2024-02-22 14:53:38.983451 WARNING AppDaemon: ------------------------------------------------------------
Traceback (most recent call last):
  File "/usr/lib/python3.11/site-packages/appdaemon/__main__.py", line 131, in run
    self.AD = ad.AppDaemon(self.logging, loop, **appdaemon)
              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3.11/site-packages/appdaemon/appdaemon.py", line 250, in __init__
    self.plugins = plugins.Plugins(self, args)
                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3.11/site-packages/appdaemon/plugin_management.py", line 99, in __init__
    if "disable" in self.plugins[name] and self.plugins[name]["disable"] is True:
       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
TypeError: argument of type 'NoneType' is not iterable
2024-02-22 14:53:38.984739 INFO AppDaemon: Previous message repeated 1 times
2024-02-22 14:53:38.984819 INFO AppDaemon: AppDaemon Exited
[14:53:39] INFO: Service AppDaemon exited with code 0 (by signal 0)

There’s a way to access (some) of the elco products using eBus.

It requires a bit of luck but you have read/write access to the internals …

1 Like

hello sorry for the late response. It seems that the addon is not configured properly. Try with all default configurations first to see if you can start the addon, then start adding a specific configuration and see what happens