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:
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'
# 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:
values:
le_cres_first:
conditions: >-
sensor.commut_rain_minutes_le_cres != 'unknown' and
sensor.commut_rain_minutes_le_cres != 'unavailable' and
sensor.commut_rain_minutes_castelnau != 'unknown' and
sensor.commut_rain_minutes_castelnau != 'unavailable' and
sensor.commut_rain_minutes_le_cres <= sensor.commut_rain_minutes_castelnau
value: sensor.commut_rain_minutes_le_cres
le_cres_only:
conditions: sensor.commut_rain_minutes_le_cres != 'unknown' and sensor.commut_rain_minutes_le_cres != 'unavailable'
value: sensor.commut_rain_minutes_le_cres
conditions:
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: cres_minutes_available and (not castelnau_minutes_available or cres_minutes <= castelnau_minutes)
value: sensor.next_rain_le_cres.minutes_until_rain
castelnau_only:
conditions: sensor.commut_rain_minutes_castelnau != 'unknown' and sensor.commut_rain_minutes_castelnau != 'unavailable'
value: sensor.commut_rain_minutes_castelnau
conditions:
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
value_selector.commut_rain_intensity:
values:
Pluie forte: sensor.commut_rain_intensity_le_cres == 'Pluie forte' or sensor.commut_rain_intensity_castelnau == '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'
Pluie faible: sensor.commut_rain_intensity_le_cres == 'Pluie faible' or sensor.commut_rain_intensity_castelnau == 'Pluie faible'
Temps sec: sensor.commut_rain_intensity_le_cres == 'Temps sec' and sensor.commut_rain_intensity_castelnau == 'Temps sec'
Pluie forte:
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 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
binary_sensor.commut_rain:
conditions: >-
binary_sensor.pierre_workday and
((person.pierre == 'home' and binary_sensor.morning_commut_time) or
(person.pierre != 'home' and person.pierre != 'unknown' and person.pierre != 'unavailable' and binary_sensor.evening_commut_time)) and
((sensor.next_rain_le_cres != 'unknown' and sensor.next_rain_le_cres != 'unavailable') or
(sensor.next_rain_castelnau_le_lez != 'unknown' and sensor.next_rain_castelnau_le_lez != 'unavailable'))
conditions:
trigger_conditions:
- sensor.next_rain_le_cres != 'unknown' and sensor.next_rain_le_cres != 'unavailable'
- sensor.next_rain_castelnau_le_lez != 'unknown' and sensor.next_rain_castelnau_le_lez != 'unavailable'
blocking_conditions:
- 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:
minutes_until_rain_le_cres: sensor.commut_rain_minutes_le_cres
minutes_until_rain_castelnau: sensor.commut_rain_minutes_castelnau
minutes_until_rain_le_cres: sensor.next_rain_le_cres.minutes_until_rain
minutes_until_rain_castelnau: sensor.next_rain_castelnau_le_lez.minutes_until_rain
minutes_until_rain: sensor.commut_rain_minutes_until_rain
intensity: sensor.commut_rain_intensity