NEWS
Rolle eines Objektes auslesen
-
@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...
-
@joergh sagte in Rolle eines Objektes auslesen:
dabei auch noch Werte neu einlesen angehakt.
das ist unerheblich.
Wenn die Datenpunkte bei Adapterstart gelöscht werden, vetlieren sie alle Zusatzinfos.Du musst die Checkbox
@homoran sagte in Rolle eines Objektes auslesen:
"Datenpunkte bei Adapterstart nicht löschen"
aktivieten, dann passiert das nicht
-
@homoran sagte in Rolle eines Objektes auslesen:
@joergh sagte in Rolle eines Objektes auslesen:
dabei auch noch Werte neu einlesen angehakt.
das ist unerheblich.
Wenn die Datenpunkte bei Adapterstart gelöscht werden, vetlieren sie alle Zusatzinfos.Du musst die Checkbox
@homoran sagte in Rolle eines Objektes auslesen:
"Datenpunkte bei Adapterstart nicht löschen"
aktivieten, dann passiert das nicht
Ein Stück weit unlogisch, da er sie doch beim "einmaligen einlesen" nach dem Start des Adapters eben wieder aus der CCU lesen sollte und da auch alle Infos und nicht nur die rudimentären...?
Das erklärt meinen Verständnis nach nicht, warum er die Zusatzinfos nicht aus der CCU zieht... -
@joergh sagte in Rolle eines Objektes auslesen:
da er sie doch beim "einmaligen einlesen" nach dem Start des Adapters eben wieder aus der CCU lesen sollte
ja, die Daten, die dort vorliegen, aber keine History, Sourceanalytix oder sonstige Einstellungen und auch keine selbst angelegten Enums.
@joergh sagte in Rolle eines Objektes auslesen:
warum er die Zusatzinfos nicht aus der CCU zieht...
sind die denn dort konfiguriert?
wenn ja, hast du den hm-rega auch neu gestartet?
Enums kommen über diesen -
@homoran sagte in Rolle eines Objektes auslesen:
@joergh sagte in Rolle eines Objektes auslesen:
da er sie doch beim "einmaligen einlesen" nach dem Start des Adapters eben wieder aus der CCU lesen sollte
ja, die Daten, die dort vorliegen, aber keine History, Sourceanalytix oder sonstige Einstellungen und auch keine selbst angelegten Enums.
@joergh sagte in Rolle eines Objektes auslesen:
warum er die Zusatzinfos nicht aus der CCU zieht...
sind die denn dort konfiguriert?
wenn ja, hast du den hm-rega auch neu gestartet?
Enums kommen über diesenJa, klar sind die dort konfiguriert.
Nein, Rega habe ich nicht neu gestartet. Das war mir neu, da sie in den DP unter hm-rpc laufen, dachte ich, das rpc mit "neu einlesen" den Job erledigt...
[EDIT]
Danke! Das war der entscheidende Hinweis. Nach Neustart hm-Rega sind die Räume etc. wieder da...
Jetzt schreibe ich mir dennoch ein Skript, da ich die nun mal lieber lokal speichere, statt mich darauf zu verlassen, dass sie nicht verschwinden...