commut_rain sensor simplification

This commit is contained in:
Pierre committed 2026-10-04 11:51:35 +02:00
1 parent 5061e4395b
commit 842cfe6c6a
2 files changed
+53 -30

No files matched your search

+52 -29
View File
@@ -9,45 +9,68 @@ virtual_sensors:
sensors: sensors:
binary_sensor.someone_home: person.maeva == 'home' or person.pierre == 'home' or (input_boolean.use_red_shelly_presence and binary_sensor.red_shelly_home) binary_sensor.someone_home: person.maeva == 'home' or person.pierre == 'home' or (input_boolean.use_red_shelly_presence and binary_sensor.red_shelly_home)
binary_sensor.is_dark_outside: sun.sun == 'below_horizon' binary_sensor.is_dark_outside: sun.sun == 'below_horizon'
# Rain commute: time windows are provided by Home Assistant binary sensors.
sensor.commut_rain_minutes_le_cres: sensor.next_rain_le_cres.minutes_until_rain
sensor.commut_rain_minutes_castelnau: sensor.next_rain_castelnau_le_lez.minutes_until_rain
sensor.commut_rain_intensity_le_cres: sensor.next_rain_le_cres.intensity
sensor.commut_rain_intensity_castelnau: sensor.next_rain_castelnau_le_lez.intensity
value_selector.commut_rain_minutes_until_rain: value_selector.commut_rain_minutes_until_rain:
values: values:
le_cres_first: le_cres_first:
conditions: >- conditions:
sensor.commut_rain_minutes_le_cres != 'unknown' and local_expressions:
sensor.commut_rain_minutes_le_cres != 'unavailable' and cres_minutes: sensor.next_rain_le_cres.minutes_until_rain
sensor.commut_rain_minutes_castelnau != 'unknown' and castelnau_minutes: sensor.next_rain_castelnau_le_lez.minutes_until_rain
sensor.commut_rain_minutes_castelnau != 'unavailable' and cres_minutes_available: cres_minutes != None and cres_minutes != 'unknown' and cres_minutes != 'unavailable'
sensor.commut_rain_minutes_le_cres <= sensor.commut_rain_minutes_castelnau castelnau_minutes_available: castelnau_minutes != None and castelnau_minutes != 'unknown' and castelnau_minutes != 'unavailable'
value: sensor.commut_rain_minutes_le_cres trigger_conditions: cres_minutes_available and (not castelnau_minutes_available or cres_minutes <= castelnau_minutes)
le_cres_only: value: sensor.next_rain_le_cres.minutes_until_rain
conditions: sensor.commut_rain_minutes_le_cres != 'unknown' and sensor.commut_rain_minutes_le_cres != 'unavailable'
value: sensor.commut_rain_minutes_le_cres
castelnau_only: castelnau_only:
conditions: sensor.commut_rain_minutes_castelnau != 'unknown' and sensor.commut_rain_minutes_castelnau != 'unavailable' conditions:
value: sensor.commut_rain_minutes_castelnau local_expressions:
cres_minutes: sensor.next_rain_le_cres.minutes_until_rain
castelnau_minutes: sensor.next_rain_castelnau_le_lez.minutes_until_rain
cres_minutes_available: cres_minutes != None and cres_minutes != 'unknown' and cres_minutes != 'unavailable'
castelnau_minutes_available: castelnau_minutes != None and castelnau_minutes != 'unknown' and castelnau_minutes != 'unavailable'
trigger_conditions: castelnau_minutes_available and (not cres_minutes_available or castelnau_minutes < cres_minutes)
value: sensor.next_rain_castelnau_le_lez.minutes_until_rain
unknown: true unknown: true
value_selector.commut_rain_intensity: value_selector.commut_rain_intensity:
values: values:
Pluie forte: sensor.commut_rain_intensity_le_cres == 'Pluie forte' or sensor.commut_rain_intensity_castelnau == 'Pluie forte' Pluie forte:
Pluie modérée: sensor.commut_rain_intensity_le_cres == 'Pluie modérée' or sensor.commut_rain_intensity_castelnau == 'Pluie modérée' conditions:
Pluie faible: sensor.commut_rain_intensity_le_cres == 'Pluie faible' or sensor.commut_rain_intensity_castelnau == 'Pluie faible' local_expressions:
Temps sec: sensor.commut_rain_intensity_le_cres == 'Temps sec' and sensor.commut_rain_intensity_castelnau == 'Temps sec' cres_intensity: sensor.next_rain_le_cres.intensity
castelnau_intensity: sensor.next_rain_castelnau_le_lez.intensity
trigger_conditions: cres_intensity == 'Pluie forte' or castelnau_intensity == 'Pluie forte'
Pluie modérée:
conditions:
local_expressions:
cres_intensity: sensor.next_rain_le_cres.intensity
castelnau_intensity: sensor.next_rain_castelnau_le_lez.intensity
trigger_conditions: cres_intensity == 'Pluie modérée' or castelnau_intensity == 'Pluie modérée'
Pluie faible:
conditions:
local_expressions:
cres_intensity: sensor.next_rain_le_cres.intensity
castelnau_intensity: sensor.next_rain_castelnau_le_lez.intensity
trigger_conditions: cres_intensity == 'Pluie faible' or castelnau_intensity == 'Pluie faible'
Temps sec:
conditions:
local_expressions:
cres_intensity: sensor.next_rain_le_cres.intensity
castelnau_intensity: sensor.next_rain_castelnau_le_lez.intensity
trigger_conditions: cres_intensity == 'Temps sec' and castelnau_intensity == 'Temps sec'
unknown: true unknown: true
binary_sensor.commut_rain: binary_sensor.commut_rain:
conditions: >- conditions:
binary_sensor.pierre_workday and trigger_conditions:
((person.pierre == 'home' and binary_sensor.morning_commut_time) or - sensor.next_rain_le_cres != 'unknown' and sensor.next_rain_le_cres != 'unavailable'
(person.pierre != 'home' and person.pierre != 'unknown' and person.pierre != 'unavailable' and binary_sensor.evening_commut_time)) and - sensor.next_rain_castelnau_le_lez != 'unknown' and sensor.next_rain_castelnau_le_lez != 'unavailable'
((sensor.next_rain_le_cres != 'unknown' and sensor.next_rain_le_cres != 'unavailable') or blocking_conditions:
(sensor.next_rain_castelnau_le_lez != 'unknown' and sensor.next_rain_castelnau_le_lez != 'unavailable')) - not person.pierre
- person.pierre == 'home' and not binary_sensor.morning_commut_time
- person.pierre != 'home' and not binary_sensor.evening_commut_time
- not binary_sensor.pierre_workday
sensor_attributes: sensor_attributes:
minutes_until_rain_le_cres: sensor.commut_rain_minutes_le_cres minutes_until_rain_le_cres: sensor.next_rain_le_cres.minutes_until_rain
minutes_until_rain_castelnau: sensor.commut_rain_minutes_castelnau minutes_until_rain_castelnau: sensor.next_rain_castelnau_le_lez.minutes_until_rain
minutes_until_rain: sensor.commut_rain_minutes_until_rain minutes_until_rain: sensor.commut_rain_minutes_until_rain
intensity: sensor.commut_rain_intensity intensity: sensor.commut_rain_intensity