NEWS
Einem Objekt zugeordneten Raum identifizieren?
-
Wenn ich ein Objekt überwache, kann ich im weiteren Verlauf auf diverse Parameter vom Objekt (siehe Screenshot) zugreifen.
Weiß jemand, wie ich in Blockly den zugeordneten Raum eines Objekts auslesen kann?
-
@w00dst0ck
Das versuche ich auch grade herauszufinden. Hast du es hinbekommen? -
Ich glaube nicht, dass es an dieser Stelle so einfach ist. Es gibt einige Werte die in den Datenpunkt selber gespeichert werden und auf die zugegriffen werden kann, z.B. Der Name, die Geräte ID, der Wert etc.
Die Aufzählungen (Räume und Funktionen) wiederum werden nicht im Datenpunkt abgelegt, sondern sind selbst Datenpunkte mit dem Präfix enums. oder enum. (bin mir gerade nicht sicher) dann die Funktion (.rooms, oder .functions) und dann der Name (z.B. .Wohnzimmer).
In diesen Datenpunkten ist dann eine Liste der zugehörigen Datenpunkte.Hast du also einen Datenpunkt alias.0.Licht.Wohnzimmerlicht.An und der ist dem Raum Wohnzimmer zugeordnet, dann hat der Datenpunkt enums.rooms.Wohnzimmer in seiner Liste den Datenpunk alias.0.Licht.Wohnzimmerlicht.An stehen.
Theroretisch müsstest du also alle Aufzählungslisten durchlaufen und nach deiner ID suchen um zu wissen in welchem Raum dieser ist.
Der kann ja auch in mehreren Räumen sein.Kannst halt eine JS Function im Blockly einbinden welche die Datenpunkt ID annimmt und dann nach den zugeordneten Listen schaut und diese zurückgibt
-
@w00dst0ck sagte :
wie ich in Blockly den zugeordneten Raum eines Objekts auslesen kann?
Das geht nur mit einer Javascript-Funktion mit Ergebnis:
let room = getObject(id, 'rooms').enumNames[0]; if(typeof room == 'object') return room.de; return room;
Getestet mit diesem Blockly:
-
@paul53 Oh, sehr cool, wusste gar nicht, dass sowas auch direkt mit getObject geht
-
@paul53
Für die JS Anfänger unter uns, kannst du kurz erklären was die zweite Zeile deiner Funktion macht? -
@Diggewuff sagte:
was die zweite Zeile deiner Funktion macht?
Der Raum-Name kann in einer Sprache vorliegen (als String), aber auch mehrsprachig als Objekt mit den Eigenschaften en, de, ru, ...
"name": { "en": "Kitchen", "de": "Küche", "ru": "Кухня", "pt": "Cozinha", "nl": "Keuken", "fr": "Cuisine", "it": "Cucina", "es": "Cocina", "pl": "Kuchnia", "zh-cn": "厨房" },
-
@paul53 Besten Dank!