Integracja z MójLic...
 
Powiadomienia
Wyczyść wszystko

Integracja z MójLicznik od Energa S.A

76 Wpisów
15 Użytkownicy
13 Likes
10.5 K Wyświetleń
tiwek
(@tiwek)
Wpisów: 18
Praktykant
 

@tani_kredyt Rzeczywiście multiscrape działa, tylko w moim przypadku się nie sprawdza, bo ja potrzebuje pobrać dane z dwóch kont, a niestety on się nie wylogowuje po pierwszym wejściu i w drugim już jest zalogowany i pobiera te same wartości. Może w weekend powalczę jeszcze z node-red.

 

Zauważyłem, że w przeglądarce brave też nie mogę się zalogować, bo mówi, że już jestem zalogowany w innym oknie.

 
Dodane : 13/04/2023 11:58 am
(@triwolak)
Wpisów: 14
Bywalec
 

@tiwek

@tani_kredyt 

Panowie przestało mi działać multiscrape wywala coś takiego:

 

2023-05-07 22:01:46.785 ERROR (MainThread) [custom_components.multiscrape.sensor] Scraper_noname_0 # Energy meter total consumption # Unable to scrape data: ValueError: Template error: float got invalid input '00003832.1350.00003701.6890' when rendering template '{{ value | striptags | replace(" ", "") | replace(",", ".") | float }}' but no default was specified
2023-05-07 22:03:52.296 ERROR (MainThread) [custom_components.multiscrape.coordinator] Scraper_noname_0 # Exception in form-submit feature. Will continue trying to scrape target page.
 
Dodane : 09/05/2023 9:20 am
(@steel_rat)
Wpisów: 603
Ekspert
 

Po prostu liczba "00003832.1350.00003701.6890" nie jest liczbą float :). Trzeba ciąg podzielić pewnie na pół. Ingerencja w skrypt potrzebna.

 
Dodane : 09/05/2023 12:45 pm
tri wolak reacted
(@triwolak)
Wpisów: 14
Bywalec
 

@steel_rat O Panie drogi, a co ja mam tu zmienić? 🙂

multiscrape:
  - resource: 'https://mojlicznik.energa-operator.pl/dp/UserData.do'
    scan_interval: 120
    form_submit:
      submit_once: True
      resource: 'https://mojlicznik.energa-operator.pl/dp/UserLogin.do'
      select: "#loginForm"
      input:
        j_username: "xxx"
        j_password: "xxx"
    sensor:
      - unique_id: energa_energy_meter_total_consumption
        name: Energy meter total consumption
        device_class: energy
        state_class: total_increasing
        unit_of_measurement: kWh
        select_list: '#right > table > tr > td.last'
        value_template: '{{ value | striptags | replace(" ", "") | replace(",", ".") | float }}'
        on_error:
          value: last
 
Dodane : 09/05/2023 12:51 pm
(@tani_kredyt)
Wpisów: 21
Praktykant
 

@triwolak nie naprawiło się samo? Taki komunikat jest na stronie.

IMG 4363
 
Dodane : 09/05/2023 8:14 pm
(@triwolak)
Wpisów: 14
Bywalec
 

Dodane przez: @tani_kredyt

@triwolak nie naprawiło się samo? Taki komunikat jest na stronie.

-- załącznik nie jest dostępny --

niestety nie i mam to już od jakiegoś czasu jak coś zmieniałem w konfiguracji ;/

 

 
Dodane : 09/05/2023 9:41 pm
tiwek
(@tiwek)
Wpisów: 18
Praktykant
 

@triwolak Musisz mieć dwie taryfy, albo dwa liczniki, nie wiem, ten scapper jest dola pojedynczego.

Daj zrzut ekranu, bo ja mam tak:

image
 
Dodane : 10/05/2023 10:46 am
tri wolak reacted
(@triwolak)
Wpisów: 14
Bywalec
 

@tiwek Tak jest, ja mam dwukierunkowy:

image
 
Dodane : 10/05/2023 10:48 am
tiwek
(@tiwek)
Wpisów: 18
Praktykant
 

@triwolak Czyli jak podejrzewałem, to po pierwsze musisz mieć dwa scrapper'y, lub podwójny jak go tam zwał jeden consumpion a drugi production o ile chcesz mieć obie wartości z HA

a poza tym musisz jakoś rozdzielic te liczby.

Jak byś mi przysłał w wiadomosci prywatnej źródło strony jak to widać u Ciebie od 

<div id="right" ....

do 

<div style="color: #666;width: 400px;margin: 20px 0 0 40px;">
Odczyt danych został wykonany zdalnie przy użyciu inteligentnego licznika energii elektrycznej. </div>
</div>

to może coś wymyślę. Ale to tylko metodą ja coś napiszę a ty sprawdzisz bo ja nie mam podwójnego licznika, żeby stestowac.

 
Dodane : 10/05/2023 11:10 am
tri wolak reacted
(@triwolak)
Wpisów: 14
Bywalec
 

@tiwek udostępniam tutaj, może jeszcze komuś posłuży - dziękuje!

<div id="right" class="rightSide">
                <div class="beamSeparator">
                    <div class="insideBeam" style="margin: 0;">
                        <div class="loginText" style="margin: 0 10px 0 0;">Ostatnie odczyty licznika</div>
                    </div>
                </div>
                <table class="clear" style="width: 87%;">
                    <colgroup>
                        <col class="col1">
                        <col class="col2">
                    </colgroup>
                                            <tbody><tr style="" title="">
                            <td class="first">
                                <div style="display: inline-block;overflow: hidden;width: 120px;height: 16px;white-space: nowrap;">A+ strefa 1</div>
                                <div style="font-size: 10px">2023-05-10 00:00</div>
                            </td>
                            <td class="last" style="vertical-align: top;">	        		<span class="digit1">0</span>
                	        		<span class="digit1">0</span>
                	        		<span class="digit1">0</span>
                	        		<span class="digit1">0</span>
                	        		<span class="digit1">3</span>
                	        		<span class="digit1">8</span>
                	        		<span class="digit1">6</span>
                	        		<span class="digit1">4</span>
                	                		<span class="koma">,</span>
                	        		<span class="afterComa">2</span>
                	        		<span class="afterComa">7</span>
                	        		<span class="afterComa">9</span>
                	        		<span class="afterComa">0</span>
                	</td>
                        </tr>
                        <tr style="height: 10px;">
                            <td>&nbsp;</td>
                            <td>&nbsp;</td>
                        </tr>
                                            <tr style="" title="">
                            <td class="first">
                                <div style="display: inline-block;overflow: hidden;width: 120px;height: 16px;white-space: nowrap;">A- strefa 1</div>
                                <div style="font-size: 10px">2023-05-10 00:00</div>
                            </td>
                            <td class="last" style="vertical-align: top;">	        		<span class="digit1">0</span>
                	        		<span class="digit1">0</span>
                	        		<span class="digit1">0</span>
                	        		<span class="digit1">0</span>
                	        		<span class="digit1">3</span>
                	        		<span class="digit1">8</span>
                	        		<span class="digit1">1</span>
                	        		<span class="digit1">3</span>
                	                		<span class="koma">,</span>
                	        		<span class="afterComa">4</span>
                	        		<span class="afterComa">0</span>
                	        		<span class="afterComa">9</span>
                	        		<span class="afterComa">0</span>
                	</td>
                        </tr>
                        <tr style="height: 10px;">
                            <td>&nbsp;</td>
                            <td>&nbsp;</td>
                        </tr>
                                    </tbody></table>
                <div style="color: #666;width: 400px;margin: 20px 0 0 40px;">
                    Odczyt danych został wykonany zdalnie przy użyciu inteligentnego licznika energii elektrycznej.                </div>
            </div>
 
Dodane : 10/05/2023 11:19 am
tiwek
(@tiwek)
Wpisów: 18
Praktykant
 

@triwolak czyli tak:

W tym scrapperze zmieniamy na:

value_template: '{{ value | striptags | replace(" ", "") | replace(",", ".") | truncate(13,true,"") | float }}'

 

 
Dodane : 10/05/2023 12:16 pm
matulekpl
(@matulekpl)
Wpisów: 71
Kontrybutor
 

A że tak spytam - czemu nie używacie tego skryptu z początku posta?
Nie działa Wam czy co??

Trochę nie jestem na czasie, ale u mnie działa i ma się dobrze:

Zrzut ekranu 2023 05 10 o 12.24.00
 
Dodane : 10/05/2023 12:28 pm
(@tani_kredyt)
Wpisów: 21
Praktykant
 

@triwolak 

 

Tak wygląda mój config i wszystko działa:

multiscrape:
  - resource:  https://mojlicznik.energa-operator.pl/dp/UserData.do 
    scan_interval: 3600
    log_response: False
    form_submit:
      resource: "https://mojlicznik.energa-operator.pl/dp/UserLogin.do"
      select: "form#loginForm"
      submit_once: True
      resubmit_on_error: True
      input:
        j_username: !secret moj_licznik_usr
        j_password: !secret moj_licznik_pwd 
    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: stored_energy_total
        name: Stored 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
 
Dodane : 10/05/2023 12:33 pm
tiwek
(@tiwek)
Wpisów: 18
Praktykant
 

@tani_kredyt no wlasnie nie wiedzialem jak wydłubadc tylko jednego <td class="last"

@matulekpl Mi node red przestał działać, nie wiem czemu nie mogę namierzyć, może mnie zbanowali, multiscape też nie spełnia swojego, bo się nie wylogowuje a potrzebuje zczytywać liczniki z dwóch niezależnych kont. Więc skorzystałem z dockera energa-scrapper i też działa.

 

 
Dodane : 10/05/2023 12:46 pm
(@triwolak)
Wpisów: 14
Bywalec
 

@tiwek @tani_kredyt @matulekpl 

no dzień mi działało a teraz mam:

Logger: custom_components.multiscrape.sensor
Source: custom_components/multiscrape/sensor.py:172
Integration: Multiscrape scraping component (documentation, issues)
First occurred: 12 maja 2023 13:12:46 (50 occurrences)
Last logged: 13:13:47

Scraper_noname_0 # Consumed energy total # Unable to scrape data: Could not find a tag for given selector Consider using debug logging and log_response for further investigation.
Scraper_noname_0 # Stored energy total # Unable to scrape data: Could not find a tag for given selector Consider using debug logging and log_response for further investigation.
 
Dodane : 14/05/2023 2:04 pm
tiwek
(@tiwek)
Wpisów: 18
Praktykant
 

@triwolak Coś musiało ci się zmienić na stronie. Jak się loguję, to mam jakieś wyskakujące okno.

Zaloguj się z przeglądarki i zobacz. Poza tym zmień czas wywoływania multiscrpapera z godziny na trochę więcej, bo Cię zablokują.

 
Dodane : 15/05/2023 2:34 pm
Strona 4 / 4
Udostępnij: