NEWS
HMIP Datenpunkte umbenennen
-
Moin zusammen,
ich nutze mit dem HMIP Access Point u.a. die Fensterkontakte, welche im iobroker beispielhaft wie folgt aussehen:
Nun möchte ich per id vom Selektor den Fensterstatus abrufen und in eine Liste schreiben. Das ist erstmal kein Problem.
Allerdings erhalte ich als Ausgabe immer nur "windowState" - was im Grunde zwar richtig ist, mich aber bei mehreren Fenstern nicht wirklich weiter bringt ;-).
Am liebsten würde ich auf den Namen vom Oberordner zurückgreifen (hier: Fenster Badezimmer). Gibt es da eine Chance?
Ansonsten hatte ich noch gedacht, eigene Datenpunkte zu erstellen (die einen eindeutigen Namen haben) in die ich die aktuellen windowsState's vorab reinkopiere. Aber das scheint mir zu umständlich, oder?Mein bisheriges Blockly:
und die dazugehörige Funktion:
Vielleicht kann man ja die Funktion anpassen? Nur da habe ich leider noch so gar keine Ahnung von.Vielen Dank schonmal für Eure Tipps und Denkanstöße!
VG
Sven -
Moing,
ich kenne mich in Blocky nun leider garnicht aus, mach alles in Script aber hier möchte ich dir mal beschreiben wie ich das gemacht habe.- Ich habe die Sensoren einem Raum zugeordnet (Aufzählungen/Rooms) und der Gruppe Schliessung (Aufzählung/functions).
- Dann habe ich alle Sensoren dieser Gruppe "subscribed" (schreckliches Deutsch ich weis).
Das mache ich in Script mit:
$('channel[state.id=*.STATE](functions=Schliessung)').each(function (id, i) {
Hier müsstest du schauen wie das in Blocky geht.
- Wenn sich nun der State eines Sensors ändert, prüfe ich mit:
if(raumliste.indexOf(raum) != -1){
in welchem Raum der Sensor ist und verarbeite diese Information dann weiter.
Alternativ gibt es auch noch den Alias-Adapter (den ich nicht benutze), aber wie ich es verstanden habe kann man dort jedem Datenpunkt einen neuen "Wunsch-Namen" vergeben, hätte auch seinen Charme weil man beim Austausch (bsp. wegen Defekt) nicht in jedem Script sondern nur an einer Stelle den Sensor auswechseln muss.
Ich hoffe ich konnte dir ein wenig Helfen
-
Danke, aber ich verstehe bei Skripten nur Bahnhof
ABER: Du hast mich auf eine Idee gebracht. Ich könnte bestimmt auch die Raumnamen mit den IDs vom Selektor auslesen und dann weiterverarbeiten.
Da muss ich mal schauen, wie ich das hinbekomme. -
@hinsen2k sagte: Vielleicht kann man ja die Funktion anpassen?
Siehe hier mit noch einer weiteren Stufe (wegen "channels"). JS-Funktion mit Ergebnis deviceName(id):
id = id.substring(0, id.lastIndexOf('.')); if(existsObject(id) && getObject(id).type == 'device') return getObject(id).common.name; id = id.substring(0, id.lastIndexOf('.')); if(existsObject(id) && getObject(id).type == 'device') return getObject(id).common.name; id = id.substring(0, id.lastIndexOf('.')); if(existsObject(id) && getObject(id).type == 'device') return getObject(id).common.name;