Większość użytkowników HA ma problem z odczytem wskazań liczników niektórych mediów (woda, gaz) i zaciąganiem tych danych do HA. Zwykle potrzebne są jakieś wydumane urządzenia odczytujące mechaniczny licznik. Ja tymczasem na swoim koncie na stronie MPWiK Wrocław znalazłem tabelę z godzinowymi/dobowymi/miesięcznymi odczytami zużycia wody w moim domu:
Oczywiście dostęp do tych danych możliwy jest tylko tylko po zalogowaniu. Mając wjazd na takie konto można zaciągać dane zużycia wody integracją HACS Multiscrape. Integracja ta wspiera także proces autentykacji w serwisie źródłowym. To samo można zrobić dla zużycia gazu (granulacja jest tu jednak dużo większa), choć u mnie codzienne dane zużycia gazu dostarcza integracja Vaillant. Tutaj jest doskonały filmik instruktażowy powstały na przykładzie parsowania cen energii zmiennych w czasie…
Jesteś w stanie podrzucić kod do multiscrape.yaml? Nie do końca ogarniam jak wyciągnąć te dane z tabelek, tym bardziej że każda każda kolejna pozycja ma tylko inkrementację i tyle.
Inkrementacja niczemu nie przeszkadza. Jeśli znasz przyrost zużycia wody z dwóch następujących po sobie dni, wiesz jakie masz dzienne zużycie wody. Po prostu od wskazania bieżącego odejmujesz wskazanie poprzednie.
Jeśli chcesz, możesz także w sekcji utility_meter pliku configuration.yaml stworzyć sobie dodatkowo sensor z licznikiem historycznym, który będzie pamiętał swoje wartości z zadanego przedziału czasu.
Dziękuję, zaraz to wrzucę do swojego i przetestuję. Niestety u mnie odczyty są tylko w skali miesiące dostępne, dlatego poszedłem drogą wydumanego urządzenia odczytującego
Dzięki za udostępnienie, dobry pomysł.
Spróbowałem to skonfigurować i nic się nie udało, ponieważ nawet login nie przechodzi. MPWIK mają dynamiczny page load dlatego form submit nie przechodzi. Patrzyłem w API only, żeby nie robić scrape strony tylko API responses, natomiast nie znalazłem jak się zalogować bez web strony.
Czy udało się skonfigurować to tak, żeby naprawdę działało?
Aby rozwiązanie zadziałało, trzeba indywidualnie przeanalizować zawartość serwisu transakcyjnego MPWiK i odpowiednio dostosować do niego kod. Po zalogowaniu nie każdy użytkownik ląduje w tym samym miejscu serwisu (nie wiem od czego to zależy). U mnie kod podany powyżej działa bez zarzutu.
Nie modyfikowałem swojego kodu od stycznia ubiegłego roku, bo wszystkie dane nt. zużycia wody zaciągam kodem podanym wcześniej w tym poście.
Fakt, że sporadycznie sensor.dobowe_zuzycie_wody bywa u mnie niedostępny, ale to kwestia chwilowego braku dostępności serwera MPWiK (czasem po prostu nie można się do niego zalogować), a nie błędu w kodzie.
Jest wysoce prawdopodobne, że musisz indywidualnie dostosować ten fragment kodu:
do swoich indywidualnych tabel, które widzisz w panelu klienta.
Nie wiem od czego to zależy, ale zauważyłem, że nie wszyscy klienci mają wyświetlane swoje wyniki w identycznej tabeli co moja (porównywałem to ze znajomymi). Być może wynika to z różnic w treściach lub zakresach umów na pobór wody; moze różne taryfy? jakieś prognozy zużycia? umowa tylko na wodę, np. bez kosztów kanalizacji? umowa kompleksowa?).
Aby z poziomu HA poprawnie dostać się do tych danych, najpierw należy uważnie prześledzić kod tabeli wynikowej widocznej na panelu klienta, zależnie od używanej przeglądarki (np. w Firefox: zakładka Inspection dostępna w trybie Web Developer Tools), a następnie odpowiednio zmodyfikować wskazany wycinek kodu tak, aby odwoływał się do właściwej, ściśle określonej komórki Twojej indywidualnej tabeli. Wskazana i odczytana w ten sposób wartość będzie podstawiana do atrybutu value_template sensora dobowe_zycie_wody.
Niestety, jest przeciwnie - podobnie jak Oleksandr, problem napotykam już przy logowaniu. Login metodą którą pokazałeś nie przechodzi, kombinacje z form submit również.
Zacznij od sprawdzenia, czy w momencie zwykłego logowania się do panelu klienta pole adresowe przeglądarki wyświetla adres strony w poniższym formacie: https://ebok.mpwik.wroc.pl/trust/zuzycie-wody?p=xxxxxx
Jeśli jest niezgodność formatu, to prawdopodobnie czeka Cię przeprowadzenie indywidualnej inspekcji całej sekcji panelu klienta i tabeli zużycia wody oraz samodzielna gruntowna adaptacja kodu yaml.
U mnie inspekcja tabeli z ostatnim odczytem wygląda tak:
EDIT:
Być może masz jakiś problem z integracją multiscrape… Spróbuj użyć alternatywnie integracji scrape. Jeśli jednak to wciąż problem samego logowania, to chyba nie umiem pomóc. U mnie po prostu to działa, choć wobec tego chyba nie do końca wiem dlaczego, skoro jestem odosobnionym przypadkiem, któremu udało się poprawnie uruchomić tę integrację…
Tu przydałaby się wiedza kogoś, kto ogarnia zagadnienia security… Może to kwestia jakichś certyfikatów? może protokołów komunikacji? dodatkowych agentów odpowiadających za zabezpieczenia? Niestety, nie mam w tym zakresie większego pojęcia…
W opisie intergacji znalazłem także info o tym, że scrape wymaga zainstalowania dodatkowej biblioteki libxml2, więc może tu jest problem z logowaniem: