Controlli Aggiuntivi Tapparelle con Sistema d’Allarme

Vedremo di implementare controlli, automatismi e sicurezze nella gestione delle tapparelle viste e configurate nel precedente articolo Controllo Apertura Tapparelle in Percentuale con Firmware Tasmota Modificato.
I codici che vedremo in questo articolo potranno essere raggruppati in un unico package, se non li avete ancora configurati andate a vedere l’articolo Package Configurazione
SLIDER CONTROLLO TAPPARELLE
Il controllo a percentuale del posizionamento della cover (tapparelle) in Home Assistant non è così diretto, infatti bisogna cliccare sull’icona della cover per poter aprire la finestra con lo slider della posizione, per migliorarne il controllo creeremo un input_number che verrà usato come slider per il controllo dell’apertura chiusura della tapparella.
L’esempio si riferisce alla Tapparella 1 e alla Tapparella 2
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 |
######################################################################## ### Input_number ######################################################################## ### Slider posizionamento tapparella input_number: posizione_tapparella_1: name: Posizione Tapparella 1 min: 0 max: 100 step: 10 posizione_tapparella_2: name: Posizione Tapparella 2 min: 0 max: 100 step: 10 ######################################################################## ### Automation ######################################################################## automation: ### Posizionamento della tapparella 1 mediante Slide 1 (slide --> tapparella) - alias: Posizionamento Tapparella 1 hide_entity: false trigger: - platform: state entity_id: input_number.posizione_tapparella_1 action: service: cover.set_cover_position data_template: entity_id: cover.tapparella_1 position: '{{ states.input_number.posizione_tapparella_1.state | int }}' ### Posizionamento della tapparella 2 mediante Slide 2 (slide --> tapparella) - alias: Posizionamento Tapparella 2 hide_entity: false trigger: - platform: state entity_id: input_number.posizione_tapparella_2 action: service: cover.set_cover_position data_template: entity_id: cover.tapparella_2 position: '{{ states.input_number.posizione_tapparella_2.state | int }}' ### Aggiornamento dello Slide 1 in base alla posizione della tapparella 1 (tapparella --> slide) - alias: Aggiornamento Slide Tapparella 1 trigger: platform: state entity_id: cover.tapparella_1 action: service: input_number.set_value data_template: entity_id: input_number.posizione_tapparella_1 value: '{{ states.cover.tapparella_1.attributes.current_position | int }}' ### Aggiornamento dello Slide 2 in base alla posizione della tapparella 2 (tapparella --> slide) - alias: Aggiornamento Slide Tapparella 2 trigger: platform: state entity_id: cover.tapparella_2 action: service: input_number.set_value data_template: entity_id: input_number.posizione_tapparella_2 value: '{{ states.cover.tapparella_2.attributes.current_position | int }}' |
Il risultato finale sarà questo
NOTIFICA POSIZIONAMENTO TAPPARELLA
Sarà possibile ricevere una notifica Telegram ad ogni movimento che la tapparella compie, l’automazione invierà un messaggio con il nome della tapparella e la posizione che assumerà.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 |
######################################################################## ### Automation ######################################################################## automation: ### Notifica posizionamento tapparella 1 - alias: "Notifica Posizione Tapparella 1" trigger: - platform: state entity_id: cover.tapparella_1 condition: condition: template value_template: "{{ states('input_number.posizione_tapparella_1') | int != states.cover.tapparella_1.attributes.current_position | int}}" action: - service: notify.telegram data: title: 'Tapparella 1:' message: "Tapparella al - {{ states.cover.tapparella_1.attributes.current_position}}%" data: inline_keyboard: - 'Home:/home' ### Notifica posizionamento tapparella 2 - alias: "Notifica Posizione Tapparella 2" trigger: - platform: state entity_id: cover.tapparella_2 condition: condition: template value_template: "{{ states('input_number.posizione_tapparella_2') | int != states.cover.tapparella_2.attributes.current_position | int}}" action: - service: notify.telegram data: title: 'Tapparella 2:' message: "Tapparella al - {{ states.cover.tapparella_2.attributes.current_position}}%" data: inline_keyboard: - 'Home:/home' |
SCRIPT PER IL CONTROLLO VOCALE PERSONALIZZATO
Se non vi piace usare il comando vocale standard per comandare le tapparelle: “Ok Google accendi tapparella 1” per aprirla e “spegni” per chiuderla potremmo utilizzando IFTTT per personalizzare i comandi vocali impiegando i seguenti script come azioni da far eseguire ad Home Assistant. Seguire Guida Integrazione IFTTT per la configurarzione.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 |
######################################################################## ### Script ######################################################################## script: ### Script apertura tapparella 1 apri_tapparella_1: alias: "Apri Tapparella 1" sequence: - service: cover.open_cover data: entity_id: cover.tapparella_1 ### Script chiusura tapparella 1 chiudi_tapparella_1: alias: "Chiudu Tapparella 1" sequence: - service: cover.close_cover data: entity_id: cover.tapparella_1 ### Script apertura tapparella 2 apri_tapparella_2: alias: "Apri Tapparella 2" sequence: - service: cover.open_cover data: entity_id: cover.tapparella_2 ### Script chiusura tapparella 2 chiudi_tapparella_2: alias: "Chiudu Tapparella 2" sequence: - service: cover.close_cover data: entity_id: cover.tapparella_2 |
Il risultato finale sarà questo
SISTEMA D’ALLARME ANTI INTRUSIONE
In questa automazione vedremmo di far scattare un’allarme qualora si tentasse di forzare manualmente la tapparella chiusa.
Utilizzeremo in questa automazione il Gateway Xiaomi come sirena e un sensore porta/finestra per rilevare l’intrusione. Il sensore magnetico lo applicheremo alla tapparella in questo modo: la parte del magnete lo attaccheremo all’ultima stecca della tapparella mentre il sensore al muro; in maniera che il contatto si chiuda quando la tapparella sarà abbassata del tutto.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 |
######################################################################## ## Automation ######################################################################## automation: ### Allarme Intrusione su Tapparella 1 - alias: "Allarme Intrusione Tapparella 1" trigger: platform: state entity_id: binary_sensor.door_window_sensor_158d0xxx from: 'off' to: 'on' for: seconds: 23 condition: condition: and conditions: - condition: template value_template: "{{ states.binary_sensor.door_window_sensor_158d0xxx.state == 'on'}}" - condition: template value_template: "{{states.cover.tapparella_1.attributes.current_position == 0 }}" action: - service: xiaomi_aqara.play_ringtone data_template: gw_mac: !secret xiaomi_gateway1_mac ringtone_id: "11" ringtone_vol: "80" - service: notify.telegram data: title: '*Tapparella 1*' message: "ATTENZIONE ACCESSO IN CAMERA" data: inline_keyboard: - 'Home:/home' |
Le entity da personalizzare sono:
binary_sensor.door_window_sensor_158d0xxx: sensore magnetico porta/finestra
cover.tapparella_1: tapparella
!secret xiaomi_gateway1_mac: l’indirizzo Mac Address del Gateway Xiaomi contenuto nel file secrets.yaml
seconds: 23: impostare un tempo leggermente superiore (bastano circa 3 sec) del tempo che impiega la tapparella ad aprirsi totalmente dato che la posizione si aggiorna solamente alla fine di ogni movimento.
L’automazione si attiva quando la tapparella da chiusa viene aperta per più di tot secondi ma non da un azionamento voluto ( sia che venga da HA o da pulsante fisico) ma da un sollevamento forzato a mano, l’automazione andrà a far suonare il Gateway ed invierà una notifica Telegram.
Sarà possibile personalizzare il suono da far trasmettere al Gateway cambiando il numero corrispondente presente sulla riga
ringtone_id:, i numeri delle suonerie le potete trovare alla pagina https://www.home-assistant.io/components/xiaomi_aqara/.
8 risposte
Buona sera a tutti, premetto che non sono un esperto nel settore ma da qualche tempo sto facendo degli esperimenti nel campo della domotica ed in particolare con Hassio.
Ricecando in google, ho trovato questo sito con la vostra guida che è molto dettagliata.
Ho seguito tutto come indicato nella vostra guida ma purtroppo il controllo configurazione mi da il seguente errore: Configuration invalid
Invalid config for [automation]: required key not provided @ data[‘action’]. Got None
required key not provided @ data[‘trigger’]. Got None. (See ?, line ?). Please check the docs at https://home-assistant.io/components/automation/
Potete aiutarmi a capire come posso correggere l’errore?
Scusate la mia ignoranza a riguardo.
Marco
Semplice: i package vogliono almeno un’automazione nel file automation.yaml. Creane una o sposta quella che trovi nel package fai attenzione agli spazi se inserisci una automazione nel file non andrà dichiarato automation: e il codice va schiftato di 2 spazi più a sinistra.
Come potrei fare a comandare le tapparelle in percentuale con Google Home?
Esempio: “Ehi Google, apri la tapparella della sala al 35%”
E ancora, come si possono comandare gruppi di tapparelle contemporaneamente?
Esempio: “Ehi Google, chiudi tutte le tapparelle a nord”
Per chiuderle tutte senza l’utilizzo di Home Assistant forse usando le routine.
A quali routine ti riferisci?
A me andrebbe benissimo anche con HA, in mqtt.
Forse usando i gruppi? Non saprei…
Bene se hai HA puoi creare il gruppo cover che potrai comandare come una normale cover. Qui trovi l’esempio
https://www.home-assistant.io/components/cover.group/
Mi riferisco alla prima sezionedella guida, qla che si riferisce a “un input_number che verrà usato come slider per il controllo dell’apertura chiusura della tapparella”.
Nel testo mi sembra manchi un riferimento alla entity cover. xxxxx che, citata nelle automation presentate, ci si aspetta che venga preventivamente configurata
nel file configuration.yaml
Ho provato con una soluzione minimale:
cover:
– platform: template
covers:
sala_tapp:
friendly_name: “Tapparella sala”
value_template: “{{ states(‘sensor.sala_tapp’)|float > 0 }}”
open_cover:
service: script.open_sala_tapp
close_cover:
service: script.close_sala_tapp
stop_cover:
service: script.stop_sala_tapp
ma non basta!
Buongiorno, mi saprebbe indicare come faccio a calibrare la salita e la discesa delle tapparelle? Ho montato zigbee moes rf433 e le tapparelle si fermano dopo circa 15 sec sia in salita che discesa.