Automatizace - zavolání služby dle předpovědi počasí

Automatizace tvořené přímo, pomocí funkcí HomeAssitent(a).
Beny
Pokročilý
Pokročilý
Příspěvky: 108
Registrován: 17. listopad 2021, 20:29
Dal poděkování: 3 poděkování

Automatizace - zavolání služby dle předpovědi počasí

Příspěvek od Beny »

Z integrace Met.no mám vytaženou hodinovou předpověď a každá hodina je jednou entitou. S názvem a stavem. Nemá časové razítko.
Chtěl bych dvakrát denně načíst předpověď, vytvořit seznam 10 entit (vyřadit 2 s nejnižší hodnotou) a následně porovnávat vybrané entity s aktuálním časem. Pokud by byla na seznamu entita se schodným časem zavolat službu, pokud nebude zavolat jinou službu.

Problém je zatím časové razítko. Respektive celý návrh je problém
V HA již není hodinová předpověď, jako entita.

Hrál jsem si týden s NR, ale zatím jsem vždy někde uvízl.

Díky za každé vaše postřehy,

Edit: předpoveď jde zavolat službou

Kód: Vybrat vše

service: weather.get_forecast
target:
  entity_id: weather.home
data:
  type: daily
response_variable: weather_forecast

A výsledek pak vypadá takto

Kód: Vybrat vše

forecast:
  - condition: cloudy
    datetime: "2023-09-18T15:00:00+00:00"
    wind_bearing: 239.3
    cloud_coverage: 94.5
    temperature: 27.6
    wind_speed: 11.9
    precipitation: 0
    humidity: 40
  - condition: rainy
    datetime: "2023-09-18T16:00:00+00:00"
    wind_bearing: 285.4
    cloud_coverage: 100
    temperature: 24.7
    wind_speed: 22.7
    precipitation: 0.3
    humidity: 51

Beny
Pokročilý
Pokročilý
Příspěvky: 108
Registrován: 17. listopad 2021, 20:29
Dal poděkování: 3 poděkování

Re: Automatizace - zavolání služby dle předpovědi počasí

Příspěvek od Beny »

Asy by to šlo udělat nějak takto, ale nevím jak postavit šablonu na extraxi teplot a časů a následné vabrání 10 nejvyšších + další automatizace by asi musela být postavená za touto.
Přílohy
Screenshot 2023-09-18 at 17-38-44 Nastavení – Home Assistant.png

rxw
Začínající autor
Začínající autor
Příspěvky: 22
Registrován: 09. prosinec 2022, 13:48
Dostal poděkování: 2 poděkování

Re: Automatizace - zavolání služby dle předpovědi počasí

Příspěvek od rxw »

Ahoj,

tady je možné řešení v NR. Pokud něco nebylo jasné, tak napiš.

Kód: Vybrat vše

[{"id":"49093765b4b06a62","type":"inject","z":"ac835e53f642e5db","name":"","props":[{"p":"payload"},{"p":"topic","vt":"str"}],"repeat":"","crontab":"","once":false,"onceDelay":0.1,"topic":"","payload":"","payloadType":"date","x":120,"y":1920,"wires":[["a4e2ea4012852f8b"]]},{"id":"a4e2ea4012852f8b","type":"api-current-state","z":"ac835e53f642e5db","name":"","server":"32d979eb.46fec6","version":3,"outputs":1,"halt_if":"","halt_if_type":"str","halt_if_compare":"is","entity_id":"weather.domov_hourly","state_type":"str","blockInputOverrides":false,"outputProperties":[{"property":"payload","propertyType":"msg","value":"","valueType":"entityState"},{"property":"data","propertyType":"msg","value":"","valueType":"entity"}],"for":"0","forType":"num","forUnits":"minutes","override_topic":false,"state_location":"payload","override_payload":"msg","entity_location":"data","override_data":"msg","x":370,"y":1920,"wires":[["2d71810bde71b77f","a0d75783d9c0496d"]]},{"id":"2d71810bde71b77f","type":"debug","z":"ac835e53f642e5db","name":"debug 4","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"true","targetType":"full","statusVal":"","statusType":"auto","x":720,"y":1920,"wires":[]},{"id":"a0d75783d9c0496d","type":"function","z":"ac835e53f642e5db","name":"CheckHourMatch","func":"let hourlyForecast = msg.data.attributes.forecast || [];\n\nhourlyForecast = hourlyForecast.sort(function(a, b){return a.temperature-b.temperature}).slice(2);\nmsg.hourlyForecast = hourlyForecast;\n\nlet hourMatch = false;\nlet hourMatchObj = {};\nlet currHour = new Date().getUTCHours();\n//node.warn(\"CheckHourMatch / currHour: \" + currHour);\n\nhourlyForecast.forEach(function(frcObj) {\n    let frcHour = new Date(frcObj.datetime).getUTCHours();\n    if (frcHour ==  currHour) {\n        //node.warn(\"CheckHourMatch / Hour match!\");\n        //node.warn(\"CheckHourMatch / rfcHour: \" + frcHour);\n        //node.warn(\"CheckHourMatch / frcObj: \" + JSON.stringify(frcObj));\n        hourMatch = true;\n        hourMatchObj = frcObj;\n        return;\n    }\n});\n\nmsg.hourMatch = hourMatch;\nmsg.hourMatchObj = hourMatchObj;\n\nreturn msg;","outputs":1,"timeout":0,"noerr":0,"initialize":"","finalize":"","libs":[],"x":250,"y":2000,"wires":[["2d71810bde71b77f","4e88d742b7145b33"]]},{"id":"4e88d742b7145b33","type":"switch","z":"ac835e53f642e5db","name":"","property":"hourMatch","propertyType":"msg","rules":[{"t":"true"},{"t":"else"}],"checkall":"false","repair":false,"outputs":2,"x":450,"y":2000,"wires":[["b6bf615233e401ac"],["4d93a0a93f1d9bc7"]]},{"id":"b6bf615233e401ac","type":"api-call-service","z":"ac835e53f642e5db","d":true,"name":"call service - match","server":"32d979eb.46fec6","version":5,"debugenabled":false,"domain":"","service":"","areaId":[],"deviceId":[],"entityId":[],"data":"","dataType":"jsonata","mergeContext":"","mustacheAltTags":false,"outputProperties":[],"queue":"none","x":710,"y":1980,"wires":[[]]},{"id":"4d93a0a93f1d9bc7","type":"api-call-service","z":"ac835e53f642e5db","d":true,"name":"call service - no match","server":"32d979eb.46fec6","version":5,"debugenabled":false,"domain":"","service":"","areaId":[],"deviceId":[],"entityId":[],"data":"","dataType":"jsonata","mergeContext":"","mustacheAltTags":false,"outputProperties":[],"queue":"none","x":720,"y":2040,"wires":[[]]},{"id":"32d979eb.46fec6","type":"server","name":"Home Assistant","version":5,"addon":true,"rejectUnauthorizedCerts":true,"ha_boolean":"y|yes|true|on|home|open","connectionDelay":true,"cacheJson":true,"heartbeat":false,"heartbeatInterval":30,"areaSelector":"friendlyName","deviceSelector":"friendlyName","entitySelector":"friendlyName","statusSeparator":"at: ","statusYear":"hidden","statusMonth":"short","statusDay":"numeric","statusHourCycle":"h23","statusTimeFormat":"h:m","enableGlobalContextStore":true}]

Beny
Pokročilý
Pokročilý
Příspěvky: 108
Registrován: 17. listopad 2021, 20:29
Dal poděkování: 3 poděkování

Re: Automatizace - zavolání služby dle předpovědi počasí

Příspěvek od Beny »

Problém je ten, že již není funkční hodinová předpověď.
Jde to dostat jen přes HTTP request s linkem https://api.met.no/weatherapi/locationf ... 14.1127786.
Tekže pokud by se povedlo z toho vybrat teploty s razítkem a udělat to porovnání bylo by to super. jen upozornění mají tam na prvním místě teploty o dvě hodiny pozadu.

Děkuju

Beny
Pokročilý
Pokročilý
Příspěvky: 108
Registrován: 17. listopad 2021, 20:29
Dal poděkování: 3 poděkování

Re: Automatizace - zavolání služby dle předpovědi počasí

Příspěvek od Beny »

Cesta na předpověď je z http pro teplotu

Kód: Vybrat vše

payload.properties.timeseries[0].data.instant.details.air_temperature

kde 0 značí první teplotu. Potřeba je to od 2 po 14.

Pro čas je cesta

Kód: Vybrat vše

payload.properties.timeseries[0].time

rxw
Začínající autor
Začínající autor
Příspěvky: 22
Registrován: 09. prosinec 2022, 13:48
Dostal poděkování: 2 poděkování

Re: Automatizace - zavolání služby dle předpovědi počasí

Příspěvek od rxw »

Beny píše: 18. září 2023, 20:52 Problém je ten, že již není funkční hodinová předpověď.
Já mám hodinovou předpověď normálně funkční...

hass_weather_hourly.png

Beny
Pokročilý
Pokročilý
Příspěvky: 108
Registrován: 17. listopad 2021, 20:29
Dal poděkování: 3 poděkování

Re: Automatizace - zavolání služby dle předpovědi počasí

Příspěvek od Beny »

Takto jí mohu taky vybrat, ale jako entita není.
Naposledy upravil(a) Beny dne 19. září 2023, 10:05, celkem upraveno 1 x.

Beny
Pokročilý
Pokročilý
Příspěvky: 108
Registrován: 17. listopad 2021, 20:29
Dal poděkování: 3 poděkování

Re: Automatizace - zavolání služby dle předpovědi počasí

Příspěvek od Beny »

Sry za screen mobilem, přistupuju teď na HA vzdáleně.
Přílohy
IMG_20230919_092920.jpg

Beny
Pokročilý
Pokročilý
Příspěvky: 108
Registrován: 17. listopad 2021, 20:29
Dal poděkování: 3 poděkování

Re: Automatizace - zavolání služby dle předpovědi počasí

Příspěvek od Beny »

Jakou máš verzi HA?

Beny
Pokročilý
Pokročilý
Příspěvky: 108
Registrován: 17. listopad 2021, 20:29
Dal poděkování: 3 poděkování

Re: Automatizace - zavolání služby dle předpovědi počasí

Příspěvek od Beny »

Tady na to přišel sám velký guru Pete30
Přílohy
Screenshot 2023-09-19 at 10-10-30 Hodinová předpověď počasí jako senzor - Stránky 2.png

Odpovědět

Zpět na „Automatizace“