Powiadomienia, zasilanie listy

Zapraszam do dyskusji nad poniższym materiałem:

Dodatkowo załączam swoje procesy, które omawiałem w materiale:
podproces powiadomień.json (16,9 KB)
czyszczenie listy alarmów i ostrzeżeń.json (4,3 KB)

Poniżej kod dla karty markdown jaka pokazuje na materiale:

#  <font color = 'red' > Lista alarmów
{% for i in states.input_select.alarmy.attributes.options %}
 -  {{i }} 
{%- endfor %}
</font> 

Pamiętajcie, że do poprawnego ich działania wymagane są encje pomocników omówione w materiale.

3 polubienia

Cześć
@artur Pytanie o małą modyfikację - na bazie list chcę na jakiś czas zrobić sobie listę na której będzie log wybranych zdarzeń ( zamknięcie , otwarcie itp.)
O ile dołożenie wiadomości po wykonaniu zdarzenia i kompozycja nowej listy to nie problem to nie mogę przebrnąć przez dopisanie do tekstu daty i godziny.
Kombinowałem przez +msg.xxx do treści ale jestem za cienki w komponowaniu składni :confused: Prośba o podpowiedź.
Chyba że NR ma wbudowany mechanizm logów który można od razu wrzucić sobie na listę?

@Arti_78 Dzisiaj już trzymam się z daleka od komputera aby nie narazić się żonie :grinning: ale jutro max w poniedziałek dam Tobie rozwiązanie.

1 polubienie

@Arti_78 chcesz do każdej wiadomości na liście dopisać datę i czas kiedy się pojawiła tak?

Tak. Zrobić sobie taki osobny log dla wybranych elementów.

@Arti_78 przykładowy kod może wyglądać tak:

var czas = new Date();
msg.payload =
{
    "data":
    {
        "message": czas+" To jest treść wiadomości",
    }
}
return msg;

Wynikiem tego będzie tekst wyglądający następująco:
Mon Sep 14 2020 10:58:16 GMT+0200 (Central European Summer Time) To jest treść wiadomości

Jeżeli ten format jest dla Ciebie słaby to można go zmienić np tak:

var czas = new Date();
var czas_formatowany = czas.getDate() + "-" + (czas.getMonth() + 1) + "-" + czas.getFullYear() + " " + czas.getHours() + ":" + czas.getMinutes() + ":" + czas.getSeconds()
msg.payload =
{
    "data":
    {
        "message": czas_formatowany+" To jest treść wiadomości",
    }
}
return msg;

Wtedy wynik masz zdecydowanie czytelniejszy:
14-9-2020 11:10:4 To jest treść wiadomości

1 polubienie

Dziękuję, jak zawsze - niezawodnie :slight_smile:

1 polubienie

Powinno być zero przed liczbą sekundy chyba, że to tylko literówka:

14-9-2020 11:10:04 To jest treść wiadomości

A może tak:

var czas = new Date().toLocaleString("pl-PL");
1 polubienie

nie tam nie ma zera to nie literówka.

Zmiana locale jest jak najbardziej ok ale zasugerowałem drugie podejście aby pokazać jak można sobie samu zbudować taki format jaki się chce.

Ostatnio kolega @artpc pokazał w wątku fajną opcje animowanego podświetlenia karty, może dałoby się to zrobić w karcie “zasilanie listy” - zacząłem próbować, ale niestety nic mi z tego nie wyszło. Może ktoś lepiej zna się na css i podpowie jak to spróbować zaimplementować w ww. kartach (alarmy podświetlenie na czerwono i ostrzeżenia na pomarańczowo)?

Też macie w logach Core takie błędy ?

2021-05-11 10:55:13 ERROR (MainThread) [homeassistant.helpers.template] Template variable error: 'None' has no attribute 'attributes' when rendering '<font color = 'red' ><font size = 5> Lista alarmów </font>
{% for i in states.input_select.alarmy.attributes.options %}
-  {{i }} 
{%- endfor %}
</font>'
2021-05-11 10:55:13 ERROR (MainThread) [homeassistant.helpers.template] Template variable error: 'None' has no attribute 'attributes' when rendering '<font color = 'yellow' > <font size = 5>Lista ostrzeżeń</font> 
{% for i in states.input_select.warnings.attributes.options %}
-  {{i }} 
{%- endfor %}
 </font>'

Nie zauważyłem ich wcześniej więc chyba to po którejś z aktualizacji.

@artur Możesz wrzucić swój proces powiadomień, w sensie o czym powiadamiasz (otwarte okno, etc) - inspiracji szukam :slight_smile:

Po ostatniej aktualizacji błędów w logu już nie widać.

@mstefanowicz Generalnie mam powiadomienia o otarciu okien np gdy w nocy to alarm gdy na dworze poniżej 10C to po 15 minutach przypomina o zamknięciu.
Powiadomienia o zmianie pogody szczególnie o jakiś burzach itp
Powiadomienia związane z lokalizacją użytkowników, powiadomienia alarmowe, róznego rodzaju statusy. Powiadomienia o róznych wydarzeniach np F1 czy mecz Chelsea itp itd

@artur OK, dzięki :slight_smile:

Jak masz synchronizowany kalendarz drużyny i później odpalone to z powiadomieniami?

@czarny1p tutaj znajdziesz Procesy z życia wzięte - Powiadomienia dla kalendarza

Kto czuje się na siłach i doda do powiadomień datę i godzinę? :slight_smile:

Najprościej przez dodanie składni:

{{now().strftime('%H:%M w dniu %d-%m-%Y')}}

którą dodajesz do wiadomości np:

msg.payload=
{
    "data":
    {
    "message":"Wykryto ruch w domu o godz. {{now().strftime('%H:%M w dniu %d-%m-%Y')}}",
    "title": "UWAGA"
    }
}
return msg;

To faktycznie działa w powiadomieniu na telefon/WhatsUp, ale źle prezentuje się w karcie markdown:

Chodzi mi bardziej o to, żeby sama funkcja Wzbogacenie listy (z procesu Artura) do każdego prezentowanego wpisu dodawała chociaż godzinę.