From 7e99c9427652bba9bf3a91d53145df1a5609bce5 Mon Sep 17 00:00:00 2001 From: Claus Dethlefsen Date: Fri, 19 Jun 2026 19:15:04 +0200 Subject: [PATCH] Add garden soil sensor monitoring to maintenance view --- dashboards/views/06c_indkorsel_snapshots.yaml | 2 +- dashboards/views/11_vedligehold.yaml | 217 +++++++++++++++++- include/templates/maintenance.yaml | 22 ++ 3 files changed, 239 insertions(+), 2 deletions(-) diff --git a/dashboards/views/06c_indkorsel_snapshots.yaml b/dashboards/views/06c_indkorsel_snapshots.yaml index fae01c9..c8f522a 100644 --- a/dashboards/views/06c_indkorsel_snapshots.yaml +++ b/dashboards/views/06c_indkorsel_snapshots.yaml @@ -5,5 +5,5 @@ panel: true cards: - type: iframe - url: /local/snapshots/indkorsel_loader.html?v=20260619180030 + url: /local/snapshots/indkorsel_loader.html?v=20260619185107 aspect_ratio: 100% diff --git a/dashboards/views/11_vedligehold.yaml b/dashboards/views/11_vedligehold.yaml index 685c7bb..cb80903 100644 --- a/dashboards/views/11_vedligehold.yaml +++ b/dashboards/views/11_vedligehold.yaml @@ -1714,4 +1714,219 @@ sections: card: type: tile entity: sensor.terrassedor_batteri - name: Terrassedør \ No newline at end of file + name: Terrassedør + + - type: grid + cards: + - type: conditional + conditions: + - condition: state + entity: input_boolean.vis_alle_vedligehold + state: "on" + card: + type: heading + heading: Havesensorer + + - type: conditional + conditions: + - condition: state + entity: input_boolean.vis_alle_vedligehold + state: "off" + - condition: state + entity: binary_sensor.vedligehold_havesensorer + state: "on" + card: + type: heading + heading: Havesensorer + + # Kanal 1 - fugt + - type: conditional + conditions: + - condition: state + entity: input_boolean.vis_alle_vedligehold + state: "on" + card: + type: tile + entity: sensor.annes_havesensor_soil_moisture_1 + name: Havesensor 1 fugt + + - type: conditional + conditions: + - condition: state + entity: input_boolean.vis_alle_vedligehold + state: "off" + - condition: state + entity: sensor.annes_havesensor_soil_moisture_1 + state: unavailable + card: + type: tile + entity: sensor.annes_havesensor_soil_moisture_1 + name: Havesensor 1 fugt + + # Kanal 1 - batteri + - type: conditional + conditions: + - condition: state + entity: input_boolean.vis_alle_vedligehold + state: "on" + card: + type: tile + entity: sensor.annes_havesensor_soil_battery_1 + name: Havesensor 1 batteri + + - type: conditional + conditions: + - condition: state + entity: input_boolean.vis_alle_vedligehold + state: "off" + - condition: numeric_state + entity: sensor.annes_havesensor_soil_battery_1 + below: 1.2 + card: + type: tile + entity: sensor.annes_havesensor_soil_battery_1 + name: Havesensor 1 batteri + + # Kanal 2 - fugt + - type: conditional + conditions: + - condition: state + entity: input_boolean.vis_alle_vedligehold + state: "on" + card: + type: tile + entity: sensor.annes_havesensor_soil_moisture_2 + name: Havesensor 2 fugt + + - type: conditional + conditions: + - condition: state + entity: input_boolean.vis_alle_vedligehold + state: "off" + - condition: state + entity: sensor.annes_havesensor_soil_moisture_2 + state: unavailable + card: + type: tile + entity: sensor.annes_havesensor_soil_moisture_2 + name: Havesensor 2 fugt + + # Kanal 2 - batteri + - type: conditional + conditions: + - condition: state + entity: input_boolean.vis_alle_vedligehold + state: "on" + card: + type: tile + entity: sensor.annes_havesensor_soil_battery_2 + name: Havesensor 2 batteri + + - type: conditional + conditions: + - condition: state + entity: input_boolean.vis_alle_vedligehold + state: "off" + - condition: numeric_state + entity: sensor.annes_havesensor_soil_battery_2 + below: 1.2 + card: + type: tile + entity: sensor.annes_havesensor_soil_battery_2 + name: Havesensor 2 batteri + + # Kanal 3 - fugt + - type: conditional + conditions: + - condition: state + entity: input_boolean.vis_alle_vedligehold + state: "on" + card: + type: tile + entity: sensor.annes_havesensor_soil_moisture_3 + name: Havesensor 3 fugt + + - type: conditional + conditions: + - condition: state + entity: input_boolean.vis_alle_vedligehold + state: "off" + - condition: state + entity: sensor.annes_havesensor_soil_moisture_3 + state: unavailable + card: + type: tile + entity: sensor.annes_havesensor_soil_moisture_3 + name: Havesensor 3 fugt + + # Kanal 3 - batteri + - type: conditional + conditions: + - condition: state + entity: input_boolean.vis_alle_vedligehold + state: "on" + card: + type: tile + entity: sensor.annes_havesensor_soil_battery_3 + name: Havesensor 3 batteri + + - type: conditional + conditions: + - condition: state + entity: input_boolean.vis_alle_vedligehold + state: "off" + - condition: numeric_state + entity: sensor.annes_havesensor_soil_battery_3 + below: 1.2 + card: + type: tile + entity: sensor.annes_havesensor_soil_battery_3 + name: Havesensor 3 batteri + + # Kanal 4 - fugt + - type: conditional + conditions: + - condition: state + entity: input_boolean.vis_alle_vedligehold + state: "on" + card: + type: tile + entity: sensor.annes_havesensor_soil_moisture_4 + name: Havesensor 4 fugt + + - type: conditional + conditions: + - condition: state + entity: input_boolean.vis_alle_vedligehold + state: "off" + - condition: state + entity: sensor.annes_havesensor_soil_moisture_4 + state: unavailable + card: + type: tile + entity: sensor.annes_havesensor_soil_moisture_4 + name: Havesensor 4 fugt + + # Kanal 4 - batteri + - type: conditional + conditions: + - condition: state + entity: input_boolean.vis_alle_vedligehold + state: "on" + card: + type: tile + entity: sensor.annes_havesensor_soil_battery_4 + name: Havesensor 4 batteri + + - type: conditional + conditions: + - condition: state + entity: input_boolean.vis_alle_vedligehold + state: "off" + - condition: numeric_state + entity: sensor.annes_havesensor_soil_battery_4 + below: 1.2 + card: + type: tile + entity: sensor.annes_havesensor_soil_battery_4 + name: Havesensor 4 batteri \ No newline at end of file diff --git a/include/templates/maintenance.yaml b/include/templates/maintenance.yaml index 905abfe..6ca0d3e 100644 --- a/include/templates/maintenance.yaml +++ b/include/templates/maintenance.yaml @@ -142,6 +142,20 @@ state: >- {{ states('sensor.dethlefsen_drive_4_status') | lower not in ['normal', 'unknown', 'unavailable', 'none'] }} + - name: Vedligehold havesensorer + unique_id: maintenance_garden_sensors_needed + state: >- + {{ + states('sensor.annes_havesensor_soil_moisture_1') in ['unavailable', 'unknown'] + or states('sensor.annes_havesensor_soil_moisture_2') in ['unavailable', 'unknown'] + or states('sensor.annes_havesensor_soil_moisture_3') in ['unavailable', 'unknown'] + or states('sensor.annes_havesensor_soil_moisture_4') in ['unavailable', 'unknown'] + or states('sensor.annes_havesensor_soil_battery_1') | float(9) < 1.2 + or states('sensor.annes_havesensor_soil_battery_2') | float(9) < 1.2 + or states('sensor.annes_havesensor_soil_battery_3') | float(9) < 1.2 + or states('sensor.annes_havesensor_soil_battery_4') | float(9) < 1.2 + }} + - sensor: - name: HACS opdateringer unique_id: hacs_pending_updates @@ -179,6 +193,14 @@ 1 if is_state('binary_sensor.dethlefsen_drive_2_below_min_remaining_life', 'on') else 0, 1 if is_state('binary_sensor.dethlefsen_drive_3_below_min_remaining_life', 'on') else 0, 1 if is_state('binary_sensor.dethlefsen_drive_4_below_min_remaining_life', 'on') else 0, + 1 if states('sensor.annes_havesensor_soil_moisture_1') in ['unavailable', 'unknown'] else 0, + 1 if states('sensor.annes_havesensor_soil_moisture_2') in ['unavailable', 'unknown'] else 0, + 1 if states('sensor.annes_havesensor_soil_moisture_3') in ['unavailable', 'unknown'] else 0, + 1 if states('sensor.annes_havesensor_soil_moisture_4') in ['unavailable', 'unknown'] else 0, + 1 if states('sensor.annes_havesensor_soil_battery_1') | float(9) < 1.2 else 0, + 1 if states('sensor.annes_havesensor_soil_battery_2') | float(9) < 1.2 else 0, + 1 if states('sensor.annes_havesensor_soil_battery_3') | float(9) < 1.2 else 0, + 1 if states('sensor.annes_havesensor_soil_battery_4') | float(9) < 1.2 else 0, 1 if states('sensor.affalddk_norgardsvej_22_restaffald') | float(999) <= 1 else 0, 1 if states('sensor.affalddk_norgardsvej_22_papir_plast') | float(999) <= 1 else 0, 1 if states('sensor.affalddk_norgardsvej_22_haveaffald') | float(999) <= 1 else 0,