{{ state_attr('sensor.darek_last_notification', 'android.text') }} wynik = Ogród (E71160330) Motion Detection Alarm(2021-09-22 16:25:34)
{{ is_state('sensor.darek_last_notification', 'Ogród (E71160330) Motion Detection Alarm(2021-09-22 16:25:34)') }} wynik = True
{{ is_state('sensor.darek_last_notification', '(E71160330)')}} wynik False
Mam Trzy kamery do których integracja nie działa(EZVIZ) tylko strumień RTSP.
I chciałbym wykorzystać encje z aplikacji mobilnej który daje sensor last_notification. Problem polega na tym że info które przychodzi zawsze zawiera datę i czas przez co nie potrafię określić która to z kamer alarmuje. Jaki szablon zrobić aby wyciągał tylko numer kamery? lub ograniczał wyświetlanie daty i czasu??
Treści wysyłania powiadomienia z aplikacji Ezviz zmienić nie mogę.
Edit: Znalazłem coś takiego ale nie mam pojęcia jak to zastosować i czy zadziała
Jednak czas wysłania powiadomienia z aplikacji ezviz jest potrzebny aby użyć tych szablonów do automatyzacji bo jeśli ta sama kamera wykryje kilka razy ruch to dane powiadomienia się nie zmieniają i automatyzacja nie jest ponownie wyzwalana. potrzebny by tu chyba był kolejny szablon sprawdzający stan ostatniego powiadomienia o której ono godzinie było i jeśli jest inna godzina to ma wykonać automatyzację dobrze myślę ?? i jak takie coś stworzyć ?
No ładnie to wykreowałeś dzięki tobie będę o kilka siwych włosów mniej . W relu postawił bym Ci .
Wielkie dzięki. A generalnie zastanawiam się w jaki sposób dobierasz składnie tego szablonu??
To jest regex. Np. \d to dowolna cyfra, zapis \d{2} oznacza że chcesz dokładnie 2 cyfry, dalsza analiza tego przypadku jest prosta.
Możesz sobie testować składnię np. tutaj:
Chyba coś nie do końca to funguje jak powinno bo sensor.darek_last_notification nie aktualizuje czujnika który stworzyłeś sensor.darek_last_notification_time chyba że ja coś spierniczyłem ?
w tym zdj stan kamery E71160330 powiniem być= true
a stan kamery E75829693 = false
Wygląda teraz poprawnie
tylko zachodzę w głowę jak teraz poprawnie sformułować automatyzację, że numer kamery z darek_last_notification_time ma wyzwalać akcję ale jeśli jest inna data i czasz niż porzednio.
date: ‘{{ states.sensor.darek_last_notification.state | regex_findall_index(find="\d{4}-\d{2}-\d{2}") }}’
time: ‘{{ states.sensor.darek_last_notification.state | regex_findall_index(find="\d{2}:\d{2}:\d{2}") }}’
człowiek się uczy ale cały czas brakuje czegoś.
Edit: Albo jeśli jest data i czas inny w darek_last_notification_time to wykona akcję ale warunkiem będzie numer kamery ?
Pytanie co chcesz osiągnąć, kiedy faktycznie chcesz coś zrobić?
Ustawienie triggera na encję sensor.darek_last_notification_time będzie reagować na każdą zmianę - każde wykrycie ruchu, a zakładam że ponowne wykrycie ruchu na kamerze X zmieni stan encji sensor.darek_last_notification tylko z innym czasem niż poprzednio, ale sensor.darek_last_notification_time się zmieni i trigger się wywoła. Jeśli to jest spodziewane zachowanie to lecisz z tematem
Właśnie nie potrafię zastosować warunku coś takiego jak if the condition is different from the previous.
albo
if the time is different from the previous time z sensora darek_last_notification_time to wykonaj akcję pod warunkiem że kamera x jest w powiadomieniu…
Taki trigger będzie uruchamiał się za każdą, dowolną zmianą, nie ważne czy to będzie stan (numer kamery) czy też data/czas(założyłbym nawet że czas będzie się zmieniał zawsze).
W życiu bym nie wpadł na to że do trigera nie trzeba podawać jakiejś wartości zmiennej, zawsze coś wklepywałem jako stan z tąd moje zdziwienie i niemoc w tym temacie haha