Mon problème
Bonjour, je viens d’installer HA, j’ai un CESI (chauffe eau solaire) DIY avec une gestion par Arduino, lorsque j’interroge l’adresse IP du CESI il me retourne un fichier Json avec des températures et états des électrovannes par exemple.
est il possible de récupérer ce fichier dans HA ? et d’exploiter les infos.
Je débute avec HA, j’ai regardé RESTful mais c’est pas clair pour moi.
Merci pour votre aide.
Ma configuration
[center]## System Information
version
core-2023.10.5
installation_type
Home Assistant OS
dev
false
hassio
true
docker
true
user
root
virtualenv
false
python_version
3.11.5
os_name
Linux
os_version
6.1.59
arch
x86_64
timezone
Europe/Paris
config_dir
/config
Home Assistant Community Store
GitHub API
ok
GitHub Content
ok
GitHub Web
ok
GitHub API Calls Remaining
4998
Installed Version
1.33.0
Stage
running
Available Repositories
1328
Downloaded Repositories
5
HACS Data
ok
Home Assistant Cloud
logged_in
true
subscription_expiration
21 novembre 2023 à 01:00
relayer_connected
true
relayer_region
eu-central-1
remote_enabled
false
remote_connected
false
alexa_enabled
true
google_enabled
true
remote_server
eu-central-1-13.ui.nabu.casa
certificate_status
ready
can_reach_cert_server
ok
can_reach_cloud_auth
ok
can_reach_cloud
ok
Home Assistant Supervisor
host_os
Home Assistant OS 11.1
update_channel
stable
supervisor_version
supervisor-2023.10.1
agent_version
1.6.0
docker_version
24.0.6
disk_total
30.8 GB
disk_used
4.0 GB
healthy
true
supported
true
board
ova
supervisor_api
ok
version_api
ok
installed_addons
Matter Server (4.10.0), Spotify Connect (0.12.6), CEC Scanner (3.0), Terminal & SSH (9.7.1), File editor (5.6.0)
Dashboards
dashboards
2
resources
1
views
2
mode
storage
Recorder
oldest_recorder_run
21 octobre 2023 à 16:01
current_recorder_run
31 octobre 2023 à 13:27
estimated_db_size
26.74 MiB
database_engine
sqlite
database_version
3.41.2
[/center]
Giga77
Octobre 31, 2023, 1:22
2
Salut et bienvenue!
Peux-tu préciser le protocole utilisé ?
RESTfut utilise le HTTP, mais tu ne peux pas récupérer un fichier.
j’interroge le CESI : http://192.168.1.55:4100 et en réponse j’ai :
{
« uptime (ms) »: 1112939855,
« tempMax »: 21.00,
« tempMin »: 12.00,
« temp0 »: 11.75,
« temp1 »: 14.81,
« temp2 »: -0.06,
« temp3 »: 17.62,
« temp4 »: 0.00,
« temp5 »: 0.00,
« temp6 »: 0.00,
« temp7 »: 0.00,
« temp8 »: 0.00,
« temp9 »: 0.00,
« sortie0 »: 0,
« sortie1 »: 1,
« sortie2 »: 1,
« sortie3 »: 1,
« sortie4 »: 1,
« sortie5 »: 1,
« sortie6 »: 1,
« sortie7 »: 1,
« sortie8 »: 1,
« sortie9 »: 1,
« entree0 »: 1,
« entree1 »: 1,
« entree2 »: 1,
« entree3 »: 1,
« entree4 »: 1,
« entree5 »: 1,
« entree6 »: 1,
« entree7 »: 1,
« entree8 »: 1,
« entree9 »: 1
}
Herbs
Octobre 31, 2023, 1:40
4
Salut @eco3xfr
Dans configuration.yaml
tu peux tester ça :
rest:
- resource: http://192.168.1.55:4100
scan_interval: 600
sensor:
- name: "cesi"
json_attributes_path: "$"
value_template: "ok"
json_attributes:
- "uptime (ms)"
- "tempMax"
- "tempMin"
- "temp0"
- "temp1"
- "temp2"
- "temp3"
- "temp4"
- "temp5"
- "temp6"
- "temp7"
- "temp8"
- "temp9"
- "sortie0"
- "sortie1"
- "sortie2"
- "sortie3"
- "sortie4"
- "sortie5"
- "sortie6"
- "sortie7"
- "sortie8"
- "sortie9"
- "entree0"
- "entree1"
- "entree2"
- "entree3"
- "entree4"
- "entree5"
- "entree6"
- "entree7"
- "entree8"
- "entree9"
Si ça fonctionne tu auras un sensors sensor.cesi
dont l’état sera « OK » et pour le reste tout sera en attribut de ce sensor.
Après ça va dépendre aussi de ce que tu entends par :
eco3xfr:
et d’exploiter les infos
1 « J'aime »
Giga77
Octobre 31, 2023, 1:59
5
Bon, je vais traduire
Tu envoies une requête HTTP Get à ton arduino et tu recois une réponse en Json (ce n’est pas un fichier).
Tu appliques la proposition de @Herbs , tu redémarres HA et tu devrais avoir un sensor « cesi » avec plein d’attributs.
Tu peux aussi créer un sensor par ligne, tu fais comme ça t’arrange.
Merci, ça fonctionne pour obtenir le « OK » mais après pour les attributs ???
Giga77
Octobre 31, 2023, 2:03
7
Outils de développement => Etats et tu filtres par « cesi »
Giga77
Octobre 31, 2023, 2:08
8
Avec ça, tu peux avoir plusieurs sensors :
rest:
- resource: http://192.168.1.55:4100
scan_interval: 600
sensor:
- name: "tempMax"
value_template: "{{ value_json.tempMax }}"
- name: "tempMin"
value_template: "{{ value_json.tempMin }}"
1 « J'aime »
Giga77
Octobre 31, 2023, 2:10
10
la dernière colonne est vide ?
Alors regarde les logs, il doit y avoir des errerus.
oui effectivement, les logs ??? je sais pas encore ou ça se trouve.
je vais tester avec la deuxième option :
et continuer mes essais.
Giga77
Octobre 31, 2023, 2:25
12
Paramètres → Système → Journaux, ensuite scroll vers le bas et appuie sur « Charger les journaux complets »
Oui j’ai demandé à Google entre temps
j’ai créé plusieurs sensors, ça fonctionne,
lorsque l’état de l’appoint électrique est « ON » j’ai la valeur 0, et 1 pour « OFF » est il possible d’afficher ON/OFF ?
si j’utilise binary_sensor c’est inversé :
1 = activé, il me faudrait l’inverse.
Giga77
Octobre 31, 2023, 5:24
16
Essaie quelque chose comme ça :
rest:
- resource: http://192.168.1.55:4100
scan_interval: 600
sensor:
- name: "sortie0"
value_template: >-
{% if value_json.sortie0 == 0 %}
On
{% else %}
Off
{% endif %}
si j’utilise :
binary_sensor:
- name: "vmc.sortie0"
value_template: "{{ not value_json.sortie0 }}"
avec le NOT le 0 devient ON et le 1 devient OFF ?
Voici la version qui fonctionne :
binary_sensor:
- name: "vmc.sortie0"
value_template: "{{ not value_json.sortie0 |float }}"
device_class : "moving"