Hi Gizmo,
I feel that there is a small bug in ChipChop library (or more probably I do some wrong).
Setup:
A) HW: ESP8266
B) I have on my dashboard 12 variables: 8 are numbers, 4 are texts.
When I execute ChipChop.updateStatus for these variables it ignores this variable for which the ChipChop.updateStatus was executed as the last one during the first initialization.
Example 1: The variable
Boiler_Heater had ChipChop.updateStatus executed as the last one during the first initialization. Since then subseqent executions of ChipChop.updateStatus is ignored for it.
Logs:
2026-2-22 22:23:48 INFO: UserParameterTemplate<T>::setValue. New parameter value: Last_Vaillant_Frame=1630
2026-2-22 22:23:48 INFO: UserParameterTemplate<T>::setValue. New parameter value: Boiler_Water_Input=48.00
2026-2-22 22:23:49 INFO: UserParameterTemplate<T>::setValue. New parameter value: Boiler_Water_Output=20.00
2026-2-22 22:23:49 INFO: UserParameterTemplate<T>::setValue. New parameter value: Outside_Temperature=-14.00
2026-2-22 22:23:50 INFO: UserParameterTemplate<T>::setValue. New parameter value: Boiler_Daily_Activity=189
2026-2-22 22:23:50 INFO: UserParameterTemplate<T>::setValue. New parameter value:
Boiler_Heater=1 2026-2-22 22:23:53 INFO: ChipChopEngine::_send_heartbeat ChipChop >>> Heartbeat: {"Memory_Heap":28896} , {"uptime":"0 0:1:30"} , {"Last_Seen_Online_UTC_Seconds":1771795410} , {"Last_Seen_Online":"2026-2-22 22:23:30"} , {"Boiler_Daily_Activity":"0 0:3:11"} , {"Boiler_Daily_Activity_Seconds":191} , {"Last_Vaillant_Frame":"1970-1-1 1:27:10"} , {"Boiler_Water_Input":48.00} , {"Boiler_Water_Output":20.00} , {"Outside_Temperature":-14.00}
ChipChop log doesn't seem to know
Boiler_Heater, even though it there were a few executions of updateStatus for it.
Example 2:
Now let's change the order of the first initialization and make the variable
Last_Vaillant_Frame: initialised (execution of updateStatus) as the last one. Now this variable is ignored.
Logs:
2026-2-22 22:30:39 INFO: UserParameterTemplate<T>::setValue. New parameter value: Boiler_Water_Input=47.00
2026-2-22 22:30:40 INFO: UserParameterTemplate<T>::setValue. New parameter value: Boiler_Water_Output=22.00
2026-2-22 22:30:40 INFO: UserParameterTemplate<T>::setValue. New parameter value: Outside_Temperature=8.00
2026-2-22 22:30:41 INFO: UserParameterTemplate<T>::setValue. New parameter value: Boiler_Daily_Activity=972
2026-2-22 22:30:41 INFO: UserParameterTemplate<T>::setValue. New parameter value: Boiler_Heater=0
2026-2-22 22:30:42 INFO: UserParameterTemplate<T>::setValue. New parameter value:
Last_Vaillant_Frame=9002026-2-22 22:30:47 INFO: ChipChopEngine::_send_heartbeat ChipChop >>> Heartbeat: {"Memory_Heap":28768} , {"uptime":"0 0:2:0"} , {"Boiler_Daily_Activity":"0 0:16:12"} , {"Boiler_Daily_Activity_Seconds":972} , {"Last_Seen_Online_UTC_Seconds":1771795821} , {"Last_Seen_Online":"2026-2-22 22:30:21"} , {"Boiler_Water_Input":47.00} , {"Boiler_Water_Output":22.00} , {"Outside_Temperature":8.00} , {"Boiler_Heater":0}
ChipChop log doesn't seem to know
Last_Vaillant_Frame, even though it there were a few executions of updateStatus for it.
I had to use use my Logger lib, that allows me to check logs through a Web Page rather than a Serial (that's why, there are date and hour at the beginning of logs generated by ChipChop lib). Certainly the issue persists also with logging disabled and with regular serial logging (below):
For Example 2 - logs through Serial. Still Last_Vaillant_Frame is missing.
ChipChop >>> Heartbeat: {"Memory_Heap":28736} , {"uptime":"0 0:2:30"} , {"Last_Seen_Online_UTC_Seconds":1771796860} , {"Last_Seen_Online":"2026-2-22 22:47:40"} , {"Boiler_Daily_Activity":"0 0:17:19"} , {"Boiler_Daily_Activity_Seconds":1039} , {"Boiler_Water_Input":27.00} , {"Boiler_Water_Output":16.00} , {"Outside_Temperature":-2.00} , {"Boiler_Heater":1}
I have a feeling that the total lenght of updated variables exceeded a limit. Maybe names are too long. Anyway, before I start experimaneting, I would like to share what I found.
Regards
Tomasz