takiego wpisu w node switch który monitoruje lokalizacje (czy się zmieniła) dostaje kilkuktrotne powiadomienia z tej samej lokalizacji mimo że jej nie zmieniam. Co jest nie tak.
Drugie pytanie dotyczy bramy i powiadomienia o jej zamknięciu, gdy na krótko zabraknie neta powiadomienie przychodzi mimo że jej stan się nie zmienił (nie dostaje powiadomienia o otwarciu tylko o zamknięciu)
To że nie zmieniasz lokalizacji, nie znaczy że device_tracker nie wyskakuje ze strefy. Dodaj na panel główny mapę i wstaw encję z której bierzesz położenie zobaczysz co i jak.
w node red jest node zone. Skonfiguruj go i pominiesz tym samym payload !=data.old_state.state i pozostałe porównania. Tylko zone + funkcyjny z tekstem i call service. Sprawdź czy wtedy też będzie problem.
thx - a czy na drugie pytanie ktoś zna odpowiedź, musiałem wyłączyć to powiadomienie.
Przypomne mój problem, gdy brama jest zamknięta gdy na chwile zerwie połączenie dostaje powiadomienie mimo że jej stan się nie zmienił odpowiednie “ptaszki” zaznaczone
Zainteresował mnie Twój flow, trochę go zmodyfikowałem do interesujących mnie informacji ale problem mam jak zapisać w samym nodzie call tekst z payload ?
var entity_id = msg.data.entity_id;
var state = msg.zones[0].entity_id;
if (entity_id == "person.kasia" && state == "zone.home") {
var wiad = "Kasia weszła do domu.";
} else if (entity_id == "person.agnieszka" && state == "zone.home") {
var wiad = "Agnieszka weszła do domu.";
} else if (entity_id == "person.mariusz" && state == "zone.home") {
var wiad = "Mariusz wszedł do domu.";
} else if (entity_id == "person.kasia" && state == "zone.fallowes") {
var wiad = "Kasia weszła do biura fallowes.";
} else if (entity_id == "person.kasia" && state == "zone.szkola") {
var wiad = "Kasia weszła do szkoły.";
} else if (entity_id == "person.agnieszka" && state == "zone.szkola") {
var wiad = "Agnieszka weszła do szkoły.";
} else if (entity_id == "person.mariusz" && state == "zone.szkola") {
var wiad = "Mariusz wszedł do szkoły.";
} else {
var wiad = null;
}
msg.payload =
{
"data": {
"message": "TTS",
"data": {
"ttl": 0,
"priority": "high",
"tts_text": wiad,
"media_stream": "music_stream"
}
}
};
return msg;
Tylko przypadkiem funkcja nie zgłasza błędu. Deklarację zmiennych wykonuje się tylko raz var wiad
Kiedyś będziesz się dziwił, że kopiujesz działający kod i nie działa.
W “rozbiegówce” powinno być
var entity_id = msg.data.entity_id;
var state = msg.zones[0].entity_id;
var wiad = "";