NEWS
[Gelöst] Batterieüberwachung per "IDs vom Selektor"
-
Vielleicht hat jemand für mich eine guten Tipp wie ich die Batterie Meldungen weiter optimieren kann.
Aktuell verwende ich "IDs vom Selektor..." um mehrere Geräte mit Batteriewerten auf einmal abzugreifen...
Da der Prozentwert der ZigBee Geräte nicht stimmt greife ich hier zum voltage Datenpunkt.
Dazu habe ich 2 JS-Funktionen die Anhand der ID den Namen und den Raum ermitteln sollen...
getNamereturn getObject(ObjectID).common.name;
getRoom
let room = getObject(ObjectID,'rooms').enumNames[0]; return room.de;
Problem 1:
Die Funktion der Ermittlung des Raums funktioniert leider nicht, obwohl dem Objekt der Raumname zugewiesen wurde.
Weiß jemand wie ich die getRoom Funktion umschreiben muss um den Raum Namen aus lesen zu können?
Problem 2:
Durch Problem 1 habe ich dem Namen des Datenpunkts voltage alle fehlenden Informationen dazu geschrieben.
Leider wird daraus eine unschöner Telegram Nachrichten Baukasten.
Lieber hätte ich die Werte Raum, Name und Batterietyp getrennt als Variable um den Telegram Text individueller zu gestalten.
-
@tdcropower sagte: getRoom Funktion umschreiben muss um den Raum Namen aus lesen zu können?
let room = getObject(ObjectID, 'rooms').enumNames[0]; if(typeof room == 'object') room = room.de; return room;
@tdcropower sagte in Die Batterieerkennung per "IDs vom Selektor" optimieren:
Lieber hätte ich die Werte Raum, Name und Batterietyp getrennt
Den Batterietyp kann man nur im Namen, unter common.desc oder unter native unterbringen.
-
@paul53 danke fürs Feedback leider funktioniert dies ebenfalls nicht...
Für den Batterietypen überlege ich mir einen "im Text suchen..." + "der Fall ist" Abfrage einzubauen.
Hier könnte ich den ZigBee Typen mit in den Namen einbauen zum Beispiel SensorFenster, Bewegung oder Taster und denen dann verschiedene Batteriewerte hinzufügen. -
@tdcropower sagte: funktioniert dies ebenfalls nicht...
Der Selektor liefert ein Array of IDs! Damit kann die Funktion nichts anfangen, denn sie erwartet einen ID-String.
-
@paul53 ah ok ich habe eine alternative gefunden mit der ich noch einfacher arbeiten könnte.
Da ich sowieso schon den voltage Name auf Raum-Name-Typ z.B. Bad-Fenster-CR2156 geändert habe, kann ich daraus ja eigentlich mit den Text Operatoren 3 Variablen beschreiben.
Hierfür müsste ich lediglich den Trenner "-" übergeben und das Ergebnis in die jeweilige Variable schreiben.Hat jemand Sample Beispiel für den Text Cut Operator?
Den ersten Fall "Bad" habe ich soweit schon einmal hinbekommen...
edit:
habe sogar eine noch leichtere Methode gefunden.
Ich erstelle einfach eine Liste mit dem Wert aus getName mit dem Trennzeichen "-".
Diese kann ich dann mit 1, 2 und 3 ansprechen...
edit2:
und hier das Ergebnis...