Cześć.
Popełniłem ostatnio skrypt, który pobiera mi dane z licznika ze strony mojlicznik.energa-operator.pl. Z racji, że Energa nie udostępnia żadnego API, skrypt bazuje na Web Scrapping'u. Link do projektu: https://github.com/PapuutekAPT/Energa-HomeAssistant-Integration .
Pozdrawiam,
Papuutek.
Super!
Już działa na openhabie, armbian.
Nie dało by się zamiast na Chromium zrobić tego na Lynx'ie? 😀
Dzięki! Maciek
Cześć. Czy próbował ktoś wyciągnąć te dane przez Home Assistanta i sensor Scrape?
Cześć.
Popełniłem ostatnio skrypt, który pobiera mi dane z licznika ze strony mojlicznik.energa-operator.pl. Z racji, że Energa nie udostępnia żadnego API, skrypt bazuje na Web Scrapping'u. Link do projektu: https://github.com/PapuutekAPT/Energa-HomeAssistant-Integration .
Pozdrawiam,
Papuutek.
Aj lov Ju!!!!
Skrypt działał cudownie, lecz po długim czasie zaktualizowano selenium z wersji 3 do 4 i już niestety skrypt nie działa. Jesteś w stanie coś z tym zrobić lub w instrukcji dać info jakie wersje modułów instalować?
@baernie wystarczy poprawić kilka rzeczy w pliku main.py
Mogę Ci podesłać swój, ale u mnie mam taryfę G12W i mam dwie strefy więc zrobiłem sobie sumowanie produkcji i zużycia w dwóch strefach.
@matulekpl jeżeli byłaby taka możliwość to bardzo bym prosił o info co na co zmienić
musiałbyś przypomnieć mi jakie błędy wyskakują przy uruchomieniu to Ci powiem którą linijkę na co zmienić.
A w razie co załączam swój plik.
Witam wszystkich,
nie potrafiłem zainstalować skryptu Papuutek'a w Home Assistant OS wiec pomęczyłem się w node-red i stworzyłem scrappera do portalu Mój Licznik. Może się komuś przyda:
https://www.idrive.com/idrive/sh/sh?k=u0u4p3m4g2
Do tego ustawiamy dwa sensory w configuration.yaml:
sensor: - platform: mqtt name: "Power Produced" state_topic: "/homeassistant/PP" unit_of_measurement: "kWh" state_class: total device_class: energy - platform: mqtt name: "Power Used" state_topic: "/homeassistant/PU" unit_of_measurement: "kWh" state_class: total device_class: energy
Wymagania:
- add-on Node-Red. W konfiguracji Node-Red w sekcji npm_packages dodajemy "node-red-contrib-string", wymagany do konwersji odczytu licznika do formatu liczbowego
https://community.home-assistant.io/t/home-assistant-community-add-on-node-red/55023
- add-on Mosquitto broker
https://github.com/home-assistant/addons/blob/master/mosquitto/DOCS.md
Pozdrawiam
MM
@tani_kredyt "w sekcji npm_packages dodajemy "node-red-contrib-string""
Jak ma to wyglądać?
coś w ten deseń?
certfile: fullchain.pem credential_secret: http_node: password: '' username: '' http_static: password: '' username: '' init_commands: [] keyfile: privkey.pem npm_packages: [node-red-contrib-string] ssl: false system_packages: [] theme: default
Bo próbowałem zainstalować poleceniem npm ten pakiet (w katalogu node-red):
npm install node-red-contrib-string
Ale niestety HA pluje, że nie zna takiego polecenia npm.
Ja tylko dodam, że próba uruchomienia skryptu od @papuutek oraz @matulekpl na nowym zaktualizowanym systemie nie udało mi się.
Natomiast zainstalowałem selenium w ostatniej wersji 3 zamiast nowej 4 i skrypt od @papuutek działa od razu bez żadnych problemów.
@leckimarcin U mnie wygląda to tak z dwoma instalowanymi nodami:
npm_packages: - node-red-contrib-simple-message-queue - node-red-contrib-string
Hej, z innej beczki. Czy u wszystkich stan licznika w portalu odświeża się tylko po północy raz dziennie?
Przez to w HA sensor pokazuje produkcje i zużycie z opóźnieniem jednego dnia.
@tani_kredyt mam tak samo, gdzieś czytałem, że odczytują z liczników w nocy o 5 rano i aktualizują dopiero kolejnego dnia.
[0]}","dataType":"jsonata","mergecontext":"","mustacheAltTags":false,"outputProperties":[],"queue":"none","x":1070,"y":280,"wires":[[]]},{"id":"5387284487d760d9","type":"change","z":"4240800d792043ac","name":"Set login and password","rules":[{"t":"set","p":"payload[\"j_username\"]","pt":"msg","to":"username","tot":"str"},{"t":"set","p":"payload[\"j_password\"]","pt":"msg","to":"password","tot":"str"}],"action":"","property":"","from":"","to":"","reg":false,"x":170,"y":360,"wires":[["4d27868dcd99e719"]]},{"id":"55ac392044e425fc","type":"comment","z":"4240800d792043ac","name":"Set login and password","info":"","x":190,"y":400,"wires":[]},{"id":"51a55363.7d33bc","type":"server","name":"Home Assistant","addon":true}]
Są dwa miejsca do podania loginu i hasła. Mam zamienić username i password tylko (\"j_username\"]","pt":"msg","to":"username","tot":"str"})? Czy tam gdzie jest "set login and password"?
I co z tym plikiem zrobić w ogóle? 😛
Jakąś automatyzację trzeba stworzyć? Daj printscreena z node-reda 😛
Albo tłumacz jak małemu dziecku:)
EDIT:
Skorzystałem z rozwiązania @Papuutek
To znaczy, nie szło tego zrobić na HA OS, ale przypomniało mi się, że mam moodeaudio podpięte do wieży, a że moode jest na raspbianie to tam zainstalowałem skrypt i teraz mam 3 x unknown 😛
Skrypt mi wypluwa:
Wait... ./main.py:47: DeprecationWarning: executable_path has been deprecated, please pass in a Service object driver = webdriver.Chrome('/usr/bin/chromedriver', options=options) Traceback (most recent call last): File "./main.py", line 47, in <module> driver = webdriver.Chrome('/usr/bin/chromedriver', options=options) File "/usr/local/lib/python3.7/dist-packages/selenium/webdriver/chrome/webdriver.py", line 73, in __init__ service_log_path, service, keep_alive) File "/usr/local/lib/python3.7/dist-packages/selenium/webdriver/chromium/webdriver.py", line 99, in __init__ options=options) File "/usr/local/lib/python3.7/dist-packages/selenium/webdriver/remote/webdriver.py", line 268, in __init__ self.start_session(capabilities, browser_profile) File "/usr/local/lib/python3.7/dist-packages/selenium/webdriver/remote/webdriver.py", line 359, in start_session response = self.execute(Command.NEW_SESSION, parameters) File "/usr/local/lib/python3.7/dist-packages/selenium/webdriver/remote/webdriver.py", line 424, in execute self.error_handler.check_response(response) File "/usr/local/lib/python3.7/dist-packages/selenium/webdriver/remote/errorhandler.py", line 247, in check_response raise exception_class(message, screen, stacktrace) selenium.common.exceptions.SessionNotCreatedException: Message: session not created: This version of ChromeDriver only supports Chrome version 92 Current browser version is 78.0.3904.108 with binary path /usr/bin/chromium-browser Stacktrace: #0 0x000000a26618 <unknown> #1 0x00000078c9f4 <unknown> #2 0x0000007b1e88 <unknown> #3 0x0000007add48 <unknown> #4 0x0000007aac04 <unknown> #5 0x0000007e128c <unknown> #6 0x0000007dba14 <unknown> #7 0x0000007b4478 <unknown> #8 0x0000007b53a4 <unknown> #9 0x000000a53944 <unknown> #10 0x000000a6590c <unknown> #11 0x000000a65550 <unknown> #12 0x000000a66d40 <unknown> #13 0x000000a54944 <unknown> #14 0x000000a66fec <unknown> #15 0x000000a4b3ac <unknown> #16 0x000000a7e6e8 <unknown> #17 0x000000a7e858 <unknown> #18 0x000000a98f4c <unknown> #19 0x000076efd494 start_thread #20 0x000000000000 <unknown>
Także, chyba się poddaje na dzisiaj, bo jeszcze cały rok taki będzie 😉
Hej,
Plik trzeba importować:
I potem trzeba wstawić login i hasło w tym nodzie:
Pozdr
MM
@tani_kredyt Dzięki za łopatologiczne wytłumaczenie jak to ugryźć;)
Wszystko działa jak należy:) Pozdrawiam i wszystkiego najlepszego w Nowym Roku;)
cześć,
dzięki wielkie za integracje oraz inspiracje do stworzenia kolejnej 😉
@baernie pytał o scrape i to mnie natchneło do sprawdzenia tego podejścia.
Działam na hass.io gdzie nie da sie nic zainstalować dodatkowego więc chciałem aby było to jak najprostsze:
https://gist.github.com/lowang/18601a2d063a1e933fb7c6e0e97a3c7c
pozdrawiam!
To co przesłałeś działa poprawnie w HA?
Rozumiem, że nie poprzez wbudowanego scrape sensora w ha, tylko przez hacs należy zainstalować tego multiscrape, następnie Twój kod i będzie śmigać?
Niestety ja utknąłem na zaimportowaniu pliku i zmianie loginu i hasla.
Podpowiedzcie jak skłonić HA do pokazywania danych z mój licznik, (szukam i szukam i niestety nic) a HA mam od dwóch dni i potrzebuję jakiegoś sukcesu 😉
To co przesłałeś działa poprawnie w HA?
Rozumiem, że nie poprzez wbudowanego scrape sensora w ha, tylko przez hacs należy zainstalować tego multiscrape, następnie Twój kod i będzie śmigać?
@baernie dokładnie tak, uaktualniłem kod w gist o obsługę on_error bo czasami strona nie chce zwrócić wyniku i dostawałem błąd w logach oraz stan unknown.
Teraz po prostu korzystam ze starej wartości licząc ze kolejne pobranie to naprawi.