[COLOR=#d4d4d4]import "join"
import "timezone"[/COLOR]
[COLOR=#569cd6]option[/COLOR][COLOR=#d4d4d4] location [/COLOR][COLOR=#778899]=[/COLOR][COLOR=#d4d4d4] timezone[/COLOR][COLOR=#dcdcdc].[/COLOR][COLOR=#d4d4d4]location[/COLOR][COLOR=#dcdcdc]([/COLOR][COLOR=#d4d4d4]name: "Europe/Rome"[/COLOR][COLOR=#dcdcdc])[/COLOR]
[COLOR=#d4d4d4]t1 [/COLOR][COLOR=#778899]=[/COLOR][COLOR=#569cd6]from[/COLOR][COLOR=#dcdcdc]([/COLOR][COLOR=#d4d4d4]bucket: "home_assistant/autogen"[/COLOR][COLOR=#dcdcdc])[/COLOR]
[COLOR=#778899]|>[/COLOR][COLOR=#569cd6]range[/COLOR][COLOR=#dcdcdc]([/COLOR][COLOR=#d4d4d4]start: v[/COLOR][COLOR=#dcdcdc].[/COLOR][COLOR=#d4d4d4]timeRangeStart[/COLOR][COLOR=#dcdcdc],[/COLOR][COLOR=#d4d4d4] stop: v[/COLOR][COLOR=#dcdcdc].[/COLOR][COLOR=#d4d4d4]timeRangeStop[/COLOR][COLOR=#dcdcdc])[/COLOR]
[COLOR=#778899]|>[/COLOR][COLOR=#569cd6]filter[/COLOR][COLOR=#dcdcdc]([/COLOR][COLOR=#d4d4d4]fn: [/COLOR][COLOR=#dcdcdc]([/COLOR][COLOR=#d4d4d4]r[/COLOR][COLOR=#dcdcdc])[/COLOR][COLOR=#778899]=>[/COLOR][COLOR=#d4d4d4] r["entity_id"] [/COLOR][COLOR=#778899]==[/COLOR][COLOR=#d4d4d4] "heating_system_flow_temperature"[/COLOR][COLOR=#dcdcdc])[/COLOR]
[COLOR=#778899]|>[/COLOR][COLOR=#569cd6]filter[/COLOR][COLOR=#dcdcdc]([/COLOR][COLOR=#d4d4d4]fn: [/COLOR][COLOR=#dcdcdc]([/COLOR][COLOR=#d4d4d4]r[/COLOR][COLOR=#dcdcdc])[/COLOR][COLOR=#778899]=>[/COLOR][COLOR=#d4d4d4] r["_field"] [/COLOR][COLOR=#778899]==[/COLOR][COLOR=#d4d4d4] "value"[/COLOR][COLOR=#dcdcdc])[/COLOR]
[COLOR=#778899]|>[/COLOR][COLOR=#d4d4d4] aggregateWindow[/COLOR][COLOR=#dcdcdc]([/COLOR][COLOR=#d4d4d4]every: [/COLOR][COLOR=#b5cea8]1[/COLOR][COLOR=#d4d4d4]m[/COLOR][COLOR=#dcdcdc],[/COLOR][COLOR=#d4d4d4] fn: [/COLOR][COLOR=#569cd6]last[/COLOR][COLOR=#dcdcdc],[/COLOR][COLOR=#d4d4d4] createEmpty: [/COLOR][COLOR=#569cd6]false[/COLOR][COLOR=#dcdcdc])[/COLOR]
[COLOR=#778899]|>[/COLOR][COLOR=#d4d4d4] keep[/COLOR][COLOR=#dcdcdc]([/COLOR][COLOR=#d4d4d4]columns: ["_time", "_value"][/COLOR][COLOR=#dcdcdc])[/COLOR]
[COLOR=#d4d4d4]t2 [/COLOR][COLOR=#778899]=[/COLOR][COLOR=#569cd6]from[/COLOR][COLOR=#dcdcdc]([/COLOR][COLOR=#d4d4d4]bucket: "home_assistant/autogen"[/COLOR][COLOR=#dcdcdc])[/COLOR]
[COLOR=#778899]|>[/COLOR][COLOR=#569cd6]range[/COLOR][COLOR=#dcdcdc]([/COLOR][COLOR=#d4d4d4]start: v[/COLOR][COLOR=#dcdcdc].[/COLOR][COLOR=#d4d4d4]timeRangeStart[/COLOR][COLOR=#dcdcdc],[/COLOR][COLOR=#d4d4d4] stop: v[/COLOR][COLOR=#dcdcdc].[/COLOR][COLOR=#d4d4d4]timeRangeStop[/COLOR][COLOR=#dcdcdc])[/COLOR]
[COLOR=#778899]|>[/COLOR][COLOR=#569cd6]filter[/COLOR][COLOR=#dcdcdc]([/COLOR][COLOR=#d4d4d4]fn: [/COLOR][COLOR=#dcdcdc]([/COLOR][COLOR=#d4d4d4]r[/COLOR][COLOR=#dcdcdc])[/COLOR][COLOR=#778899]=>[/COLOR][COLOR=#d4d4d4] r["entity_id"] [/COLOR][COLOR=#778899]==[/COLOR][COLOR=#d4d4d4] "heating_system_return_temperature"[/COLOR][COLOR=#dcdcdc])[/COLOR]
[COLOR=#778899]|>[/COLOR][COLOR=#569cd6]filter[/COLOR][COLOR=#dcdcdc]([/COLOR][COLOR=#d4d4d4]fn: [/COLOR][COLOR=#dcdcdc]([/COLOR][COLOR=#d4d4d4]r[/COLOR][COLOR=#dcdcdc])[/COLOR][COLOR=#778899]=>[/COLOR][COLOR=#d4d4d4] r["_field"] [/COLOR][COLOR=#778899]==[/COLOR][COLOR=#d4d4d4] "value"[/COLOR][COLOR=#dcdcdc])[/COLOR]
[COLOR=#778899]|>[/COLOR][COLOR=#d4d4d4] aggregateWindow[/COLOR][COLOR=#dcdcdc]([/COLOR][COLOR=#d4d4d4]every: [/COLOR][COLOR=#b5cea8]1[/COLOR][COLOR=#d4d4d4]m[/COLOR][COLOR=#dcdcdc],[/COLOR][COLOR=#d4d4d4] fn: [/COLOR][COLOR=#569cd6]last[/COLOR][COLOR=#dcdcdc],[/COLOR][COLOR=#d4d4d4] createEmpty: [/COLOR][COLOR=#569cd6]false[/COLOR][COLOR=#dcdcdc])[/COLOR]
[COLOR=#778899]|>[/COLOR][COLOR=#d4d4d4] keep[/COLOR][COLOR=#dcdcdc]([/COLOR][COLOR=#d4d4d4]columns: ["_time", "_value"][/COLOR][COLOR=#dcdcdc])[/COLOR]
[COLOR=#d4d4d4]tdiff [/COLOR][COLOR=#778899]=join[/COLOR][COLOR=#dcdcdc].[/COLOR][COLOR=#778899]inner[/COLOR][COLOR=#dcdcdc]([/COLOR]
[COLOR=#778899]left[/COLOR][COLOR=#d4d4d4]: t1[/COLOR][COLOR=#dcdcdc],[/COLOR]
[COLOR=#778899]right[/COLOR][COLOR=#d4d4d4]: t2[/COLOR][COLOR=#dcdcdc],[/COLOR]
[COLOR=#569cd6]on[/COLOR][COLOR=#d4d4d4]: [/COLOR][COLOR=#dcdcdc]([/COLOR][COLOR=#d4d4d4]l[/COLOR][COLOR=#dcdcdc],[/COLOR][COLOR=#d4d4d4] r[/COLOR][COLOR=#dcdcdc])[/COLOR][COLOR=#778899]=>[/COLOR][COLOR=#d4d4d4] l[/COLOR][COLOR=#dcdcdc].[/COLOR][COLOR=#d4d4d4]_time [/COLOR][COLOR=#778899]==[/COLOR][COLOR=#d4d4d4] r[/COLOR][COLOR=#dcdcdc].[/COLOR][COLOR=#d4d4d4]_time[/COLOR][COLOR=#dcdcdc],[/COLOR]
[COLOR=#569cd6]as[/COLOR][COLOR=#d4d4d4]: [/COLOR][COLOR=#dcdcdc]([/COLOR][COLOR=#d4d4d4]l[/COLOR][COLOR=#dcdcdc],[/COLOR][COLOR=#d4d4d4] r[/COLOR][COLOR=#dcdcdc])[/COLOR][COLOR=#778899]=>[/COLOR][COLOR=#dcdcdc]([/COLOR][COLOR=#d4d4d4]{l [/COLOR][COLOR=#569cd6]with[/COLOR][COLOR=#d4d4d4] _value: l[/COLOR][COLOR=#dcdcdc].[/COLOR][COLOR=#d4d4d4]_value [/COLOR][COLOR=#778899]-[/COLOR][COLOR=#d4d4d4] r[/COLOR][COLOR=#dcdcdc].[/COLOR][COLOR=#d4d4d4]_value}[/COLOR][COLOR=#dcdcdc]),
)[/COLOR][COLOR=#778899]|>[/COLOR][COLOR=#d4d4d4] truncateTimeColumn[/COLOR][COLOR=#dcdcdc]([/COLOR][COLOR=#d4d4d4]unit: [/COLOR][COLOR=#b5cea8]5[/COLOR][COLOR=#d4d4d4]m[/COLOR][COLOR=#dcdcdc])[/COLOR]
[COLOR=#d4d4d4]wvol [/COLOR][COLOR=#778899]=[/COLOR][COLOR=#569cd6]from[/COLOR][COLOR=#dcdcdc]([/COLOR][COLOR=#d4d4d4]bucket: "home_assistant/autogen"[/COLOR][COLOR=#dcdcdc])[/COLOR]
[COLOR=#778899]|>[/COLOR][COLOR=#569cd6]range[/COLOR][COLOR=#dcdcdc]([/COLOR][COLOR=#d4d4d4]start: v[/COLOR][COLOR=#dcdcdc].[/COLOR][COLOR=#d4d4d4]timeRangeStart[/COLOR][COLOR=#dcdcdc],[/COLOR][COLOR=#d4d4d4] stop: v[/COLOR][COLOR=#dcdcdc].[/COLOR][COLOR=#d4d4d4]timeRangeStop[/COLOR][COLOR=#dcdcdc])[/COLOR]
[COLOR=#778899]|>[/COLOR][COLOR=#569cd6]filter[/COLOR][COLOR=#dcdcdc]([/COLOR][COLOR=#d4d4d4]fn: [/COLOR][COLOR=#dcdcdc]([/COLOR][COLOR=#d4d4d4]r[/COLOR][COLOR=#dcdcdc])[/COLOR][COLOR=#778899]=>[/COLOR][COLOR=#d4d4d4] r["entity_id"] [/COLOR][COLOR=#778899]==[/COLOR][COLOR=#d4d4d4] "heating_system_water_volume"[/COLOR][COLOR=#dcdcdc])[/COLOR]
[COLOR=#778899]|>[/COLOR][COLOR=#569cd6]filter[/COLOR][COLOR=#dcdcdc]([/COLOR][COLOR=#d4d4d4]fn: [/COLOR][COLOR=#dcdcdc]([/COLOR][COLOR=#d4d4d4]r[/COLOR][COLOR=#dcdcdc])[/COLOR][COLOR=#778899]=>[/COLOR][COLOR=#d4d4d4] r["_field"] [/COLOR][COLOR=#778899]==[/COLOR][COLOR=#d4d4d4] "value"[/COLOR][COLOR=#dcdcdc])[/COLOR]
[COLOR=#778899]|>[/COLOR][COLOR=#ff00ff]difference[/COLOR][COLOR=#dcdcdc]()[/COLOR]
[COLOR=#778899]|>[/COLOR][COLOR=#569cd6]filter[/COLOR][COLOR=#dcdcdc]([/COLOR][COLOR=#d4d4d4]fn: [/COLOR][COLOR=#dcdcdc]([/COLOR][COLOR=#d4d4d4]r[/COLOR][COLOR=#dcdcdc])[/COLOR][COLOR=#778899]=>[/COLOR][COLOR=#d4d4d4] r[/COLOR][COLOR=#dcdcdc].[/COLOR][COLOR=#d4d4d4]_value [/COLOR][COLOR=#778899]COLOR][COLOR=#b5cea8]0.200[/COLOR][COLOR=#778899]and[/COLOR][COLOR=#d4d4d4] r[/COLOR][COLOR=#dcdcdc].[/COLOR][COLOR=#d4d4d4]_value [/COLOR][COLOR=#778899]>[/COLOR][COLOR=#b5cea8]0[/COLOR][COLOR=#dcdcdc])[/COLOR]
[COLOR=#778899]|>[/COLOR][COLOR=#d4d4d4] keep[/COLOR][COLOR=#dcdcdc]([/COLOR][COLOR=#d4d4d4]columns: ["_time", "_value"][/COLOR][COLOR=#dcdcdc])[/COLOR]
[COLOR=#778899]|>[/COLOR][COLOR=#d4d4d4] truncateTimeColumn[/COLOR][COLOR=#dcdcdc]([/COLOR][COLOR=#d4d4d4]unit: [/COLOR][COLOR=#b5cea8]5[/COLOR][COLOR=#d4d4d4]m[/COLOR][COLOR=#dcdcdc])[/COLOR]
[COLOR=#778899]join[/COLOR][COLOR=#dcdcdc].[/COLOR][COLOR=#778899]inner[/COLOR][COLOR=#dcdcdc]([/COLOR]
[COLOR=#778899]left[/COLOR][COLOR=#d4d4d4]: tdiff[/COLOR][COLOR=#dcdcdc],[/COLOR]
[COLOR=#778899]right[/COLOR][COLOR=#d4d4d4]: wvol[/COLOR][COLOR=#dcdcdc],[/COLOR]
[COLOR=#569cd6]on[/COLOR][COLOR=#d4d4d4]: [/COLOR][COLOR=#dcdcdc]([/COLOR][COLOR=#d4d4d4]l[/COLOR][COLOR=#dcdcdc],[/COLOR][COLOR=#d4d4d4] r[/COLOR][COLOR=#dcdcdc])[/COLOR][COLOR=#778899]=>[/COLOR][COLOR=#d4d4d4] l[/COLOR][COLOR=#dcdcdc].[/COLOR][COLOR=#d4d4d4]_time [/COLOR][COLOR=#778899]==[/COLOR][COLOR=#d4d4d4] r[/COLOR][COLOR=#dcdcdc].[/COLOR][COLOR=#d4d4d4]_time[/COLOR][COLOR=#dcdcdc],[/COLOR]
[COLOR=#569cd6]as[/COLOR][COLOR=#d4d4d4]: [/COLOR][COLOR=#dcdcdc]([/COLOR][COLOR=#d4d4d4]l[/COLOR][COLOR=#dcdcdc],[/COLOR][COLOR=#d4d4d4] r[/COLOR][COLOR=#dcdcdc])[/COLOR][COLOR=#778899]=>[/COLOR][COLOR=#dcdcdc]([/COLOR][COLOR=#d4d4d4]{l [/COLOR][COLOR=#569cd6]with[/COLOR][COLOR=#d4d4d4] _value: r[/COLOR][COLOR=#dcdcdc].[/COLOR][COLOR=#d4d4d4]_value [/COLOR][COLOR=#778899]*[/COLOR][COLOR=#b5cea8]1000000.0[/COLOR][COLOR=#778899]*[/COLOR][COLOR=#d4d4d4] l[/COLOR][COLOR=#dcdcdc].[/COLOR][COLOR=#d4d4d4]_value [/COLOR][COLOR=#778899]*[/COLOR][COLOR=#b5cea8]0.0011622222[/COLOR][COLOR=#778899]*[/COLOR][COLOR=#b5cea8]0.001[/COLOR][COLOR=#d4d4d4]}[/COLOR][COLOR=#dcdcdc]),
)[/COLOR]
[COLOR=#778899]|>[/COLOR][COLOR=#d4d4d4] aggregateWindow[/COLOR][COLOR=#dcdcdc]([/COLOR][COLOR=#d4d4d4]every: [/COLOR][COLOR=#b5cea8]1[/COLOR][COLOR=#d4d4d4]h[/COLOR][COLOR=#dcdcdc],[/COLOR][COLOR=#d4d4d4] fn: [/COLOR][COLOR=#ff00ff]sum[/COLOR][COLOR=#dcdcdc])[/COLOR]
[COLOR=#778899]|>[/COLOR][COLOR=#d4d4d4] map[/COLOR][COLOR=#dcdcdc]([/COLOR][COLOR=#d4d4d4]fn: [/COLOR][COLOR=#dcdcdc]([/COLOR][COLOR=#d4d4d4]r[/COLOR][COLOR=#dcdcdc])[/COLOR][COLOR=#778899]=>[/COLOR][COLOR=#dcdcdc]([/COLOR][COLOR=#d4d4d4]{r [/COLOR][COLOR=#569cd6]with[/COLOR][COLOR=#d4d4d4] friendly_name: "Hourly Energy"} [/COLOR][COLOR=#dcdcdc]))[/COLOR]
[COLOR=#778899]|>[/COLOR][COLOR=#569cd6]group[/COLOR][COLOR=#dcdcdc]([/COLOR][COLOR=#d4d4d4]columns: ["friendly_name"][/COLOR][COLOR=#dcdcdc])[/COLOR]
[COLOR=#778899]|>[/COLOR][COLOR=#d4d4d4] keep[/COLOR][COLOR=#dcdcdc]([/COLOR][COLOR=#d4d4d4]columns: ["_time", "_value", "friendly_name"][/COLOR][COLOR=#dcdcdc])[/COLOR]
[COLOR=#778899]|>[/COLOR][COLOR=#d4d4d4] yield[/COLOR][COLOR=#dcdcdc]([/COLOR][COLOR=#d4d4d4]name: "every1h"[/COLOR][COLOR=#dcdcdc])[/COLOR]
[COLOR=#778899]|>[/COLOR][COLOR=#569cd6]window[/COLOR][COLOR=#dcdcdc]([/COLOR][COLOR=#d4d4d4]every: [/COLOR][COLOR=#b5cea8]1[/COLOR][COLOR=#d4d4d4]d[/COLOR][COLOR=#dcdcdc])[/COLOR]
[COLOR=#778899]|>[/COLOR][COLOR=#d4d4d4] cumulativeSum[/COLOR][COLOR=#dcdcdc]()[/COLOR]
[COLOR=#778899]|>[/COLOR][COLOR=#ff00ff]max[/COLOR][COLOR=#dcdcdc]()[/COLOR]
[COLOR=#778899]|>[/COLOR][COLOR=#569cd6]window[/COLOR][COLOR=#dcdcdc]([/COLOR][COLOR=#d4d4d4]every: inf[/COLOR][COLOR=#dcdcdc])[/COLOR]
[COLOR=#778899]|>[/COLOR][COLOR=#d4d4d4] map[/COLOR][COLOR=#dcdcdc]([/COLOR][COLOR=#d4d4d4]fn: [/COLOR][COLOR=#dcdcdc]([/COLOR][COLOR=#d4d4d4]r[/COLOR][COLOR=#dcdcdc])[/COLOR][COLOR=#778899]=>[/COLOR][COLOR=#dcdcdc]([/COLOR][COLOR=#d4d4d4]{r [/COLOR][COLOR=#569cd6]with[/COLOR][COLOR=#d4d4d4] friendly_name: "Daily Energy"} [/COLOR][COLOR=#dcdcdc]))[/COLOR]
[COLOR=#778899]|>[/COLOR][COLOR=#569cd6]group[/COLOR][COLOR=#dcdcdc]([/COLOR][COLOR=#d4d4d4]columns: ["friendly_name"][/COLOR][COLOR=#dcdcdc])[/COLOR]
[COLOR=#778899]|>[/COLOR][COLOR=#d4d4d4] keep[/COLOR][COLOR=#dcdcdc]([/COLOR][COLOR=#d4d4d4]columns: ["_time", "_value", "friendly_name"][/COLOR][COLOR=#dcdcdc])[/COLOR]
[COLOR=#778899]|>[/COLOR][COLOR=#d4d4d4] yield[/COLOR][COLOR=#dcdcdc]([/COLOR][COLOR=#d4d4d4]name: "every1d"[/COLOR][COLOR=#dcdcdc])[/COLOR]