Advertisement
energywave

Gestione sterilizzatore

Jun 23rd, 2023
900
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
YAML 4.96 KB | None | 0 0
  1. timer:
  2.   sterilizzazione:
  3.     name: sterilizzazione
  4.     duration: '00:30:00'
  5.     icon: mdi:shield-bug-outline
  6.  
  7. input_number:
  8.   sterilizzazione_min:
  9.     name: Durata sterilizzazione (min)
  10.     min: 1
  11.     max: 60
  12.     step: 1
  13.     mode: slider
  14.     icon: mdi:timer-outline
  15.  
  16. script:
  17.   sterilizza:
  18.     description: Avvia ciclo di sterilizzazione per il tempo configurato
  19.     sequence:
  20.       - choose:
  21.           - conditions:
  22.               - condition: state
  23.                 entity_id: binary_sensor.porta_sterilizzatore
  24.                 state: 'off'
  25.             sequence:
  26.               - service: timer.start
  27.                 entity_id: timer.sterilizzazione
  28.                 data:
  29.                   duration: '{{ states("input_number.sterilizzazione_min") | int(0) * 60 }}'
  30.               - service: switch.turn_on
  31.                 entity_id: switch.sterilizzatore
  32.               - service: script.multinotify
  33.                 data:
  34.                   message: 'Avvio sterilizzazione mascherine per {{states("input_number.sterilizzazione_min") | int}} minuti'
  35.                   alexa_target: media_player.pian_terreno
  36.         default:
  37.           - service: switch.turn_off
  38.             entity_id: switch.sterilizzatore
  39.           - service: script.multinotify
  40.             data:
  41.               message: 'Non posso avviare lo sterilizzatore! Chiudi prima il coperchio!'
  42.               alexa_target: media_player.pian_terreno
  43.  
  44. automation:
  45.  # Accensione sterilizzatore da tag NFC
  46.   - id: 45efb6ec-afe2-4b3e-ad66-e36d6c7d3804
  47.     alias: 'Sterilizzatore: accensione da NFC'
  48.     description: "Alla lettura dell'NFC specifico attiva lo sterilizzatore"
  49.     trigger:
  50.       - platform: event
  51.         event_type: tag_scanned
  52.         event_data:
  53.           device_id: bbe022fb618d4227
  54.           tag_id: 67b10970-5a9a-41af-b5b7-6dee41c943d5
  55.     action:
  56.       - service: script.sterilizza
  57.      
  58.   # Accensione sterilizzatore esterna
  59.   - id: b368b4b6-0427-4a1c-b6de-60ed483dc2b2
  60.     alias: 'Sterilizzatore: accensione esterna'
  61.     description: 'Accensione sterilizzatore da app Shelly o da Alexa usando direttamente lo switch, senza passare dallo script'
  62.     trigger:
  63.       - platform: state
  64.         entity_id: switch.sterilizzatore
  65.         to: 'on'
  66.     condition:
  67.       - condition: state
  68.         entity_id: timer.sterilizzazione
  69.         state: 'idle'
  70.     action:
  71.       - service: script.sterilizza
  72.      
  73.   # Apertura porta sterilizzatore durante il funzionamento
  74.   - id: aae2f22c-0b08-401e-af28-fb33622b63ad
  75.     alias: 'Sterilizzatore: porta aperta'
  76.     description: Quando si apre la porta dello sterilizzatore mentre il ciclo è attivo
  77.     trigger:
  78.       - platform: state
  79.         entity_id: binary_sensor.porta_sterilizzatore
  80.         to: 'on'
  81.     condition:
  82.       - condition: state
  83.         entity_id: switch.sterilizzatore
  84.         state: 'on'
  85.     action:
  86.       - service: switch.turn_off
  87.         entity_id: switch.sterilizzatore
  88.       - service: timer.pause
  89.         entity_id: timer.sterilizzazione
  90.       - service: script.multinotify
  91.         data:
  92.           message: 'La sterilizzazione è stata interrotta per la tua sicurezza. Riprenderà alla chiusura del coperchio. Mancavano {{state_attr("timer.sterilizzazione", "remaining").split(":")[0] | int(0) * 60 + state_attr("timer.sterilizzazione", "remaining").split(":")[1] | int(0) }} minuti.'
  93.           alexa_target: media_player.pian_terreno
  94.  
  95.   # Chiusura porta quando la sterilizzazione è stata precedentemente interrotta
  96.   - id: 5b9b25f2-5768-4b62-8af8-561a4af32a58
  97.     alias: 'Sterilizzatore: porta chiusa'
  98.     description: Quando si chiude la porta dello sterilizzatore mentre il timer non è ancora a zero
  99.     trigger:
  100.       - platform: state
  101.         entity_id: binary_sensor.porta_sterilizzatore
  102.         to: 'off'
  103.     condition:
  104.       - condition: state
  105.         entity_id: timer.sterilizzazione
  106.         state: paused
  107.     action:
  108.       - service: switch.turn_on
  109.         entity_id: switch.sterilizzatore
  110.       - service: timer.start
  111.         entity_id: timer.sterilizzazione
  112.       - service: script.multinotify
  113.         data:
  114.           message: 'La sterilizzazione è stata ripresa. Mancano {{state_attr("timer.sterilizzazione", "remaining").split(":")[0] | int(0) * 60 + state_attr("timer.sterilizzazione", "remaining").split(":")[1] | int(0) }} minuti.'
  115.           alexa_target: media_player.pian_terreno
  116.  
  117.   # Fine sterilizzazione
  118.   - id: c4d4f592-824e-448c-94c6-807933050077
  119.     alias: 'Sterilizzatore: fine'
  120.     description: Quando il ciclo di sterilizzazione termina
  121.     trigger:
  122.       - platform: state
  123.         entity_id: timer.sterilizzazione
  124.         to: 'idle'
  125.     action:
  126.       - service: switch.turn_off
  127.         entity_id: switch.sterilizzatore
  128.       - service: timer.finish
  129.         entity_id: timer.sterilizzazione
  130.       - service: script.multinotify
  131.         data:
  132.           message: 'La sterilizzazione è terminata. Puoi ora aprire il coperchio in sicurezza.'
  133.           alexa_target: media_player.pian_terreno
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement