From c249047b7f14c7c626b6493c35e3db9d391da835 Mon Sep 17 00:00:00 2001 From: Kyle Gordon Date: Sat, 25 May 2024 13:30:13 +0100 Subject: [PATCH 1/6] Initial bits --- packages/givenergy.yaml | 58 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 58 insertions(+) create mode 100644 packages/givenergy.yaml diff --git a/packages/givenergy.yaml b/packages/givenergy.yaml new file mode 100644 index 00000000..b29b0b89 --- /dev/null +++ b/packages/givenergy.yaml @@ -0,0 +1,58 @@ +--- +#template: +sensor: + - platform: template + sensors: + battery_status: + friendly_name: "Battery status" + value_template: > + {%- set power_draw = states('sensor.battery_power') | int %} + {%- if power_draw < 0 %} + Charging + {%- elif power_draw == 0 %} + Balanced + {%- elif power_draw > 0 %} + Draining + {%- else -%} + Indeterminate + {%- endif %} + icon_template: >- + {%- set power_draw = states('sensor.battery_power') | int %} + {%- if power_draw < 0 %} + mdi:battery-charging + {%- elif power_draw > 0 %} + mdi:battery-minus + {%- else -%} + mdi:battery + {%- endif %} + + grid_all: + friendly_name: "Grid Usage" + value_template: "{{ states('sensor.grid_export_power') | float + states('sensor.consumption_power') | float }}" + unit_of_measurement: 'W' + + pv_all: + friendly_name: "PV Usage" + value_template: "{{ states('sensor.grid_export_power') | float + states('sensor.consumption_power') | float }}" + unit_of_measurement: 'W' + +#sensor: + - platform: integration + source: sensor.grid_all + method: left + name: grid_daily_usage + unit_prefix: k + round: 2 + + - platform: integration + source: sensor.pv_all + method: left + name: pv_daily_usage + unit_prefix: k + round: 2 + +# - platform: template +# #name: grid_all +# #friendly_name: "Grid Usage" +# value_template: "{{ states('sensor.grid_export_power') | float + states('sensor.consumption_power') | float }}" +# unit_of_measurement: 'W' From d68bc7157089c5498673ac29df1c7a416cfe414f Mon Sep 17 00:00:00 2001 From: Kyle Gordon Date: Sat, 25 May 2024 21:42:14 +0100 Subject: [PATCH 2/6] Tidy --- packages/givenergy.yaml | 12 ++---------- 1 file changed, 2 insertions(+), 10 deletions(-) diff --git a/packages/givenergy.yaml b/packages/givenergy.yaml index b29b0b89..9541f826 100644 --- a/packages/givenergy.yaml +++ b/packages/givenergy.yaml @@ -1,5 +1,4 @@ --- -#template: sensor: - platform: template sensors: @@ -22,7 +21,7 @@ sensor: mdi:battery-charging {%- elif power_draw > 0 %} mdi:battery-minus - {%- else -%} + {%- else -%} mdi:battery {%- endif %} @@ -33,10 +32,9 @@ sensor: pv_all: friendly_name: "PV Usage" - value_template: "{{ states('sensor.grid_export_power') | float + states('sensor.consumption_power') | float }}" + value_template: "{{ states('sensor.grid_export_power') | float + states('sensor.consumption_power') | float }}" unit_of_measurement: 'W' -#sensor: - platform: integration source: sensor.grid_all method: left @@ -50,9 +48,3 @@ sensor: name: pv_daily_usage unit_prefix: k round: 2 - -# - platform: template -# #name: grid_all -# #friendly_name: "Grid Usage" -# value_template: "{{ states('sensor.grid_export_power') | float + states('sensor.consumption_power') | float }}" -# unit_of_measurement: 'W' From 481a4716f41a82e1e5381d91b914b19304cc3d44 Mon Sep 17 00:00:00 2001 From: Kyle Gordon Date: Fri, 31 May 2024 16:47:59 +0100 Subject: [PATCH 3/6] Group kitchen, use links for outside warnings --- packages/kitchen.yaml | 2 +- packages/outside_lights.yaml | 8 ++++++++ 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/packages/kitchen.yaml b/packages/kitchen.yaml index 61fbec60..86783c60 100644 --- a/packages/kitchen.yaml +++ b/packages/kitchen.yaml @@ -14,7 +14,7 @@ light: entities: - light.kitchen_cabinets - light.kitchen_worktop_lights - - light.kitchen + - light.kitchen_ceiling_lights automation: - alias: Kitchen motion diff --git a/packages/outside_lights.yaml b/packages/outside_lights.yaml index 38f0e0fa..c0e8f004 100644 --- a/packages/outside_lights.yaml +++ b/packages/outside_lights.yaml @@ -65,6 +65,10 @@ automation: title: "Motion outside!" message: > Motion detected outside by {{ trigger.to_state.attributes.friendly_name }} + data: + clickAction: "/lovelace/outside" + url: "/lovelace/outside" + - alias: "Outside night lights on" id: outside_night_lights_on @@ -136,6 +140,10 @@ automation: message: > Motion detected outside by {{ trigger.to_state.attributes.friendly_name }} Turning on outside lights + data: + clickAction: "/lovelace/outside" + url: "/lovelace/outside" + - service: homeassistant.turn_on entity_id: - group.outside_lights From 02cf59da1ba8af685cf5526886fd4bc1e4ee1ca9 Mon Sep 17 00:00:00 2001 From: Kyle Gordon Date: Sun, 16 Jun 2024 13:19:28 +0100 Subject: [PATCH 4/6] Measure COP --- packages/givenergy.yaml | 30 ++++++++++++++++++++++++++++++ 1 file changed, 30 insertions(+) diff --git a/packages/givenergy.yaml b/packages/givenergy.yaml index b29b0b89..ce283403 100644 --- a/packages/givenergy.yaml +++ b/packages/givenergy.yaml @@ -36,6 +36,36 @@ sensor: value_template: "{{ states('sensor.grid_export_power') | float + states('sensor.consumption_power') | float }}" unit_of_measurement: 'W' + ashp_heating_cop: + unique_id: ashp_heating_cop + friendly_name: "ASHP Heating COP" + value_template: > + {%- set heat_generated = states('sensor.viewpoint_device_0_arotherm_plus_heat_generated_heating') | int %} + {%- set consumed_electricity = states('sensor.viewpoint_device_0_arotherm_plus_consumed_electrical_energy_heating') | int %} + {%- if heat_generated == unavailable or consumed_electricity == unavailable %} + unavailable + {%- elif heat_generated == unknown or consumed_electricity == unknown %} + unknown + {%- else %} + {{ heat_generated / consumed_electricity }} + {%- endif %} + + ashp_hot_water_cop: + unique_id: ashp_hot_water_cop + friendly_name: "ASHP Hot Water COP" + value_template: > + {%- set heat_generated = states('sensor.viewpoint_device_0_arotherm_plus_heat_generated_domestic_hot_water') | int %} + {%- set consumed_electricity = states('sensor.viewpoint_device_0_arotherm_plus_consumed_electrical_energy_heating') | int %} + {%- if heat_generated == unavailable or consumed_electricity == unavailable %} + unavailable + {%- elif heat_generated == unknown or consumed_electricity == unknown %} + unknown + {%- else %} + {{ heat_generated / consumed_electricity }} + {%- endif %} + + "{{ states('sensor.viewpoint_device_0_arotherm_plus_heat_generated_domestic_hot_water') | int / states('sensor.viewpoint_device_0_arotherm_plus_consumed_electrical_energy_domestic_hot_water') | int | float(default='NaN') }}" + #sensor: - platform: integration source: sensor.grid_all From 6766dade04edbaea43f44c15d424c2fd13868c0e Mon Sep 17 00:00:00 2001 From: Kyle Gordon Date: Sun, 16 Jun 2024 13:20:01 +0100 Subject: [PATCH 5/6] Try to boost hot water when surplus energy --- packages/givenergy.yaml | 33 +++++++++++++++++++++++++++++++++ 1 file changed, 33 insertions(+) diff --git a/packages/givenergy.yaml b/packages/givenergy.yaml index ce283403..05add376 100644 --- a/packages/givenergy.yaml +++ b/packages/givenergy.yaml @@ -86,3 +86,36 @@ sensor: # #friendly_name: "Grid Usage" # value_template: "{{ states('sensor.grid_export_power') | float + states('sensor.consumption_power') | float }}" # unit_of_measurement: 'W' + +automation: + - alias: Boost hot water + id: boost_hot_water + trigger: + - platform: time + at: "11:00:00" + action: + - service: notify.mobile_app_nothing_phone_1 + data: + title: "Waiting for sunshine and a full charge" + message: "When the battery is charged and we are exporting, we will trigger a hot water boost" + - wait_for_trigger: + - platform: numeric_state + entity_id: sensor.battery_percent + above: 99 + for: + minutes: 30 + - platform: numeric_state + entity_id: sensor.grid_export_power + above: 1000 + for: + minutes: 30 + timeout: "12:00:00" + continue_on_timeout: false + - service: switch.turn_on + target: + entity_id: switch.viewpoint_domestic_hot_water_0_boost + - service: notify.mobile_app_nothing_phone_1 + data: + title: "Hot water boost triggered" + message: "Hot water boost triggered whilst the sun is shining" + From 8fcc6159d902e93d8f2cacc6d7859110a7467e79 Mon Sep 17 00:00:00 2001 From: Kyle Gordon Date: Sun, 16 Jun 2024 22:45:01 +1000 Subject: [PATCH 6/6] Fix lint --- packages/givenergy.yaml | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/packages/givenergy.yaml b/packages/givenergy.yaml index 4e285c56..4f2cf195 100644 --- a/packages/givenergy.yaml +++ b/packages/givenergy.yaml @@ -65,7 +65,6 @@ sensor: "{{ states('sensor.viewpoint_device_0_arotherm_plus_heat_generated_domestic_hot_water') | int / states('sensor.viewpoint_device_0_arotherm_plus_consumed_electrical_energy_domestic_hot_water') | int | float(default='NaN') }}" -#sensor: - platform: integration source: sensor.grid_all method: left @@ -81,7 +80,7 @@ sensor: round: 2 # - platform: template -# #name: grid_all +# #name: grid_all # #friendly_name: "Grid Usage" # value_template: "{{ states('sensor.grid_export_power') | float + states('sensor.consumption_power') | float }}" # unit_of_measurement: 'W' @@ -106,7 +105,7 @@ automation: - platform: numeric_state entity_id: sensor.grid_export_power above: 1000 - for: + for: minutes: 30 timeout: "12:00:00" continue_on_timeout: false @@ -117,4 +116,3 @@ automation: data: title: "Hot water boost triggered" message: "Hot water boost triggered whilst the sun is shining" -