diff --git a/apps/global/virtualsensors.yaml b/apps/global/virtualsensors.yaml index 28b3136..51dcbdb 100644 --- a/apps/global/virtualsensors.yaml +++ b/apps/global/virtualsensors.yaml @@ -9,6 +9,48 @@ 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 + castelnau_only: + conditions: sensor.commut_rain_minutes_castelnau != 'unknown' and sensor.commut_rain_minutes_castelnau != 'unavailable' + value: sensor.commut_rain_minutes_castelnau + 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' + 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')) + 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: sensor.commut_rain_minutes_until_rain + intensity: sensor.commut_rain_intensity + event_sensor.red_shelly_home: retain_time: 120 activation_events: