Wanfr
Janvier 19, 2021, 7:21
1
Bonjour à tous,
Je viens vers vous car je ne suis pas capable de réaliser ce projet.
J’ai pris contact avec @oncleben31 qui à développé le projet pour les zoé.
Je suis possesseur d’une DS E-Tense et l’API Peugeot et son custom component fonctionnerait avec toutes les Peugeot et plus particulièrement au 3 sœurs e208, e2008 et DS3 e-tense.
en plus le patron de PSA vient d’annoncer 10 nouveaux véhicules électrique !
Je pense, même si je n’y comprends pas grand choses, que le travail est probablement bien avancé car un ou des développeurs ont déjà fait un projet sur cet API.
Alors si vous avez un peu de temps à consacrer à ce sujet, vous êtes les bien venus !
merci
1 « J'aime »
Je comprends pas ta demande…
Qu’est-ce que tu souhaites ?
Alors premièrement je suis un petit contributeur pour l’intégration de la Zoe. Le contributeur principal aujourd’hui c’est @epenet
La demande est un appel pour que quelqu’un essaye de faire une intégration pour les voitures de la marque Peugeot.
Une lib Python semble déjà existante.
Bonjour,
Je suis également intéressé par le projet.
J’ai trouvé ceci sous Jeedom
https://github.com/lelas33/plugin_peugeotcars
Ainsi que 2 autres répertoires GitHub si cela peut faire avancer le chmilblick
https://github.com/arjanmels/openhab2-addons/releases
https://github.com/flobz/psa_car_controller
epenet
Janvier 21, 2021, 5:24
6
A priori les API sont publiques: APIs | developer-preprod.groupe-psa.com/inc
Contrairement à Renault…
epenet:
Contrairement à Renault…
Je te sens frustré @epenet
Pour installer l’add-on:
# PSA Car Controller
[](https://hub.docker.com/repository/docker/flobz/psa_car_controller)
[](https://www.paypal.com/donate?hosted_button_id=SM652WPXFNCXS)
### This is a python program to control a PSA car with connected_car v4 api.
## Install psa_car_controller in Home Assistant
1. In homeassistant go to supervisor panel
2. The go to "ADD-ON store"
3. On the top right click on the three dot ,then repository
4. Past the following url https://github.com/flobz/psacc-ha
5. Click on add
6. At the bottom of the page you should see PSA Car Controller
7. Click on it and install
8. Configure the addon : 
You can find more details here : https://www.home-assistant.io/common-tasks/os#installing-third-party-add-ons
This file has been truncated. show original
Pour la configuration, cela se passe sur la page de l’add-on.
Une fois réalisé, on peut créer un rest sensor qui va venir se mettre à jour avec les données de l’add-on. On pourra se baser sur ce sensor pour mettre à jour d’autre sensor au besoin et créer un dashboard:
Basic sensor
sensor PSA:
- platform: rest
resource_template: http://[IP]:5000/get_vehicleinfo/[VIN]?from_cache=1
scan_interval: 60
timeout: 30
device_class: timestamp
value_template: "{{ value_json.energy[0].updated_at }}"
verify_ssl: false
name: PSA
json_attributes:
- energy
- kinetic
- timed_odometer
- last_position
- preconditionning
- doors_state
- ignition
Configuration :
Sensor, switch, automation...
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] }}"
- name: e208 Pré-conditionnement
unique_id: b7c7350c-32ba-495a-aff0-7b88c2a134d5
device_class: heat
state: >-
{{ state_attr('sensor.psa', 'preconditionning').air_conditioning.status|regex_replace(find='Enabled', replace='on', ignorecase=true)|regex_replace(find='Disabled', replace='off', ignorecase=true) }}
sensor:
- name: e208 Charge
unique_id: 8fbe0b19-447e-4e0b-b1c9-2d855437e63f
state_class: measurement
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_class: measurement
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"
state_class: total_increasing
icon: 'mdi:road-variant'
- name: e208 Autonomie
unique_id: 0016a6a1-fed5-4a41-abb3-b1d6ca54bbab
state_class: measurement
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 %}
Sans defaut
{% 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 Puissance de charge
unique_id: e30a2bf6-3211-4859-abf1-17aa5f132ba6
state_class: measurement
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_class: measurement
# state: >-
# {% if is_state('sensor.e208_parcouru', 'unavailable') or is_state('binary_sensor.e208_alimentation', 'on') or state_attr('sensor.e208_parcouru', 'km') == "" %}
# {{ states('sensor.e208_autonomie') }}
# {% else %}
# {{ states('sensor.e208_parcouru') - (states('sensor.e208_kilometrage') - state_attr('sensor.e208_parcouru', 'km')) }}
# {% endif %}
# attributes:
# km: >
# {% if is_state('sensor.e208_parcouru', 'unavailable') or is_state('binary_sensor.e208_alimentation', 'on') or state_attr('sensor.e208_parcouru', 'km') == "" %}
# {{ states('sensor.e208_kilometrage') }}
# {% 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"
automation:
- id: "63a2f136-91ad-4fb7-8f75-0644db525be5"
initial_state: true
mode: single
alias: "e208 GPS Tracking"
description: "Mettre à jours la position du véhicule"
trigger:
- platform: state
entity_id: binary_sensor.e208_deplacement
attribute: latitude
- platform: state
entity_id: binary_sensor.e208_deplacement
attribute: longitude
condition: []
action:
- service: device_tracker.see
data:
dev_id: "e208"
battery: "{{ state_attr('sensor.psa', 'energy')[0].level }}"
gps:
- "{{ state_attr('sensor.psa', 'last_position').geometry.coordinates[1] }}"
- "{{ state_attr('sensor.psa', 'last_position').geometry.coordinates[0] }}"
- id: "60015e5a-41e5-41a7-8e40-c9a786a60a12"
initial_state: false
mode: single
alias: "e208 Clim Tracking"
description: "Detecter le changement d'etat du préconditionnement"
trigger:
- platform: state
entity_id: binary_sensor.e208_pre_conditionnement
condition:
- condition: template
value_template: >-
{{ states('binary_sensor.e208_pre_conditionnement') !=
states('switch.e208_clim') }}
action:
- service: switch.toggle
target:
entity_id: switch.e208_clim
switch:
- platform: command_line
switches:
e208_clim:
friendly_name: Climatisation
command_on: curl -s "http://[IP]:5000/preconditioning/[VIN]/1"
command_off: curl -s "http://[IP]:5000/preconditioning/[VIN]/0"
# must evaluate if command_state can return effectiv car response...
command_state: 'curl -k --silent "http://[IP]:5000/get_vehicleinfo/[VIN]?from_cache=1"'
value_template: >
{{ value_json.preconditionning.air_conditioning.status == 'Enabled' }}
icon_template: >-
{% set value = value_json.preconditionning.air_conditioning.status %}
{% if value == 'Enabled' %}
mdi:car-defrost-front
{% elif value == 'Disabled' or value == 'Finished' %}
mdi:air-conditioner
{% else %}
mdi:alert
{% endif %}
command_timeout: 180
rest_command:
maj:
url: http://[IP]:5000/wakeup/[VIN]
script:
e208_maj:
alias: e208 Rafraichir
sequence:
- data: {}
service: rest_command.maj
Lovelace
- title: '208'
path: '208'
icon: mdi:car-sports
badges: []
cards:
- type: vertical-stack
cards:
- type: picture
image: /local/images/e208.png
tap_action:
action: none
hold_action:
action: none
- type: glance
entities:
- entity: sensor.e208_kilometrage
- entity: binary_sensor.e208_deplacement
- entity: sensor.e208_autonomie
show_name: true
state_color: true
- type: entities
entities:
- entity: sensor.thermal_confort_frostrisk
- entity: switch.e208_clim
secondary_info: last-updated
- entity: sensor.e208_pre_conditionnement_defaut
- entity: script.e208_maj
- type: vertical-stack
cards:
- type: map
entities:
- entity: zone.home
- entity: zone.travail_benjamin
- entity: zone.travail_celine
- entity: device_tracker.e208
hours_to_show: 18
- type: entities
entities:
- entity: sensor.e208_temps_restant_de_charge
- type: vertical-stack
cards:
- type: gauge
entity: sensor.e208_batterie
min: 0
max: 100
- type: glance
entities:
- entity: binary_sensor.e208_alimentation
- entity: sensor.e208_charge
- entity: sensor.e208_puissance_de_charge
state_color: true
show_name: true
- type: history-graph
entities:
- entity: sensor.e208_parcouru
- entity: sensor.e208_autonomie
hours_to_show: 24
refresh_interval: 0
« e208_clim » peut activer ou non le préconditionnement.
L’icone « Alimentation » montre le type de charge slow ou fast, et l’icone « Charge » montre le status (play, stop, pause/delay etc)
« Fin de charge estimée » devrait montrer une heure de fin (pas vraiment fonctionnel)
« Risque de gel » Vient d’un autre add-on (Thermal confort via hacs) afin de determiner si on doit dégivrer le parbrise.
Pour information, je cherche de l’aide pour recuperer la distance parcouru entre chaque rechargement. Si quelqu’un passe par là et sais me dépanner… merci
Bonjour,
J’ai tenté d’installer mais sans grand succès…
Une fois le depôt installer, je rentre mes identifiant, ça valide puis on arrive sur la page avec le code qu’on est sensé recevoir par sms (Config OTP) mais rien du tout… malgré plusieurs tentatives, aucun SMS en vu…
sur la page log j’ai ça :
2022-04-02 14:54:17,831 :: INFO :: update_data
2022-04-02 15:00:23,511 :: INFO :: save config change
2022-04-02 15:00:25,050 :: WARNING :: Can't get car model, please report an issue on github with your car model and first ten letter of your VIN : VF3CU9HP0E
2022-04-02 15:00:25,052 :: INFO ::
Your vehicles: ["{'vin': 'VF3CU9HP0E******', 'vehicle_id': '****************', 'label': '2008', 'brand': 'Peugeot', 'abrp_name': None, 'battery_power': 46, 'fuel_capacity': 0, 'max_elec_consumption': 70, 'max_fuel_consumption': 30}"]
Mon 2008 est trouver mais une erreur est présente… D’ailleurs, il semblerai que l’apli le prenne pour un e-2008… en revanche aucune trace de ma Ion ???
Quelqu’un saurai m’aidé ?
mskjeux
Septembre 16, 2022, 4:35
12
Salut,
Qu’est ce que tu as mis dans ton scriipt ? Comment tu as fait ?
Merci
Bonjour est ce quelqu’un pourrait m’aider concernant l’installation de PSA car controller ?
J’ai installé cela sur home assistant mais je n’arrive pas a créer de programme API…
Je suis débutant voir même encore plus bas qu’un débutant merci a vous j’ai vraiment besoin d’aide pour limiter la charge a 80%…