NEWS
Rolle eines Objektes auslesen
-
@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...
-
@joergh sagte in Rolle eines Objektes auslesen:
Das war mir neu, da sie in den DP unter hm-rpc laufen, dachte ich, das rpc mit "neu einlesen" den Job erledigt...
wenn du die Datenpunkte nicht löschst, bleiben sie lokal gespeichert
aktiviere einfach die Checkbox -
@homoran sagte in Rolle eines Objektes auslesen:
@joergh sagte in Rolle eines Objektes auslesen:
Das war mir neu, da sie in den DP unter hm-rpc laufen, dachte ich, das rpc mit "neu einlesen" den Job erledigt...
wenn du die Datenpunkte nicht löschst, bleiben sie lokal gespeichert
aktiviere einfach die CheckboxAktualisiert er dann eventuell neu hinzugekommene?
-
Ich verstehe es nicht, Du hast doch geschrieben, dass meine Lösung funktioniert, indem Du die Rolle im Selektor filterst.
https://forum.iobroker.net/post/1219936
Was willst Du mehr. Und warum Du die neuen Puzzleteile nicht verwenden kannst, habe ich Dir eigentlich auch mehrfach erklärt.
Du kannst auch functions oder rooms eingeben - das ist alles in dem Screenshot:
Na dann lasse ich Euch wieder alleine hier. -
@mickym sagte in Rolle eines Objektes auslesen:
Ich verstehe es nicht, Du hast doch geschrieben, dass meine Lösung funktioniert, indem Du die Rolle im Selektor filterst.
https://forum.iobroker.net/post/1219936
Was willst Du mehr. Und warum Du die neuen Puzzleteile nicht verwenden kannst, habe ich Dir eigentlich auch mehrfach erklärt.
Na dann lasse ich Euch wieder alleine hier.
Ich würde Dir ja gerne helfen, weiß nur nicht was Du denn nicht verstehst?
Die Diskussion mit @Homoran ging doch jetzt um die Motivation, was ich vorhabe und warum...
Unzutreffend ist jedenfalls, dass man nicht auf Objekte zugreifen kann und um nichts anderes ging es bei meinem Beispiel der neuen Bausteine.
-
@mickym sagte in Rolle eines Objektes auslesen:
Was willst Du mehr. Und warum Du die neuen Puzzleteile nicht verwenden kannst, habe ich Dir eigentlich auch mehrfach erklärt.
Du kannst auch functions oder rooms eingeben - das ist alles in dem Screenshot:Die States kann ich damit auslesen, aber leider sind die Räume und Funktionen bei den Channels angehängt. Ich bekomme keine Ergebnisse, wenn ich die [EDIT] functions der States abfrage, da dort nichts hinterlegt ist. Wie bekomme ich denn die functions der channel bspw.?
-
@joergh sagte: keine Ergebnisse, wenn ich die States abfrage
Wie fragst du sie ab?
-
@paul53 Habe da alles Mögliche probiert, weiss aber nicht wie...mit [channel.id=hm-rpc.1..1.] geht es jedenfalls nicht...
[EDIT]
Ich meinte nicht die States, sondern die functions der states....sorry!
-
@joergh sagte: mit [channel.id=hm-rpc.1..1.] geht es jedenfalls nicht...
Du möchtest das Gewerk im Selektor verwenden? Wie ist die Schreibweise in der Enum-ID? Denn diese ist entscheidend für
$('hm-rpc.1.*.STATE(functions=gewerk)')
-
@paul53 Danke Dir! Jetzt hab ich es hinbekommen!
-
@joergh sagte: Jetzt hab ich es hinbekommen!
Möchtest du dann den zugehörigen Raum abfragen, wird eine JS-Funktion mit Ergebnis benötigt.
id = id.substring(0, id.lastIndexOf('.')); // parentID (Kanal) if(existsObject(id)) { let room = getObject(id, 'rooms').enumNames[0]; if(typeof room == 'object') room = room.de; return room; }
-
@paul53 Ok. Schade, dass das nicht auch wie mit functions funktioniert. Danke für den Code!
-
@joergh sagte: Schade, dass das nicht auch wie mit functions funktioniert.
Die Selektion funktioniert auch mit (rooms=raum). Aber du willst ja nicht nach Räumen selektieren, sondern bei offenem Fenster den zugehörigen Raumnamen, der dem Kanal (parentObject) zugewiesen ist, ausgeben.