Code Monkey home page Code Monkey logo

econet-300-home-assistant-integration's Introduction

  • 👋 Hi, I’m @pblxptr, currently working as Embedded Software Developer, developing software/firmware that mostly run on ARM devices.
  • 👀 I’m interested in low-level aspects of programming, digital electronic, microprocessors, microcontrollers, operating systems (Linux Kernel, Zephyr), hardware and home automation. My favorite programming languages are C, C++, Python. Hopefully someday Rust will join to this list.
  • 🌱 I’m currently learning Rust programming language and Home Automation integrations through Home Assistant. Also I try to keep up with C++ language development.

econet-300-home-assistant-integration's People

Contributors

jontofront avatar pblxptr avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar

econet-300-home-assistant-integration's Issues

EcoNET SOL integration

Hello

Any plans for a EcoNET SOL integration? I have a working one and can assist within my limitations

Future. Get alarms measages from boiler

http://x.x.x.x/econet/getDeviceAlarms
image

0 measage ID

fromDate - From
toDate -  To 

Code - alert measage 
0 - Power outage
7 - Unsuccessful boiler firing-up attempt. Empty the ashtray

Name of code alarms in

http://IP/econet/rmAlarmsNames?

{
data: {
0: "Power outage",
1: "Boiler temperature sensor damage.",
2: "Maximum boiler temperature exceeded.",
3: "Feeder temperature sensor damage.",
4: "Maximum feeder temperature exceeded.",
5: "Emission temp. sensor damage.",
7: "Unsuccessful boiler firing-up attempt.\nEmpty the ashtray.",
11: "Fan failure!",
255: "Alarm continues!"

image

Help with the project

Hi, if you want some help with the app, give me your contact and then we can talk more in dm :D

sensors don't show parameters

Home Assistant 2022.12.7
Supervisor 2022.11.2
Operating System 9.4
Frontend 20221213.1 - latest

image

Error log

2022-12-22 21:57:19.327 ERROR (MainThread) [homeassistant.config_entries] Error setting up entry ecoNET300 for econet300 Traceback (most recent call last): File "/usr/src/homeassistant/homeassistant/config_entries.py", line 372, in async_setup result = await component.async_setup_entry(hass, self) File "/config/custom_components/econet300/__init__.py", line 24, in async_setup_entry await api.ping() File "/config/custom_components/econet300/common.py", line 64, in ping await self._client.get_sys_params() File "/config/custom_components/econet300/common.py", line 39, in get_sys_params return await self.get_params("sysParams") File "/config/custom_components/econet300/common.py", line 42, in get_params async with await self._get("http://" + self._host + "/econet/" + reg) as resp: File "/config/custom_components/econet300/common.py", line 53, in _get return await self._session.get(url, auth=self._auth, timeout=5) File "/usr/local/lib/python3.10/site-packages/aiohttp/client.py", line 559, in _request await resp.start(conn) File "/usr/local/lib/python3.10/site-packages/aiohttp/client_reqrep.py", line 893, in start with self._timer: File "/usr/local/lib/python3.10/site-packages/aiohttp/helpers.py", line 721, in __exit__ raise asyncio.TimeoutError from None asyncio.exceptions.TimeoutError

I am not developer, but maybe it's helps you with sensors, I was made integration by template:

#EcoNET boiler
- platform: rest
  scan_interval: 300
  resource: !secret econet24_host
  method: GET
  name: Boiler
  verify_ssl: false
  username: !secret econet24_user
  password: !secret econet24_psw
  authentication: basic
  headers:
    User-Agent: Home Assistant
    Content-Type: application/json
  value_template: "OK"
  json_attributes:
    - curr
- platform: template
  sensors:
    boiler_fuellevel:
      friendly_name: Fuel level
      unique_id: boiler_fuel_level
      value_template: '{{states.sensor.Boiler.attributes["curr"]["fuelLevel"] }}'
      device_class: battery
      icon_template: mdi:gas-station
      unit_of_measurement: "%"
    boiler_temperature:
      friendly_name: Boiler temperature
      unique_id: boiler_temperature_c
      value_template: '{{states.sensor.Boiler.attributes["curr"]["tempCO"]|int }}'
      device_class: temperature
      unit_of_measurement: "°C"
      icon_template: mdi:coolant-temperature
    boiler_set_temperature:
      friendly_name: Boiler set temperature
      unique_id: boiler_set_temperature_c
      value_template: '{{states.sensor.Boiler.attributes["curr"]["tempCOSet"]|int }}'
      device_class: temperature
      unit_of_measurement: "°C"
      icon_template: mdi:thermometer
    boiler_pumpcoworks:
      friendly_name: Boiler operation
      unique_id: boiler_operation_status
      value_template: '{{states.sensor.Boiler.attributes["curr"]["pumpCOWorks"] }}'
    boiler_output:
      friendly_name: Boiler output
      unique_id: boiler_output_percents
      value_template: '{{states.sensor.Boiler.attributes["curr"]["boilerPower"] }}'
      unit_of_measurement: "%"
      icon_template: mdi:microsoft-powerpoint
    boiler_fan_output:
      friendly_name: Boiler Fan output
      unique_id: boiler_fan_output_percents
      value_template: '{{states.sensor.Boiler.attributes["curr"]["fanPower"]|int }}'
      icon_template: mdi:fan
      unit_of_measurement: "%"
    boiler_mixer_set_temp1:
      friendly_name: Boiler Mixer Heat Set Temperature
      unique_id: boiler_micer_heat_set_temeperature
      value_template: '{{states.sensor.Boiler.attributes["curr"]["mixerSetTemp1"]|int }}'
      device_class: temperature
      unit_of_measurement: "°C"
    boiler_mixer_temp1:
      friendly_name: Boiler Mixer 1 Temperature
      unique_id: boiler_mixer_1_temperature
      value_template: '{{states.sensor.Boiler.attributes["curr"]["mixerTemp1"]|int }}'
      icon_template: mdi:thermometer-lines
      device_class: temperature
      unit_of_measurement: "°C"
    boiler_temp_huw_set:
      friendly_name: Boiler set hot water
      unique_id: boiler_set_hot_wate
      value_template: '{{states.sensor.Boiler.attributes["curr"]["tempCWUSet"] }}'
      device_class: temperature
      unit_of_measurement: "°C"
    temp_huw:
      friendly_name: Hot water
      unique_id: hot_water_temperature
      value_template: '{{states.sensor.Boiler.attributes["curr"]["tempCWU"]|int }}'
      device_class: temperature
      unit_of_measurement: "°C"
    temp_outside:
      friendly_name: Temperature outside
      unique_id: temperature_outside_near_door
      value_template: '{{states.sensor.Boiler.attributes["curr"]["tempExternalSensor"]|int }}'
      device_class: temperature
      unit_of_measurement: "°C"

Future. Boiler power kW sensor

I try to figure how calculate boiler power on time.

I figure out from the boiler supply, that when boiler work (boiler_output). If it's 100% = boiler kW
I have 11 kW = 100% (boiler output)

So I make template:

- platform: template
  sensors:
    boiler_power_kwatts:
      unique_id: boiler_power_kwatts
      friendly_name: "Boiler work power kW"
      unit_of_measurement: "kW"
      device_class: power
      value_template: >
        {% set BO = states('sensor.boiler_output_2') | float %}
        {{ ((BO*11)/100) | round(2) }}

image

Now I trying to figure out, maybe we have boiler kW in EcoNET and can integrate sensor in your integration package.

After all winter we will know kW :)

Get data from sysParams

Hi @pblxptr,

Maybe you can hel me? I want add to binary_sensor LAN and wifi connection like

device_class=BinarySensorDeviceClass.CONNECTIVITY, entity_category=EntityCategory.DIAGNOSTIC,

These keys are in sysParams
I try to get data in one masive sysParams and regParams but gets errors :) (I am not phyton programer)

    sys_params = await self._client.get_params(API_SYS_PARAMS_URI)
    reg_params = await self._fetch_reg_key(API_REG_PARAMS_URI, API_REG_PARAMS_PARAM_DATA)
    _LOGGER.warning (
            "All parameters list sys:"+ str(len(sys_params)) + ", reg:" + str(len(reg_params)) +" "
    )
    return sys_params + reg_params

maybe you can help me how I can get data from sysParams
I want to add to Diagnostic:
keys: lan: true or false, wifi: true or false

Create device information in HA

http://x.x.x.x/econet/sysParams

Controller
controllerID: "ecoMAX810P-L TOUCH"

Controller software versions
Module ecoNET version: softVer: "3.2.3819"
Module A version: moduleASoftVer: "8.30.176.R1"
Module Panel version: modulePanelSoftVer: "8.11.42"
Module B version: moduleBSoftVer: "1.30.7"
Module Lambda version: moduleLambdaSoftVer: "3.2.7"

Assistance with ecoMAX360i* Heat pump and EcoNet300 integration

Hello, I need help. I'm new to this I've seen great opportunities HA. I have an EcoNet300 device connected to a heat pump controller. The data I've learned are:
Module ecoNET version: 3.2.3842
Module A version:S002.35
Module Panel 100 version:S003.67
Panels configuration version 1.44
The ecoMAX360i is the name of the controller.
Of course I'm answering because I need help since your integration ecoNET300 doesn't find anything for me.
This is the data I get from: http://192.168.1.40/econet/regParams
DATA:
{"settingsVer":4243,"editableParamsVer":4590,"schedulesVer":0,"remoteMenuVer":{},"curr":{"TempWthr": -4.5999999999999996, "MODONOFF3": 0, "MODONOFF2": 0, "TempCWU": 49.100000000000001, "MODONOFF5": 0, "MODONOFF4": 0, "PS": "S003.67", "MODwateroutlettemp4": 0, "Circuit5thermostatTemp": 0, "TempBuforUp": null, "MODONOFF": 2, "TempBuforDown": 30.399999999999999, "Circuit4thermostatTemp": 0, "MODwateroutlettemp": 32, "MODwateroutlettemp3": 0, "MODwateroutlettemp2": 0, "MODwateroutlettemp5": 0, "Circuit1thermostat": 0, "Circuit2thermostatTemp": 19.989999999999998, "TempClutch": 32.0, "TempCircuit5": 999.0, "TempCircuit4": 999.0, "Circuit3thermostatTemp": 19.129999999999999, "TempCircuit3": 28.600000000000001, "TempCircuit2": 17.800000000000001}, "currUnits":{"TempCWU": 1, "TempClutch": 1, "TempBuforUp": 1, "TempBuforDown": 1}, "currNumbers":{"TempWthr": 68, "MODONOFF3": 1227, "MODONOFF2": 1226, "TempCWU": 61, "MODONOFF5": 1229, "MODONOFF4": 1228, "PS": 10010, "MODwateroutlettemp4": 1243, "Circuit5thermostatTemp": 1036, "TempBuforUp": 62, "MODONOFF": 1055, "TempBuforDown": 63, "Circuit4thermostatTemp": 985, "MODwateroutlettemp": 1154, "MODwateroutlettemp3": 1241, "MODwateroutlettemp2": 1239, "MODwateroutlettemp5": 1245, "Circuit1thermostat": 277, "Circuit2thermostatTemp": 327, "TempClutch": 64, "TempCircuit5": 71, "TempCircuit4": 70, "Circuit3thermostatTemp": 899, "TempCircuit3": 67, "TempCircuit2": 66}, "schemaParams":{"schema_T2value-3": [[["15.0", 1, 0]], true, true], "kociol_pellet": [[["S002.35", 0, 0]], false, true], "termostat1-en": [[["S002.35", 0, 0]], false, true], "pompa_GZ": [[["S002.35", 0, 0]], true, true], "temp_termostat3-6": [[["19.1", 1, 0]], true, true], "temp_pogoda": [[["-4.6", 1, 0]], true, true], "temp_grzejnik3": [[["28.6", 1, 0]], true, true], "termostat3": [[["S002.35", 0, 0]], false, true], "reakcja_termostat2": [[["NIE GRZEJ", 0, 1]], false, true], "termostat1": [[["S002.35", 0, 0]], false, true], "temp_zasilanie_GZ": [[["210.0", 1, 0]], true, true], "reakcja_termostat2-en": [[["NO HEAT", 0, 1]], false, true], "mieszacz_bufor_pellet": [[["S002.35", 0, 0]], false, true], "pompa_kociol_ON": [[["S002.35", 0, 0]], true, true], "mieszacz_bufor": [[["S002.35", 0, 0]], true, true], "grzejnik1": [[["S002.35", 0, 0]], false, true], "grzejnik3": [[["S002.35", 0, 0]], false, true], "grzejnik2": [[["S002.35", 0, 0]], false, true], "reakcja_termostat1-en": [[["NO HEAT", 0, 1]], false, true], "temp_grzejnik1": [[["999.0", 1, 0]], true, false], "reakcja_termostat3-en": [[["NO HEAT", 0, 1]], false, true], "podloga2": [[["S002.35", 0, 0]], true, true], "pompa_cyrkulacja_ON_CWU": [[["S002.35", 0, 0]], false, true], "podloga1": [[["S002.35", 0, 0]], true, true], "pompa_CWU": [[["S002.35", 0, 0]], false, true], "reakcja_termostat1": [[["NIE GRZEJ", 0, 1]], false, true], "Bufor": [[["S002.35", 0, 0]], false, true], "pompa_kociol_pellet_ON": [[["S002.35", 0, 0]], false, true], "temp_grzejnik2": [[["17.8", 1, 0]], true, true], "temp_bufor_dol": [[["30.4", 1, 0]], true, true], "klimakonwektor1": [[["S002.35", 0, 0]], false, true], "pompa_ON_podloga1": [[["S002.35", 0, 0]], false, true], "klimakonwektor3": [[["S002.35", 0, 0]], false, true], "klimakonwektor2": [[["S002.35", 0, 0]], false, true], "CWU": [[["S002.35", 0, 0]], true, true], "cyrkulacja_CWU": [[["S002.35", 0, 0]], false, true], "temp_CWU": [[["49.1", 1, 0]], true, true], "pompa_ciepla": [[["S002.35", 0, 0]], true, true], "termostat3-en": [[["S002.35", 0, 0]], true, true], "pompa_ON_grzejnik1": [[["S002.35", 0, 0]], false, true], "pompa_ON_grzejnik2": [[["S002.35", 0, 0]], false, true], "pompa_ON_grzejnik3": [[["S002.35", 0, 0]], true, true], "grzanie_CWU": [[["S002.35", 0, 0]], false, true], "temp_podloga2": [[["28.6", 1, 0]], true, true], "mieszacz_bufor_pellet-2": [[["S002.35", 0, 0]], true, true], "temp_bufor_gora": [[["---", 1, 0]], true, true], "temp_podloga1": [[["17.8", 1, 0]], true, true], "grzanie_bufor": [[["S002.35", 0, 0]], true, true], "temp_termostat2-9": [[["20.0", 1, 0]], true, true], "pompa_kociol_gazowy_ON": [[["S002.35", 0, 0]], false, true], "reakcja_termostat3": [[["S002.35", 0, 0]], true, true], "pompa_kociol_pellet_ON-6": [[["S002.35", 0, 0]], true, true], "mieszacz_bufor_gazowy": [[["S002.35", 0, 0]], false, true], "kociol_gazowy": [[["S002.35", 0, 0]], false, true], "temp_termostat1-3": [[["0.0", 1, 0]], false, true], "g13494": [[["S002.35", 0, 0]], true, true], "temp_sprzeglo": [[["32.0", 1, 0]], true, true], "pompa_ON_podloga2": [[["S002.35", 0, 0]], true, true], "termostat2-en": [[["S002.35", 0, 0]], true, true], "termostat2": [[["S002.35", 0, 0]], false, true]}, "tilesParams":[[[["0", 0, 1]], true, true, null, null, 1, 5001], [[["2", 0, 1]], true, true, null, null, 1, 5002], [[["0", 0, 1]], true, true, null, null, null, null], [[["32.0", 1, 0]], true, true, null, null, null, null], [[["49.1", 1, 0]], true, true, [["49.0", 1, 0]], "|", 0, 5005], [[["999.0", 1, 0]], false, false, [["40.0", 1, 0]], "|", 0, 5006], [[["0.0", 1, 0]], true, false, [["21.0", 1, 0]], "|", 0, 5007], [[["0.0", 1, 0]], true, false, [["20.0", 1, 0]], "|", 0, 5008], [[["17.8", 1, 0]], true, false, [["43.0", 1, 0]], "|", 0, 5009], [[["20.0", 1, 0]], true, false, [["20.5", 1, 0]], "|", 0, 5010], [[["20.0", 1, 0]], true, false, [["20.0", 1, 0]], "|", 0, 5011], [[["28.6", 1, 0]], true, false, [["43.0", 1, 0]], "|", 0, 5012], [[["19.1", 1, 0]], true, false, [["20.5", 1, 0]], "|", 0, 5013], [[["19.1", 1, 0]], true, false, [["20.0", 1, 0]], "|", 0, 5014], [[["-4.6", 1, 0]], true, true, null, null, null, null], [[["---", 1, 0]], false, false, null, null, null, null], [[["30.4", 1, 0]], true, false, null, null, null, null], [[["999.0", 1, 0]], false, false, [["40.0", 1, 0]], "|", 0, 5018], [[["0.0", 1, 0]], true, false, [["21.0", 1, 0]], "|", 0, 5019], [[["0.0", 1, 0]], true, false, [["19.0", 1, 0]], "|", 0, 5020], [[["999.0", 1, 0]], false, false, [["40.0", 1, 0]], "|", 0, 5021], [[["0.0", 1, 0]], true, false, [["21.0", 1, 0]], "|", 0, 5022], [[["0.0", 1, 0]], true, false, [["19.0", 1, 0]], "|", 0, 5023]]}

Boiler Settings keys

In my case

Alarm level

112 - BOILER_HEATING_CURVE
Allows for increasing or decreasing temperature in heating circuit when the heating curve does not exactly match the characteristics of the building.
/rmNewParam?uid=[ YOUR_UID ]&newParamIndex=112&newParamValue=0.5&_=1672762895788

{
type: "0",
paramName: "112",
paramValue: 0.5
}

46 - PRESENT_BOILER_TEMP
/rmNewParam?uid=[ YOUR_UID ]NewParamIndex=46&newParamValue=37&_=1672763384148

{
type: "0",
paramName: "46",
paramValue: 37
}

111 - WEATHER_CONTROL_BOILER
0 - OFF
1- ON
/rmNewParam?uid=[ YOUR_UID ]&newParamIndex=111&newParamValue=0&_=1672763384251

{
type: "0",
paramName: "111",
paramValue: 0
}

139 - FUEL_ALARM_LEVEL
It is a time of continous operation of burner, after which the burner will be automatically burned off, cleaned, and fired up again.
/rmNewParam?uid=[ YOUR_UID ]&newParamIndex=139&newParamValue=10&_=1672763384444

{
"type": "0",
"paramName": "139", 
"paramValue": 10
}

Mixer 1 settings
63 - MIXER1_PRESENT_TEMP
For me it's disable because weather control on.
Present temperature reduction in the heating circuit of the mixer when the contacts of the room therm. are open (present room temp. is reached).

79 - MIXER1_WEATHER_CONTROL
When the weather control is on, present temperature is calculated based on the heating curve and weather sensor readings.
0 - OFF
1 - ON
/rmNewParam?uid=[ YOUR_UID ]&newParamIndex=79&newParamValue=1&_=1672763384565

{
type: "0",
paramName: "79",
paramValue: 1
}

83 - MIXER1_HEATING_CURVE
Heating curve reflects the thermal characteristics of the building. Recommended settings for mixer circuit: 0,2 - 0,6
/rmNewParam?uid=[ YOUR_UID ]&newParamIndex=83&newParamValue=0.6&_=1672765688949
{
type: "0",
paramName: "83",
paramValue: 0.6
}

Infromation mixer 1
1031 - Temp. mixer 1 celsius
1287 - Preset temp. mixer 1 celsius
118 - Room thermostat mixer 1 ON/OF
1544 - Pump mixer 1 ОN/OF
139 - Valve mixer 1 %

ecoVENT not recognized

Hi, thanks for starting with that integration.
Unfortunly it´s not working with ventilation system ecoVENT.
It went well to connect from your integration to econet300 but that was all.
No devices or entities detected.
Is there any list of compatible devices/system with that integrations?
Regards Krystian

Econet services url

Collect url link information
http://IP_addres/econet/rmParamsDescs?
image

http://IP_addres/econet/rmParamsData
image

http://IP_addres/econet/rmLocksNames?
image

http://IP_addres/econet/rmCatsDescs?
image

http://IP_addres/econet/rmCurrentDataParamsEdits
image

Sensors. get boilerPower sensor and boiler operation mode

From /econet/regParams? I figure out these boiler states

Key: mode

Constants means:

    OFF = 0
    FANNING = 1
    FIRE UP= 2
    WORKING = 3
    SUPERVISION = 4
    BURNING_OFF = 7
    ALERT = 8

Can you add please Boiler output sensor

key="boilerPower",
name="Boiler output", 
icon="mdi:gauge",
native_unit_of_measurement=PERCENTAGE,

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.