Bonjour à tous,
Je suis un débutant sous HA, je viens de l’univers Jeedom et j’ai du mal à retrouver des choses qui doivent surement être simple. Le premier automatisme que j’essaie de mettre en place c’est de récupérer des indicateurs (température, ph, etc…) de ma piscine pour ensuite :
Dans un premier temps afficher les informations sur le dashboard
Dans un second temps afficher des courbes dans grafana
Enfin procéder à l’automatisation de l’allumage de la filtration de la piscine
Mon problème
Mon module de relevé est compatible IFTTT. J’ai donc réussi à créer un applet dans IFTTT qui fait une requête POST avec les données en JSON vers HA. Seulement maintenant, je suis bloqué… Où/Comment puis récupérer ses informations dans HA et les stocker ?
Merci d’avance pour vos réponses et désolé si cette question est surement triviale !!!
Ma configuration
System Health
version
core-2021.2.3
installation_type
Home Assistant OS
dev
false
hassio
true
docker
true
virtualenv
false
python_version
3.8.7
os_name
Linux
os_version
5.4.94
arch
x86_64
timezone
Europe/Paris
Home Assistant Cloud
logged_in
false
can_reach_cert_server
ok
can_reach_cloud_auth
ok
can_reach_cloud
ok
Hass.io
host_os
Home Assistant OS 5.11
update_channel
stable
supervisor_version
supervisor-2021.02.11
docker_version
19.03.13
disk_total
30.8 GB
disk_used
4.5 GB
healthy
true
supported
true
board
ova
supervisor_api
ok
version_api
ok
installed_addons
Grafana (6.1.2), UniFi Controller (0.20.2), Node-RED (8.1.1), Visual Studio Code (3.1.0)
Lovelace
dashboards
1
resources
0
mode
auto-gen
A quoi ressemble ton json IFTTT vers HA ?
Il te faut suivre la procédure de récupération de la documentation.
Voila un exemple de donnée JSON :
{
"temperature": "11.2",
"ph": "6.7",
"orp": "514",
"salinity": "1.7",
"conductivity": "2316"
}
J’avais bien commencé par le lien mais je ne sais pas où écrire cette configuration :
automation:
- id: this_is_the_automation_id
alias: "The optional automation alias"
trigger:
- event_data:
action: call_service
event_type: ifttt_webhook_received
platform: event
condition: []
action:
- data:
entity_id: '{{ trigger.event.data.entity_id }}'
service: '{{ trigger.event.data.service }}'
Comment dois je configurer le « this_is_the_automation_id » ?
A quoi correspond « trigger.event.data.entity_id » et « trigger.event.data.service » ?
J’ai réussi avec l’automatisation suivante :
- id: '1613767252364'
alias: Blue Connect Data Update
trigger:
- platform: event
event_type: ifttt_webhook_received
condition:
- condition: device
type: is_on
device_id: 3370703652f6154bc43a9909898e8178
entity_id: switch.piscine_filtration
domain: switch
for:
hours: 0
minutes: 5
seconds: 0
milliseconds: 0
action:
- service: input_number.set_value
data:
value: '{{trigger.event.data.temperature | float}}'
entity_id: input_number.pool_temperature
- service: input_number.set_value
data:
value: '{{trigger.event.data.ph | float}}'
entity_id: input_number.pool_ph
- service: input_number.set_value
data:
value: '{{trigger.event.data.orp | float}}'
entity_id: input_number.pool_orp
- service: input_number.set_value
data:
value: '{{trigger.event.data.salinity | float}}'
entity_id: input_number.pool_salinity
- service: input_number.set_value
data:
value: '{{trigger.event.data.conductivity | float}}'
entity_id: input_number.pool_conductivity
mode: single
Arnault:
J’ai réussi
Arnault:
{
"temperature": "11.2",
"ph": "6.7",
"orp": "514",
"salinity": "1.7",
"conductivity": "2316"
}
Si tu peux ajouter une clé définissant l’entité/domaine/appareil concerné, tu pourrais réduire les déclenchements de l’automatisation :
Comme ceci :
{
"device": "piscine",
"temperature": "11.2",
"ph": "6.7",
"orp": "514",
"salinity": "1.7",
"conductivity": "2316"
}
et du coup au niveau du déclencheur de l’automatisation :
trigger:
- event_data:
device: piscine
event_type: ifttt_webhook_received
platform: event
condition:
- condition: device
type: is_on
[...]
C’est juste pour approfondir la compréhension
1 « J'aime »
Merci beaucoup pour le complément, je vais le mettre en place de suite. Je découvre HA et j’ai énormément de chose à apprendre