dominikamann / oekofen-pellematic-compact Goto Github PK
View Code? Open in Web Editor NEWA Ökofen Pellematic Compact Integration based on JSON/TCP-Inteface for Home Assistant.
License: Apache License 2.0
A Ökofen Pellematic Compact Integration based on JSON/TCP-Inteface for Home Assistant.
License: Apache License 2.0
hello dominque, nice job, but a puffer probe is always missing, in reality there are 4, hot water, tpo, tpm and tank below, which would be the one that starts the solar pump
Originally posted by dominikamann February 8, 2023
New configuration options have been added which may cause a break. Please check if your system still works after the update. If not, please delete your device and configure it again.
Hi Dominque, how are you?
Were you able to benefit from the new pellematic settings?
Now okofen has built an obviously very high quality heat pump.
I managed to install the photovoltaic system at home, therefore taking a good step forward.
I'm messing around with the energy dashboard in HomeAssistant to implement everything and an idea came to me.
There is the gas consumption panel, which is of little use in this era, it would be nice to be able to transform it into the consumption of pellets both in Kg and Kw of thermal power, since having the possibility of finding the value of daily consumption would really be nice, then for solar thermal I also have a counter for the kW generated, so having the flow of the sun's power and the pellets consumed, like for electricity, would be really fantastic.
what do you think about it? doable?
hello, after the update to version 4.02 of the compact the repository returns an error indicating that the values of the layout are not numeric, downloading the json file from the machine the file is apparently the same.
Is there a solution to avoid losing the configuration in home assistant?
I am attaching the 4.01 and 4.02 files for reference.
Thanks in advance
4.01.txt
4.02.txt
Dear community,
Most of the sensors work fine but pellet usage is always zero.
Not sure what is going on, any hint?
The operating device is Touch V4.00b
Thanks a lot!
I only get 2 of my 3 heating circuit.
Is it possible to add a the third one ?
It's listed in the json file
Hi @dominikamann,
Thanks again for your work on this custom integration.
I have another point of improvement for the integration : during setup, the user can choose a prefix for the generated sensors, by default pellematic. It is a good thing to have such a prefix.
But once the setup is finished, the effectively created sensors have no prefix in their key.
Here are some key I have for example :
sensor.outside_temperature, sensor.heating_circuit_2_name, etc
It would be better to have :
sensor.pellematic_outside_temperature, sensor.pellematic_heating_circuit_2_name
where "pellematic" is the entered prefix during the configuration.
I tried to find how to code this but I am not really at ease with this so I prefer to send you the issue.
If you could correct this, it would be great.
Thanks,
Hi Dominik,
first of all, thank you for this great integration!
What could be the reason for, that the pump state of following pumps is always "on":
The state of the 3 heating circuit pumps is "unknown" (actually the heating_circuits are off)
Best regards
Alex
I can't see my second heating circuit. Only "Hot Water Circuit 1" and "Heating Circuit 1" but I also have another heating circuit in the Pellematic app.
Hi @dominikamann and first of all: Thank you very much for your HACS integration for Ökofen. It works out of the box but I'm missing the values from the SmartPV feature (that features basically a power meter for your power flow direction [buy or sell] and an electric heating element in the water storage tank).
I'd prefer to contribute with a pull request but I'm probably the worst programmer in the world. The values are stored in the $.power domain and are basically
{
"power":{
"power_info":"powermeter data",
"L_usage":{"val":0, "unit":"W", "factor":1, "min":-32768, "max":32767},
"L_pv_total":{"val":0, "unit":"W", "factor":1},
"L_pv_1":{"val":0, "unit":"W", "factor":1},
"L_pv_2":{"val":0, "unit":"W", "factor":1},
"L_from_grid":{"val":0, "unit":"W", "factor":1, "min":-32768, "max":32767},
"L_to_grid":{"val":0, "unit":"W", "factor":1, "min":-32768, "max":32767},
"L_p1":{"val":0 "unit":"W", "factor":1, "min":-32768, "max":32767},
"L_p2":{"val":0, "unit":"W", "factor":1, "min":-32768, "max":32767},
"L_p3":{"val":-0, "unit":"W", "factor":1, "min":-32768, "max":32767},
"L_batt_in":{"val":0, "unit":"W", "factor":1, "min":-32768, "max":32767},
"L_batt_out":{"val":0, "unit":"W", "factor":1, "min":-32768, "max":32767},
"L_batt_chg":{"val":0, "unit":"%", "factor":1, "min":-32768, "max":32767},
"L_batt_enabled":{"val":0, "format":"0:Inaktiv|1:Aktiv"},
"L_pwr_out_per":{"val":0, "unit":"%", "factor":1, "min":0, "max":100},
"L_pwr_out":{"val":0, "unit":"W", "factor":1, "min":-32768, "max":32767},
"L_power2car":{"val":0, "unit":"W", "factor":1, "min":-32768, "max":32767},
"L_today_total":{"val":0, "unit":"kWh", "factor":1.0E-4},
"L_today_in":{"val":0, "unit":"kWh", "factor":1.0E-4},
"L_today_out":{"val":0, "unit":"kWh", "factor":1.0E-4},
"L_state":{"val":0, "factor":1},
"L_total":{"val":0, "factor":1},
"L_yesterday":{"val":0, "unit":"kWh", "factor":1.0E-4},
"L_total_tyristor":{"val":0, "unit":"kWh", "factor":1.0E-4},
"L_yesterday_tyristor":{"val":0, "unit":"kWh", "factor":1.0E-4},
"L_total_car":{"val":0, "unit":"kWh", "factor":1.0E-4},
"L_yesterday_car":{"val":0, "unit":"kWh", "factor":1.0E-4},
"L_total_pv":{"val":0, "unit":"kWh", "factor":1.0E-4},
"L_yesterday_pv":{"val":0, "unit":"kWh", "factor":1.0E-4},
"L_today_batt_in":{"val":0, "factor":1},
"L_today_batt_out":{"val":0, "factor":1},
"L_yesterday_batt_in":{"val":0, "factor":1},
"L_yesterday_batt_out":{"val":0, "factor":1},
"L_output_mode":{"val":0, "format":"0:Aus|1:Ein"},
"L_range":{"val":0, "unit":"W", "factor":1, "min":500, "max":10000},
"L_offset":{"val":0, "unit":"W", "factor":1, "min":0, "max":10000},
"L_total_in":{"val":0, "factor":1},
"L_total_out":{"val":0, "factor":1},
"L_yesterday_in":{"val":0, "unit":"kWh", "factor":1.0E-4},
"L_yesterday_out":{"val":0, "unit":"kWh", "factor":1.0E-4},
"offtemp":{"val":0, "unit":"°C", "factor":0.1, "min":300, "max":900}
}
}
I'd be very happy to assist with implementing these sensors, but didn't fully understand your code. I think I should add the values to const.py, how do you import that in the configuration during creation? Maybe another switch with "Use SmartPV" would be nice as this seems to be a niche Ökofen add-on that is relatively unusual. Any help is very appreciated for my fist commit on github ;-)
Hello I have a pellematic condens_e
It has a additional Stirling Power Generator. I would need this data also to be in the HA. Can you include it? I'll send you a complete JSON from my pellematic.
You see the System is not running and has ambient Temperature.
{
"system":{
"L_ambient":"203",
"L_errors":"0",
"L_usb_stick":"false"
},
"weather":{
"L_temp":"0",
"L_clouds":"100",
"L_forecast_temp":"0",
"L_forecast_clouds":"100",
"L_forecast_today":"true",
"L_starttime":"850",
"L_endtime":"1530",
"L_source":"https://www.openweathermap.org",
"L_location":"Chambery|FR|3027422",
"cloud_limit":"55",
"hysteresys":"-40",
"offtemp":"-100",
"lead":"120",
"refresh":"false",
"oekomode":"0"
},
"forecast":{
"L_w_0":"Mo, 19 Jun 04:29|0|100|9 km/h|04n|804|C|08:15|17:11",
"L_w_1":"Mi, 10 Jan 10:00|1|100|5 km/h|13d|600|C",
"L_w_2":"Mi, 10 Jan 13:00|4|100|4 km/h|04d|804|C",
"L_w_3":"Mi, 10 Jan 16:00|4|100|4 km/h|04d|804|C",
"L_w_4":"Mi, 10 Jan 19:00|2|100|4 km/h|04n|804|C",
"L_w_5":"Mi, 10 Jan 22:00|2|100|5 km/h|04n|804|C",
"L_w_6":"Do, 11 Jan 01:00|1|100|5 km/h|04n|804|C",
"L_w_7":"Do, 11 Jan 04:00|0|100|5 km/h|04n|804|C",
"L_w_8":"Do, 11 Jan 07:00|-3|87|5 km/h|04n|804|C",
"L_w_9":"Do, 11 Jan 10:00|1|100|3 km/h|04d|804|C",
"L_w_10":"Do, 11 Jan 13:00|5|99|5 km/h|04d|804|C",
"L_w_11":"Do, 11 Jan 16:00|4|49|5 km/h|03d|802|C",
"L_w_12":"Do, 11 Jan 19:00|0|47|4 km/h|03n|802|C",
"L_w_13":"Do, 11 Jan 22:00|2|86|4 km/h|04n|804|C",
"L_w_14":"Fr, 12 Jan 01:00|2|92|4 km/h|04n|804|C",
"L_w_15":"Fr, 12 Jan 04:00|1|99|4 km/h|04n|804|C",
"L_w_16":"Fr, 12 Jan 07:00|0|98|4 km/h|04n|804|C",
"L_w_17":"Fr, 12 Jan 10:00|1|88|4 km/h|04d|804|C",
"L_w_18":"Fr, 12 Jan 13:00|4|83|4 km/h|04d|803|C",
"L_w_19":"Fr, 12 Jan 16:00|3|86|4 km/h|04d|804|C",
"L_w_20":"Fr, 12 Jan 19:00|1|83|3 km/h|04n|803|C",
"L_w_21":"Fr, 12 Jan 22:00|1|92|4 km/h|04n|804|C",
"L_w_22":"Sa, 13 Jan 01:00|1|94|3 km/h|04n|804|C",
"L_w_23":"Sa, 13 Jan 04:00|-2|64|5 km/h|04n|803|C",
"L_w_24":"Sa, 13 Jan 07:00|-3|36|5 km/h|03n|802|C"
},
"stirling":{
"L_temp_1":"210",
"L_temp_2":"211",
"L_temp_diff":"1",
"L_temp_flow":"187",
"L_temp_ret":"187",
"L_temp_amb":"193",
"L_flow":"0",
"L_voltage":"2319",
"L_current":"0",
"L_frequency":"5000",
"L_phase":"0",
"L_power":"0",
"L_power_totals":"6705868",
"L_power_today":"0",
"L_power_yesterday":"0",
"L_source":"1",
"L_st_req":"0",
"L_state":"0",
"L_runtime":"12",
"L_start":"9",
"L_safety_shutdown":"1",
"L_error":"304"
},
"hk1":{
"L_roomtemp_act":"0",
"L_roomtemp_set":"80",
"L_flowtemp_act":"196",
"L_flowtemp_set":"80",
"L_comfort":"0",
"L_state":"8",
"L_statetext":"Betriebsart Aus",
"L_pump":"false",
"remote_override":"0",
"mode_auto":"0",
"time_prg":"0",
"temp_setback":"180",
"temp_heat":"220",
"temp_vacation":"150",
"name":"",
"oekomode":"0",
"autocomfort":"-1",
"autocomfort_sunset":"0",
"autocomfort_sunrise":"0"
},
"hk2":{
"L_roomtemp_act":"0",
"L_roomtemp_set":"80",
"L_flowtemp_act":"203",
"L_flowtemp_set":"80",
"L_comfort":"0",
"L_state":"8",
"L_statetext":"Betriebsart Aus",
"L_pump":"false",
"remote_override":"0",
"mode_auto":"0",
"time_prg":"0",
"temp_setback":"180",
"temp_heat":"220",
"temp_vacation":"150",
"name":"",
"oekomode":"0",
"autocomfort":"-1",
"autocomfort_sunset":"0",
"autocomfort_sunrise":"0"
},
"pu1":{
"L_tpo_act":"222",
"L_tpo_set":"80",
"L_tpm_act":"217",
"L_tpm_set":"80",
"L_pump_release":"80",
"L_pump":"0",
"L_state":"512",
"L_statetext":"Anforderung Aus",
"mintemp_off":"80",
"mintemp_on":"80",
"ext_mintemp_off":"80",
"ext_mintemp_on":"80"
},
"ww1":{
"L_temp_set":"80",
"L_ontemp_act":"227",
"L_offtemp_act":"227",
"L_pump":"false",
"L_state":"4",
"L_statetext":"Betriebsart Aus",
"time_prg":"0",
"sensor_on":"0",
"sensor_off":"0",
"mode_auto":"1",
"mode_dhw":"1",
"heat_once":"false",
"temp_min_set":"300",
"temp_max_set":"600",
"name":"",
"smartstart":"0",
"use_boiler_heat":"0",
"oekomode":"0"
},
"sk1":{
"L_koll_temp":"201",
"L_spu":"204",
"L_pump":"0",
"L_state":"32",
"L_statetext":"Differenz Kollektor-Speicher zu niedrig",
"mode":"1",
"cooling":"0",
"spu_max":"600",
"name":""
},
"pe1":{
"L_temp_act":"222",
"L_temp_set":"80",
"L_ext_temp":"-32768",
"L_frt_temp_act":"219",
"L_frt_temp_set":"80",
"L_br":"false",
"L_ak":"true",
"L_not":"true",
"L_stb":"true",
"L_modulation":"0",
"L_uw_speed":"0",
"L_state":"99",
"L_statetext":"Aus",
"L_type":"6",
"L_starts":"241",
"L_runtime":"1274",
"L_avg_runtime":"317",
"L_uw_release":"600",
"L_uw":"0",
"L_storage_fill":"2423",
"L_storage_min":"400",
"L_storage_max":"3300",
"L_storage_popper":"0",
"storage_fill_today":"0",
"storage_fill_yesterday":"0",
"mode":"1"
},
"error":{
}
}
Hi Dominik, thanks for this wonderful Integration. I have just started playing around and getting into all of this home assistant stuff. Anyway I managed to get things running and I can see the sensor values in HA, see picture. Unfortunately by factor 10x too high.
As I can see in your code at some point you are dividing the values by 10.
Do you have an idea what is going wrong here?
Thanks Jens
The service pellematic is unaviable after upgrade of Home assistant [2024.1.6].
Do you have the same problem?
It looks like you broke the name numbering in case you have multiple peX here ac6ec87#diff-07cd336911bfa0d50dcf13474bf76fb9aeda3a6ea9d1b08b1448da322e94ed6dR161
>>> "foo".format(" " + str(2))
'foo'
It should look like Heater Modulation PE 1
It should look like Heater Modulation PE 2
You did not like the previous syntax, where it was working?
Errore
Impossibile caricare il flusso di configurazione: {"message":"Invalid handler specified"}
Hello,
I'm having problems displaying variables or when text in French is displayed :
Pellematic Heating Circuit 1 State : Mode r?duit actif|T ext sup?rieure ? la limite de r?duit
or
Pellematic State : Mise ? l'arr?t
Do you think is possible to modify this?
Thanks for your project !
Regards
First of all thanks for the awesome integration.
Works flawless. :)
One thing I'm struggeling with is to add the pellet usage to the engery dashboard.
I know it is called "Gas usage" but technically it just expects a metric in kWh which can be calculated from the pellet usage.
I tried to achieve this by setting up a utility helper and a template metric to calculate the kWh from the kg.
And then there is this mess, which might help:
https://community.home-assistant.io/t/calculate-cumulative-total-sensor-from-daily-total-sensor/335275/6
I was wondering if you know how to achieve this or if it even might be something the integration itself could provide directly.
Hi Dominik,
I'm running a Pellematic Smart XS and when I fetch the values for ww1 manually via REST I get a value for L_ontemp_act which is representing the actual hot water circuit temperature.
This value is not showing up when using your custom integration.
Can you check on this?
If required I can provide logs or REST outputs.
Thanks for doing such awesome work!!
Regards
Ralf
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.