ładowanie w taniej taryfie

Tomasz Gorbaczuk

Zadomawiam się
O, czyli w eC4 to jest wbudowane w auto?
Raz mi to działa - czyli po ustawieniu progu np. 68% auto przestaje ładować, a innym razem ładuje dalej. Wygląda na to jakby były jakieś limity na API i powyżej iluś wywołań serwer api.groupe-psa.com daje mi bana.
Jutro będę miał więcej czasu to to zdiagnozuję. No i muszę trochę rozładować baterię bo wczoraj przy tych testach naładowałem do max'a :)

TG
 

KrzysztofFly

Moderator
Ustawia się tam maksymalny poziom naładowania akumulatora. Chyba działa.
"Chyba" bo auto jeździ - a ja zdalnie ustawiłem ten próg komendą i później odczytałem tą samą wartość z auta. Jak będę wieczorem w chałupie to przetestuję czy faktycznie zatrzymuje ładowanie.
Ja mam ustawione na stałe 80%
Zrzut ekranu 2022-12-19 233136.png
I to działa, czasami naładuje do 81-82%, raz na ruski rok zdarzy mu się naładować jeszcze bardziej lub do 100% (może z raz w miesiącu), jednak wynika to z tego, że ja mam garaż w piwnicy i czasami jest przez to problem z zasięgiem GSM, więc HA wysyła na serwer komendę zatrzymania ładowania, a samochód jej nie odbiera.
Zrzut ekranu 2022-12-19 233642.png
Pochwal się jak zrobiłeś wersję z suwakiem i czy to faktycznie działa, chętnie też bym to u siebie wprowadził. Jaką masz wersję wtyczki? Ja mam aktualnie 3.0.6
 

Tomasz Gorbaczuk

Zadomawiam się
Aktualny panel:
Wszystko działa :)

View attachment 8264

Po prawej stronie są liczone pobory z licznika 3f do którego dołączony jest Zencar. Dodam tam jeszcze przelicznik kosztowy. To api psa jest jednak trochę ułomne - nie wiadomo kiedy odpowie rzeczywistym stanem, ale jak jest się tego świadomym, to można nad tym zapanować.

Limit ładowania zmieniłem teraz na to (Wymaga doinstalowania HACS>Interfejs użytkownika>"number box"):

- entity: input_number.charge_threshold
type: custom:numberbox-card
unit: '%'
delay: 3000
icon: mdi:battery

do configuration.yaml dodajemy:

input_number:
charge_threshold:
name: 'Limit ładowania'
min: 50
max: 100
step: 1
unit_of_measurement: "%"

rest_command:
ec4_change_threshold:
url: "http://192.168.2.184:5000/charge_control?vin=TwójVin&percentage={{ states('input_number.charge_threshold') | int }}"

do automations.yaml dodajemy:

- id: car_threshold_change
alias: Limit ładowania
trigger:
- platform: state
entity_id: input_number.charge_threshold
condition: []
action:
- service: rest_command.ec4_change_threshold
mode: single

Czyli, przy zmianie stanu input_number:charge_threshold uruchom usługę: rest_command.ec4_change_threshold

PSA Car Controller mam w wersji:
Wersja: v3.0.7


TG
 

Tomasz Gorbaczuk

Zadomawiam się
Po prawej stronie są liczone pobory z licznika 3f do którego dołączony jest Zencar. Dodam tam jeszcze przelicznik kosztowy. To api psa jest jednak trochę ułomne - nie wiadomo kiedy odpowie rzeczywistym stanem, ale jak jest się tego świadomym, to można nad tym zapanować.

Limit ładowania zmieniłem teraz na to (Wymaga doinstalowania HACS>Interfejs użytkownika>"number box"):

- entity: input_number.charge_threshold
type: custom:numberbox-card
unit: '%'
delay: 3000
icon: mdi:battery

do configuration.yaml dodajemy:

input_number:
charge_threshold:
name: 'Limit ładowania'
min: 50
max: 100
step: 1
unit_of_measurement: "%"

rest_command:
ec4_change_threshold:
url: "http://192.168.2.184:5000/charge_control?vin=TwójVin&percentage={{ states('input_number.charge_threshold') | int }}"

do automations.yaml dodajemy:

- id: car_threshold_change
alias: Limit ładowania
trigger:
- platform: state
entity_id: input_number.charge_threshold
condition: []
action:
- service: rest_command.ec4_change_threshold
mode: single

Czyli, przy zmianie stanu input_number:charge_threshold uruchom usługę: rest_command.ec4_change_threshold

PSA Car Controller mam w wersji:
Wersja: v3.0.7


TG
Tak wygląda panel w trakcie ładowania:


1672854306370.png
 

KrzysztofFly

Moderator
Podoba mi się to jak u siebie zrobiłeś ustawianie poziomu naładowania, oraz godziny rozpoczęcia i zakończenia ładowania (fakt, że u mnie nad tym czuwa wallbox, jednak może się to przydać gdzieś tam w terenie), pewnie przydałby się jeszcze przy tym przycisk, który odpowiadał by za to aby ograniczanie ładowania do określonych godzin było aktywne lub nie (bo pewnie będzie problem z ładowaniem w trasie), a bez sensu byłoby przestawianie wcześniej ustalonych godzin dla taryfy nocnej. Szybkość ładowania - tego wcześniej nie było, jak to wyciągnąć?
No i najważniejsze, ja osobiście jestem totalna noga w HA, wszystko co udało mi się osiągnąć, w postaci działającego w domu serwera z HA z integracją do mojego e-C4, zawdzięczam kolegom z forum p0li oraz vwir. Po Twoim wpisie doinstalowałem HACS, jednak cała reszta przekracza moją wiedzę i umiejętności. Więc gdybyś miał chęć i odrobinę czasu aby mi trochę pomóc, to byłbym wdzięczny.
 

Tomasz Gorbaczuk

Zadomawiam się
Podoba mi się to jak u siebie zrobiłeś ustawianie poziomu naładowania, oraz godziny rozpoczęcia i zakończenia ładowania (fakt, że u mnie nad tym czuwa wallbox, jednak może się to przydać gdzieś tam w terenie), pewnie przydałby się jeszcze przy tym przycisk, który odpowiadał by za to aby ograniczanie ładowania do określonych godzin było aktywne lub nie (bo pewnie będzie problem z ładowaniem w trasie), a bez sensu byłoby przestawianie wcześniej ustalonych godzin dla taryfy nocnej. Szybkość ładowania - tego wcześniej nie było, jak to wyciągnąć?
No i najważniejsze, ja osobiście jestem totalna noga w HA, wszystko co udało mi się osiągnąć, w postaci działającego w domu serwera z HA z integracją do mojego e-C4, zawdzięczam kolegom z forum p0li oraz vwir. Po Twoim wpisie doinstalowałem HACS, jednak cała reszta przekracza moją wiedzę i umiejętności. Więc gdybyś miał chęć i odrobinę czasu aby mi trochę pomóc, to byłbym wdzięczny.

Dobry pomysł z tym harmonogramem aktywnych opcji, dorobię to.

Ja przygodę z HA rozpocząłem w tym wątku :)
Grzebię w necie i przerabiam gotowce.

sensor czasu ładowania mam taki:

e2008_charding_estymacja_czasu:
friendly_name: "Estymacja czasu ładowania"
unique_id: c249f813-62dc-474d-bb9f-f94220636f87
value_template: >-
{% set value = state_attr('sensor.peugeot_e2008', 'energy')[0].charging.status %}
{% if value == 'InProgress' %}

{% set value = state_attr('sensor.peugeot_e2008', '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 %}
--:--
{% endif %}
icon_template: "mdi:timer-outline"

aby zadziałał musisz mieć też: ( w tym samym pliku, /config/sensor.yaml)


# Peugeot e2008
- platform: rest
name: peugeot_e2008
resource: http://192.168.2.184:5000/get_vehicleinfo/TwójVIN?from_cache=1
scan_interval: 60
timeout: 30
value_template: 'OK'
json_attributes:
- energy
- battery
- kinetic
- timed_odometer
- last_position
- preconditionning

Wrzucaj konkretne pytania, jak będę umiał to pomogę.
 
Top