Procesy z życia wzięte - Powiadomienia dla kalendarza

Zapraszam do dyskusji w temacie:

oraz do pobrania samego procesu:
Procesy z życia wzięte - Powiadomienia dla kalendarza.json (37,6 KB)

1 Like

Super pomysł, ja to zrobiłem trochę inaczej w przypadku śmieci zrobiłem sobie przypomnienia dzień wcześniej (na podstawie poradnika zasilanie listy) a powiadomienia w dniu idą na telefon i coś takiego mi wyszło:

1 Like

Kalendarz zdechł.

Wszystko działało jak trzeba, aż pewnego dnia karta pokazała “The callendar can’t be loaded from Home Assistant Component”, a zakładka kaledarza stała się pusta- nie wyswietla ani kalendarzy ani wydarzen. Powtórzyłem wszystkie kroki z poradnika 2x i wciąż to samo. Niżej wklejam loga z kalendarza. Jakieś sugestie macie?

Error executing service: <ServiceCall google.scan_for_calendars (c:7be69fb5b34305c2d4c625f9a4dde142)>

Logger: homeassistant.core
Source: components/google/init.py:347
First occurred: 11:54:30 (1 occurrences)
Last logged: 11:54:30

Error executing service: <ServiceCall google.scan_for_calendars (c:7be69fb5b34305c2d4c625f9a4dde142)>
Traceback (most recent call last):
File “/usr/src/homeassistant/homeassistant/core.py”, line 1471, in catch_exceptions
await coro_or_task
File “/usr/src/homeassistant/homeassistant/core.py”, line 1494, in _execute_service
await self._hass.async_add_executor_job(handler.job.target, service_call)
File “/usr/local/lib/python3.8/concurrent/futures/thread.py”, line 57, in run
result = self.fn(*self.args, **self.kwargs)
File “/usr/src/homeassistant/homeassistant/components/google/init.py”, line 257, in _scan_for_calendars
service = calendar_service.get()
File “/usr/src/homeassistant/homeassistant/components/google/init.py”, line 347, in get
http = credentials.authorize(httplib2.Http())
AttributeError: ‘NoneType’ object has no attribute ‘authorize’

Świetnie to wygląda. Masz fajne pomysły Artur :grinning:
Większość powiadomień mam zrobionych zgodnie z Twiomi wskazówkami :grinning:
Może w przyszłości można by spróbować zrobić " Actionable Notifications" dla urządzeń z androidem ?
To byłoby dobre w przypadku Garbage Collection bo możnaby wybrać opcję że śmieci zostały już wystawione i wtedy następne powiadomienia by już nie przychodziły.
Mam kawałek testowego flow, jakby to mogło wyglądać w Node-Red.
actionable notifications test.json (1,1 KB)

Dzięki. Powiadomienia z akcjami są w trakcie realizacji. Pewnie niedługo będzie materiał

Takie pytanie mam w kalendarzu dodane dwa wydarzenia jako całodzienne. W karcie kalendarz są dwie kropeczki czyli HA odświeżyło dane. Jak wygląda to w NR bo wygląda mi na to że pobierane jest tylko pierwsze wydarzenie.

Encja przechowuje tylko informacje o najbliższej pozycji kalendarza

@artur a jest inna możliwość żeby w NR wyciągnąć wydarzenia z danego dnia?

@Mariusz_Kuciński Nie z HA. Ponieważ HA nigdzie ich nie trzyma. To, że widzisz je w kalendarzu to małe oszustwo integracji :slight_smile:

1 Like

@artur szkoda. Muszę zobaczyć w API google jak wygląda pobieranie danych z kalendarza.

Trochę lektury i prawie działa
Events: list | Calendar API | Google Developers

Mój pierwszy problem polega na formatowaniu daty. Na tę chwilę wymyśliłem coś takiego


kalendarz.json (2,1 KB)

Drugi problem to lista wydarzeń zwracanych prze API jeśli mam dodane w kalendarzu wydarzenia całodzienne. Gdy pobieram np. wydarzenia z dnia 2021-04-23 to na liście mam też wydarzenia z 2021-04-24.

Jakiś czas temu przy pomocy kolegów z tej grupy stworzyliśmy “moje procesy z życia wzięte”.
Mam jednak problem z “wywozem nieczystości” nie potrafię wyciągnąć prawidłowo z kalendarza głównego do calendar.wywoz_nieczystosci aby w nim były wszystkie zdarzenia dnia. W messages pojawia mi się tylko pierwsze zdarzenie, np. Odpady zmieszane
Mój wpis w google_calendars.yaml jest taki (interesuje mnie ostatni tworzony kalendarz “wywoz_nieczystosci”):
—ciach—

- cal_id: xxxxxxmoje_wpisyxxxxxx@group.calendar.google.com
  entities:
  - device_id: papier_tektura
    ignore_availability: true
    name: Papier
    track: true
    search: Papier i tektura
  - device_id: wielkogabarytowe
    ignore_availability: true
    name: Wielkogabarytowe
    track: true
    search: Meble i odpady wielkogabarytowe
  - device_id: tworzywa_sztuczne
    ignore_availability: true
    name: Tworzywa sztuczne
    track: true
    search: Tworzywa sztuczne
  - device_id: papier_tektura
    ignore_availability: true
    name: Papier
    track: true
    search: Papier i tektura
  - device_id: odpady_zmieszane
    ignore_availability: true
    name: Odpady zmieszane
    track: true
    search: Odpady zmieszane
  - device_id: szklo
    ignore_availability: true
    name: Szkło
    track: true
    search: Szkło 
  - device_id: odpady_bio
    ignore_availability: true
    name: Bio
    track: true
    search: Odpady biodegradowalne  
  - device_id: wywoz_nieczystosci
    ignore_availability: true
    name: "Wyw\xF3z nieczysto\u015Bci"
    track: true

EDIT:
Nie ma odpowiedzi a ja dalej nie wiem jak ruszyć kwestię kalendarza. Czy da radę wyciągnąć z głównego kalendarza kilka zdarzeń? np.

device_id: odpady_bio
ignore_availability: true
name: Bio
track: true
search: Odpady biodegradowalne  

<
czy można w search wstawić kilka parametrów wyszukiwania?

Jeżeli nie da się tak zrobić to mam każdy kalendarz z osobna dla papier, zmieszane, szkło, bio.
Jak zrobić w node red aby głośnik odczytał mi co będzie jutro wywożone lub co będzie dzisiaj wywożone. flows (2).json (5,6 KB)

Załączam mój flow, tylko że ten przekazuje mi jedną pozycję z kalendarza, mam też każde śmieci w osobnych kalendarzach ale nie wiem jak je połączyć aby zostały prawidłowo odczytane dzień przed i w dniu wywożenia.

@jokers edytuj Swoje posty - nie pisz jednego pod drugim.

Witam. To mój pierwszy post.
Zrobiłem wszystko według poradnika, z tym że do powiadomień używam pushover, dostaje komunikaty ale o treści off. Wiecie może gdzie popełniłem błąd? W automatyzacji zmieniłem nazwy encji. Debug pokazuje wszystko co trzeba o wydarzeniu

Hejka @artur
Świetna robota…
Używam lekko zmodyfikowanego flow dla śmieci ,ponieważ dopisałem sobie oczyszczalnię ścieków. Mam pytanie natury technicznej. Jak zrobić żeby komunikat przestał być powtarzany po potwierdzeniu ,że śmieci zostały wystawione. Mam tu na myśli taki myk. Klikam w ikonkę danych odpadów jako potwierdzenie i flow dla tego odpadu przestaje być odpalany.

Witam wszystkich, nie wiem czy tu dużo osób zagląda, ale po wspaniałym w/w filmiku Artura przerobiłem w noderedzie powiadomienia dla wywozu śmieci.
Krótka instrukcja:

  • utworzenie pomocników dla śmieci u mnie są 3 rodzaje (zmieszane, bio, surowce), nic nie stoi na przeszkodzie otworzyć więcej
  • utworzenie harmonogramu dla śmieci, wywozy są niereguralne więc pomocników do śmieci jest kilka (nie będę rozpisywał jak to zrobić jak ktośma pytania pisać) ale zrobiłem to w sposób, iż każdy pomocnik zaczyna tak samo: sensor.smieci_zmieszane, sensor.smieci zmieszane2, następnie sensor.smieci_bio, sensor.smieci_bio1 itd. dzięki takiemu podejściu można utworzyć dynamiczną tablicę w node-red dla wszystkich śmieci wpisując w “get entities node”, ale o tym za chwilę.


Na powyższym obrazku:

  • ‘jakie sensory smieci’ - ‘get entities node’ - pobiera do tablicy wszyskie sensory zaczynające się od sensor.smieci - wszystkie wystąpienia sensorów o tej nazwie wpadnie do tablicy czyli nasze wszyskie wywozy (nie musimy ręcznie ich wypisywać, padało tutaj wiele pytań jak to zrobić o to gotowy przepis :wink: )

  • ‘split’ - ‘split node’ - tablica sensorów zostaje rozdzielona na pojedyńcze wystąpienia dzięki takiemu zabiegowi mamy teraz dostęp do atrybutów każdego sensora z osobna - bajka

  • ‘change 3 rules’ - ‘change node’ - ja potrzebowałem wyciagnąc tylko 3 zmienne: nazwa sensora, ilosćdni do wywozu, przyjazna nazwa

  • kolejne podprocesy są podobne jak na filmie Artura, dostaje powiadomienia dzień przed wywozem,
    wiadomość na 1h w czasie od 16-19 oraz w dniu wywozu tylko co 15 minut i to wcześnie bo od 6.15-6.45 przed wyjściem do pracy.
    Poniżej pełny mój flow, może się komuś przyda :wink: mile widziane komentarze bo też od nie dawna zaczynam przygodę w HA i Node-Red.
    flows-smieci.json (5,0 KB)

2 Likes

Udało Ci się dojść co było powodem? mam właśnie to samo i też po prostu wywaliło błąd nie wiadomo dlaczego… odtwarzanie backupów nie pomaga O_o

Cześć!

W swoich działaniach w NodeRed właśnie doszedłem do momentu robienia powiadomień odnośnie wywozu śmieci i Twój wpis spodobał mi się.

Czy jesteś w stanie powiedzieć mi w jaki sposób zrobiłeś sensory śmieci? tj sensor.smieci_zmieszane itd?

Przetrzepałem forum i widziałem, że wiele osób właśnie z sensorów korzystało jako źródło danych do powiadomień odnośnie śmieci, a nie bezpośrednio z encji kalendarza.

Wydarzenia odnośnie wywozu śmieci (zmieszane, plastiki, bio, papier), mam w kalendarzu media. W google_calendars.yaml już sobie podzieliłem ten jeden większy kalendarz na kilka mniejszych dzięki przeszukaniu wydarzeń.

Ale jak podejść do sensorów to już nie wiem…

Ja użyłem dodatku z repozytorium hacs - garbege i ten dodatek dodaje te sensory

End of Support

Home Assistant has introduced local calendars in 2022, in the 2023.1 release they added an option for different recurent events. With this, most of the functionality of this custom helper is supported natively. So I will end developing and supporting this helper in 2023.

znacznie lepiej skorzystać z "Waste collection schedule.

1 Like

Bardziej rozchodziło mi się o poniższy wpis :wink:

z Garbage Collection próbowałem korzystać w zeszłym roku, lecz nie ukrywam, że korzystanie z kalendarza Google lepiej mi podchodzi z uwagi na to, że wykorzystuję go do wielu innych wydarzeń (poza śmieciami), no i jest dostępny z poziomu telefonów dla osób “niesmartowych”.

Jak zostali utworzeni owi pomocnicy. Pewnie jako template sensorów, ale co dalej…