Hej.
Jak można dopisać atrybut do encji poprzez NR?
W dalszym etapie, atrybut ten chciałbym wykorzystywać między innymi w kartach.
przez API Node
z POST
do HA w odpowiedni endpoint, np:
z data:
{
"state": "{{payload.temperature}}",
"attributes": {
"temperature": "{{payload.temperature}}"
}
}
Dzięki @rm-rf, to bardzo pouczający krok, ale zapytam jeszcze o jedną sprawę, bo być może dałoby się to ogarnąć razem tutaj:
A jak wpiąć to w data, na przykład jako xxx atrybut? W karcie działa pięknie.
{{ ((as_timestamp(states.calendar.smieci_komunalne.attributes.start_time) -
as_timestamp(now()))/ (60*60*24)) | round(0,"floor") }} days
tutaj masz jinja a potrzebujesz funkcji z js. Pierw node, który poda calendar.smieci_komunalne
na funkcję JS i tam musisz obrobić dane. Nie do końca wiem co chcesz zrobić ale wnioskuję, że przekonwertować start_time i go wpisać jako attributes, zgadza się? Nie wiem w jakiej formie jest zapisany start time, ale w nodzie JS musisz sobie go po prostu przekonwertować na dogodny dla Ciebie format i tyle. Jak chcesz więcej pomocy to daj co wyrzuci debug z NR dla danego state bo tak to wróżenie z fusów.
Moje entity z kalendarza posiada tylko informację o dacie odbioru śmieci. Robiąc kalkulację na start_time i czasie bieżącym liczę ile jest różnicy w dniach i tą różnicę chcę wstawić do atrybutów, tak aby można było ją wykorzystać ponownie w różnych miejscach bez ponownego liczenia.
Zmieniłem wedle sugestii i nadal gdzieś mam babola.
Błąd mam na API node:
Error Message: Request failed with status code 400
flows (1).json (2,9 KB)
Zerknąłem na ten flow.
{
"attributes": {
"range": "{{ range }}"
}
}
Nie możesz ustawić tego tylko tak. Musi być cały obiekt z state
zdaje mi się. Tak więc musisz pierw pobrać state i go tu też podać albo na oryginalnym pobranym obiekcie zmienić tylko sekcję attributes.
[EDIT]
Jeszcze jedna rzecz. W HA musisz włączyć API
- Home Assistant API - Home Assistant
Wielkie dzięki @rm-rf ,
Udało mi się w końcu. Jako totalny nowicjusz w JS i jinja to cieszę się bardzo
A ostatecznie skrypt wygląda tak:
Ale co mi najbardziej pomogło to sugestia skorzystania z noda API.
Dzięki jeszcze raz.
Pozdrawiam