ozzy88
(Igor)
15 Listopad 2022 10:51
1
Witam wszystkich,
Chciał bym zrobić encję która podawała by wartość dziesiętną w przedziale od 0 do 1 w zależności od stanu słońca z uługi sun.
Czyli od wschodu do południa wartość rośnie od 0 do 1 a potem spada do 0.
Naskrobałem coś takiego ale słabo mi to działa
chciał bym wykorzystać to w karcie adizanni / floor3d-card jako wejście dla parametru globalLightPower i innych automatyzacji
template:
- sensor:
- name: "sun lux"
state: >
{% set sunjson = {
"noc": as_timestamp(state_attr('sun.sun', 'next_midnight'))-(3600 * 4),
"poranek": as_timestamp(state_attr('sun.sun', 'next_rising')) - (24*3600),
"teraz": as_timestamp(now()),
"polodnieminus": as_timestamp(state_attr('sun.sun', 'next_noon')) - (24*3600),
"polodnie": as_timestamp(state_attr('sun.sun', 'next_noon')),
"wschod": as_timestamp(state_attr('sun.sun', 'next_setting'))
} %}
{% set sunkalkulacja = {
"noc": (((sunjson.teraz - sunjson.noc)/(sunjson.noc - sunjson.polodnieminus))*-1),
"poranek": (((sunjson.polodnie - sunjson.teraz)/(sunjson.polodnie - sunjson.wschod))*-1)
} %}
{% if state_attr('sun.sun', 'rising') == false -%}
{% if sunkalkulacja.noc > 0.15 -%}
{{ sunkalkulacja.noc }}
{%- else -%}
{{ 0.15 }}
{%- endif %}
{%- else -%}
{% if sunkalkulacja.poranek > 0.15 -%}
{{ sunkalkulacja.poranek }}
{%- else -%}
{{ 0.15 }}
{%- endif %}
{%- endif %}
artpc
(artur)
15 Listopad 2022 11:50
2
Te parametry nie są wystarczające ?
next_dawn: 2022-11-16T05:46:22.844224+00:00
next_dusk: 2022-11-15T15:46:33.021740+00:00
next_midnight: 2022-11-15T22:46:09+00:00
next_noon: 2022-11-16T10:46:03+00:00
next_rising: 2022-11-16T06:25:20.622579+00:00
next_setting: 2022-11-15T15:07:46.704135+00:00
elevation: 17.74
azimuth: 194.9
rising: false
friendly_name: Sun
Jak ta automatyzacja ma się do aktualnego stanu na niebie, pochmurne niebo, deszcz?
Sam używam encji sun.sun
do automatyzacji rolet ale w połączeniu z pogodą i azymutem słońca.
1 polubienie
macek
15 Listopad 2022 12:45
3
Pochwal się automatyzacjami albo logiką automatyzacji.
artpc
(artur)
15 Listopad 2022 12:49
4
Jeżeli odpowiada ci Automatyzacja w NR
ozzy88
(Igor)
15 Listopad 2022 12:53
5
Dla mnie to ma być wartość pomocnicza.
Znajomy nie chce czujnika zmierzchu więc chciał bym zrobić w ten sposób.
Korzystam z informacji dawanych przez sun.sun ale działa mi to fajnie po południu, a przed południem otrzymuję dziwne wartości. zamotałem się już
Edit:
Ok, poradziłem sobie.
Zamieszczam kod, może komuś się przyda.
template:
- sensor:
- name: "sun lux"
icon: mdi:theme-light-dark
state: >
{% set sunjson = {
"noc": as_timestamp(state_attr('sun.sun', 'next_midnight'))-(3600 * 5),
"poranek": as_timestamp(state_attr('sun.sun', 'next_rising')) - (24*3600),
"teraz": as_timestamp(now()),
"polodnieminus": as_timestamp(state_attr('sun.sun', 'next_noon')) - (24*3600),
"polodnie": as_timestamp(state_attr('sun.sun', 'next_noon')),
"wschod": as_timestamp(state_attr('sun.sun', 'next_setting'))
} %}
{% set sunkalkulacja = {
"noc": (((sunjson.teraz - sunjson.noc)/(sunjson.noc - sunjson.polodnieminus))*-1),
"poranek": (((sunjson.teraz - sunjson.wschod)/(sunjson.wschod - sunjson.polodnieminus))*-1)
} %}
{% if state_attr('sun.sun', 'rising') == false -%}
{% if sunkalkulacja.noc > 0.05 -%}
{% if states('weather.forecast_dom') == 'cloudy'-%}
{{ sunkalkulacja.noc * 0.8 }}
{% elif states('weather.forecast_dom') == 'partlycloudy' %}
{{ sunkalkulacja.noc * 0.9}}
{% elif states('weather.forecast_dom') == 'fog' %}
{{ sunkalkulacja.noc * 0.7}}
{% elif states('weather.forecast_dom') == 'hail' %}
{{ sunkalkulacja.noc * 0.9}}
{% elif states('weather.forecast_dom') == 'lightning' %}
{{ sunkalkulacja.noc * 0.9}}
{% elif states('weather.forecast_dom') == 'lightning-rainy' %}
{{ sunkalkulacja.noc * 0.9}}
{% elif states('weather.forecast_dom') == 'pouring' %}
{{ sunkalkulacja.noc * 0.9}}
{% elif states('weather.forecast_dom') == 'snowy-rainy' %}
{{ sunkalkulacja.noc * 0.9}}
{% elif states('weather.forecast_dom') == 'snowy' %}
{{ sunkalkulacja.noc * 0.9}}
{%- else -%}
{{ sunkalkulacja.noc }}
{%- endif %}
{%- else -%}
{{ 0.05 }}
{%- endif %}
{%- else -%}
{% if sunkalkulacja.poranek > 0.05 -%}
{% if states('weather.forecast_dom') == 'cloudy'-%}
{{ sunkalkulacja.poranek * 0.6 }}
{% elif states('weather.forecast_dom') == 'partlycloudy' %}
{{ sunkalkulacja.poranek * 0.9}}
{% elif states('weather.forecast_dom') == 'fog' %}
{{ sunkalkulacja.poranek * 0.8}}
{% elif states('weather.forecast_dom') == 'hail' %}
{{ sunkalkulacja.poranek * 0.9}}
{% elif states('weather.forecast_dom') == 'lightning' %}
{{ sunkalkulacja.poranek * 0.9}}
{% elif states('weather.forecast_dom') == 'lightning-rainy' %}
{{ sunkalkulacja.poranek * 0.9}}
{% elif states('weather.forecast_dom') == 'pouring' %}
{{ sunkalkulacja.poranek * 0.9}}
{% elif states('weather.forecast_dom') == 'snowy-rainy' %}
{{ sunkalkulacja.poranek * 0.9}}
{% elif states('weather.forecast_dom') == 'snowy' %}
{{ sunkalkulacja.poranek * 0.9}}
{%- else -%}
{{ sunkalkulacja.noc }}
{%- endif %}
{%- else -%}
{{ 0.05 }}
{%- endif %}
{%- endif %}
- name: "sun precent"
unit_of_measurement: "%"
icon: 'mdi:theme-light-dark'
state: >
{% set sunjson = {
"noc": as_timestamp(state_attr('sun.sun', 'next_midnight'))-(3600 * 5),
"poranek": as_timestamp(state_attr('sun.sun', 'next_rising')) - (24*3600),
"teraz": as_timestamp(now()),
"polodnieminus": as_timestamp(state_attr('sun.sun', 'next_noon')) - (24*3600),
"polodnie": as_timestamp(state_attr('sun.sun', 'next_noon')),
"wschod": as_timestamp(state_attr('sun.sun', 'next_setting'))
} %}
{% set sunkalkulacja = {
"noc": ((((sunjson.teraz - sunjson.noc)/(sunjson.noc - sunjson.polodnieminus))*-1) * 100),
"poranek": ((((sunjson.teraz - sunjson.wschod)/(sunjson.wschod - sunjson.polodnieminus))*-1) * 100),
"zaokr": 4
} %}
{% if state_attr('sun.sun', 'rising') == false -%}
{% if sunkalkulacja.noc > 0 -%}
{% if states('weather.forecast_dom') == 'cloudy'-%}
{{ sunkalkulacja.noc * 0.8 }}
{% elif states('weather.forecast_dom') == 'partlycloudy' %}
{{ sunkalkulacja.noc * 0.9}}
{% elif states('weather.forecast_dom') == 'fog' %}
{{ sunkalkulacja.noc * 0.7}}
{% elif states('weather.forecast_dom') == 'hail' %}
{{ sunkalkulacja.noc * 0.9}}
{% elif states('weather.forecast_dom') == 'lightning' %}
{{ sunkalkulacja.noc * 0.9}}
{% elif states('weather.forecast_dom') == 'lightning-rainy' %}
{{ sunkalkulacja.noc * 0.9}}
{% elif states('weather.forecast_dom') == 'pouring' %}
{{ sunkalkulacja.noc * 0.9}}
{% elif states('weather.forecast_dom') == 'snowy-rainy' %}
{{ sunkalkulacja.noc * 0.9}}
{% elif states('weather.forecast_dom') == 'snowy' %}
{{ sunkalkulacja.noc * 0.9}}
{%- else -%}
{{ sunkalkulacja.noc }}
{%- endif %}
{%- else -%}
{{ 0 }}
{%- endif %}
{%- else -%}
{% if sunkalkulacja.poranek > 0 -%}
{% if states('weather.forecast_dom') == 'cloudy'-%}
{{ sunkalkulacja.poranek * 0.6 }}
{% elif states('weather.forecast_dom') == 'partlycloudy' %}
{{ sunkalkulacja.poranek * 0.9}}
{% elif states('weather.forecast_dom') == 'fog' %}
{{ sunkalkulacja.poranek * 0.8}}
{% elif states('weather.forecast_dom') == 'hail' %}
{{ sunkalkulacja.poranek * 0.9}}
{% elif states('weather.forecast_dom') == 'lightning' %}
{{ sunkalkulacja.poranek * 0.9}}
{% elif states('weather.forecast_dom') == 'lightning-rainy' %}
{{ sunkalkulacja.poranek * 0.9}}
{% elif states('weather.forecast_dom') == 'pouring' %}
{{ sunkalkulacja.poranek * 0.9}}
{% elif states('weather.forecast_dom') == 'snowy-rainy' %}
{{ sunkalkulacja.poranek * 0.9}}
{% elif states('weather.forecast_dom') == 'snowy' %}
{{ sunkalkulacja.poranek * 0.9}}
{%- else -%}
{{ sunkalkulacja.noc }}
{%- endif %}
{%- else -%}
{{ 0 }}
{%- endif %}
{%- endif %}
1 polubienie
czekanm
(MAri0)
6 Marzec 2023 10:47
7
Witam, czy na priva można prosić o ile to jeszcze aktualne flowa z obsługi rolet na podstawie pogody i azymutu słońca w NR z góry dziękuje.
artpc
(artur)
6 Marzec 2023 20:37
8
czekanm
(MAri0)
8 Marzec 2023 09:55
9
Dzięki no to jest co chciałem. Pozdrawiam