Open jo0246 opened 3 years ago
It works as an integration in Home Assistant. Great job you guys did! Thank you! However, two thinks are not working properly:
Allso the current status, real power and smoke temp is not showing up. No problem, but would be great if i can fix this.
Hi @jo0246,
For my pellet Stove (Nordic Fire, Reeva 7) i have the following customer code: 953712
Which app are you using, I suppose not the Nordic Fire 2.0 from Micronova SRL?
It would help me a lot if you can do all kind of actions (set temperature, set power, set ventilation power, etc.) and also sniff the traffic with a packet inspector (like you already did) and deliver me the outputs of it. Just don't forget to clear sensitive data like your password :-)
Fan mode shows the current power instead of the ventilation power;
Well actually I did not saw a stove yet (until now) where the ventilation power can be adjusted. That's why I implemented the power as fan mode in the HA example. So if I understand correctly with your stove you can set both the power value and ventilation power value? (FYI: HA only allows changes to temperature, fan mode and HVAC mode. So implement both power & ventilation would be impossible in HA.)
Allso the current status, real power and smoke temp is not showing up.
So you are not seeing this info as attributes of the climate device? (see reference sceenshot below)
Hi,
Which app are you using, I suppose not the Nordic Fire 2.0 from Micronova SRL?
I am using the Ravelli WiFi app.
It would help me a lot if you can do all kind of actions (set temperature, set power, set ventilation power, etc.)
I have sniffed the packages but dont know what part of the log you need. Can i share the logs directly? Would like to prevent that sensitive data will be posted. A part of the logging i have for lowering the power from 4 to 3:
Host: aico.agua-iot.com:3001
Connection: keep-alive
Content-Length: 205
Accept: application/json, text/javascript, */*; q=0.01
id_brand: 1
*************************
User-Agent: Mozilla/5.0 (Linux; Android 10; ********* Build/QKQ1.190716.003; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/88.0.4324.141 Mobile Safari/537.36
local: false
customer_code: 953712
Content-Type: application/json
X-Requested-With: com.micronovasrl.ninaravelli
Accept-Encoding: gzip, deflate
Accept-Language: nl-NL,nl;q=0.9,en-US;q=0.8,en;q=0.7
{"id_product":"*******************","id_device":"******************","Protocol":"RWMSmaster","BitData":[8],"Endianess":["L"],"Items":[32850],"Masks":[65535],"Values":[3]}HTTP/1.1 200 OK
X-Powered-By: Express
Access-Control-Allow-Origin: *
Access-Control-Allow-Headers: Origin, X-Requested-With, Content-Type, Accept, Authorization, customer_code, id_brand, local, Access-Control-Allow-Origin, filepath, expect, host, content-length, enctype, Connection, Origin, Accept-Encoding, Accept-Language, User-Agent, Content-Disposition, Upgrade
Access-Control-Allow-Methods: GET,PUT,POST,DELETE
Access-Control-Allow-Credentials: true
Content-Type: application/json; charset=utf-8
Content-Length: 102
ETag:
Date: Sun, 07 Feb 2021 15:11:04 GMT
Connection: keep-alive
{"Success":true,"Text":"DEVICE_ENQUEUE_MESSAGE_OK","idRequest":"*******"}GET /deviceJobStatus/**********{} HTTP/1.1
Host: aico.agua-iot.com:3001
Connection: keep-alive
Accept: application/json, text/javascript, */*; q=0.01
id_brand: 1
*************************
User-Agent: Mozilla/5.0 (Linux; Android 10; 8888888/QKQ1.190716.003; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/88.0.4324.141 Mobile Safari/537.36
local: false
customer_code: 953712
Content-Type: application/json
X-Requested-With: com.micronovasrl.ninaravelli
Accept-Encoding: gzip, deflate
Accept-Language: nl-NL,nl;q=0.9,en-US;q=0.8,en;q=0.7
HTTP/1.1 200 OK
X-Powered-By: Express
Access-Control-Allow-Origin: *
Access-Control-Allow-Headers: Origin, X-Requested-With, Content-Type, Accept, Authorization, customer_code, id_brand, local, Access-Control-Allow-Origin, filepath, expect, host, content-length, enctype, Connection, Origin, Accept-Encoding, Accept-Language, User-Agent, Content-Disposition, Upgrade
Access-Control-Allow-Methods: GET,PUT,POST,DELETE
Access-Control-Allow-Credentials: true
Content-Type: application/json; charset=utf-8
Content-Length: 118
ETag: "
Date: Sun, 07 Feb 2021 15:11:04 GMT
Connection: keep-alive )
So you are not seeing this info as attributes of the climate device? (see reference sceenshot below)
i see the same attributes: . Do you know how i can get these visible in the lovelace UI?
I have sniffed the packages but dont know what part of the log you need. Can i share the logs directly? Would like to prevent that sensitive data will be posted.
I just realized that I will need some more information, but I'll try to create some extra debug logging in the Python module itself. Give me some time and I will come back to you.
Do you know how i can get these visible in the lovelace UI?
You could use the Entities card in lovelace to display attributes of entities:
type: entities
title: Stove information
entities:
- entity: climate.kachel_woonkamer
type: attribute
name: Smoke Temperature
attribute: smoke_temperature
suffix: °C
- entity: climate.kachel_woonkamer
type: attribute
name: Real Power
attribute: real_power
- entity: climate.kachel_woonkamer
type: attribute
name: Current Status
attribute: human_device_status
Thank you! The attributes don't show the right values. If you need help, let me know!
Hi @jo0246
I've created a new version v0.0.6 with some additional debug logging, the version in the Home Assistant example is also bumped.
Can you update to that version and change the log level in Home Assistant to debug
and send me the logs please?
Hi,
I installed the updated version, however the debug logging is not working. I have added:
logger: default: info logs: custom_components.aguaiot: debug
This did not result in any debug logs. Did i do anything wrong?
Strange, on my HA instance it also does not work if I only set custom_components.aguaiot
to debug
.
But if I change the default log level to debug
then I see them passing by.
Can you try setting it globally?
I have tested it and found several logs. Could you inform me what part of the log you need?
Here an example of changing the state:
2021-02-20 10:28:04 DEBUG (SyncWorker_3) [py_agua_iot] JOBANSWERSTATUS COMPLETED! 2021-02-20 10:28:04 DEBUG (SyncWorker_3) [py_agua_iot] SUCCESSFULLY RETRIEVED ITEM IN JOBANSWERDATA! 2021-02-20 10:28:04 DEBUG (MainThread) [homeassistant.core] Bus:Handling <Event state_changed[L]: entity_id=climate.kachel_woonkamer, old_state=<state climate.kachel_woonkamer=heat; hvac_modes=['heat', 'off'], min_temp=7.0, max_temp=41.0, target_temp_step=0.5, fan_modes=['1', '2', '3', '4', '5'], current_temperature=0.0, temperature=19.0, fan_mode=4, hvac_action=heating, alarm_code=0, device_status=5, human_device_status=CLEANING FIRE-POT, smoke_temperature=729.0, real_power=1, friendly_name=Kachel woonkamer, supported_features=9 @ 2021-02-20T10:21:01.216140+01:00>, new_state=<state climate.kachel_woonkamer=heat; hvac_modes=['heat', 'off'], min_temp=7.0, max_temp=41.0, target_temp_step=0.5, fan_modes=['1', '2', '3', '4', '5'], current_temperature=0.0, temperature=19.0, fan_mode=4, hvac_action=heating, alarm_code=0, device_status=5, human_device_status=CLEANING FIRE-POT, smoke_temperature=728.0, real_power=1, friendly_name=Kachel woonkamer, supported_features=9 @ 2021-02-20T10:21:01.216140+01:00>> 2021-02-20 10:28:04 DEBUG (MainThread) [homeassistant.components.websocket_api.http.connection] [1897305784] Sending {"id": 2, "type": "event", "event": {"event_type": "state_changed", "data": {"entity_id": "climate.kachel_woonkamer", "old_state": {"entity_id": "climate.kachel_woonkamer", "state": "heat", "attributes": {"hvac_modes": ["heat", "off"], "min_temp": 7.0, "max_temp": 41.0, "target_temp_step": 0.5, "fan_modes": ["1", "2", "3", "4", "5"], "current_temperature": 0.0, "temperature": 19.0, "fan_mode": "4", "hvac_action": "heating", "alarm_code": 0, "device_status": 5, "human_device_status": "CLEANING FIRE-POT", "smoke_temperature": 729.0, "real_power": 1, "friendly_name": "Kachel woonkamer", "supported_features": 9}, "last_changed": "2021-02-20T09:21:01.216140+00:00", "last_updated": "2021-02-20T09:27:04.150741+00:00", "context": {"id": "***MASKED***", "parent_id": null, "user_id": null}}, "new_state": {"entity_id": "climate.kachel_woonkamer", "state": "heat", "attributes": {"hvac_modes": ["heat", "off"], "min_temp": 7.0, "max_temp": 41.0, "target_temp_step": 0.5, "fan_modes": ["1", "2", "3", "4", "5"], "current_temperature": 0.0, "temperature": 19.0, "fan_mode": "4", "hvac_action": "heating", "alarm_code": 0, "device_status": 5, "human_device_status": "CLEANING FIRE-POT", "smoke_temperature": 728.0, "real_power": 1, "friendly_name": "Kachel woonkamer", "supported_features": 9}, "last_changed": "2021-02-20T09:21:01.216140+00:00", "last_updated": "2021-02-20T09:28:04.069359+00:00", "context": {"id": "***MASKED***", "parent_id": null, "user_id": null}}}, "origin": "LOCAL", "time_fired": "2021-02-20T09:28:04.069359+00:00", "context": {"id": "***MASKED***", "parent_id": null, "user_id": null}}} 2021-02-20 10:28:04 DEBUG (MainThread) [homeassistant.components.websocket_api.http.connection] [1847097328] Sending {"id": 2, "type": "event", "event": {"event_type": "state_changed", "data": {"entity_id": "climate.kachel_woonkamer", "old_state": {"entity_id": "climate.kachel_woonkamer", "state": "heat", "attributes": {"hvac_modes": ["heat", "off"], "min_temp": 7.0, "max_temp": 41.0, "target_temp_step": 0.5, "fan_modes": ["1", "2", "3", "4", "5"], "current_temperature": 0.0, "temperature": 19.0, "fan_mode": "4", "hvac_action": "heating", "alarm_code": 0, "device_status": 5, "human_device_status": "CLEANING FIRE-POT", "smoke_temperature": 729.0, "real_power": 1, "friendly_name": "Kachel woonkamer", "supported_features": 9}, "last_changed": "2021-02-20T09:21:01.216140+00:00", "last_updated": "2021-02-20T09:27:04.150741+00:00", "context": {"id": "***MASKED***", "parent_id": null, "user_id": null}}, "new_state": {"entity_id": "climate.kachel_woonkamer", "state": "heat", "attributes": {"hvac_modes": ["heat", "off"], "min_temp": 7.0, "max_temp": 41.0, "target_temp_step": 0.5, "fan_modes": ["1", "2", "3", "4", "5"], "current_temperature": 0.0, "temperature": 19.0, "fan_mode": "4", "hvac_action": "heating", "alarm_code": 0, "device_status": 5, "human_device_status": "CLEANING FIRE-POT", "smoke_temperature": 728.0, "real_power": 1, "friendly_name": "Kachel woonkamer", "supported_features": 9}, "last_changed": "2021-02-20T09:21:01.216140+00:00", "last_updated": "2021-02-20T09:28:04.069359+00:00", "context": {"id": "***MASKED***", "parent_id": null, "user_id": null}}}, "origin": "LOCAL", "time_fired": "2021-02-20T09:28:04.069359+00:00", "context": {"id": "***MASKED***", "parent_id": null, "user_id": null}}} 2021-02-20 10:28:04 DEBUG (MainThread) [homeassistant.components.websocket_api.http.connection] [1829219440] Sending {"id": 2, "type": "event", "event": {"event_type": "state_changed", "data": {"entity_id": "climate.kachel_woonkamer", "old_state": {"entity_id": "climate.kachel_woonkamer", "state": "heat", "attributes": {"hvac_modes": ["heat", "off"], "min_temp": 7.0, "max_temp": 41.0, "target_temp_step": 0.5, "fan_modes": ["1", "2", "3", "4", "5"], "current_temperature": 0.0, "temperature": 19.0, "fan_mode": "4", "hvac_action": "heating", "alarm_code": 0, "device_status": 5, "human_device_status": "CLEANING FIRE-POT", "smoke_temperature": 729.0, "real_power": 1, "friendly_name": "Kachel woonkamer", "supported_features": 9}, "last_changed": "2021-02-20T09:21:01.216140+00:00", "last_updated": "2021-02-20T09:27:04.150741+00:00", "context": {"id": "***MASKED***", "parent_id": null, "user_id": null}}, "new_state": {"entity_id": "climate.kachel_woonkamer", "state": "heat", "attributes": {"hvac_modes": ["heat", "off"], "min_temp": 7.0, "max_temp": 41.0, "target_temp_step": 0.5, "fan_modes": ["1", "2", "3", "4", "5"], "current_temperature": 0.0, "temperature": 19.0, "fan_mode": "4", "hvac_action": "heating", "alarm_code": 0, "device_status": 5, "human_device_status": "CLEANING FIRE-POT", "smoke_temperature": 728.0, "real_power": 1, "friendly_name": "Kachel woonkamer", "supported_features": 9}, "last_changed": "2021-02-20T09:21:01.216140+00:00", "last_updated": "2021-02-20T09:28:04.069359+00:00", "context": {"id": "***MASKED***", "parent_id": null, "user_id": null}}}, "origin": "LOCAL", "time_fired": "2021-02-20T09:28:04.069359+00:00", "context": {"id": "***MASKED***", "parent_id": null, "user_id": null}}}
To add some more detail:
The app on my phone shows:
I have tested it and found several logs. Could you inform me what part of the log you need?
I need all log lines that contain [py_agua_iot]
It would be great if you can deliver them.
Hi,
I have checked the whole log file for py_agua_iot (a lot of lines :)) but it seems that the logging is very limited:
2021-02-21 09:02:15 DEBUG (SyncWorker_2) [py_agua_iot] Debug mode is not explicitly enabled (but may be enabled elsewhere). 2021-02-21 09:02:17 DEBUG (SyncWorker_2) [py_agua_iot] SUCCESSFULLY UPDATED REGISTERS MAP! 2021-02-21 09:02:17 DEBUG (SyncWorker_2) [py_agua_iot] GETBUFFERREADING SUCCEEDED! 2021-02-21 09:02:18 DEBUG (SyncWorker_2) [py_agua_iot] JOBANSWERSTATUS COMPLETED! 2021-02-21 09:02:18 DEBUG (SyncWorker_2) [py_agua_iot] SUCCESSFULLY RETRIEVED ITEM IN JOBANSWERDATA!
Maybe the logging is not working? That should explain why debug logging on the specific component is not working. Allso the first line of logging indicates that.
The first line stating Debug mode is not explicitly enabled
means that the debug parameter in the Python component itself is not enabled, which is normal behaviour because otherwise it would also logs the full HTTP requests with headers and body and that would create too much overhead.
Since your log is showing DEBUG
in front of lines with [py_agua_iot]
I'm sure that the DEBUG level is working.
Unless you are not using the latest version of the HA example, you should see more DEBUG lines that contain things like the full registers & information map (large json maps).
Can you verify if you are using the latest HA example?
The manifest.json
file should have 2 references to version 0.0.6:
"version": "0.0.6",
"requirements": ["py-agua-iot==0.0.6"],
If not, can you please update to latest and restart HA and check for extra DEBUG logging?
Thanks!
I have made a mistake. I thought that i had updated the component, however it was still on 0.5. I have allso deleted the pycache folder and now it works like a charm 👍:
2021-02-21 10:10:56 DEBUG (SyncWorker_0) [py_agua_iot] SUCCESSFULLY UPDATED REGISTERS MAP!
2021-02-21 10:10:56 DEBUG (SyncWorker_0) [py_agua_iot] REGISTERS MAP: {'accensioni_get': {'reg_type': 'GET', 'offset': 33006, 'formula': '#', 'formula_inverse': '#', 'format_string': '{0}', 'set_min': 0, 'set_max': 65535, 'mask': 65535}, 'alarms_get': {'reg_type': 'GET', 'offset': 50, 'formula': '#', 'formula_inverse': '#', 'format_string': '{0}', 'set_min': 0, 'set_max': 255, 'mask': 65535}, 'calendar_day_set': {'reg_type': 'SET', 'offset': 33019, 'formula': '#', 'formula_inverse': '#', 'format_string': '{0}', 'set_min': 1, 'set_max': 31, 'mask': 65535}, 'calendar_day_week_set': {'reg_type': 'SET', 'offset': 33016, 'formula': '#', 'formula_inverse': '#', 'format_string': '{0}', 'set_min': 1, 'set_max': 7, 'mask': 65535}, 'calendar_month_set': {'reg_type': 'SET', 'offset': 33020, 'formula': '#', 'formula_inverse': '#', 'format_string': '{0}', 'set_min': 1, 'set_max': 12, 'mask': 65535}, 'calendar_year_set': {'reg_type': 'SET', 'offset': 33021, 'formula': '#+2000', 'formula_inverse': '#-2000', 'format_string': '{0}', 'set_min': 15, 'set_max': 50, 'mask': 65535}, 'canalization_1_2_vent_enable': {'reg_type': 'ENABLE', 'offset': 32835, 'formula': '#', 'formula_inverse': '#', 'format_string': '{0}', 'set_min': 0, 'set_max': 3, 'mask': 65535}, 'canalization_1_2_vent_set': {'reg_type': 'SET', 'offset': 32857, 'formula': '#', 'formula_inverse': '#', 'format_string': '{0}', 'set_min': 0, 'set_max': 6, 'mask': 65535, 'value_off': 0}, 'canalization_1_2_verso_enable': {'reg_type': 'ENABLE', 'offset': 32835, 'formula': '#', 'formula_inverse': '#', 'format_string': '{0}', 'set_min': 0, 'set_max': 3, 'mask': 65535}, 'canalization_1_2_verso_set': {'reg_type': 'SET', 'offset': 32858, 'formula': '#', 'formula_inverse': '#', 'format_string': '{0}', 'set_min': 0, 'set_max': 4, 'mask': 65535}, 'canalization_1_temp_air_enable': {'reg_type': 'ENABLE', 'offset': 32835, 'formula': '#', 'formula_inverse': '#', 'format_string': '{0}', 'set_min': 0, 'set_max': 3, 'mask': 65535}, 'canalization_1_temp_air_get': {'reg_type': 'GET', 'offset': 4, 'formula': '#/2', 'formula_inverse': '#*2', 'format_string': '{0} °C', 'set_min': 0, 'set_max': 100, 'mask': 65535}, 'canalization_1_temp_air_set': {'reg_type': 'SET', 'offset': 32853, 'formula': '#', 'formula_inverse': '#', 'format_string': '{0} °C', 'set_min': 7, 'set_max': 41, 'mask': 65535}, 'canalization_2_temp_air_enable': {'reg_type': 'ENABLE', 'offset': 32835, 'formula': '#', 'formula_inverse': '#', 'format_string': '{0}', 'set_min': 0, 'set_max': 3, 'mask': 65535}, 'canalization_2_temp_air_get': {'reg_type': 'GET', 'offset': 3, 'formula': '#/2', 'formula_inverse': '#*2', 'format_string': '{0} °C', 'set_min': 0, 'set_max': 100, 'mask': 65535}, 'canalization_2_temp_air_set': {'reg_type': 'SET', 'offset': 32854, 'formula': '#', 'formula_inverse': '#', 'format_string': '{0} °C', 'set_min': 7, 'set_max': 41, 'mask': 65535}, 'canalization_man_auto_enable': {'reg_type': 'ENABLE', 'offset': 32835, 'formula': '#', 'formula_inverse': '#', 'format_string': '{0}', 'set_min': 0, 'set_max': 3, 'mask': 65535}, 'canalization_man_auto_set': {'reg_type': 'SET', 'offset': 32855, 'formula': '#', 'formula_inverse': '#', 'format_string': '{0}', 'set_min': 0, 'set_max': 1, 'mask': 65535}, 'canalization_single_temp_air_get': {'reg_type': 'GET', 'offset': 3, 'formula': '#/2', 'formula_inverse': '#*2', 'format_string': '{0} °C', 'set_min': 0, 'set_max': 100, 'mask': 65535}, 'canalization_single_temp_air_set': {'reg_type': 'SET', 'offset': 32852, 'formula': '#', 'formula_inverse': '#', 'format_string': '{0}°C', 'set_min': 7, 'set_max': 41, 'mask': 65535}, 'canalization_single_temp_enable': {'reg_type': 'ENABLE', 'offset': 32835, 'formula': '#', 'formula_inverse': '#', 'format_string': '{0}', 'set_min': 0, 'set_max': 3, 'mask': 65535}, 'canalization_single_vent_enable': {'reg_type': 'ENABLE', 'offset': 32835, 'formula': '#', 'formula_inverse': '#', 'format_string': '{0}', 'set_min': 0, 'set_max': 3, 'mask': 65535}, 'canalization_single_vent_set': {'reg_type': 'SET', 'offset': 32856, 'formula': '#', 'formula_inverse': '#', 'format_string': '{0}', 'set_min': 0, 'set_max': 6, 'mask': 65535, 'value_off': 0}, 'canalization_single_verso_enable': {'reg_type': 'ENABLE', 'offset': 32835, 'formula': '#', 'formula_inverse': '#', 'format_string': '{0}', 'set_min': 0, 'set_max': 3, 'mask': 65535}, 'canalization_single_verso_set': {'reg_type': 'SET', 'offset': 32859, 'formula': '#', 'formula_inverse': '#', 'format_string': '{0}', 'set_min': 0, 'set_max': 2, 'mask': 65535}, 'chrono_general_enable_set': {'reg_type': 'SET', 'offset': 32865, 'formula': '#', 'formula_inverse': '#', 'format_string': '{0}', 'set_min': 0, 'set_max': 1, 'mask': 255}, 'chrono_p1_day_friday_set': {'reg_type': 'SET', 'offset': 32874, 'formula': '#/16', 'formula_inverse': '#*16', 'format_string': '{0}', 'set_min': 0, 'set_max': 1, 'mask': 16}, 'chrono_p1_day_monday_set': {'reg_type': 'SET', 'offset': 32874, 'formula': '#', 'formula_inverse': '#', 'format_string': '{0}', 'set_min': 0, 'set_max': 1, 'mask': 1}, 'chrono_p1_day_saturday_set': {'reg_type': 'SET', 'offset': 32874, 'formula': '#/32', 'formula_inverse': '#*32', 'format_string': '{0}', 'set_min': 0, 'set_max': 1, 'mask': 32}, 'chrono_p1_day_sunday_set': {'reg_type': 'SET', 'offset': 32874, 'formula': '#/64', 'formula_inverse': '#*64', 'format_string': '{0}', 'set_min': 0, 'set_max': 1, 'mask': 64}, 'chrono_p1_day_thursday_set': {'reg_type': 'SET', 'offset': 32874, 'formula': '#/8', 'formula_inverse': '#*8', 'format_string': '{0}', 'set_min': 0, 'set_max': 1, 'mask': 8}, 'chrono_p1_day_tuesday_set': {'reg_type': 'SET', 'offset': 32874, 'formula': '#/2', 'formula_inverse': '#*2', 'format_string': '{0}', 'set_min': 0, 'set_max': 1, 'mask': 2}, 'chrono_p1_day_wednesday_set': {'reg_type': 'SET', 'offset': 32874, 'formula': '#/4', 'formula_inverse': '#*4', 'format_string': '{0}', 'set_min': 0, 'set_max': 1, 'mask': 4}, 'chrono_p1_fan_enable': {'reg_type': 'ENABLE', 'offset': 32835, 'formula': '#', 'formula_inverse': '#', 'format_string': '{0}', 'set_min': 0, 'set_max': 3, 'mask': 65535}, 'chrono_p1_fan_set': {'reg_type': 'SET', 'offset': 32826, 'formula': '#', 'formula_inverse': '#', 'format_string': '{0}', 'set_min': 0, 'set_max': 6, 'mask': 65535, 'value_off': 0}, 'chrono_p1_power_set': {'reg_type': 'SET', 'offset': 32875, 'formula': '#', 'formula_inverse': '#', 'format_string': '{0}', 'set_min': 1, 'set_max': 5, 'mask': 65535}, 'chrono_p1_start_set': {'reg_type': 'SET', 'offset': 32872, 'formula': '#', 'formula_inverse': '#', 'format_string': '{0}', 'set_min': 0, 'set_max': 144, 'mask': 65535}, 'chrono_p1_stop_set': {'reg_type': 'SET', 'offset': 32873, 'formula': '#', 'formula_inverse': '#', 'format_string': '{0}', 'set_min': 0, 'set_max': 144, 'mask': 65535}, 'chrono_p1_temperature_set': {'reg_type': 'SET', 'offset': 32876, 'formula': '#', 'formula_inverse': '#', 'format_string': '{0}°C', 'set_min': 7, 'set_max': 41, 'mask': 65535}, 'chrono_p2_day_friday_set': {'reg_type': 'SET', 'offset': 32881, 'formula': '#/16', 'formula_inverse': '#*16', 'format_string': '{0}', 'set_min': 0, 'set_max': 1, 'mask': 16}, 'chrono_p2_day_monday_set': {'reg_type': 'SET', 'offset': 32881, 'formula': '#', 'formula_inverse': '#', 'format_string': '{0}', 'set_min': 0, 'set_max': 1, 'mask': 1}, 'chrono_p2_day_saturday_set': {'reg_type': 'SET', 'offset': 32881, 'formula': '#/32', 'formula_inverse': '#*32', 'format_string': '{0}', 'set_min': 0, 'set_max': 1, 'mask': 32}, 'chrono_p2_day_sunday_set': {'reg_type': 'SET', 'offset': 32881, 'formula': '#/64', 'formula_inverse': '#*64', 'format_string': '{0}', 'set_min': 0, 'set_max': 1, 'mask': 64}, 'chrono_p2_day_thursday_set': {'reg_type': 'SET', 'offset': 32881, 'formula': '#/8', 'formula_inverse': '#*8', 'format_string': '{0}', 'set_min': 0, 'set_max': 1, 'mask': 8}, 'chrono_p2_day_tuesday_set': {'reg_type': 'SET', 'offset': 32881, 'formula': '#/2', 'formula_inverse': '#*2', 'format_string': '{0}', 'set_min': 0, 'set_max': 1, 'mask': 2}, 'chrono_p2_day_wednesday_set': {'reg_type': 'SET', 'offset': 32881, 'formula': '#/4', 'formula_inverse': '#*4', 'format_string': '{0}', 'set_min': 0, 'set_max': 1, 'mask': 4}, 'chrono_p2_fan_enable': {'reg_type': 'ENABLE', 'offset': 32835, 'formula': '#', 'formula_inverse': '#', 'format_string': '{0}', 'set_min': 0, 'set_max': 3, 'mask': 65535}, 'chrono_p2_fan_set': {'reg_type': 'SET', 'offset': 32827, 'formula': '#', 'formula_inverse': '#', 'format_string': '{0}', 'set_min': 0, 'set_max': 6, 'mask': 65535, 'value_off': 0}, 'chrono_p2_power_set': {'reg_type': 'SET', 'offset': 32882, 'formula': '#', 'formula_inverse': '#', 'format_string': '{0}', 'set_min': 1, 'set_max': 5, 'mask': 65535}, 'chrono_p2_start_set': {'reg_type': 'SET', 'offset': 32879, 'formula': '#', 'formula_inverse': '#', 'format_string': '{0}', 'set_min': 0, 'set_max': 144, 'mask': 65535}, 'chrono_p2_stop_set': {'reg_type': 'SET', 'offset': 32880, 'formula': '#', 'formula_inverse': '#', 'format_string': '{0}', 'set_min': 0, 'set_max': 144, 'mask': 65535}, 'chrono_p2_temperature_set': {'reg_type': 'SET', 'offset': 32883, 'formula': '#', 'formula_inverse': '#', 'format_string': '{0}°C', 'set_min': 7, 'set_max': 41, 'mask': 65535}, 'chrono_p3_day_friday_set': {'reg_type': 'SET', 'offset': 32888, 'formula': '#/16', 'formula_inverse': '#*16', 'format_string': '{0}', 'set_min': 0, 'set_max': 1, 'mask': 16}, 'chrono_p3_day_monday_set': {'reg_type': 'SET', 'offset': 32888, 'formula': '#', 'formula_inverse': '#', 'format_string': '{0}', 'set_min': 0, 'set_max': 1, 'mask': 1}, 'chrono_p3_day_saturday_set': {'reg_type': 'SET', 'offset': 32888, 'formula': '#/32', 'formula_inverse': '#*32', 'format_string': '{0}', 'set_min': 0, 'set_max': 1, 'mask': 32}, 'chrono_p3_day_sunday_set': {'reg_type': 'SET', 'offset': 32888, 'formula': '#/64', 'formula_inverse': '#*64', 'format_string': '{0}', 'set_min': 0, 'set_max': 1, 'mask': 64}, 'chrono_p3_day_thursday_set': {'reg_type': 'SET', 'offset': 32888, 'formula': '#/8', 'formula_inverse': '#*8', 'format_string': '{0}', 'set_min': 0, 'set_max': 1, 'mask': 8}, 'chrono_p3_day_tuesday_set': {'reg_type': 'SET', 'offset': 32888, 'formula': '#/2', 'formula_inverse': '#*2', 'format_string': '{0}', 'set_min': 0, 'set_max': 1, 'mask': 2}, 'chrono_p3_day_wednesday_set': {'reg_type': 'SET', 'offset': 32888, 'formula': '#/4', 'formula_inverse': '#*4', 'format_string': '{0}', 'set_min': 0, 'set_max': 1, 'mask': 4}, 'chrono_p3_fan_enable': {'reg_type': 'ENABLE', 'offset': 32835, 'formula': '#', 'formula_inverse': '#', 'format_string': '{0}', 'set_min': 0, 'set_max': 3, 'mask': 65535}, 'chrono_p3_fan_set': {'reg_type': 'SET', 'offset': 32828, 'formula': '#', 'formula_inverse': '#', 'format_string': '{0}', 'set_min': 0, 'set_max': 6, 'mask': 65535, 'value_off': 0}, 'chrono_p3_power_set': {'reg_type': 'SET', 'offset': 32889, 'formula': '#', 'formula_inverse': '#', 'format_string': '{0}', 'set_min': 0, 'set_max': 5, 'mask': 65535}, 'chrono_p3_start_set': {'reg_type': 'SET', 'offset': 32886, 'formula': '#', 'formula_inverse': '#', 'format_string': '{0}', 'set_min': 0, 'set_max': 144, 'mask': 65535}, 'chrono_p3_stop_set': {'reg_type': 'SET', 'offset': 32887, 'formula': '#', 'formula_inverse': '#', 'format_string': '{0}', 'set_min': 0, 'set_max': 144, 'mask': 65535}, 'chrono_p3_temperature_set': {'reg_type': 'SET', 'offset': 32890, 'formula': '#', 'formula_inverse': '#', 'format_string': '{0}°C', 'set_min': 7, 'set_max': 41, 'mask': 65535}, 'chrono_p4_day_friday_set': {'reg_type': 'SET', 'offset': 32895, 'formula': '#/16', 'formula_inverse': '#*16', 'format_string': '{0}', 'set_min': 0, 'set_max': 1, 'mask': 16}, 'chrono_p4_day_monday_set': {'reg_type': 'SET', 'offset': 32895, 'formula': '#', 'formula_inverse': '#', 'format_string': '{0}', 'set_min': 0, 'set_max': 1, 'mask': 1}, 'chrono_p4_day_saturday_set': {'reg_type': 'SET', 'offset': 32895, 'formula': '#/32', 'formula_inverse': '#*32', 'format_string': '{0}', 'set_min': 0, 'set_max': 1, 'mask': 32}, 'chrono_p4_day_sunday_set': {'reg_type': 'SET', 'offset': 32895, 'formula': '#/64', 'formula_inverse': '#*64', 'format_string': '{0}', 'set_min': 0, 'set_max': 1, 'mask': 64}, 'chrono_p4_day_thursday_set': {'reg_type': 'SET', 'offset': 32895, 'formula': '#/8', 'formula_inverse': '#*8', 'format_string': '{0}', 'set_min': 0, 'set_max': 1, 'mask': 8}, 'chrono_p4_day_tuesday_set': {'reg_type': 'SET', 'offset': 32895, 'formula': '#/2', 'formula_inverse': '#*2', 'format_string': '{0}', 'set_min': 0, 'set_max': 1, 'mask': 2}, 'chrono_p4_day_wednesday_set': {'reg_type': 'SET', 'offset': 32895, 'formula': '#/4', 'formula_inverse': '#*4', 'format_string': '{0}', 'set_min': 0, 'set_max': 1, 'mask': 4}, 'chrono_p4_fan_enable': {'reg_type': 'ENABLE', 'offset': 32835, 'formula': '#', 'formula_inverse': '#', 'format_string': '{0}', 'set_min': 0, 'set_max': 3, 'mask': 65535}, 'chrono_p4_fan_set': {'reg_type': 'SET', 'offset': 32829, 'formula': '#', 'formula_inverse': '#', 'format_string': '{0}', 'set_min': 0, 'set_max': 6, 'mask': 65535, 'value_off': 0}, 'chrono_p4_power_set': {'reg_type': 'SET', 'offset': 32896, 'formula': '#', 'formula_inverse': '#', 'format_string': '{0}', 'set_min': 1, 'set_max': 5, 'mask': 65535}, 'chrono_p4_start_set': {'reg_type': 'SET', 'offset': 32893, 'formula': '#', 'formula_inverse': '#', 'format_string': '{0}', 'set_min': 0, 'set_max': 144, 'mask': 65535}, 'chrono_p4_stop_set': {'reg_type': 'SET', 'offset': 32894, 'formula': '#', 'formula_inverse': '#', 'format_string': '{0}', 'set_min': 0, 'set_max': 144, 'mask': 65535}, 'chrono_p4_temperature_set': {'reg_type': 'SET', 'offset': 32897, 'formula': '#', 'formula_inverse': '#', 'format_string': '{0}°C', 'set_min': 7, 'set_max': 41, 'mask': 65535}, 'clock_hour_set': {'reg_type': 'SET', 'offset': 33017, 'formula': '#', 'formula_inverse': '#', 'format_string': '{0}', 'set_min': 0, 'set_max': 23, 'mask': 65535}, 'clock_minute_set': {'reg_type': 'SET', 'offset': 33018, 'formula': '#', 'formula_inverse': '#', 'format_string': '{0}', 'set_min': 0, 'set_max': 59, 'mask': 65535}, 'hw_power_fw_revision_get': {'reg_type': 'GET', 'offset': 241, 'formula': '#', 'formula_inverse': '#', 'format_string': '{0}', 'set_min': 0, 'set_max': 255, 'mask': 255}, 'hw_power_fw_type_get': {'reg_type': 'GET', 'offset': 240, 'formula': '#', 'formula_inverse': '#', 'format_string': '{0}', 'set_min': 0, 'set_max': 255, 'mask': 255}, 'ore_lavoro_par_get': {'reg_type': 'GET', 'offset': 33004, 'formula': '#', 'formula_inverse': '#', 'format_string': '{0} h', 'set_min': 0, 'set_max': 65535, 'mask': 65535}, 'ore_lavoro_tot_get': {'reg_type': 'GET', 'offset': 33002, 'formula': '#', 'formula_inverse': '#', 'format_string': '{0}', 'set_min': 0, 'set_max': 65535, 'mask': 65535}, 'power_set': {'reg_type': 'SET', 'offset': 32850, 'formula': '#', 'formula_inverse': '#', 'format_string': '{0}', 'set_min': 1, 'set_max': 5, 'mask': 65535}, 'real_power_get': {'reg_type': 'GET', 'offset': 52, 'formula': '#', 'formula_inverse': '#', 'format_string': '{0}', 'set_min': 1, 'set_max': 5, 'mask': 65535}, 'status_get': {'reg_type': 'GET', 'offset': 32, 'formula': '#', 'formula_inverse': '#', 'format_string': '{0}', 'set_min': 0, 'set_max': 255, 'mask': 65535, 'value_off': 0}, 'status_managed_get': {'reg_type': 'GET', 'offset': 232, 'formula': '#', 'formula_inverse': '#', 'format_string': '{0}', 'set_min': 0, 'set_max': 255, 'mask': 65535, 'value_on': 85, 'value_off': 170}, 'status_managed_off_enable': {'reg_type': 'ENABLE', 'offset': 32, 'formula': '#', 'formula_inverse': '#', 'format_string': '{0}', 'set_min': 0, 'set_max': 11, 'mask': 65535}, 'status_managed_on_enable': {'reg_type': 'ENABLE', 'offset': 32, 'formula': '#', 'formula_inverse': '#', 'format_string': '{0}', 'set_min': 0, 'set_max': 11, 'mask': 65535}, 'temp_air_enable': {'reg_type': 'ENABLE', 'offset': 1, 'formula': '#', 'formula_inverse': '#', 'format_string': '{0}', 'set_min': 0, 'set_max': 255, 'mask': 65535}, 'temp_air_get': {'reg_type': 'GET', 'offset': 1, 'formula': '#/2', 'formula_inverse': '#*2', 'format_string': '{0} °C', 'set_min': 0, 'set_max': 100, 'mask': 65535}, 'temp_air_palm_enable': {'reg_type': 'ENABLE', 'offset': 1, 'formula': '#', 'formula_inverse': '#', 'format_string': '{0}', 'set_min': 0, 'set_max': 255, 'mask': 65535}, 'temp_air_palm_get': {'reg_type': 'GET', 'offset': 13, 'formula': '#', 'formula_inverse': '#', 'format_string': '{0} °C', 'set_min': 0, 'set_max': 100, 'mask': 65535}, 'temp_air_palm_set': {'reg_type': 'SET', 'offset': 32851, 'formula': '#', 'formula_inverse': '#', 'format_string': '{0} °C', 'set_min': 7, 'set_max': 41, 'mask': 65535}, 'temp_air_set': {'reg_type': 'SET', 'offset': 32851, 'formula': '#', 'formula_inverse': '#', 'format_string': '{0} °C', 'set_min': 7, 'set_max': 41, 'mask': 65535}, 'temp_gas_flue_get': {'reg_type': 'GET', 'offset': 86, 'formula': '#', 'formula_inverse': '#', 'format_string': '{0} °C', 'set_min': 0, 'set_max': 65535, 'mask': 65535}, 'temp_probe_k_get': {'reg_type': 'GET', 'offset': 84, 'formula': '#', 'formula_inverse': '#', 'format_string': '{0} °C', 'set_min': 0, 'set_max': 65535, 'mask': 65535}}
2021-02-21 10:10:56 DEBUG (SyncWorker_0) [py_agua_iot] GETBUFFERREADING SUCCEEDED!
2021-02-21 10:10:57 DEBUG (SyncWorker_0) [py_agua_iot] JOBANSWERSTATUS COMPLETED!
2021-02-21 10:10:57 DEBUG (SyncWorker_0) [py_agua_iot] SUCCESSFULLY RETRIEVED ITEM IN JOBANSWERDATA!
2021-02-21 10:10:57 DEBUG (SyncWorker_0) [py_agua_iot] INFORMATION MAP: {32835: 3, 232: 113, 32895: 0, 1: 0, 32874: 0, 32856: 0, 32888: 0, 32881: 0, 32897: 20, 32875: 3, 52: 1, 32828: 0, 32854: 20, 32894: 144, 33016: 1, 240: 1, 32876: 20, 33019: 33, 32: 5, 32851: 19, 32855: 0, 33021: 33, 32853: 20, 33020: 2, 32872: 144, 32879: 144, 32896: 3, 32887: 144, 33006: 607, 32850: 3, 84: 323, 3: 0, 32890: 20, 32886: 144, 32889: 3, 32852: 20, 32858: 2, 32893: 144, 32882: 3, 33002: 2394, 32880: 144, 32857: 6, 32859: 1, 86: 732, 33018: 40, 50: 0, 32883: 20, 32827: 0, 32873: 144, 33017: 16, 13: 19, 4: 0, 33004: 2394, 241: 0, 32865: 0, 32826: 0, 32829: 0}
2021-02-21 10:11:01 DEBUG (SyncWorker_4) [py_agua_iot] SUCCESSFULLY UPDATED REGISTERS MAP!
2021-02-21 10:11:01 DEBUG (SyncWorker_4) [py_agua_iot] REGISTERS MAP: {'accensioni_get': {'reg_type': 'GET', 'offset': 33006, 'formula': '#', 'formula_inverse': '#', 'format_string': '{0}', 'set_min': 0, 'set_max': 65535, 'mask': 65535}, 'alarms_get': {'reg_type': 'GET', 'offset': 50, 'formula': '#', 'formula_inverse': '#', 'format_string': '{0}', 'set_min': 0, 'set_max': 255, 'mask': 65535}, 'calendar_day_set': {'reg_type': 'SET', 'offset': 33019, 'formula': '#', 'formula_inverse': '#', 'format_string': '{0}', 'set_min': 1, 'set_max': 31, 'mask': 65535}, 'calendar_day_week_set': {'reg_type': 'SET', 'offset': 33016, 'formula': '#', 'formula_inverse': '#', 'format_string': '{0}', 'set_min': 1, 'set_max': 7, 'mask': 65535}, 'calendar_month_set': {'reg_type': 'SET', 'offset': 33020, 'formula': '#', 'formula_inverse': '#', 'format_string': '{0}', 'set_min': 1, 'set_max': 12, 'mask': 65535}, 'calendar_year_set': {'reg_type': 'SET', 'offset': 33021, 'formula': '#+2000', 'formula_inverse': '#-2000', 'format_string': '{0}', 'set_min': 15, 'set_max': 50, 'mask': 65535}, 'canalization_1_2_vent_enable': {'reg_type': 'ENABLE', 'offset': 32835, 'formula': '#', 'formula_inverse': '#', 'format_string': '{0}', 'set_min': 0, 'set_max': 3, 'mask': 65535}, 'canalization_1_2_vent_set': {'reg_type': 'SET', 'offset': 32857, 'formula': '#', 'formula_inverse': '#', 'format_string': '{0}', 'set_min': 0, 'set_max': 6, 'mask': 65535, 'value_off': 0}, 'canalization_1_2_verso_enable': {'reg_type': 'ENABLE', 'offset': 32835, 'formula': '#', 'formula_inverse': '#', 'format_string': '{0}', 'set_min': 0, 'set_max': 3, 'mask': 65535}, 'canalization_1_2_verso_set': {'reg_type': 'SET', 'offset': 32858, 'formula': '#', 'formula_inverse': '#', 'format_string': '{0}', 'set_min': 0, 'set_max': 4, 'mask': 65535}, 'canalization_1_temp_air_enable': {'reg_type': 'ENABLE', 'offset': 32835, 'formula': '#', 'formula_inverse': '#', 'format_string': '{0}', 'set_min': 0, 'set_max': 3, 'mask': 65535}, 'canalization_1_temp_air_get': {'reg_type': 'GET', 'offset': 4, 'formula': '#/2', 'formula_inverse': '#*2', 'format_string': '{0} °C', 'set_min': 0, 'set_max': 100, 'mask': 65535}, 'canalization_1_temp_air_set': {'reg_type': 'SET', 'offset': 32853, 'formula': '#', 'formula_inverse': '#', 'format_string': '{0} °C', 'set_min': 7, 'set_max': 41, 'mask': 65535}, 'canalization_2_temp_air_enable': {'reg_type': 'ENABLE', 'offset': 32835, 'formula': '#', 'formula_inverse': '#', 'format_string': '{0}', 'set_min': 0, 'set_max': 3, 'mask': 65535}, 'canalization_2_temp_air_get': {'reg_type': 'GET', 'offset': 3, 'formula': '#/2', 'formula_inverse': '#*2', 'format_string': '{0} °C', 'set_min': 0, 'set_max': 100, 'mask': 65535}, 'canalization_2_temp_air_set': {'reg_type': 'SET', 'offset': 32854, 'formula': '#', 'formula_inverse': '#', 'format_string': '{0} °C', 'set_min': 7, 'set_max': 41, 'mask': 65535}, 'canalization_man_auto_enable': {'reg_type': 'ENABLE', 'offset': 32835, 'formula': '#', 'formula_inverse': '#', 'format_string': '{0}', 'set_min': 0, 'set_max': 3, 'mask': 65535}, 'canalization_man_auto_set': {'reg_type': 'SET', 'offset': 32855, 'formula': '#', 'formula_inverse': '#', 'format_string': '{0}', 'set_min': 0, 'set_max': 1, 'mask': 65535}, 'canalization_single_temp_air_get': {'reg_type': 'GET', 'offset': 3, 'formula': '#/2', 'formula_inverse': '#*2', 'format_string': '{0} °C', 'set_min': 0, 'set_max': 100, 'mask': 65535}, 'canalization_single_temp_air_set': {'reg_type': 'SET', 'offset': 32852, 'formula': '#', 'formula_inverse': '#', 'format_string': '{0}°C', 'set_min': 7, 'set_max': 41, 'mask': 65535}, 'canalization_single_temp_enable': {'reg_type': 'ENABLE', 'offset': 32835, 'formula': '#', 'formula_inverse': '#', 'format_string': '{0}', 'set_min': 0, 'set_max': 3, 'mask': 65535}, 'canalization_single_vent_enable': {'reg_type': 'ENABLE', 'offset': 32835, 'formula': '#', 'formula_inverse': '#', 'format_string': '{0}', 'set_min': 0, 'set_max': 3, 'mask': 65535}, 'canalization_single_vent_set': {'reg_type': 'SET', 'offset': 32856, 'formula': '#', 'formula_inverse': '#', 'format_string': '{0}', 'set_min': 0, 'set_max': 6, 'mask': 65535, 'value_off': 0}, 'canalization_single_verso_enable': {'reg_type': 'ENABLE', 'offset': 32835, 'formula': '#', 'formula_inverse': '#', 'format_string': '{0}', 'set_min': 0, 'set_max': 3, 'mask': 65535}, 'canalization_single_verso_set': {'reg_type': 'SET', 'offset': 32859, 'formula': '#', 'formula_inverse': '#', 'format_string': '{0}', 'set_min': 0, 'set_max': 2, 'mask': 65535}, 'chrono_general_enable_set': {'reg_type': 'SET', 'offset': 32865, 'formula': '#', 'formula_inverse': '#', 'format_string': '{0}', 'set_min': 0, 'set_max': 1, 'mask': 255}, 'chrono_p1_day_friday_set': {'reg_type': 'SET', 'offset': 32874, 'formula': '#/16', 'formula_inverse': '#*16', 'format_string': '{0}', 'set_min': 0, 'set_max': 1, 'mask': 16}, 'chrono_p1_day_monday_set': {'reg_type': 'SET', 'offset': 32874, 'formula': '#', 'formula_inverse': '#', 'format_string': '{0}', 'set_min': 0, 'set_max': 1, 'mask': 1}, 'chrono_p1_day_saturday_set': {'reg_type': 'SET', 'offset': 32874, 'formula': '#/32', 'formula_inverse': '#*32', 'format_string': '{0}', 'set_min': 0, 'set_max': 1, 'mask': 32}, 'chrono_p1_day_sunday_set': {'reg_type': 'SET', 'offset': 32874, 'formula': '#/64', 'formula_inverse': '#*64', 'format_string': '{0}', 'set_min': 0, 'set_max': 1, 'mask': 64}, 'chrono_p1_day_thursday_set': {'reg_type': 'SET', 'offset': 32874, 'formula': '#/8', 'formula_inverse': '#*8', 'format_string': '{0}', 'set_min': 0, 'set_max': 1, 'mask': 8}, 'chrono_p1_day_tuesday_set': {'reg_type': 'SET', 'offset': 32874, 'formula': '#/2', 'formula_inverse': '#*2', 'format_string': '{0}', 'set_min': 0, 'set_max': 1, 'mask': 2}, 'chrono_p1_day_wednesday_set': {'reg_type': 'SET', 'offset': 32874, 'formula': '#/4', 'formula_inverse': '#*4', 'format_string': '{0}', 'set_min': 0, 'set_max': 1, 'mask': 4}, 'chrono_p1_fan_enable': {'reg_type': 'ENABLE', 'offset': 32835, 'formula': '#', 'formula_inverse': '#', 'format_string': '{0}', 'set_min': 0, 'set_max': 3, 'mask': 65535}, 'chrono_p1_fan_set': {'reg_type': 'SET', 'offset': 32826, 'formula': '#', 'formula_inverse': '#', 'format_string': '{0}', 'set_min': 0, 'set_max': 6, 'mask': 65535, 'value_off': 0}, 'chrono_p1_power_set': {'reg_type': 'SET', 'offset': 32875, 'formula': '#', 'formula_inverse': '#', 'format_string': '{0}', 'set_min': 1, 'set_max': 5, 'mask': 65535}, 'chrono_p1_start_set': {'reg_type': 'SET', 'offset': 32872, 'formula': '#', 'formula_inverse': '#', 'format_string': '{0}', 'set_min': 0, 'set_max': 144, 'mask': 65535}, 'chrono_p1_stop_set': {'reg_type': 'SET', 'offset': 32873, 'formula': '#', 'formula_inverse': '#', 'format_string': '{0}', 'set_min': 0, 'set_max': 144, 'mask': 65535}, 'chrono_p1_temperature_set': {'reg_type': 'SET', 'offset': 32876, 'formula': '#', 'formula_inverse': '#', 'format_string': '{0}°C', 'set_min': 7, 'set_max': 41, 'mask': 65535}, 'chrono_p2_day_friday_set': {'reg_type': 'SET', 'offset': 32881, 'formula': '#/16', 'formula_inverse': '#*16', 'format_string': '{0}', 'set_min': 0, 'set_max': 1, 'mask': 16}, 'chrono_p2_day_monday_set': {'reg_type': 'SET', 'offset': 32881, 'formula': '#', 'formula_inverse': '#', 'format_string': '{0}', 'set_min': 0, 'set_max': 1, 'mask': 1}, 'chrono_p2_day_saturday_set': {'reg_type': 'SET', 'offset': 32881, 'formula': '#/32', 'formula_inverse': '#*32', 'format_string': '{0}', 'set_min': 0, 'set_max': 1, 'mask': 32}, 'chrono_p2_day_sunday_set': {'reg_type': 'SET', 'offset': 32881, 'formula': '#/64', 'formula_inverse': '#*64', 'format_string': '{0}', 'set_min': 0, 'set_max': 1, 'mask': 64}, 'chrono_p2_day_thursday_set': {'reg_type': 'SET', 'offset': 32881, 'formula': '#/8', 'formula_inverse': '#*8', 'format_string': '{0}', 'set_min': 0, 'set_max': 1, 'mask': 8}, 'chrono_p2_day_tuesday_set': {'reg_type': 'SET', 'offset': 32881, 'formula': '#/2', 'formula_inverse': '#*2', 'format_string': '{0}', 'set_min': 0, 'set_max': 1, 'mask': 2}, 'chrono_p2_day_wednesday_set': {'reg_type': 'SET', 'offset': 32881, 'formula': '#/4', 'formula_inverse': '#*4', 'format_string': '{0}', 'set_min': 0, 'set_max': 1, 'mask': 4}, 'chrono_p2_fan_enable': {'reg_type': 'ENABLE', 'offset': 32835, 'formula': '#', 'formula_inverse': '#', 'format_string': '{0}', 'set_min': 0, 'set_max': 3, 'mask': 65535}, 'chrono_p2_fan_set': {'reg_type': 'SET', 'offset': 32827, 'formula': '#', 'formula_inverse': '#', 'format_string': '{0}', 'set_min': 0, 'set_max': 6, 'mask': 65535, 'value_off': 0}, 'chrono_p2_power_set': {'reg_type': 'SET', 'offset': 32882, 'formula': '#', 'formula_inverse': '#', 'format_string': '{0}', 'set_min': 1, 'set_max': 5, 'mask': 65535}, 'chrono_p2_start_set': {'reg_type': 'SET', 'offset': 32879, 'formula': '#', 'formula_inverse': '#', 'format_string': '{0}', 'set_min': 0, 'set_max': 144, 'mask': 65535}, 'chrono_p2_stop_set': {'reg_type': 'SET', 'offset': 32880, 'formula': '#', 'formula_inverse': '#', 'format_string': '{0}', 'set_min': 0, 'set_max': 144, 'mask': 65535}, 'chrono_p2_temperature_set': {'reg_type': 'SET', 'offset': 32883, 'formula': '#', 'formula_inverse': '#', 'format_string': '{0}°C', 'set_min': 7, 'set_max': 41, 'mask': 65535}, 'chrono_p3_day_friday_set': {'reg_type': 'SET', 'offset': 32888, 'formula': '#/16', 'formula_inverse': '#*16', 'format_string': '{0}', 'set_min': 0, 'set_max': 1, 'mask': 16}, 'chrono_p3_day_monday_set': {'reg_type': 'SET', 'offset': 32888, 'formula': '#', 'formula_inverse': '#', 'format_string': '{0}', 'set_min': 0, 'set_max': 1, 'mask': 1}, 'chrono_p3_day_saturday_set': {'reg_type': 'SET', 'offset': 32888, 'formula': '#/32', 'formula_inverse': '#*32', 'format_string': '{0}', 'set_min': 0, 'set_max': 1, 'mask': 32}, 'chrono_p3_day_sunday_set': {'reg_type': 'SET', 'offset': 32888, 'formula': '#/64', 'formula_inverse': '#*64', 'format_string': '{0}', 'set_min': 0, 'set_max': 1, 'mask': 64}, 'chrono_p3_day_thursday_set': {'reg_type': 'SET', 'offset': 32888, 'formula': '#/8', 'formula_inverse': '#*8', 'format_string': '{0}', 'set_min': 0, 'set_max': 1, 'mask': 8}, 'chrono_p3_day_tuesday_set': {'reg_type': 'SET', 'offset': 32888, 'formula': '#/2', 'formula_inverse': '#*2', 'format_string': '{0}', 'set_min': 0, 'set_max': 1, 'mask': 2}, 'chrono_p3_day_wednesday_set': {'reg_type': 'SET', 'offset': 32888, 'formula': '#/4', 'formula_inverse': '#*4', 'format_string': '{0}', 'set_min': 0, 'set_max': 1, 'mask': 4}, 'chrono_p3_fan_enable': {'reg_type': 'ENABLE', 'offset': 32835, 'formula': '#', 'formula_inverse': '#', 'format_string': '{0}', 'set_min': 0, 'set_max': 3, 'mask': 65535}, 'chrono_p3_fan_set': {'reg_type': 'SET', 'offset': 32828, 'formula': '#', 'formula_inverse': '#', 'format_string': '{0}', 'set_min': 0, 'set_max': 6, 'mask': 65535, 'value_off': 0}, 'chrono_p3_power_set': {'reg_type': 'SET', 'offset': 32889, 'formula': '#', 'formula_inverse': '#', 'format_string': '{0}', 'set_min': 0, 'set_max': 5, 'mask': 65535}, 'chrono_p3_start_set': {'reg_type': 'SET', 'offset': 32886, 'formula': '#', 'formula_inverse': '#', 'format_string': '{0}', 'set_min': 0, 'set_max': 144, 'mask': 65535}, 'chrono_p3_stop_set': {'reg_type': 'SET', 'offset': 32887, 'formula': '#', 'formula_inverse': '#', 'format_string': '{0}', 'set_min': 0, 'set_max': 144, 'mask': 65535}, 'chrono_p3_temperature_set': {'reg_type': 'SET', 'offset': 32890, 'formula': '#', 'formula_inverse': '#', 'format_string': '{0}°C', 'set_min': 7, 'set_max': 41, 'mask': 65535}, 'chrono_p4_day_friday_set': {'reg_type': 'SET', 'offset': 32895, 'formula': '#/16', 'formula_inverse': '#*16', 'format_string': '{0}', 'set_min': 0, 'set_max': 1, 'mask': 16}, 'chrono_p4_day_monday_set': {'reg_type': 'SET', 'offset': 32895, 'formula': '#', 'formula_inverse': '#', 'format_string': '{0}', 'set_min': 0, 'set_max': 1, 'mask': 1}, 'chrono_p4_day_saturday_set': {'reg_type': 'SET', 'offset': 32895, 'formula': '#/32', 'formula_inverse': '#*32', 'format_string': '{0}', 'set_min': 0, 'set_max': 1, 'mask': 32}, 'chrono_p4_day_sunday_set': {'reg_type': 'SET', 'offset': 32895, 'formula': '#/64', 'formula_inverse': '#*64', 'format_string': '{0}', 'set_min': 0, 'set_max': 1, 'mask': 64}, 'chrono_p4_day_thursday_set': {'reg_type': 'SET', 'offset': 32895, 'formula': '#/8', 'formula_inverse': '#*8', 'format_string': '{0}', 'set_min': 0, 'set_max': 1, 'mask': 8}, 'chrono_p4_day_tuesday_set': {'reg_type': 'SET', 'offset': 32895, 'formula': '#/2', 'formula_inverse': '#*2', 'format_string': '{0}', 'set_min': 0, 'set_max': 1, 'mask': 2}, 'chrono_p4_day_wednesday_set': {'reg_type': 'SET', 'offset': 32895, 'formula': '#/4', 'formula_inverse': '#*4', 'format_string': '{0}', 'set_min': 0, 'set_max': 1, 'mask': 4}, 'chrono_p4_fan_enable': {'reg_type': 'ENABLE', 'offset': 32835, 'formula': '#', 'formula_inverse': '#', 'format_string': '{0}', 'set_min': 0, 'set_max': 3, 'mask': 65535}, 'chrono_p4_fan_set': {'reg_type': 'SET', 'offset': 32829, 'formula': '#', 'formula_inverse': '#', 'format_string': '{0}', 'set_min': 0, 'set_max': 6, 'mask': 65535, 'value_off': 0}, 'chrono_p4_power_set': {'reg_type': 'SET', 'offset': 32896, 'formula': '#', 'formula_inverse': '#', 'format_string': '{0}', 'set_min': 1, 'set_max': 5, 'mask': 65535}, 'chrono_p4_start_set': {'reg_type': 'SET', 'offset': 32893, 'formula': '#', 'formula_inverse': '#', 'format_string': '{0}', 'set_min': 0, 'set_max': 144, 'mask': 65535}, 'chrono_p4_stop_set': {'reg_type': 'SET', 'offset': 32894, 'formula': '#', 'formula_inverse': '#', 'format_string': '{0}', 'set_min': 0, 'set_max': 144, 'mask': 65535}, 'chrono_p4_temperature_set': {'reg_type': 'SET', 'offset': 32897, 'formula': '#', 'formula_inverse': '#', 'format_string': '{0}°C', 'set_min': 7, 'set_max': 41, 'mask': 65535}, 'clock_hour_set': {'reg_type': 'SET', 'offset': 33017, 'formula': '#', 'formula_inverse': '#', 'format_string': '{0}', 'set_min': 0, 'set_max': 23, 'mask': 65535}, 'clock_minute_set': {'reg_type': 'SET', 'offset': 33018, 'formula': '#', 'formula_inverse': '#', 'format_string': '{0}', 'set_min': 0, 'set_max': 59, 'mask': 65535}, 'hw_power_fw_revision_get': {'reg_type': 'GET', 'offset': 241, 'formula': '#', 'formula_inverse': '#', 'format_string': '{0}', 'set_min': 0, 'set_max': 255, 'mask': 255}, 'hw_power_fw_type_get': {'reg_type': 'GET', 'offset': 240, 'formula': '#', 'formula_inverse': '#', 'format_string': '{0}', 'set_min': 0, 'set_max': 255, 'mask': 255}, 'ore_lavoro_par_get': {'reg_type': 'GET', 'offset': 33004, 'formula': '#', 'formula_inverse': '#', 'format_string': '{0} h', 'set_min': 0, 'set_max': 65535, 'mask': 65535}, 'ore_lavoro_tot_get': {'reg_type': 'GET', 'offset': 33002, 'formula': '#', 'formula_inverse': '#', 'format_string': '{0}', 'set_min': 0, 'set_max': 65535, 'mask': 65535}, 'power_set': {'reg_type': 'SET', 'offset': 32850, 'formula': '#', 'formula_inverse': '#', 'format_string': '{0}', 'set_min': 1, 'set_max': 5, 'mask': 65535}, 'real_power_get': {'reg_type': 'GET', 'offset': 52, 'formula': '#', 'formula_inverse': '#', 'format_string': '{0}', 'set_min': 1, 'set_max': 5, 'mask': 65535}, 'status_get': {'reg_type': 'GET', 'offset': 32, 'formula': '#', 'formula_inverse': '#', 'format_string': '{0}', 'set_min': 0, 'set_max': 255, 'mask': 65535, 'value_off': 0}, 'status_managed_get': {'reg_type': 'GET', 'offset': 232, 'formula': '#', 'formula_inverse': '#', 'format_string': '{0}', 'set_min': 0, 'set_max': 255, 'mask': 65535, 'value_on': 85, 'value_off': 170}, 'status_managed_off_enable': {'reg_type': 'ENABLE', 'offset': 32, 'formula': '#', 'formula_inverse': '#', 'format_string': '{0}', 'set_min': 0, 'set_max': 11, 'mask': 65535}, 'status_managed_on_enable': {'reg_type': 'ENABLE', 'offset': 32, 'formula': '#', 'formula_inverse': '#', 'format_string': '{0}', 'set_min': 0, 'set_max': 11, 'mask': 65535}, 'temp_air_enable': {'reg_type': 'ENABLE', 'offset': 1, 'formula': '#', 'formula_inverse': '#', 'format_string': '{0}', 'set_min': 0, 'set_max': 255, 'mask': 65535}, 'temp_air_get': {'reg_type': 'GET', 'offset': 1, 'formula': '#/2', 'formula_inverse': '#*2', 'format_string': '{0} °C', 'set_min': 0, 'set_max': 100, 'mask': 65535}, 'temp_air_palm_enable': {'reg_type': 'ENABLE', 'offset': 1, 'formula': '#', 'formula_inverse': '#', 'format_string': '{0}', 'set_min': 0, 'set_max': 255, 'mask': 65535}, 'temp_air_palm_get': {'reg_type': 'GET', 'offset': 13, 'formula': '#', 'formula_inverse': '#', 'format_string': '{0} °C', 'set_min': 0, 'set_max': 100, 'mask': 65535}, 'temp_air_palm_set': {'reg_type': 'SET', 'offset': 32851, 'formula': '#', 'formula_inverse': '#', 'format_string': '{0} °C', 'set_min': 7, 'set_max': 41, 'mask': 65535}, 'temp_air_set': {'reg_type': 'SET', 'offset': 32851, 'formula': '#', 'formula_inverse': '#', 'format_string': '{0} °C', 'set_min': 7, 'set_max': 41, 'mask': 65535}, 'temp_gas_flue_get': {'reg_type': 'GET', 'offset': 86, 'formula': '#', 'formula_inverse': '#', 'format_string': '{0} °C', 'set_min': 0, 'set_max': 65535, 'mask': 65535}, 'temp_probe_k_get': {'reg_type': 'GET', 'offset': 84, 'formula': '#', 'formula_inverse': '#', 'format_string': '{0} °C', 'set_min': 0, 'set_max': 65535, 'mask': 65535}}
2021-02-21 10:11:01 DEBUG (SyncWorker_4) [py_agua_iot] GETBUFFERREADING SUCCEEDED!
2021-02-21 10:11:02 DEBUG (SyncWorker_4) [py_agua_iot] JOBANSWERSTATUS COMPLETED!
2021-02-21 10:11:02 DEBUG (SyncWorker_4) [py_agua_iot] SUCCESSFULLY RETRIEVED ITEM IN JOBANSWERDATA!
2021-02-21 10:11:02 DEBUG (SyncWorker_4) [py_agua_iot] INFORMATION MAP: {32835: 3, 232: 113, 32895: 0, 1: 0, 32874: 0, 32856: 0, 32888: 0, 32881: 0, 32897: 20, 32875: 3, 52: 1, 32828: 0, 32854: 20, 32894: 144, 33016: 1, 240: 1, 32876: 20, 33019: 33, 32: 5, 32851: 19, 32855: 0, 33021: 33, 32853: 20, 33020: 2, 32872: 144, 32879: 144, 32896: 3, 32887: 144, 33006: 607, 32850: 3, 84: 323, 3: 0, 32890: 20, 32886: 144, 32889: 3, 32852: 20, 32858: 2, 32893: 144, 32882: 3, 33002: 2394, 32880: 144, 32857: 6, 32859: 1, 86: 729, 33018: 40, 50: 0, 32883: 20, 32827: 0, 32873: 144, 33017: 16, 13: 19, 4: 0, 33004: 2394, 241: 0, 32865: 0, 32826: 0, 32829: 0}
2021-02-21 10:11:02 DEBUG (MainThread) [py_agua_iot] GET 'temp_air_set' MIN: 7
2021-02-21 10:11:02 DEBUG (MainThread) [py_agua_iot] GET 'temp_air_set' MAX: 41
2021-02-21 10:11:02 DEBUG (MainThread) [py_agua_iot] GET 'power_set' MIN: 1
2021-02-21 10:11:02 DEBUG (MainThread) [py_agua_iot] GET 'power_set' MAX: 5
2021-02-21 10:11:02 DEBUG (MainThread) [py_agua_iot] GET 'temp_air_set' MIN: 7
2021-02-21 10:11:02 DEBUG (MainThread) [py_agua_iot] GET 'temp_air_set' MAX: 41
2021-02-21 10:11:02 DEBUG (MainThread) [py_agua_iot] GET 'power_set' MIN: 1
2021-02-21 10:11:02 DEBUG (MainThread) [py_agua_iot] GET 'power_set' MAX: 5
2021-02-21 10:11:02 DEBUG (MainThread) [py_agua_iot] GET 'status_get' FORMULA: #
2021-02-21 10:11:02 DEBUG (MainThread) [py_agua_iot] GET 'status_get' ORIGINAL VALUE: 5
2021-02-21 10:11:02 DEBUG (MainThread) [py_agua_iot] GET 'status_get' CALCULATED VALUE: 5
2021-02-21 10:11:02 DEBUG (MainThread) [py_agua_iot] GET 'temp_air_get' FORMULA: #/2
2021-02-21 10:11:02 DEBUG (MainThread) [py_agua_iot] GET 'temp_air_get' ORIGINAL VALUE: 0
2021-02-21 10:11:02 DEBUG (MainThread) [py_agua_iot] GET 'temp_air_get' CALCULATED VALUE: 0.0
2021-02-21 10:11:02 DEBUG (MainThread) [py_agua_iot] GET 'temp_air_set' FORMULA: #
2021-02-21 10:11:02 DEBUG (MainThread) [py_agua_iot] GET 'temp_air_set' ORIGINAL VALUE: 19
2021-02-21 10:11:02 DEBUG (MainThread) [py_agua_iot] GET 'temp_air_set' CALCULATED VALUE: 19
2021-02-21 10:11:02 DEBUG (MainThread) [py_agua_iot] GET 'power_set' FORMULA: #
2021-02-21 10:11:02 DEBUG (MainThread) [py_agua_iot] GET 'power_set' ORIGINAL VALUE: 3
2021-02-21 10:11:02 DEBUG (MainThread) [py_agua_iot] GET 'power_set' CALCULATED VALUE: 3
2021-02-21 10:11:02 DEBUG (MainThread) [py_agua_iot] GET 'status_get' FORMULA: #
2021-02-21 10:11:02 DEBUG (MainThread) [py_agua_iot] GET 'status_get' ORIGINAL VALUE: 5
2021-02-21 10:11:02 DEBUG (MainThread) [py_agua_iot] GET 'status_get' CALCULATED VALUE: 5
2021-02-21 10:11:02 DEBUG (MainThread) [py_agua_iot] GET 'status_get' FORMULA: #
2021-02-21 10:11:02 DEBUG (MainThread) [py_agua_iot] GET 'status_get' ORIGINAL VALUE: 5
2021-02-21 10:11:02 DEBUG (MainThread) [py_agua_iot] GET 'status_get' CALCULATED VALUE: 5
2021-02-21 10:11:02 DEBUG (MainThread) [py_agua_iot] GET 'status_get' FORMULA: #
2021-02-21 10:11:02 DEBUG (MainThread) [py_agua_iot] GET 'status_get' ORIGINAL VALUE: 5
2021-02-21 10:11:02 DEBUG (MainThread) [py_agua_iot] GET 'status_get' CALCULATED VALUE: 5
2021-02-21 10:11:02 DEBUG (MainThread) [py_agua_iot] GET 'status_get' FORMULA: #
2021-02-21 10:11:02 DEBUG (MainThread) [py_agua_iot] GET 'status_get' ORIGINAL VALUE: 5
2021-02-21 10:11:02 DEBUG (MainThread) [py_agua_iot] GET 'status_get' CALCULATED VALUE: 5
2021-02-21 10:11:02 DEBUG (MainThread) [py_agua_iot] GET 'alarms_get' FORMULA: #
2021-02-21 10:11:02 DEBUG (MainThread) [py_agua_iot] GET 'alarms_get' ORIGINAL VALUE: 0
2021-02-21 10:11:02 DEBUG (MainThread) [py_agua_iot] GET 'alarms_get' CALCULATED VALUE: 0
2021-02-21 10:11:02 DEBUG (MainThread) [py_agua_iot] GET 'status_get' FORMULA: #
2021-02-21 10:11:02 DEBUG (MainThread) [py_agua_iot] GET 'status_get' ORIGINAL VALUE: 5
2021-02-21 10:11:02 DEBUG (MainThread) [py_agua_iot] GET 'status_get' CALCULATED VALUE: 5
2021-02-21 10:11:02 DEBUG (MainThread) [py_agua_iot] GET 'status_get' FORMULA: #
2021-02-21 10:11:02 DEBUG (MainThread) [py_agua_iot] GET 'status_get' ORIGINAL VALUE: 5
2021-02-21 10:11:02 DEBUG (MainThread) [py_agua_iot] GET 'status_get' CALCULATED VALUE: 5
2021-02-21 10:11:02 DEBUG (MainThread) [py_agua_iot] GET 'temp_gas_flue_get' FORMULA: #
2021-02-21 10:11:02 DEBUG (MainThread) [py_agua_iot] GET 'temp_gas_flue_get' ORIGINAL VALUE: 729
2021-02-21 10:11:02 DEBUG (MainThread) [py_agua_iot] GET 'temp_gas_flue_get' CALCULATED VALUE: 729
2021-02-21 10:11:02 DEBUG (MainThread) [py_agua_iot] GET 'real_power_get' FORMULA: #
2021-02-21 10:11:02 DEBUG (MainThread) [py_agua_iot] GET 'real_power_get' ORIGINAL VALUE: 1
2021-02-21 10:11:02 DEBUG (MainThread) [py_agua_iot] GET 'real_power_get' CALCULATED VALUE: 1```
For some reason your stove is exposed with different parameters via the Agua IOT API, at least that is what I can see from your debug logs (thanks for that btw).
For example to request the current temperature, with all other stoves that I've seen, requesting the temp_air_get
reg type does the trick.
Looking at your registers map I can see an extra reg type temp_air_palm_get
which at time of debug logs contains 19
in the information map, so should be the correct one for you.
Also the smoke/gas temperature is normally requested via the temp_gas_flue_get
reg type, where it looks to be temp_probe_k_get
in your case.
I'll try to check if it's possible to auto-detect when to use which reg type.
Thank you! I can explain why these parameters are present as the stove's room temp is measured via the remonte control (they call it the palm unit). Furthermore there is a funtion of a fan that can be adjusted from 0-6.
Hi, I have a Ravelli pellet stove and I use the Ravelli wi-fi app. How can I found the API and the customer code? In the list of API and customer code there isn't the ravelli app and I'm asking here cause @jo0246 manage to integrate his pellet stove that he uses in the Ravelli wifi app to home assistant. I'm not confident with sniffing packages, I tried a software but I can't find the customer code and the API URL (I think it's aico.agua-iot.com). Can someone post a little guide for noob like me?
P.S: sorry for my english
Hi @saragrigolin, I managed to inspect the packets by using burpsuite community edition, setup a proxy (simple guide available online) and let the device with your ravelli app connect to the same wifi using the proxy. Then you use the app and check which packets are passed through the burpsuite proxy. Please note that generally, the customer code and API link is the same for all users of a single brand (there might be some exceptions, but it is a good starting point). So it should most likely be the same as jo0246 I think. I have a Piazzetta btw.
Hi there, the summer is over and I'm trying to finally add the integration in Home Assistant. I sniffed the package and I found the API and the customer code, that match with what jo0246 found. So now I have the API aico.agua-iot.com (in the package I have "host: aico.agua-iot.com") and the customer code 953712, but when I add the Micronova Agua IOT integration and write these parameters, along with my Ravelli Wi-Fi app username and password, I have this error: "Unknown error occurred". My Home Assistant is up to date.
Same as @saragrigolin but with a Klover pellet stove. If you need more information, let me know!
Hi there, the summer is over and I'm trying to finally add the integration in Home Assistant. I sniffed the package and I found the API and the customer code, that match with what jo0246 found. So now I have the API aico.agua-iot.com (in the package I have "host: aico.agua-iot.com") and the customer code 953712, but when I add the Micronova Agua IOT integration and write these parameters, along with my Ravelli Wi-Fi app username and password, I have this error: "Unknown error occurred". My Home Assistant is up to date.
Were you able to solve the problem?
Hi there, the summer is over and I'm trying to finally add the integration in Home Assistant. I sniffed the package and I found the API and the customer code, that match with what jo0246 found. So now I have the API aico.agua-iot.com (in the package I have "host: aico.agua-iot.com") and the customer code 953712, but when I add the Micronova Agua IOT integration and write these parameters, along with my Ravelli Wi-Fi app username and password, I have this error: "Unknown error occurred". My Home Assistant is up to date.
Were you able to solve the problem?
Hi, no I'm sorry I still get this error. We are waiting for answers but with no success.
@fredericvl: my integration is also not working anymore. Are you planning to update the code? And can I help you to debug or show you what the integration is showing?
I'm new on GitHub, and could not find a way to create a pull request, sorry. For my pellet Stove (Nordic Fire, Reeva 7) i have the following customer code: 953712. I ran a packet inspector on my android phone so i found out the customer code. Will check today if it works.