January 14, 2024
Description
Ho creato il 3d di un pluviometro da integrare in Home Assistant mediante un sensore per porte e finestre Zigbee Aqara simile a quello che ho visto in un video Youtube.
Per prima cosa bisogna montare il magnete del sensore in posizione e successivamente tramite una siringa si vuota 5ml precisi di acqua in un bilanciere e con la vite opposta lo si regola in modo tale che si ribalti solo con 5 ml di acqua. Successivamente la stessa procedura la si fa con l'altro bilanciere. Consiglio di fare più prove di calibrazione per rendere il tutto più preciso.
Il calcolo lo si ricava sapendo l'area del bicchiere (A = π x r² = 3.1416 x 2893.44 = 9090.031104) e sapendo che un bilanciere contiene 5ml (5ml = 5000mm³) possiamo trovare la colonna d'acqua con la formula (V = A x h).
h in mm³ la conosciamo (5000mm³) e pure l'area (9090.031104).
Quindi la formula è: h = V / A= 5000mm³ / 9090.031104= 0.550053.
Questo valore sono i mm di pioggia registrati ad ogni ribaltamento del bilanciere del pluviometro.
A questo link trovate le spiegazioni su come configurarlo in Home Assistant.
https://smartsolutions4home.com/ss4h-zrg-zigbee-rain-gauge/
Ho creato questo file includendolo nei packages senza creare confusione nel file configuration.yaml. Basta includere i packages:
homeassistant:
packages: !include_dir_named packages
e sucessivamente creare un new folder rinominato packages.
Al suo interno creare un new file rinominato pluviometro.yaml
e al suo interno inserire questo codice:
sensor:
- platform: history_stats
name: "sensore_pioggia_on"
entity_id: binary_sensor.pluviometro_contact
state: "on"
type: count
start: "{{ now() - timedelta(hours=24) }}"
end: "{{ now() }}"
- platform: history_stats
name: "sensore_pioggia_off"
entity_id: binary_sensor.pluviometro_contact
state: "off"
type: count
start: "{{ now() - timedelta(hours=24) }}"
end: "{{ now() }}"
- platform: template
sensors:
sensore_pioggia_aqara:
friendly_name: "Sensore Pioggia Aqara"
unit_of_measurement: "mm"
value_template: >
{% set count_on = states('sensor.sensore_pioggia_on') | int(0) %}
{% set count_off = states('sensor.sensore_pioggia_off') | int(0) %}
{% set count = count_on + count_off - 1 %}
{% set mm = count * 0.550053 %}
{{ mm | round(1, 'floor') }}
Ho modificato la logica di funzionamento del pluviometro in modo tale che alla fine della giornata questo si resetti in automatico alla mezzanotte di ogni giorno e con un grafico mensile vedo i valori giornalieri letti. Volendo si può modificare la durata dei dati della card grafica modificando hours_to_show: 744 che corrisponde a 31gg.
Questo è il nuovo Packages e card grafica.
automation:
- alias: Reset conteggio pioggia a mezzanotte
trigger:
platform: time
at: "00:00:00"
action:
- service: input_number.set_value
target:
entity_id: input_number.contatore_pioggia_on
data:
value: 0
- service: input_number.set_value
target:
entity_id: input_number.contatore_pioggia_off
data:
value: 0
input_number:
contatore_pioggia_on:
name: Contatore Pioggia On
initial: 0
min: 0
max: 1000
step: 1
contatore_pioggia_off:
name: Contatore Pioggia Off
initial: 0
min: 0
max: 1000
step: 1
sensor:
- platform: history_stats
name: "Sensore Pioggia On"
entity_id: binary_sensor.pluviometro_contact
state: "on"
type: count
start: "{{ now().replace(hour=0, minute=0, second=0, microsecond=0) }}"
end: "{{ now() }}"
- platform: history_stats
name: "Sensore Pioggia Off"
entity_id: binary_sensor.pluviometro_contact
state: "off"
type: count
start: "{{ now().replace(hour=0, minute=0, second=0, microsecond=0) }}"
end: "{{ now() }}"
- platform: template
sensors:
sensore_pioggia_aqara:
friendly_name: "Sensore Pioggia Aqara"
unit_of_measurement: "mm"
value_template: >
{% set count_on = states('sensor.sensore_pioggia_on') | int(0) %}
{% set count_off = states('sensor.sensore_pioggia_off') | int(0) %}
{% set count = count_on + count_off - 1 %}
{% set mm = count * 0.550053 %}
{{ mm | round(1, 'floor') }}
type: custom:mini-graph-card
icon: mdi:weather-rainy
name: Precipitazione
aggregate_func: max
hours_to_show: 744
group_by: date
show:
graph: bar
fill: true
icon: false
color_thresholds:
- value: 12
color: "#030ffc"
- value: 7
color: "#353ffc"
- value: 5
color: "#656dfc"
- value: 3
color: "#979dfc"
- value: 1
color: "#afb3fa"
- value: 0
color: "#ffffff"
entities:
- entity: sensor.sensore_pioggia_aqara_2
state_adaptive_color: false
Passando sopra si leggono i dati del grafico.
Boost MeDammi una spinta se ti piace il mio pluviometro.Momentaneamente l'ho stampato in PLA bianco della Polymaker per vedere se tutto è ok. Prevedo in un secondo momento di ristampare in ASA bianco la parte del coperchio superiore e la griglia visto che saranno esposti alle intemperie tutto l'anno.
La base è stampata con un rempimento del 30% e 3 loop delle pareti per dare robustezza al tutto, mentre il resto basta un riempimento del 15% e 2 loop delle pareti. Gli unici supporti utilizzati sono per sostenere le parti che fanno l'incastro di chiusura tra la base e il coperchio superiore.
Progetto gratuito:
Questo è un progetto completamente gratuito, ma se senti il bisogno di supportarmi, puoi offrirmi l'importo che vuoi. Grazie
Come mi è stato richiesto ho aggiunto un nuovo coperchio per il sensore Aqara T1 nuovo che è leggermente più spesso.
Il tutto resta ancora compatibile con il resto senza modifiche alle restanti parti.
License:
Standard Digital File License
404
1,170