Zdarzenia z kalendarza i powiadomienia Telegram

Witam Wszystkich w Nowym Roku , z nowym rokiem nowe rzeczy , więc chcę przenieść z Domoticz powiadomienia o wywozie śmieci . Zintegrowałem kalendarz Google z HA i tu wszystko ok . Powiadomienia chcę wysyłać przez Telegram i wykorzystuję do tego dedykowane nody Telegramu.
Mój problem , nie umiem wyfiltorwać w nodzie function samej treści wiadomości .
W teorii mogę do każdego zdarzenia ręcznie dopisać treść , bo tak robię z powiadomieniem dla pralki

ale tytuł wiadomości w kalendarzu jest tym co tak naprawdę chcę wysłać , więc bez sensu jest powielanie tej wiadomości w nodzie funkcji , poza tym nie muszę wtedy do każdego zdarzenia robić oddzielnego powiadomienia. Wystarczy jedno , a wysłana wiadomość będzie aktualizowana na podstawie tytułu


Czy ktoś bardziej doświadczony w NR pomoże mi zrozumieć jak wyfiltrować to co zaznaczyłem w debug , fota poniżej ?

Jeżeli potrzeba więcej informacji , proszę pytać

Po prostu użyj data.attributes.message jako content dla payload

Dzięki za odpowiedz , wydaje się to oczywiste , ale nie dla laika w JavaScript . Payload musi zawierać ID chata + wartość z atrybutu message jako wiadomość do wysłania. Za chiny nie wiem jak to zredagować

Widzisz, jak byś wkleił to jako tekst to bym Ci naniósł poprawki a tak to w telefonie ciężko mi przepisywać.

  1. return payload bez {}
  2. content: data.attributes.message

Ok to co mam do wysłania przy dowolnej zawartości payload

let payload = {"chatId": 12121213,
type: "message", 
content: "Jakaś wiadomość "};
return {payload};

Teraz to co dostaję w debug z kalendarza

object
payload: "off"
data: object
entity_id: "calendar.familijne"
old_state: object
entity_id: "calendar.familijne"
state: "on"
attributes: object
message: "Wiadomość do wysłania"
all_day: false
start_time: "2023-01-02 10:38:00"
end_time: "2023-01-02 10:40:00"
location: ""
description: ""
offset_reached: false
friendly_name: "Familijne"
last_changed: "2023-01-02T09:38:28.633196+00:00"
last_updated: "2023-01-02T09:38:28.633196+00:00"
context: object

Oczywiście nie ma znaczenia czy to będzie początek czy koniec wydarzenia w kalendarzu , przyjdą dwa powiadomienia w interwale początek - koniec i to nawet lepiej.

Powinno być

let payload = {"chatId": "12121213" ,
"type" : "message", 
"content": msg.data.attributes.message 
};
return payload;

Dziękuję Kolego , tak przy okazji gdzie można liznąć trochę podstaw z JavaScript ? Czuję się jak kaleka po przejściu z LUA w Domoticz.
Niestety po weryfikacji dostaję błąd

Masz błąd, bo nie może się dostać do ścieżki “message”
Jak najedziesz na linijkę z noda debug gdzie zaznaczyłem będziesz miał opcję Copy path i to wklej w “content”
Rozwijając drzewko debug masz najpierw data > new_state > attributes > message
image

1 polubienie

OK, moja pomyłka - słabo spojrzałem na tel.

return {
    "chatId": "12121213" ,
    "type" : "message", 
    "content": msg.data.new_state.attributes.message 
};

Dziękuj ę Panowie za pomoc , bez waszych wskazówek bym tego nie ogarnął. Działa przy takim zapisie

let payload = {
    "chatId": "121112312",
    "type": "message",
    "content": msg.data.new_state.attributes.message };
return {payload};