Powiadomienia
Wyczyść wszystko
Fotowoltaika
76
Wpisów
15
Użytkownicy
13
Reactions
12.3 K
Wyświetleń
Może lepiej wkleję jako kod, to nie zniknie:
[ { "id": "d7e67da1d12d4121", "type": "tab", "label": "MojLicznik", "disabled": false, "info": "", "env": [] }, { "id": "e31c842926e2e323", "type": "http request", "z": "d7e67da1d12d4121", "name": "", "method": "GET", "ret": "txt", "paytoqs": "ignore", "url": "https://mojlicznik.energa-operator.pl/dp/UserLogin.do", "tls": "", "persist": true, "proxy": "", "authType": "", "senderr": false, "x": 290, "y": 80, "wires": [ [ "bbdccdb7c1c17b1c" ] ] }, { "id": "8770dc4fb1a50bc4", "type": "inject", "z": "d7e67da1d12d4121", "name": "", "props": [ { "p": "payload" }, { "p": "topic", "vt": "str" } ], "repeat": "3600", "crontab": "", "once": true, "onceDelay": "5", "topic": "", "payload": "", "payloadType": "date", "x": 100, "y": 80, "wires": [ [ "e31c842926e2e323" ] ] }, { "id": "bbdccdb7c1c17b1c", "type": "html", "z": "d7e67da1d12d4121", "name": "Get key required for login", "property": "payload", "outproperty": "payload", "tag": "[name=_antixsrf]", "ret": "attr", "as": "single", "x": 510, "y": 80, "wires": [ [ "5ba109d4c19abc46" ] ] }, { "id": "5ba109d4c19abc46", "type": "change", "z": "d7e67da1d12d4121", "name": "Set request data, headers and cookies", "rules": [ { "t": "set", "p": "data", "pt": "msg", "to": "{\"selectedForm\":\"1\",\"save\":\"save\",\"clientOS\":\"web\",\"loginNow\":\"zaloguj+się\"}", "tot": "json" }, { "t": "set", "p": "data[\"_antixsrf\"]", "pt": "msg", "to": "payload[0].value", "tot": "msg" }, { "t": "set", "p": "payload", "pt": "msg", "to": "data", "tot": "msg" }, { "t": "set", "p": "cookies", "pt": "msg", "to": "responseCookies", "tot": "msg" }, { "t": "set", "p": "headers", "pt": "msg", "to": "{\"User-Agent\":\"Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:95.0) Gecko/20100101 Firefox/95.0\",\"Accept\":\"text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,*/*;q=0.8\",\"Accept-Language\":\"en-US,en;q=0.5\",\"Accept-Encoding\":\"gzip, deflate, br\",\"Content-Type\":\"application/x-www-form-urlencoded\",\"Origin\":\"https://mojlicznik.energa-operator.pl\",\"DNT\":\"1\",\"Connection\":\"keep-alive\",\"Referer\":\"https://mojlicznik.energa-operator.pl/dp/UserLogin.do\",\"Upgrade-Insecure-Requests\":\"1\",\"Sec-Fetch-Dest\":\"document\",\"Sec-Fetch-Mode\":\"navigate\",\"Sec-Fetch-Site\":\"same-origin\",\"Sec-Fetch-User\":\"?1\"}", "tot": "json" }, { "t": "delete", "p": "headers[\"set-cookie\"]", "pt": "msg" } ], "action": "", "property": "", "from": "", "to": "", "reg": false, "x": 230, "y": 160, "wires": [ [ "fdb7317548b5f408" ] ] }, { "id": "a36fa7aff6ca1df7", "type": "http request", "z": "d7e67da1d12d4121", "name": "", "method": "POST", "ret": "txt", "paytoqs": "body", "url": "https://mojlicznik.energa-operator.pl/dp/UserLogin.do", "tls": "", "persist": true, "proxy": "", "authType": "", "senderr": false, "x": 390, "y": 260, "wires": [ [ "4f47e77d6137c267" ] ] }, { "id": "4f47e77d6137c267", "type": "html", "z": "d7e67da1d12d4121", "name": "", "property": "payload", "outproperty": "payload", "tag": "[class=last]", "ret": "text", "as": "single", "x": 550, "y": 160, "wires": [ [ "6a65531b61346744" ] ] }, { "id": "6a65531b61346744", "type": "string", "z": "d7e67da1d12d4121", "name": "", "methods": [ { "name": "humanize", "params": [] }, { "name": "replaceAll", "params": [ { "type": "str", "value": " " }, { "type": "str", "value": "" } ] }, { "name": "replaceAll", "params": [ { "type": "str", "value": "," }, { "type": "str", "value": "." } ] }, { "name": "toFloat", "params": [ { "type": "num", "value": "2" } ] } ], "prop": "payload[0]", "propout": "payload[0]", "object": "msg", "objectout": "msg", "x": 730, "y": 140, "wires": [ [ "b562ed371682c7b5" ] ] }, { "id": "b562ed371682c7b5", "type": "string", "z": "d7e67da1d12d4121", "name": "", "methods": [ { "name": "humanize", "params": [] }, { "name": "replaceAll", "params": [ { "type": "str", "value": " " }, { "type": "str", "value": "" } ] }, { "name": "replaceAll", "params": [ { "type": "str", "value": "," }, { "type": "str", "value": "." } ] }, { "name": "toFloat", "params": [ { "type": "num", "value": "2" } ] } ], "prop": "payload[1]", "propout": "payload[1]", "object": "msg", "objectout": "msg", "x": 870, "y": 140, "wires": [ [ "40aab6834e237229", "c709ab68ed240a96" ] ] }, { "id": "40aab6834e237229", "type": "api-call-service", "z": "d7e67da1d12d4121", "name": "", "server": "51a55363.7d33bc", "version": 3, "debugenabled": false, "service_domain": "mqtt", "service": "publish", "entityId": "", "data": "{\"topic\":\"/homeassistant/PP\",\"payload\":msg.payload[1]}", "dataType": "jsonata", "mergecontext": "", "mustacheAltTags": false, "outputProperties": [], "queue": "none", "x": 1070, "y": 100, "wires": [ [] ] }, { "id": "c709ab68ed240a96", "type": "api-call-service", "z": "d7e67da1d12d4121", "name": "", "server": "51a55363.7d33bc", "version": 3, "debugenabled": false, "service_domain": "mqtt", "service": "publish", "entityId": "", "data": "{\"topic\":\"/homeassistant/PU\",\"payload\":msg.payload[0]}", "dataType": "jsonata", "mergecontext": "", "mustacheAltTags": false, "outputProperties": [], "queue": "none", "x": 1070, "y": 180, "wires": [ [] ] }, { "id": "fdb7317548b5f408", "type": "change", "z": "d7e67da1d12d4121", "name": "Set login and password", "rules": [ { "t": "set", "p": "payload[\"j_username\"]", "pt": "msg", "to": "sample@email.com", "tot": "str" }, { "t": "set", "p": "payload[\"j_password\"]", "pt": "msg", "to": "PASSWORD", "tot": "str" } ], "action": "", "property": "", "from": "", "to": "", "reg": false, "x": 170, "y": 260, "wires": [ [ "a36fa7aff6ca1df7" ] ] }, { "id": "d553fae76d61a5ec", "type": "comment", "z": "d7e67da1d12d4121", "name": "Hasło i login do https://mojlicznik.energa-operator.p l", "info": "", "x": 190, "y": 300, "wires": [] }, { "id": "51a55363.7d33bc", "type": "server", "name": "Home Assistant", "addon": true } ]
Dodane : 24/01/2022 8:51 am
Witajcie,
Gdzie można szukać problemu?
Przy blokach: SVC mqtt:publish pojawia mi się: "API Error at: Jan 30, 21:40 ?
W debug:
30.01.2022, 21:36:45node: 40aab6834e237229 msg : string[79] "Call-service error. string value is None for dictionary value @ data['payload']" 30.01.2022, 21:36:45node: c709ab68ed240a96 msg : string[79] "Call-service error. string value is None for dictionary value @ data['payload']" 30.01.2022, 21:39:30node: 40aab6834e237229 msg : string[79] "Call-service error. string value is None for dictionary value @ data['payload']" 30.01.2022, 21:39:30node: c709ab68ed240a96 msg : string[79] "Call-service error. string value is None for dictionary value @ data['payload']" 30.01.2022, 21:45:35node: 40aab6834e237229 msg : string[79] "Call-service error. string value is None for dictionary value @ data['payload']" 30.01.2022, 21:45:35node: c709ab68ed240a96 msg : string[79] "Call-service error. string value is None for dictionary value @ data['payload']"
@EDIT
Z powżyszym problemem się uporałem, teraz mam inny problem i zastanawiam się jak sobie z tym poradziliście.
Otóż dane ze strony na energa są z poprzedniego dnia. Posiadam PV i korzystam w HA z zakładki energia gdzie ustawiam sobie encje (live) produkcji z paneli PV. Z tym, że na bieżąco mam informację z inwertera, a z licznika mam info z dnia poprzedniego. Da się to jakoś zsynchronizować, tak żeby dane z licznika były wysyłane w HA na dzień poprzedni?
Inna kwestia, że z portalu energii można ściągać raporty w excelu, które są przypisane do konkretnych dni - ile energi zużyto i ile nadwyżki z produkcji i ile wykorzystano energi z PV. Może ktoś próbował importować z automatu te dane?
Dodane : 30/01/2022 9:48 pm
myślałem żeby to jakoś ogarnąć, ale na myśleniu się na ten moment skończyło niestety...
Dodane : 01/02/2022 3:17 pm
Niestety nie udało mi się. Tzn przestałem korzystać z domyślnego dashboardu i zrobiłem swój przy pomocy apex charts gdzie jest parametr offset pozwalający na przesunięcie serii danych o ten jeden dzień. To nie to samo, ale można wyświetlić interesujące dane.
Dodane : 07/11/2022 5:28 pm
tri wolak reacted
@tani_kredyt nieźle to wygląda, możesz napisać coś więcej o tej konfiguracji?
Czy jest jakaś możliwość dodania "ręcznie" wcześniejszych wartości, np wygenerowanych z csv?
Dodane : 08/11/2022 7:44 am
@triwolak korzystam z tego:
https://github.com/RomRider/apexcharts-card
Instalacja przez HACS jest prosta. Niestety konfiguracja kart w pełni tekstowa więc czasami trochę się trzeba nadłubać jeżeli domyślny template nie odpowiada. W ramach przykładu mogę wkleić moją konfigurację.
Dodane : 08/11/2022 10:05 am
tri wolak reacted
@tani_kredyt poproszę o konfigurację 🙂
Wpadłem na pomysł połączenia HA z mysql i właśnie próbuję wrzucić historię wygenerowaną w CSV na stronie Energii pod domyślny Dashboard
Dodane : 11/11/2022 10:05 pm
To po kolei:
type: custom:apexcharts-card update_interval: 10m apex_config: chart: zoom: enabled: true toolbar: show: true tools: download: true selection: true zoom: true zoomin: true zoomout: true pan: true reset: true header: show: true title: Produkcja vs zużycie energii show_states: true colorize_states: true graph_span: 24h yaxis: - id: first - id: second opposite: true min: 0 max: 100 series: - entity: sensor.mm_total_output_power type: area name: Solar power stroke_width: 1 yaxis_id: first group_by: duration: 5min func: avg start_with_last: true show: in_header: false - entity: sensor.sonoff_10013c5f15_power type: area stroke_width: 1 name: Heat Pump yaxis_id: first group_by: duration: 5min func: avg start_with_last: true show: in_header: false - entity: sensor.washing_machine_electricalmeasurement type: area stroke_width: 1 name: Washer/Dryer yaxis_id: first group_by: duration: 5min func: avg start_with_last: true show: in_header: false
type: custom:apexcharts-card update_interval: 10m apex_config: chart: zoom: enabled: true toolbar: show: true tools: download: true selection: true zoom: true zoomin: true zoomout: true pan: true reset: true header: show: true title: Produkcja, zużycie i magazyn wg Energi show_states: true colorize_states: true yaxis: - id: first - id: second opposite: true graph_span: 10d span: end: day offset: '-1day' series: - entity: sensor.consumed_energy_total name: Power from grid type: column yaxis_id: first offset: +1d curve: straight show: in_header: false group_by: duration: 1d func: diff start_with_last: true - entity: sensor.stored_energy_total name: Power to grid type: column yaxis_id: first curve: straight offset: +1d show: in_header: false group_by: duration: 1d func: diff start_with_last: true - entity: sensor.grid_energy_storage type: line yaxis_id: second curve: straight offset: +1d show: in_header: false group_by: duration: 1d func: last start_with_last: true
type: custom:apexcharts-card update_interval: 10m apex_config: chart: zoom: enabled: true toolbar: show: true tools: download: true selection: true zoom: true zoomin: true zoomout: true pan: true reset: true header: show: true title: Produkcja vs zużycie energii dziennie show_states: true colorize_states: true yaxis: - id: first - id: second opposite: true min: 0 max: 100 graph_span: 10d span: end: day series: - entity: sensor.mm_total_lifetime_energy_output name: Solar production type: column yaxis_id: first group_by: duration: 1d func: diff start_with_last: true show: in_header: false - entity: sensor.sonoff_10013c5f15_energy type: column yaxis_id: first name: Heat Pump group_by: duration: 1d func: last show: in_header: false - entity: sensor.washing_machine_polledsmartenergysummation type: column yaxis_id: first name: Washer/Dryer group_by: duration: 1d func: delta show: in_header: false
type: custom:apexcharts-card update_interval: 10m now: show: true apex_config: chart: zoom: enabled: true toolbar: show: true tools: download: true selection: true zoom: true zoomin: true zoomout: true pan: true reset: true header: show: true title: Produkcja energii vs prognozy show_states: true colorize_states: true yaxis: - id: first - id: second opposite: true min: 0 max: 100 graph_span: 10d span: start: day offset: '-8d' series: - entity: sensor.energy_production_today_total name: Solar production forecast (today) type: column yaxis_id: first group_by: duration: 1d func: last fill: zero show: in_header: false - entity: sensor.energy_production_tomorrow_total name: Solar production forecast (tomorrow) type: column yaxis_id: first offset: '-1d' show: in_header: false group_by: duration: 1d func: last - entity: sensor.mm_total_lifetime_energy_output name: Solar production type: column yaxis_id: first show: in_header: false group_by: duration: 1d func: diff start_with_last: true
Dodane : 13/11/2022 9:06 am
tri wolak reacted
Witajcie,
Gdzie można szukać problemu?
Przy blokach: SVC mqtt:publish pojawia mi się: "API Error at: Jan 30, 21:40 ?
W debug:
30.01.2022, 21:36:45node: 40aab6834e237229 msg : string[79] "Call-service error. string value is None for dictionary value @ data['payload']" 30.01.2022, 21:36:45node: c709ab68ed240a96 msg : string[79] "Call-service error. string value is None for dictionary value @ data['payload']" 30.01.2022, 21:39:30node: 40aab6834e237229 msg : string[79] "Call-service error. string value is None for dictionary value @ data['payload']" 30.01.2022, 21:39:30node: c709ab68ed240a96 msg : string[79] "Call-service error. string value is None for dictionary value @ data['payload']" 30.01.2022, 21:45:35node: 40aab6834e237229 msg : string[79] "Call-service error. string value is None for dictionary value @ data['payload']" 30.01.2022, 21:45:35node: c709ab68ed240a96 msg : string[79] "Call-service error. string value is None for dictionary value @ data['payload']"@EDIT
Z powżyszym problemem się uporałem, teraz mam inny problem i zastanawiam się jak sobie z tym poradziliście.
Czy mógłbyś napisać, jak poradziłeś sobie z API error?
Dodane : 08/01/2023 9:52 pm
@tani_kredyt kolego, a czy jesteś w stanie wstawić taką konfigurację dla taryfy G11 ponieważ zmieniłem?
Dodane : 06/04/2023 12:17 pm
Nie przestało wam przypadkiem działać to w ostatnich dniach ??
Próbowałem coś zobaczyć i wydaje mi się, że giną gdzieś ciasteczka dla usunięty link
Dodane : 06/04/2023 2:04 pm
@triwolak Z tym że ja mam G11 więc wszystko co wklejałem powinno działać. Jakiś problem z Dashboardem, czy konfiguracją Node-Red? Jak to drugie to już nie pomoge bo przestałem korzystać. Teraz ściągam przy pomocy multiscrape. Opis jak ustawić jest gdzieś w tym wątku.
Dodane : 06/04/2023 3:02 pm
tri wolak reacted
@tani_kredyt Wyrzuca mi:
"Call-service error. string value is None for dictionary value @ data['payload']"
@mkf118 kolego jak sobie z tym poradziłeś?
Dodane : 07/04/2023 10:55 am
@tiwek Mi przestało działać. Wydaje mi się że to przez to że teraz jak wejdziesz na stronę licznika to wywala jakiś komunikat że strona działa w trybie stabilizacji
Dodane : 09/04/2023 11:11 am
@Gabrys1 to napewno przez modyfikacje strony ale ile udalo mi sie sprawdzic to nawet nie dochodzi do zalogowania. Tam pojawily sie nowe cookie ale nie wiem jak sie do nich dobrac
Dodane : 09/04/2023 1:47 pm
Jak zalogowałem się przez przeglądarkę to wyświetliło mi informację o tej stabilizacji (cokolwiek to znaczy). informacja była w okienku i była opcja kliknięcia ‚nie pokazuje więcej’. Po tym sensor bazujący na multiscrape znów zaczął działać.
Dodane : 10/04/2023 9:03 pm
@tani_kredyt Czyli sugerujesz się przenieść z node-red na multiscrape ??
Dodane : 11/04/2023 7:30 am
@tiwek efekt taki sam wiec jak działa to pewnie nie ma co zmieniać. Od zera chyba łatwiej multiscrape ustawić jak ktoś jeszcze sie nie bawił w webscraping.
Ja chciałem ograniczyć liczbę add-ons wiec sie przesiadłem.
Dodane : 11/04/2023 5:19 pm
@tani_kredyt Niestety albo mnie zablokowali, albo coś tak pozmieniali, że przestało działać.
Jak loguje się z przeglądarki to jest ok, a jak puszczam flow z node-red to dostaje "
PPE jest nieaktywne lub umowa została zakończona.
Dodane : 12/04/2023 11:09 am