NEWS
Rolle eines Objektes auslesen
-
Hi,
ich würde gerne eine Rolle eines Objektes auslesen, um eine Liste zu erstellen, die nur die Fenstersensoren beinhaltet.
So sehen die Datenpunkte aus:
Mein Blockly dazu sieht so aus, liefert aber immer Fehler:
Was mache ich falsch?
-
@joergh Du kannst direkt im Selektor filtern:
Also bei Dir halt nach [role=value.window].
-
@mickym Danke! Das funktioniert!
Wieso klappt das mit dem Attribut nicht? Ich würde es gerne verstehen....
-
@joergh sagte in Rolle eines Objektes auslesen:
@mickym Danke! Das funktioniert!
Wieso klappt das mit dem Attribut nicht? Ich würde es gerne verstehen....
Das klappt deshalb nicht, weil der Selektor nur IDs zurückliefert, aber keine Objekte. Deshalb kannst du auch keine Objekte analysieren.
-
@mickym Achso, danke. Dass heißt ich müsste dann einfach erst das Objekt in eine andere Variable einlesen und da könnte ich dann nach dem Attribut suchen, korrekt?
-
@joergh Ich weiß nicht, wie Du überhaupt auf die Objekteigenschaften in Blockly zugreifen kannst. Meines Wissens (aber da musst Du dann @paul53 fragen, geht das im Blockly nicht). Der Selektor, den Du nutzt gibt Dir nichts weiter als eine Liste zurück mit den IDs (reiner Text und keine Objekte).
Du kannst aber in dem Selektor ggf. auch andere Eigenschaften der Objekte direkt abfragen.
siehe: https://github.com/ioBroker/ioBroker.javascript/blob/master/docs/en/javascript.md#---selector
Sprich wenn Du weitere Bedingungen setzen willst, dann gleich im Selektor.
-
@mickym sagte: auf die Objekteigenschaften in Blockly zugreifen
EDIT: Die unteren 7 Auswahlen enthalten common-Attribute des statischen Objektes.
-
@mickym Blockly hat neue Bausteine, da geht nun eine Menge, die zuvor nicht ging, so auch der Zugriff auf Objekte...
-
@joergh Ja wenn Du Objekte hast. Du hast aber keine Objekte. @paul53 hat Dir ja gerade gepostet, wie Du auf die Objekteigenschaften zugreifst.
Du musst also die Eigenschaften jeder einzelnen ID überprüfen.
An der 1. Debug Ausgabe siehst Du ja, dass eine Liste mit reinem Text zurückgeliefert wird und kein Obkjekt.
-
@mickym Wofür?
Ich kann Dir leider gerade nicht ganz folgen.Mit dem Selektor suche ich mir die ganzen Fenster ObjektIDs raus und dann kann ich mir den dazugehörigen Wert eines Attributes in dem Objekt, welches ich dann ja in eine Variable schreiben kann suchen....oder nicht?
Ich wollte zuvor nur darauf hinweisen, dass sich in Blockly einiges getan hat und man nun nicht mehr auf Javascript Code zurückgreifen muss, um solche Dinge zu erledigen, weil Du meintest man könne in Blockly nicht auf Objekt zugreifen...
-
@joergh sagte in Rolle eines Objektes auslesen:
Mit dem Selektor suche ich mir die ganzen Fenster ObjektIDs raus und dann kann ich mir den dazugehörigen Wert eines Attributes in dem Objekt, welches ich dann ja in eine Variable schreiben kann suchen....oder nicht?
geht das mit enums nicht?
warum über die Rolle? -
@joergh sagte in Rolle eines Objektes auslesen:
@mickym Wofür?
Ich kann Dir leider gerade nicht ganz folgen.Mit dem Selektor suche ich mir die ganzen Fenster ObjektIDs raus und dann kann ich mir den dazugehörigen Wert eines Attributes in dem Objekt, welches ich dann ja in eine Variable schreiben kann suchen....oder nicht?
Ich wollte zuvor nur darauf hinweisen, dass sich in Blockly einiges getan hat und man nun nicht mehr auf Javascript Code zurückgreifen muss, um solche Dinge zu erledigen, weil Du meintest man könne in Blockly nicht auf Objekt zugreifen...
Ich verstehe Dich wiederum nicht. Der Selektor liefert Dir KEINE Objekte, sondern eine Liste, die nur die IDs als Text hat. Da helfen Dir die neuen Bausteine nichts. Die helfen Dir nur, wenn Du bereits ein Objekt hast oder selbst eines erstellen willst.
Um aber auf die Objekteigenschaften eines States zuzugreifen (das hat mit den neuen Bausteinen 0,0 zu tun), musst Du dieses Puzzleteil nehmen, dass @paul53 und ich Dir gepostet haben.
-
@homoran sagte in Rolle eines Objektes auslesen:
@joergh sagte in Rolle eines Objektes auslesen:
Mit dem Selektor suche ich mir die ganzen Fenster ObjektIDs raus und dann kann ich mir den dazugehörigen Wert eines Attributes in dem Objekt, welches ich dann ja in eine Variable schreiben kann suchen....oder nicht?
geht das mit enums nicht?
warum über die Rolle?Gut dann lass ich Euch nun wieder alleine mit dem Puzzeln, ich glaube es ist besser, wenn ihr unter Euch seid, um über alternative Puzzleteile zu sprechen und Ihr Vor- und Nachteile erörtert. Das ist etwas für Puzzlespezialisten.
-
-
-
@homoran sagte: warum über die Rolle?
Warum nicht über die Rolle, wenn sie eindeutig ist? Enums muss man meist erst zuweisen.
-
@paul53 sagte in Rolle eines Objektes auslesen:
@homoran sagte: warum über die Rolle?
Warum nicht über die Rolle, wenn sie eindeutig ist? Enums muss man meist erst zuweisen.
ja, Enums sind ggf. aufwändiger, und ob die role immer, insbesondere bei alias oder eigenen Datenpunkten für alle Datenpunkte eindeutig ist, sollte @JoergH prüfen.
Es kommt auch vor, dass z.B. mal .level und .value verwendet werden.
-
@homoran sagte in Rolle eines Objektes auslesen:
@mickym das hat nichts mit puzzle zu tun.
da geht es um den grundsätzlichen Ansatz das erwünschte zu erreichen, egal ob mit Strippen oder Puzzles.wobei mir immer noch nicht klar ist was @JoergH im Endeffekt erreichen will.
Eigentlich steht es im ersten Post:
Ich will eine Liste mit den IDs der Fenster haben, um mir mein eigenes Blockly zu basteln, mithilfe dessen ich deren Zustände auswerten kann.
Bisher nutze ich das Javascript von Pittini, allerdings verliert der hm-rpc Adapter hin- und wieder mal die Datenpunkte. Heute waren sie mal wieder alle weg. Daraufhin habe ich versucht diese wieder einzulesen, was er auch gemacht hat, allerdings sämtliche ohne Rolle und ohne Räume (scheint ein Bug zu sein, Github Issue habe ich eröffnet), was bedeutet, dass ich alles wieder manuell herstellen muss.
Sowieso verlangt das Script eine etwas unorthodoxe Kennzeichnung, die der Adapter so nicht selber bietet, sodass man immer manuell nachbearbeiten muss.Das will ich nun ein für alle Mal lösen und etwas selber schreiben. Dazu brauche ich eine Liste der Fenster, dann kann ich die Werte auslesen. Leider finde ich keine Beschreibung der neuen Blockly Funktionen und habe keine praktische Erfahrung mit Objekten und deren Funktionsweise, deswegen frage ich ja auch mal nach..
-
@joergh sagte in Rolle eines Objektes auslesen:
allerdings verliert der hm-rpc Adapter hin- und wieder mal die Datenpunkte. Heute waren sie mal wieder alle weg
hast du die Instanz neu gestartet
und nicht "Datenpunkte bei Adapterstart nicht löschen" in der Instanz aktiviert? -
@homoran sagte in Rolle eines Objektes auslesen:
@joergh sagte in Rolle eines Objektes auslesen:
allerdings verliert der hm-rpc Adapter hin- und wieder mal die Datenpunkte. Heute waren sie mal wieder alle weg
hast du die Instanz neu gestartet
und nicht "Datenpunkte bei Adapterstart nicht löschen" in der Instanz aktiviert?Ja, dabei auch noch Werte neu einlesen angehakt. Er stellt die DP wieder her, aber ohne jegliche Zusatzinfos...