Potrzebuję pomocy w wykonaniu “małej” kontroli rodzicielskiej a dokładnie kontroli włączenia telewizora.
Ogarnąłem sobie już zliczanie czasu korzystania, wyłączanie TV, wł/wy całej “kontroli” ale ugrzęzłem z tematem dodania “dodatkowego” czasu oglądania.
Nie chcę wchodzić w noda i ręcznie zmieniać wartości ale chciałbym dodać czas z poziomu panelu
Zależy jak wygodnie byłoby to obsługiwać… w HA trzeba zrobić pomocnika np. suwak, lista lub wprowadzanie czasu.
Tą informacje przekazać do NR w celu korekty czasu… nic nie pokazałeś, więc nie wiadomo jak mierzysz czas i jak wpłynąć na jego długość.
Ten wprowadzany, dodatkowy czas (“extra time”) musiałby być sumowany z “normal time” i dopiero sprawdzany na bieżąco w procesie. Po wyłączeniu TV extra time dobrze wyzerować automatycznie.
Przykład takiej korekty, o której pisze @RobinI30 , możesz znaleźć w tym wątku Automatyczne nawodnienie trawnika - ESP32 - #46 przez RobinI30
Co prawda nie dotyczy to wyłączania TV, ale zasada, czy idea jest taka jakiej chyba potrzebujesz.
Jest tam gotowy flow do zaimportowania i modyfikacji do własnych potrzeb.
Jako idea to może tak… jednak w tamtym korekta uwzględniana jest raz - na początku procesu.
Tu przydałaby się możliwość dynamicznej zmiany, ponieważ z reguły pod koniec oglądania jest - “tata jeszcze…”
Dziękuję za rozpoczęcie dyskusji. Przesyłam PrtSc tego co mam zrobione.
Czas liczę poprzez “history stats”. Zrobiłem też “pomocnika” jako switch aby wł/wy całą automatyzację.
Bawiąc się stworzyłem noda w którym wartość ustalam przez pomocnika w panelu ale to nie jest to o co chodzi
Twój proces, po za odczytywaniem stanów encji z HA nic nie robi i w zasadzie nie jest do uratowania.
Nie da się go w żaden sposób poprawić tylko napisać od nowa.
Z załączonego obrazka widać, że jeszcze niewiele wiesz (bez urazy )
Dla takich zastosowań porównania czasu najlepiej operować na znaczniku timestamp.
Po włączeniu TV zapamiętujesz znacznik w którym nastąpiło włączenie - “start_time”.
Za pomocą noda inject co minutę uruchamiasz proces. Ten nod zwraca znacznik obecnego czasu “now_time”.
sprawdzasz warunek (now_time - start_time) < (dozwoly czas + extra) - nodem warunkowym jest switch
!!! timestamp w NR jest w milisekndach więc dozwolony czas i extra trzeba przeliczyć na [ms]
Operacje na czasie “zegarowym” na tym etapie są za trudne.
Minej/więcej takie coś: