Hej. Chciałem stworzyć kartę “obraz (glance)”, która będzie wyświetlać ostatni screenshoot z kamery.
I tak:
Kamera robi screenshoot do katalogu, dodając unikalną nazwę na podstawie takiej składni:
filename: >-
/config/www/cam/camera.lpr_{{ now ().year }}_{{ now ().month }}_{{ now ().day }}_{{ now ().hour }}_{{ now ().minute }}.jpg"
następnie stworzyłem encje kamery:
camera:
- platform: local_file
name: local_cam
file_path: /config/cam/camera.lpr_{{ now ().year }}_{{ now ().month }}_{{ now ().day }}_{{ now ().hour }}_{{ now ().minute }}.jpg"
Dodając kartę obraz glance, kamera local_cam jest dostępna, ale nie wyświetla ostatniego zrzutu erkanu, tj wogóle nic nie wyświetla.
Czy file_path powinien wyglądać inaczej ? Lub jakiej ściezki użyć, aby “najświeższe” zdjęcie było wskazywane
Nie napisałeś w jaki sposób robisz screenshoot-a. Dla testu uruchom poniższy skrypt którego “wywołanie” zrobi zawsze “świeże” zdjęcie. I dopiero to zdjęcie spróbuj wyświetlić w karcie.
Istnieje jeszcze jeden “problem” (na własne życzenie): robisz snapshota gdzie nazwa zawiera aktualną minutę, jeżeli po minucie próbujesz wyswietlić taki obraz korzystając z now ().minute to niestety takiego pliku po prostu nie ma, przykład:
13:15: {{ now ().hour }}{{ now ().minute }}.jpg czyli snapshot ma w nazwie 1315.jpg
13:16: {{ now ().hour }}{{ now ().minute }}.jpg czyli próbujesz wyświetlić plik z nazwą 1316.jpg a takiego pliku przecież nie ma.
Nazwa pliku powinna być niezmienna, musisz tylko wymusić np. w automatyzacji wykonywanie snapshotów co określony czas np. co minutę albo robić snaphosty dynamicznie, np. w momencie wykrycia ruchu.
Ok zmieniłem, aby minuta nie była dopisywana i tak: w fake_kamerze i usługe camera.snapshoot mam ustawioną ścieżkę:
file_path: /config/www/cam/camera.lpr_{{ now().strftime("%Y%m%d-%H%M")}}.jpg
jednak nadal brak efektu.
Podobnie mam też skonfigurowany telegram i tam działa ok
To jest ścieżka w systemie linux więc to {{ now().strftime("%Y%m%d")}} nie zadziała bo to przecież składnia Pythona , powinna być składnia shella czyli:
➜ / date +"%H""%M"
1417
➜ / date +"%Y""%m""%d"
20221011
➜ / date +"%Y""%m""%d"-"%H""%M"
20221011-1418
Bardzo Ci dziękuje za wnikliwe spojżenie. No nic, zostawie na razie ścieżke statyczną camera.jpg. Najważniejsze, że w ten sposób działa, choć fajnie by było mieć historie zrzutów
Jesteś wielki, działa i umnie ! Dziekuje serdecznie.
Odkryłem dodatkowo, że w kamerze mam możliwość pobrania still image poprzez wywołania URL: http://admin:pass@IP/ISAPI/Streaming/channels/101/picture
To by było całkiem dobre rozwiązanie aby wywołać bezpośrednio screenshoot na przykłądowy picture-glance, jednak coś co nie kończy się na .jpg i zaczyna od http, to nie da się teog wyświetlić w ten sposób.
A w jaki sposób teraz masz dodaną kamerę, z której robisz screenshoty? Integracja Generic Camera - Home Assistant? W tej integracji możesz podać strumień z kamery albo link do statycznego obrazu: " You must enter a URL in at least one of the fields Still Image URL or Stream Source URL, the others are optional."
Możesz także, po prostu, w dashboarcie, w Konfiguracja karty Obraz (glance) podać scieżkę do Still Image URL kamery.
Link: http://admin:pass@10.4.4.3/ISAPI/Streaming/channels/101/picture? otwiera snapa w przeglądarce (wczośniej podałem linka bez autentyfikacji - okazało się że z cache zaciągnął logowanie).
Jeżeli wkleje w/w link do VLC i otworze strumień w sieci to mrugnie 1 klatką
Nie ma mnie obecnie przy serwerze testowym, ale mam tak:
1: http://admin:pass@10.4.4.3/ISAPI/Streaming/channels/101/picture?
2: rtsp://admin:pass@110.4.4.3:554/Streaming/Channels/101/
3: TCP
4: basic (ustawiłem basic/digest w kamerze)
5. admin
6: pass
7: 2
8: bez weryfikacji