et ça dans le fichier config:
# c5 WakeUp
rest_command:
c5_wakeup:
url: http://xxx.xx.xx.xx:5000/wakeup/VOTREVIN
et ça dans le fichier config:
# c5 WakeUp
rest_command:
c5_wakeup:
url: http://xxx.xx.xx.xx:5000/wakeup/VOTREVIN
Merci.
Pour le fichier à mettre dans les sensors. Tu as mis dans les 2 ?
Et dans le configuration.yaml tu as mis que ça ?
Mais j’ai tj une erreur bizarre qui fait référence au pourcentage de batterie.
Alors il y a ça en plus dans le config qui va solutionner ton problème je pense:
# c5 communication
switch:
- platform: command_line
switches:
c5_change_threshold:
friendly_name: "Seuil fin charge (100%-->80%)"
command_on: curl -s "http://xxx.xx.xx.xx:5000/charge_control?vin=VOTREVIN&percentage=80"
command_off: curl -s "http://xxx.xx.xx.xx:5000/charge_control?vin=VOTREVIN&percentage=100"
c5_change_charge_hour:
friendly_name: "fin de charge à 7h26"
command_on: curl -s "http://xxx.xx.xx.xx:5000/charge_control?vin=VOTREVIN&hour=7&minute=26"
command_off: curl -s "http://xxx.xx.xx.xx:5000/charge_control?vin=VOTREVIN&hour=0&minute=0"
c5_clim:
friendly_name: "Preconditionnement"
command_on: curl -s "http://xxx.xx.xx.xx:5000/preconditioning/VOTREVIN/1"
command_off: curl -s "http://xxx.xx.xx.xx:5000/preconditioning/VOTREVIN/0"
Tu peux changer l’heure de fin de la charge programmé bien sûr (moi 7h26)
Merci je n’ai plus d’erreur…
Et pour le fichier des sensor ?
Tu as mis dans les 2 ?
moi je n’ai pas le dossier sensor. C’est toi qui l’a créé? normalement c’est le sensor.yaml à remplir uniquement. Tout fonctionne ou il te manque encore des choses?
Il 'y a pas d’obligation à avoir un fichier séparé, ni avoir un répertoire. ça dépends des directives !include_dir_named
ou !include
contenues dans le configuration.yaml
Par contre, il faut éviter de mélanger les méthodes, sinon c’est vite le souci
Tu as raison, c’est bien moi qui ai créé ce dossier sensor (seul)…
Je l’ai viré oups ! Celle là elle est pour moi
Je vais mettre tout ça a jour et pluis comme je veux remonter les données de ma e208 et de ma C5 hybride, il y un peu de configuration.
En tous cas dans un 1er temps, je ne trouve que les entités pour ma C5 :
Il faut que je fouine
Et je reviendrai vers vous.
alors oui comme dit Pulpy, vérifie que tu as bien « sensor: !include sensor.yaml » (et vérifie bien l’orthographe)
Sinon mets tout ce que j’ai mis dans sensors.yaml directement dans ton fichier config.yaml et ça fonctionnera
Je regarde tout ça.
Merci
Salut,
Ayant mis le bazard, j’ai reconfiguré que pour ma e-208.
Cela à l’air de refonctionner pour elle. mais je n’ai pas dit mon dernier mot pour rajouter ma C5 et avoir les 2 véhicules
Voici mon config.yaml
# peugeot communication
switch:
- platform: command_line
switches:
e208_change_threshold:
command_on: curl -s "http://192.168.1.131:5000/charge_control?vin=MON VIN&percentage=80"
command_off: curl -s "http://192.168.1.131:5000/charge_control?vin=MON VIN&percentage=100"
e208_change_charge_hour:
command_on: curl -s "http://192.168.1.131:5000/charge_control?vin=MON VIN&hour=5&minute=0"
command_off: curl -s "http://192.168.1.131:5000/charge_control?vin=MON VIN&hour=0&minute=0"
e208_clim:
command_on: curl -s "http://192.168.1.131:5000/preconditioning/MON VIN/1"
command_off: curl -s "http://192.168.1.131:5000/preconditioning/MON VIN/0"
command_state: 'curl -k --silent "http://192.168.1.131:5000:5000/get_vehicleinfo/MON VIN?from_cache=1"'
value_template: >
{{ value_json.preconditionning.air_conditioning.status == 'Enabled' }}
icon_template: >-
{% set value = value_json.preconditionning.air_conditioning.status %}
{% set switch = states('switch.e208_clim') %}
{% if value == 'Enabled' %}
mdi:car-defrost-front
{% elif value == 'Disabled' or value == 'Finished' %}
mdi:air-conditioner
{% else %}
mdi:alert
{% endif %}
command_timeout: 180
sensor PSA:
- platform: rest
resource_template: http://192.168.1.131:5000/get_vehicleinfo/MON VIN?from_cache=1
scan_interval: 60
timeout: 30
verify_ssl: false
name: PSA
device_class: timestamp
value_template: "{{ value_json.energy[0].updated_at }}"
json_attributes:
- energy
- kinetic
- timed_odometer
- last_position
- preconditionning
template:
binary_sensor:
- name: e208 Alimentation
unique_id: c5f46109-4cda-49b2-8c11-2a6b5d233aae
state: >-
{{ state_attr('sensor.psa', 'energy')[0].charging.plugged }}
device_class: connectivity
icon: >-
{% if state_attr('sensor.psa', 'energy')[0].charging.plugged %}
{% if state_attr('sensor.psa', 'energy')[0].charging.charging_mode == 'Slow' %}
mdi:ev-plug-type2
{% elif state_attr('sensor.psa', 'energy')[0].charging.charging_mode == 'Quick' %}
mdi:ev-plug-ccs2
{% endif %}
{% else %}
mdi:power-plug-off-outline
{% endif %}
- name: e208 Déplacement
unique_id: dc7f3ff8-ad77-42d4-8523-ddec9dc821e0
state: >-
{{ state_attr('sensor.psa', 'kinetic').moving }}
device_class: moving
attributes:
latitude: "{{ state_attr('sensor.psa', 'last_position').geometry.coordinates[1] }}"
longitude: "{{ state_attr('sensor.psa', 'last_position').geometry.coordinates[0] }}"
sensor:
- name: e208 Charge
unique_id: 8fbe0b19-447e-4e0b-b1c9-2d855437e63f
state: >-
{% set value = state_attr('sensor.psa', 'energy')[0].charging.status %}
{% if value == 'Failure' %}
Defaut
{% elif value == 'InProgress' %}
En charge
{% elif value == 'Stopped' %}
Pause
{% elif value == 'Finished' %}
Terminé
{% elif value == 'Disconnected' %}
Déconnecté
{% else %}
Inconnu
{% endif %}
icon: >-
{% set value = state_attr('sensor.psa', 'energy')[0].charging.status %}
{% if value == 'Failure' %}
mdi:alert
{% elif value == 'InProgress' %}
mdi:play
{% elif value == 'Stopped' %}
mdi:pause
{% elif value == 'Finished' %}
mdi:stop
{% else %}
mdi:power-plug-off-outline
{% endif %}
- name: e208 Batterie
unique_id: acf1f4f5-4180-43ba-9d1c-feb978f6b1eb
state: >-
{{ state_attr('sensor.psa', 'energy')[0].level }}
unit_of_measurement: "%"
device_class: battery
- name: e208 Kilometrage
unique_id: 4fe63f50-67f8-45f7-b148-e1f5554a85c9
state: >-
{{ state_attr('sensor.psa', 'timed_odometer').mileage }}
unit_of_measurement: "Km"
icon: 'mdi:road-variant'
- name: e208 Autonomie
unique_id: 0016a6a1-fed5-4a41-abb3-b1d6ca54bbab
state: >-
{{ state_attr('sensor.psa', 'energy')[0].autonomy }}
unit_of_measurement: "Km"
icon: 'mdi:map-marker-distance'
- name: e208 Pré-conditionnement Defaut
unique_id: a78793bf-1c13-4281-bf9f-d4abaed72d2f
state: >-
{% set value = state_attr('sensor.psa', 'preconditionning').failure_cause %}
{% if value == 'Defect' %}
Defectueux
{% elif value == 'DoorOpened' %}
Porte ouverte
{% elif value == 'LowBattery' %}
Batterie faible
{% elif value == 'LowFuelLevel' %}
Plus d'essence
{% elif value == 'TooManyUnusedProg' %}
Erreur de programmation
{% else %}
Inconnu
{% endif %}
icon: >-
{% set value = state_attr('sensor.psa', 'preconditionning').failure_cause %}
{% if value == 'Defect' %}
mdi:information
{% elif value == 'DoorOpened' %}
mdi:information
{% elif value == 'LowBattery' %}
mdi:information
{% elif value == 'LowFuelLevel' %}
mdi:information
{% elif value == 'TooManyUnusedProg' %}
mdi:information
{% else %}
mdi:information-off
{% endif %}
- name: e208 Pré-conditionnement
unique_id: b7c7350c-32ba-495a-aff0-7b88c2a134d5
state: >-
{{ state_attr('sensor.psa', 'preconditionning').air_conditioning.status }}
- name: e208 Puissance de charge
unique_id: e30a2bf6-3211-4859-abf1-17aa5f132ba6
state: >-
{{ state_attr('sensor.psa', 'energy')[0].charging.charging_rate * 0.163 }}
unit_of_measurement: "kWh"
icon: mdi:speedometer
############################################################################################################
- name: e208 Parcouru
unique_id: 7348f2e2-851f-4dc3-890f-4c73f571fb7e
state: >-
{% if is_state('binary_sensor.e208_alimentation', 'on') %}
{{ states('sensor.e208_autonomie') }}
{% else %}
{{ (states('sensor.e208_parcouru')) - (states('sensor.e208_kilometrage') - state_attr('sensor.beta_test_timestamp', 'km')) }}
{% endif %}
attributes:
km: >
{% if is_state('binary_sensor.e208_alimentation', 'on') %}
{{ states('sensor.e208_kilometrage') }}
{% else %}
{{ state_attr('sensor.e208_parcouru', 'km') }}
{% endif %}
unit_of_measurement: "Km"
icon: 'mdi:map-marker-right'
############################################################################################################
- name: e208 Fin de charge estimée
unique_id: c249f813-62dc-474d-bb9f-f94220636f87
state: >-
{% set value = state_attr('sensor.psa', 'energy')[0].charging.status %}
{% if value == 'InProgress' %}
{% set value = state_attr('sensor.psa', 'energy')[0].charging.remaining_time %}
{% if value.find("H") > 0 %}
{% set hr = value[value.find("T")+1:value.find("T")+ 3] %}
{% if hr[1:2] == "H" %}
{% set hr = "0" + hr[0] %}
{% endif %}
{% else %}
{% set hr = "00" %}
{% endif %}
{% if value.find("M") > 0 %}
{% set mn = value[value.find("M")-2:value.find("M")] %}
{% if mn[0:1] == "H" or mn[0:1] == "T" %}
{% set mn = "0" + mn[1] %}
{% endif %}
{% else %}
{% set mn = "00" %}
{% endif %}
{% set result = hr + ":" + mn %}
{% if result == "00:00" %}
{{ result }}
{% else %}
{{ as_datetime((now() + timedelta( hours = int(hr), minutes = int(mn) )).isoformat()).strftime("%H:%M") }}
{% endif %}
{% else %}
Déconnecté
{% endif %}
icon: "mdi:timer-outline"
rest_command:
maj:
url: http://192.168.1.131:5000/wakeup/MON VIN
Et mon sensor.yaml
# Peugeot e208
- platform: rest
name: peugeot_e208
resource: http://192.168.1.131:5000/get_vehicleinfo/MON VIN?from_cache=1
scan_interval: 60
timeout: 30
value_template: 'OK'
json_attributes:
- energy
- timed_odometer
- battery
- platform: template
sensors:
e208_battery_voltage:
friendly_name: "Battery Voltage"
unit_of_measurement: "V"
value_template: '{{ states.sensor.peugeot_e208.attributes["battery"]["voltage"] * 4 }}'
e208_battery_level:
friendly_name: "Battery"
unit_of_measurement: "%"
value_template: '{{ states.sensor.peugeot_e208.attributes["energy"][0]["level"] }}'
e208_battery_autonomy:
friendly_name: "Autonomy"
unit_of_measurement: "km"
value_template: '{{ states.sensor.peugeot_e208.attributes["energy"][0]["autonomy"] }}'
# Uncomment for miles instead of km
#e208_battery_autonomy:
#friendly_name: "Autonomy"
#unit_of_measurement: "m"
#value_template: "{{ ((state_attr('sensor.peugeot_e208', 'energy')[0]['autonomy']) / 1.609) | round(0)}}"
e208_charging_status:
friendly_name: "Charging Status"
value_template: '{{ states.sensor.peugeot_e208.attributes["energy"][0]["charging"]["status"] }}'
e208_mileage:
friendly_name: "Mileage"
unit_of_measurement: "km"
value_template: '{{ states.sensor.peugeot_e208.attributes["timed_odometer"]["mileage"] }}'
# Uncomment for miles instead of km
#e208_mileage:
#friendly_name: "Mileage"
#unit_of_measurement: "m"
#value_template: "{{ ((state_attr('sensor.peugeot_e208', 'timed_odometer')['mileage']) / 1.609) | round(2)}}"
# Peugeot e208 charge_control
- platform: rest
name: peugeot_e208_charge_control
resource: http://192.168.1.131:5000/charge_control?vin=MON VIN&?always_check=true
scan_interval: 60
timeout: 30
value_template: 'OK'
json_attributes:
- _next_stop_hour
- percentage_threshold
- platform: template
sensors:
e208_stop_hour:
friendly_name: "Next Stop Time"
value_template: '{{ states.sensor.peugeot_e208_charge_control.attributes["_next_stop_hour"]}}'
e208_threshold:
friendly_name: "Threshold"
unit_of_measurement: "%"
value_template: '{{ states.sensor.peugeot_e208_charge_control.attributes["percentage_threshold"] }}'
Comment je pourrais rajouter ma C5 à cette configuration ?
Si je duplique la totalité de cette configuration en modifiant le VIN et le nom C5 à la place de 208 un peu partout, il y a des erreurs…
Si je double juste les lignes comme ça, c’est pareil le bordel…
- platform: command_line
switches:
e208_change_threshold:
command_on: curl -s « http://192.168.1.131:5000/charge_control?vin=MON VIN 208&percentage=80 »
command_off: curl -s « http://192.168.1.131:5000/charge_control?vin=MON VIN 208&percentage=100 »
C5_change_threshold:
command_on: curl -s « http://192.168.1.131:5000/charge_control?vin=MON VIN C5&percentage=80 »
command_off: curl -s « http://192.168.1.131:5000/charge_control?vin=MON VIN C5&percentage=100 »
Qu’est ce que je peux faire ?
Coucou,
Bon j’ai reconfiguré que pour ma e208… Pour la C5, je ne suis pas sûr que 2 voitures fonctionnent avec PSA Car controller…
Par contre je me suis appuyé sur le lovelace déposé plus haut mais je n’ai pas reussi (ou pas compris) pour creer le script de mise à jour… J’ai fait ce que j’ai pu mais vraiment sans savoir ce que je fais
C’est étrange qu’il ne puisse pas gérer 2 voitures. Tu as bien tes 2 voitures sur l’application mycitroen?
Je n’ai pas accès à mon ha tout de suite j’essaierai de voir si il n’y a pas possibilité d’avoir 2 fois laddon? Pour le script de mise a jour j’avoue que je ne l’ai pas fait donc aucune idée du soucis désolé
La C5 est une Citroen mais la 208 une Peugeot… Oui elles osnt connecté via les 2 applis sur mon téléphone.
Après configutation de User config de PSA car controller avecCitroen puis Peugeot, elles sont présentes dans Home assistant mais seule la derniere connectée remonte les infos :
Ci dessous Peugeot étant connecté en dernier, je n’ai que ces infos à elle.
Ah donc il y a des chances que ce soit juste un problème de chemin d’accès aux informations (ton states.sensor.c5.attributes[…] il doit manquer genre [1] ou [2] avant le reste des infos demandés
j’essaye mais là je n’ai pas compris…
Disons que je n’ai pas de grandes connaissances en codage ou autre.
Je suis volontaire et j’essaye de comprendre mais ce n’est pas toujours facile…
Essaie de lancer via un terminal de commande ça :
Curl http://192.168.1.131:5000/get_vehicleinfo/MON VIN?from_cache=1
Voir ce que tu obtiens. Sinon test la c5 en enlevant le ?from_cache=1 de ton fichier config. (Faudra le remettre mais ça peut donner une indication.)
Je ne suis pas très calé en programmation mais faudra peut être mettre modifier des choses par là.
Avec le VIN 208 : Curl http://192.168.1.131:5000/get_vehicleinfo/VIN 208?from_cache=1
J’obtiens çà :
C:\>Curl http://192.168.1.131:5000/get_vehicleinfo/VIN 208?from_cache=1
{"embedded": null, "links": {"_self": {"deprecation": null, "href": "https://api.groupe-psa.com/connectedcar/v4/user/vehicles/1566c497a5655686153316861544651774d7a4d314f544d6a497a45324e54526a4e325a6d597a633259545a695a54566a4f44417a4e7a566a4d6a6c6a4d4467324d4463334f574e6a597a526d4d6d59344e7a67324f444a6c5a6d45325a4463775a544a6a596d4a6b597a64695957553d/status", "hreflang": null, "name": null, "profile": null, "templated": null, "title": null, "type": null}, "vehicle": null}, "battery": {"current": 0.0, "voltage": 90.0}, "doors_state": null, "energy": [{"updated_at": "2022-09-17 07:01:26+00:00", "autonomy": 234.0, "battery": null, "charging": {"charging_mode": "No", "charging_rate": 0, "next_delayed_time": "PT22H", "plugged": false, "remaining_time": "PT0S", "status": "Disconnected"}, "consumption": null, "level": 80.0, "residual": null, "type": "Electric"}, {"updated_at": "2021-09-15 10:24:24+00:00", "autonomy": null, "battery": null, "charging": null, "consumption": null, "level": 0.0, "residual": null, "type": "Fuel"}], "environment": null, "ignition": null, "kinetic": {"acceleration": null, "moving": null, "pace": null, "speed": null}, "last_position": {"type": "Feature", "geometry": {"coordinates": [null, null, null], "type": "Point"}, "properties": {"heading": null, "signal_quality": null, "type": null, "updated_at": null}}, "preconditionning": {"air_conditioning": {"failure_cause": null, "programs": null, "status": "Disabled", "updated_at": "2022-09-17 07:01:26+00:00"}}, "privacy": {"state": "None"}, "safety": null, "service": {"type": "Electric", "updated_at": "2022-09-17 07:01:26+00:00"}, "timed_odometer": {"updated_at": null, "mileage": 16425.6}}C:\>
Mais rien si je change avec le VIN de ma C5
Curl http://192.168.1.131:5000/get_vehicleinfo/VIN C5?from_cache=1
Je cache mes VIN a chaque mais je ne sais pas si c’est important
Oui c’est mieux de cacher
Donc ça vient bien de ce lien qui ne récupère pas les infos. Tu les a bien dans l’addon de ha?
Essai peut être avec from_cache=2 sans grande conviction…
Je rajoute ?from_cache=2 pour la C et je laisse ?from_cache=1 pour la 208 ?
Oui mais c’est juste un test sans grande conviction.
Comment as tu ajouté ta seconde voiture dans l’addon?