Odczyt z czujników przez głośnik tableta tts

Witam zastanawiam się czy jest możliwe odczyt z czujników w wiadomości tts przez głośnik w tablecie na ścianie, dodam ze od niedawna bawię sie node red i mam powiadomienia o pralce itp ale nie wiem jak zrobić powiadomienia z odczytu czujnika np temperatury czy ktoś może podpowiedzieć z góry dzięki

Musisz użyć tamplating np. wywołaj usługę z tym kodem, oczywiście podmień sensory na swoje:

data:
  cache: true
  media_player_entity_id: media_player.asus
  message: >-
    Dzień dobry, temperatura na zewnątrz obecnie to {{
    states('sensor.temp_zewnetrzna_temperature') }} stopni, a wilgotność {{
    states('sensor.temp_zewnetrzna_humidity') }} procent. Życzę miłego dnia.
target:
  entity_id: tts.google_pl_pl

może wytłumaczę w ten sposób, mam powiadomienie o simieciach zrobione w ten sposób a jak zrobić żeby była o godzinie 9 np informacja z sensora temperatury

[{“id”:“60f379.e730dc88”,“type”:“tab”,“label”:“Status poranny”,“disabled”:false,“info”:""},{“id”:“4bb43be0d159915e”,“type”:“api-call-service”,“z”:“60f379.e730dc88”,“name”:"",“server”:“67173d8b.9c2234”,“version”:5,“debugenabled”:false,“domain”:“notify”,“service”:“mobile_app_sm_t500”,“areaId”:[],“deviceId”:[],“entityId”:[],“data”:"",“dataType”:“jsonata”,“mergeContext”:"",“mustacheAltTags”:false,“outputProperties”:[],“queue”:“none”,“x”:1520,“y”:200,“wires”:[[]]},{“id”:“33fa12f16ab95fe7”,“type”:“function”,“z”:“60f379.e730dc88”,“name”:“Wiadomość”,“func”:“msg.payload =\n{\n “data”:\n {\n “message”: “TTS”,\n “data”:\n {\n “tts_text”: “Przypomnienie! jutro planowany odbiór śmieci zmieszanych, przygotuj je do wyniesienia.”,\n “priority”: “high”,\n “ttl”: 0,\n }\n }\n}\nreturn msg;”,“outputs”:1,“noerr”:0,“initialize”:"",“finalize”:"",“libs”:[],“x”:1110,“y”:200,“wires”:[[“4bb43be0d159915e”]]},{“id”:“25a250030c8d3882”,“type”:“api-current-state”,“z”:“60f379.e730dc88”,“name”:"",“server”:“67173d8b.9c2234”,“version”:3,“outputs”:2,“halt_if”:“tomorrow”,“halt_if_type”:“str”,“halt_if_compare”:“is”,“entity_id”:“sensor.zmieszane”,“state_type”:“str”,“blockInputOverrides”:false,“outputProperties”:[{“property”:“payload”,“propertyType”:“msg”,“value”:"",“valueType”:“entityState”},{“property”:“data”,“propertyType”:“msg”,“value”:"",“valueType”:“entity”}],“for”:“0”,“forType”:“num”,“forUnits”:“minutes”,“override_topic”:false,“state_location”:“payload”,“override_payload”:“msg”,“entity_location”:“data”,“override_data”:“msg”,“x”:490,“y”:200,“wires”:[[“dfdde496efed40b9”],[]]},{“id”:“48e7596b362ae631”,“type”:“inject”,“z”:“60f379.e730dc88”,“name”:“9:00”,“props”:[{“p”:“payload”},{“p”:“topic”,“vt”:“str”}],“repeat”:"",“crontab”:“00 09 * * *”,“once”:false,“onceDelay”:0.1,“topic”:"",“payload”:"",“payloadType”:“date”,“x”:130,“y”:200,“wires”:[[“25a250030c8d3882”]]},{“id”:“dfdde496efed40b9”,“type”:“switch”,“z”:“60f379.e730dc88”,“name”:"",“property”:“payload”,“propertyType”:“msg”,“rules”:[{“t”:“eq”,“v”:“tomorrow”,“vt”:“str”}],“checkall”:“true”,“repair”:false,“outputs”:1,“x”:810,“y”:200,“wires”:[[“33fa12f16ab95fe7”]]},{“id”:“67173d8b.9c2234”,“type”:“server”,“name”:“Home Assistant”,“addon”:true}]

W node-red nie wiem jak to zrobić, używam go do innych celów. Ale nie wiem czemu chcesz robić to w NR jak łatwiej będzie zrobić prostą automatyzację w HA jako wyzwalacz dasz czas, jako akcję:

data:
  cache: true
  media_player_entity_id: media_player.asus
  message: "Dzień dobry, temperatura na zewnątrz obecnie to {{ states('sensor.temp_zewnetrzna_temperature') }} stopni"
target:
  entity_id: tts.google_pl_pl

Tak samo jak zrobiłeś te śmieci. Na przyszłość sprawdzaj kod przed wklejeniem, ten wstawiony jest z błędem, ale widać że korzystasz z poradnika Artura o statusie porannym, więc w czym masz problem?
Przykład dla jednego czujnika
flows.json (3,0 KB)

Bardzo ci dziękuje za pomoc

Proszę nie proś o pomoc w prywatnych wiadomościach, bo nikt oprócz Ciebie z takiej pomocy nie skorzysta, a nie taka jest idea forum.
Masz problem, to pisz o nim, nikt nie jest doskonały, i wszyscy kiedyś zaczynają. To nie wstyd pytać, nawet o podstawy.
Masz tu przykład dla dwóch czujników, trzeci trzeba dodać analogicznie. Nic trudnego.
flows (2).json (4,0 KB)

1 polubienie

Udało mi się zrobić to co chciałem ale oczywiście brakuje mi odczytu godziny i daty z czego można to odczytać donem, musi być integracja z kalendarzem google do daty?
Ta funkcja na początku od Artura nie chce mi działać czytam na forum i nie wiem o co chodzi

Tutaj masz noda funkcji dla aktualnej godziny i daty:

const teraz = new Date();
const dni_tygodnia = ["niedziela", "poniedziałek", "wtorek", "środa", "czwartek", "piątek", "sobota"];

const miesiace = ["stycznia","lutego","marca","kwietnia","maja","czerwca","lipca",
                  "sierpnia","września","października","listopada","grudnia"];
                  
const godziny = ["północ", "pierwsza","druga","trzecia", "czwarta","piąta", 
                 "szósta", "siódma", "ósma", "dziewiąta", "dziesiąta", "jedenasta", 
                 "dwunasta", "trzynasta", "czternasta","piętnasta", "szesnasta", 
                 "siedemnasta", "osiemstansta", "dziewiętnasta", "dwudziesta", 
                 "dwudziestapierwsza", "dwudziestadruga", "dwudziestatrzecia"];
                 
const dzien_slow = ["zerowy","pierwszy", "drugi","trzeci", "czwarty", "piąty", "szósty", 
                    "siódmy", "ósmy", "dziewiąty", "dziesiąty", "jedynasty", 
                    "dwunasty", "trzynasty", "czternasty", "piętnasty", "szesnasty", 
                    "siedemnasty", "osiemnasty", "dziewiętnasty", "dwudziesty", 
                    "dwudziestypierwszy", "dwudziestydrugi", "dwudziestytrzeci", 
                    "dwudziestyczwarty", "dwudzistypiąty", "dwudziestyszósty", 
                    "dwudziestysiódmy", "dwudziestyósmy", "dwudziestydziewiąty", 
                    "trzydziesty", "trzydziestypierwszy"];

msg.akt_godzina = `${ godziny[teraz.getHours()] }`;
msg.minuty = teraz.getMinutes();

msg.dzien_tygodnia = `${ dni_tygodnia[teraz.getDay()] }`;
msg.dzien_miesiaca =  `${ dzien_slow[teraz.getDate()] }`;
msg.miesiac = `${ miesiace[teraz.getMonth()] }`
msg. teraz = teraz
msg.wiadomosc ="Witaj. Jest godzina "+msg.akt_godzina+" "+msg.minuty+ ". Dzisiaj jest "+msg.dzien_tygodnia+". "+msg.dzien_miesiaca+" "+msg.miesiac+" . " ;
return msg;

o to chodziło?

No właśnie nie chce mi to działać nie wiem dla czego

Pokaż pełny debug na wyjściu to zobaczymy co nie działa

[{“id”:“40121b2ae9e5389d”,“type”:“tab”,“label”:“status poranny”,“disabled”:false,“info”:"",“env”:[]},{“id”:“2e6451e63b84dde7”,“type”:“inject”,“z”:“40121b2ae9e5389d”,“name”:“9 rano”,“props”:[{“p”:“payload”},{“p”:“topic”,“vt”:“str”}],“repeat”:"",“crontab”:“05 09 * * *”,“once”:true,“onceDelay”:0.1,“topic”:"",“payload”:"",“payloadType”:“date”,“x”:180,“y”:180,“wires”:[[“1d647f608f75f49c”]]},{“id”:“2869fb69d247a6c9”,“type”:“api-current-state”,“z”:“40121b2ae9e5389d”,“name”:“pogoda za oknem”,“server”:“1a9033b6.071e8c”,“version”:3,“outputs”:1,“halt_if”:"",“halt_if_type”:“str”,“halt_if_compare”:“is”,“entity_id”:“sensor.openweathermap_temperature”,“state_type”:“str”,“blockInputOverrides”:false,“outputProperties”:[{“property”:“payload”,“propertyType”:“msg”,“value”:"",“valueType”:“entityState”},{“property”:“data”,“propertyType”:“msg”,“value”:"",“valueType”:“entity”}],“for”:0,“forType”:“num”,“forUnits”:“minutes”,“x”:570,“y”:180,“wires”:[[“11b9a25e3a22a14e”]]},{“id”:“2c29e6929f7fc199”,“type”:“function”,“z”:“40121b2ae9e5389d”,“name”:“Temperatura +”,“func”:“msg.temp = Math.round(msg.payload);\nmsg.wiadomosc = “Temperatura za oknem wynosi “+msg.temp+” stopni celsjusza.”;\nreturn msg;”,“outputs”:1,“noerr”:0,“initialize”:"",“finalize”:"",“libs”:[],“x”:920,“y”:160,“wires”:[[“4a3e36c6e4f46cb3”]]},{“id”:“81c0c526ea8bbff4”,“type”:“function”,“z”:“40121b2ae9e5389d”,“name”:“Pełna wiadomość”,“func”:“msg.payload =\n{\n “data”:\n {\n “message”: “TTS”,\n “data”:\n {\n “ttl”: 0,\n “priority”: “high”,\n //“media_stream”: “alarm_stream_max”,\n “tts_text”: msg.wiadomosc,\n }\n }\n}\nreturn msg;\n”,“outputs”:1,“noerr”:0,“initialize”:"",“finalize”:"",“libs”:[],“x”:1210,“y”:280,“wires”:[[“15bcc5cd385feca3”,“0a93147006cbbaf4”]]},{“id”:“0a93147006cbbaf4”,“type”:“api-call-service”,“z”:“40121b2ae9e5389d”,“name”:“Tablet”,“server”:“1a9033b6.071e8c”,“version”:5,“debugenabled”:false,“domain”:“notify”,“service”:“mobile_app_sm_t500”,“areaId”:[],“deviceId”:[],“entityId”:[],“data”:"",“dataType”:“json”,“mergeContext”:"",“mustacheAltTags”:false,“outputProperties”:[],“queue”:“none”,“x”:1490,“y”:280,“wires”:[[]]},{“id”:“88537868c8e16ef1”,“type”:“function”,“z”:“40121b2ae9e5389d”,“name”:“Temperatura -”,“func”:“msg.temp = Math.round(msg.payload);\nmsg.wiadomosc = “Temperatura za oknem wynosi minus “+msg.temp+” stopni celsjusza.”;\nreturn msg;”,“outputs”:1,“noerr”:0,“initialize”:"",“finalize”:"",“libs”:[],“x”:920,“y”:200,“wires”:[[“4a3e36c6e4f46cb3”]]},{“id”:“11b9a25e3a22a14e”,“type”:“switch”,“z”:“40121b2ae9e5389d”,“name”:"",“property”:“payload”,“propertyType”:“msg”,“rules”:[{“t”:“gte”,“v”:“0”,“vt”:“num”},{“t”:“lt”,“v”:“0”,“vt”:“num”}],“checkall”:“true”,“repair”:false,“outputs”:2,“x”:750,“y”:180,“wires”:[[“2c29e6929f7fc199”],[“88537868c8e16ef1”]]},{“id”:“134e4701e772b218”,“type”:“function”,“z”:“40121b2ae9e5389d”,“name”:“Temperatura”,“func”:“msg.temperatura = Math.round(msg.payload);\nmsg.wiadomosc = msg.wiadomosc+\n “prędkość wiatru to około “+msg.temperatura+” kilometrów na godzine.”;\nreturn msg;”,“outputs”:1,“noerr”:0,“initialize”:"",“finalize”:"",“libs”:[],“x”:490,“y”:280,“wires”:[[“04eb2fb42bf5c6c5”]]},{“id”:“4a3e36c6e4f46cb3”,“type”:“api-current-state”,“z”:“40121b2ae9e5389d”,“name”:“predkość wiatru”,“server”:“1a9033b6.071e8c”,“version”:3,“outputs”:1,“halt_if”:"",“halt_if_type”:“str”,“halt_if_compare”:“is”,“entity_id”:“sensor.openweathermap_wind_speed”,“state_type”:“str”,“blockInputOverrides”:false,“outputProperties”:[{“property”:“payload”,“propertyType”:“msg”,“value”:"",“valueType”:“entityState”},{“property”:“data”,“propertyType”:“msg”,“value”:"",“valueType”:“entity”}],“for”:“0”,“forType”:“num”,“forUnits”:“minutes”,“override_topic”:false,“state_location”:“payload”,“override_payload”:“msg”,“entity_location”:“data”,“override_data”:“msg”,“x”:1160,“y”:180,“wires”:[[“134e4701e772b218”]]},{“id”:“04eb2fb42bf5c6c5”,“type”:“api-current-state”,“z”:“40121b2ae9e5389d”,“name”:“wilgotnosc”,“server”:“1a9033b6.071e8c”,“version”:3,“outputs”:1,“halt_if”:"",“halt_if_type”:“str”,“halt_if_compare”:“is”,“entity_id”:“sensor.openweathermap_humidity”,“state_type”:“str”,“blockInputOverrides”:false,“outputProperties”:[{“property”:“payload”,“propertyType”:“msg”,“value”:"",“valueType”:“entityState”},{“property”:“data”,“propertyType”:“msg”,“value”:"",“valueType”:“entity”}],“for”:“0”,“forType”:“num”,“forUnits”:“minutes”,“override_topic”:false,“state_location”:“payload”,“override_payload”:“msg”,“entity_location”:“data”,“override_data”:“msg”,“x”:710,“y”:280,“wires”:[[“e5517f4be1db15c6”]]},{“id”:“e5517f4be1db15c6”,“type”:“function”,“z”:“40121b2ae9e5389d”,“name”:“Temperatura”,“func”:“msg.temperatura = Math.round(msg.payload);\nmsg.wiadomosc = msg.wiadomosc+\n “wilgotność powietrza to “+msg.temperatura+” procent.”;\nreturn msg;”,“outputs”:1,“noerr”:0,“initialize”:"",“finalize”:"",“libs”:[],“x”:910,“y”:280,“wires”:[[“81c0c526ea8bbff4”]]},{“id”:“1d647f608f75f49c”,“type”:“function”,“z”:“40121b2ae9e5389d”,“name”:“data”,“func”:“const teraz = new Date();\nconst dni_tygodnia = [“niedziela”, “poniedziałek”, “wtorek”, “środa”, “czwartek”, “piątek”, “sobota”];\n\nconst miesiace = [“stycznia”,“lutego”,“marca”,“kwietnia”,“maja”,“czerwca”,“lipca”,\n “sierpnia”,“września”,“października”,“listopada”,“grudnia”];\n \nconst godziny = [“północ”, “pierwsza”,“druga”,“trzecia”, “czwarta”,“piąta”, \n “szósta”, “siódma”, “ósma”, “dziewiąta”, “dziesiąta”, “jedenasta”, \n “dwunasta”, “trzynasta”, “czternasta”,“piętnasta”, “szesnasta”, \n “siedemnasta”, “osiemstansta”, “dziewiętnasta”, “dwudziesta”, \n “dwudziestapierwsza”, “dwudziestadruga”, “dwudziestatrzecia”];\n \nconst dzien_slow = [“zerowy”,“pierwszy”, “drugi”,“trzeci”, “czwarty”, “piąty”, “szósty”, \n “siódmy”, “ósmy”, “dziewiąty”, “dziesiąty”, “jedynasty”, \n “dwunasty”, “trzynasty”, “czternasty”, “piętnasty”, “szesnasty”, \n “siedemnasty”, “osiemnasty”, “dziewiętnasty”, “dwudziesty”, \n “dwudziestypierwszy”, “dwudziestydrugi”, “dwudziestytrzeci”, \n “dwudziestyczwarty”, “dwudzistypiąty”, “dwudziestyszósty”, \n “dwudziestysiódmy”, “dwudziestyósmy”, “dwudziestydziewiąty”, \n “trzydziesty”, “trzydziestypierwszy”];\n\nmsg.akt_godzina = ${ godziny[teraz.getHours()] };\nmsg.minuty = teraz.getMinutes();\n\nmsg.dzien_tygodnia = ${ dni_tygodnia[teraz.getDay()] };\nmsg.dzien_miesiaca = ${ dzien_slow[teraz.getDate()] };\nmsg.miesiac = ${ miesiace[teraz.getMonth()] }\nmsg. teraz = teraz\nmsg.wiadomosc =“Witaj. Jest godzina “+msg.akt_godzina+” “+msg.minuty+ “. Dzisiaj jest “+msg.dzien_tygodnia+”. “+msg.dzien_miesiaca+” “+msg.miesiac+” . " ;\nreturn msg;\n”,“outputs”:1,“noerr”:0,“initialize”:””,“finalize”:”",“libs”:[],“x”:370,“y”:180,“wires”:[[“2869fb69d247a6c9”]]},{“id”:“15bcc5cd385feca3”,“type”:“debug”,“z”:“40121b2ae9e5389d”,“name”:“debug 23”,“active”:true,“tosidebar”:true,“console”:false,“tostatus”:false,“complete”:“false”,“statusVal”:"",“statusType”:“auto”,“x”:1480,“y”:160,“wires”:[]},{“id”:“1a9033b6.071e8c”,“type”:“server”,“name”:“Home Assistant”,“addon”:true,“rejectUnauthorizedCerts”:true,“ha_boolean”:"",“connectionDelay”:false,“cacheJson”:false,“heartbeat”:false,“heartbeatInterval”:"",“statusSeparator”:"",“enableGlobalContextStore”:false}]

podłacz noda debug
zmień na complete msg object
i po uruchomieniu procesu pokaż co się pojawiło po prawej w debug’u

odczytuje sensor pogody itp ale funkcji z data nie

no ale rozwiń chłopie po prawej tego debuga, mam zgadywać co tam jest?

Ja spróbuje :wink: @bartik22 Twoja funkcja działa, ale pewnie po drodze gdzieś to nadpisał.
Lepiej niech pokaże zawartość pozostałych funkcji.

Zapewne nawet nie wpisał zmiennej w treści wiadomosci w ostatniej funkcji :slight_smile:
ale po kolei…

Panowie ja tu dopiero raczkuje dajcie chwilkę doceniam wasza chęć pomocy





co masz w “temperatura ±”


czy to co jest w funkcji z przodu powinno byc wpisane jeszcze w koncowej wiadomosci?