PapuutekAPT / Energa-HomeAssistant-Integration

Energa S.A integration for Home Assistant
27 stars 12 forks source link

Alternatywne rozwiązanie na odczyt licznika #9

Open catgiggle opened 2 years ago

catgiggle commented 2 years ago

Hej. Chciałbym podrzucić moje rozwiązanie na odczyt stanu licznika z Energi. Bardzo podobne, ale wydaje mi się, że trochę prostsze w implementacji/konfiguracji. Pewnie też ma swoje wady, sam oceń. Rozwiązanie nie wymaga niczego prócz dodania do HA (np. przez HACS) integracji HA Multiscrape (https://github.com/danieldotnl/ha-multiscrape) i ustawienia poniższej konfiguracji

multiscrape:
  - resource: https://mojlicznik.energa-operator.pl/dp/UserData.do
    scan_interval: 3600
    form_submit:
      resource: "https://mojlicznik.energa-operator.pl/dp/UserLogin.do"
      select: "form#loginForm"
      submit_once: True
      resubmit_on_error: True
      input:
        j_username: "xxx@gmail.com"
        j_password: "admin123"
    sensor:
      - unique_id: consumed_energy_total
        name: Consumed energy total
        select: 'div#right > table > tr:nth-of-type(1) > td.last'
        value_template: "{{ value|regex_replace('[^0-9,]', '')|replace(',', '.')|float }}"
        unit_of_measurement: kWh
        device_class: energy
        state_class: total_increasing
        on_error:
          value: last
      - unique_id: donated_energy_total
        name: Donated energy total
        select: 'div#right > table > tr:nth-of-type(3) > td.last'
        value_template: "{{ value|regex_replace('[^0-9,]', '')|replace(',', '.')|float }}"
        unit_of_measurement: kWh
        device_class: energy
        state_class: total_increasing
        on_error:
          value: last
Terrorr commented 2 years ago

Hej. Chciałbym podrzucić moje rozwiązanie na odczyt stanu licznika z Energi. Bardzo podobne, ale wydaje mi się, że trochę prostsze w implementacji/konfiguracji. Pewnie też ma swoje wady, sam oceń. Rozwiązanie nie wymaga niczego prócz dodania do HA (np. przez HACS) integracji HA Multiscrape (https://github.com/danieldotnl/ha-multiscrape) i ustawienia poniższej konfiguracji

multiscrape:
  - resource: https://mojlicznik.energa-operator.pl/dp/UserData.do
    scan_interval: 3600
    form_submit:
      resource: "https://mojlicznik.energa-operator.pl/dp/UserLogin.do"
      select: "form#loginForm"
      submit_once: True
      resubmit_on_error: True
      input:
        j_username: "xxx@gmail.com"
        j_password: "admin123"
    sensor:
      - unique_id: consumed_energy_total
        name: Consumed energy total
        select: 'div#right > table > tr:nth-of-type(1) > td.last'
        value_template: "{{ value|regex_replace('[^0-9,]', '')|replace(',', '.')|float }}"
        unit_of_measurement: kWh
        device_class: energy
        state_class: total_increasing
        on_error:
          value: last
      - unique_id: donated_energy_total
        name: Donated energy total
        select: 'div#right > table > tr:nth-of-type(3) > td.last'
        value_template: "{{ value|regex_replace('[^0-9,]', '')|replace(',', '.')|float }}"
        unit_of_measurement: kWh
        device_class: energy
        state_class: total_increasing
        on_error:
          value: last

super działa, dzięki !

możesz podpowiedzieć co zrobić żeby czytało drugi licznik (u dziadków) ;-) ?

pskuza commented 2 years ago

możesz podpowiedzieć co zrobić żeby czytało drugi licznik (u dziadków) ;-) ?

Zmień pierwszy link i dodaj do UserData.do licznik, który chcesz odpytywać.

Otwórz normalną stronę w przeglądarce i naciśnij klawisze Ctrl+U. Poszukaj na stronie meters.list.push, a znajdziesz tam odpowiedni ID i PPE, które następnie wykorzystasz:

image

multiscrape:
  - resource: https://mojlicznik.energa-operator.pl/dp/UserData.do?mpc=<id licznika>&ppe=<numer ppe>
    scan_interval: 3600
Terrorr commented 2 years ago

Jakiś błąd logiczny gdzieś mam w kodzie ? Liczniki są pod dwoma różnymi kontami, wartość energii pobranej dla 1 konta jest identyczna jak dla 2 konta czyli coś nadpisuje (id i ppe mam poprawne dla obu kont)

multiscrape:
  - resource: https://mojlicznik.energa-operator.pl/dp/UserData.do?mpc=<***>&ppe=<***>
    scan_interval: 3600
    form_submit:
      resource: "https://mojlicznik.energa-operator.pl/dp/UserLogin.do"
      select: "form#loginForm"
      submit_once: True
      resubmit_on_error: True
      input:
        j_username: "lukasz***@gmail.com"
        j_password: "***"
    sensor:
      - unique_id: consumed_energy_total
        name: Eneria zużyta
        select: 'div#right > table > tr:nth-of-type(1) > td.last'
        value_template: "{{ value|regex_replace('[^0-9,]', '')|replace(',', '.')|float }}"
        unit_of_measurement: kWh
        device_class: energy
        state_class: total_increasing
        on_error:
          value: last
  - resource: https://mojlicznik.energa-operator.pl/dp/UserData.do?mpc=<***>&ppe=<***>
    scan_interval: 3600
    form_submit:
      resource: "https://mojlicznik.energa-operator.pl/dp/UserLogin.do"
      select: "form#loginForm"
      submit_once: True
      resubmit_on_error: True
      input:
        j_username: "szymon***@gmail.com"
        j_password: "****"
    sensor:
      - unique_id: consumed_energy_total_2
        name: Eneria zużyta
        select: 'div#right > table > tr:nth-of-type(1) > td.last'
        value_template: "{{ value|regex_replace('[^0-9,]', '')|replace(',', '.')|float }}"
        unit_of_measurement: kWh
        device_class: energy
        state_class: total_increasing
        on_error:
          value: last
      - unique_id: donated_energy_total
        name: Donated energy total
        select: 'div#right > table > tr:nth-of-type(3) > td.last'
        value_template: "{{ value|regex_replace('[^0-9,]', '')|replace(',', '.')|float }}"
        unit_of_measurement: kWh
        device_class: energy
        state_class: total_increasing
        on_error:
          value: last
Terrorr commented 2 years ago

Jak widzę po historii to czyta dobrze początkowo, tylko po pewnym czasie nadpisuje z drugiego konta (okolice 5000kWh to pierwsze konto "lukasz", okolice 431kWh to drugie konto "szymon" ) image

pskuza commented 2 years ago

Mam oba liczniki na tym samym koncie i tam działają. Może miesza ciastka we zapytaniach internetowych?

Terrorr commented 2 years ago

Mam oba liczniki na tym samym koncie i tam działają. Może miesza ciastka we zapytaniach internetowych?

jak to sprawdzić ?