NEWS
Die Alias funktion - Fragen
-
@Berlon Nun, der Geräte Adapter legt im Ordner Alias Datenpunkte an, die den eigentlichen Datenpunkt Spiegeln. Dabei hat die Hauptüberschrift keinen nutzen sondern dient nur der Visualisierung. Allerdings liegen hinter den Funktionen verscheidene Parameter wie z.B die Art des Datenpunktes (Zahl,Zeichenkette,Bool,etc.). Falls du damit nicht glücklich wirst kannst du die Geräte Manuell anlegen. Das ist zwar etwas Zeitaufwendiger, erspart dir aber im späteren Verlauf einiges an Arbeit.
Dazu folgendes:
In dem Fenster Namen Vergeben und den entsprechenden Typ auswählen. Falls du unsicher bist nimm Zeichenkette, dass kannst du aber jederzeit ändern.
Dann nach der Fehlermeldung entsteht ein neues Objekt, dass du bearbeiten kannst.
Das sieht dann so aus, nicht erschrecken
Hier kommt nun mit Komma abgetrennt der Bezug zum Objekt rein wie folgt:
"alias": { "id": "hm-rpc.0.OEQ0854939.4.SET_TEMPERATURE" }
Im Beispiel Set Temperature wird höchstwahrscheinlich das Ausgangsobjekt Typ "number" sein. Das kannst du dann hier ändern
Also "string" durch "number" ersetzen.So mache ich das, da gibts dann auch so Freiheiten wie das umrechnen von Werten direkt im State ohne Script.
!!! Wichtig Nicht Benutzte oder Leere Datenpunkte aus dem Alias Ordner löschen sonst ist der Log voll mit Warnungen, da ja kein Objekt zum Spiegeln vorhanden ist.
-
@CrunkFX
Danke schon mal, da habe ich mal schon meine Beschäftigung.
Nun aber schon mal eine dumme Frage: Wie erstelle ich einen Ordner HK-Wohnzimmer unter dem Erdgeschoss??
Der Rest glaube ich verstanden zu haben. -
@Berlon Du klickst das EG an und Erstellst einen neuen Datenpunkt mit dem Namen HK-Wohnzimmer. Typ ist dabei egal.
Dann hast du einen DP mit dem Namen HK-Wohnzimmer. Wenn du den jetzt wieder anklickst und einen neuen Datenpunkt erstellst, sowie ich das oben geschrieben hab, wird der Datenpunkt zum Ordner.
-
hi!
@Berlondie struktur baust du durch . getrennt auf.
-
@CrunkFX
OK, Bin schon dran. Nächste Frage:
Es gibt auch den Datenpunkt CONTROL_MODE{ "type": "state", "common": { "name": "HM-CC-RT-DN OEQ0853950:4.CONTROL_MODE", "def": 0, "type": "number", "read": true, "write": false, "min": 0, "max": 3, "states": { "0": "AUTO-MODE", "1": "MANU-MODE", "2": "PARTY-MODE", "3": "BOOST-MODE" }, "role": "indicator" }, "native": { "CONTROL": "HEATING_CONTROL.CONTROL_MODE", "DEFAULT": 0, "FLAGS": 1, "ID": "CONTROL_MODE", "MAX": 3, "MIN": 0, "OPERATIONS": 5, "TAB_ORDER": 0, "TYPE": "ENUM", "UNIT": "", "VALUE_LIST": [ "AUTO-MODE", "MANU-MODE", "PARTY-MODE", "BOOST-MODE" ] }, "from": "system.adapter.hm-rega.0", "user": "system.user.admin", "ts": 1596208246371, "_id": "hm-rpc.0.OEQ0853950.4.CONTROL_MODE", "acl": { "object": 1638, "state": 1638 } }
Wie realisiere ich den im Alias??
Den Wert benötige ich um in meiner Visualisierung um bei einer Grafik die Sichtbarkeit zu steuern. -
@Berlon Anlegen als Number und dann diesen Teil
"states": { "0": "AUTO-MODE", "1": "MANU-MODE", "2": "PARTY-MODE", "3": "BOOST-MODE" }, "min": 0, "max": 3
Unter alias einfügen
"alias": { "id": "hm-rpc.0.OEQ0854939.4.CONTROL_MODE" }, "states": { "0": "AUTO-MODE", "1": "MANU-MODE", "2": "PARTY-MODE", "3": "BOOST-MODE" }, "min": 0, "max": 3
-
@CrunkFX
Kannst du bitte mal hier einmal verändern? Ich habe momentan etwas Probleme deinen Anweisungen zu folgen. Im Thermostat ist dieser Datenpunkt vom Typ enum.{ "_id": "alias.0.Erdgeschoss.HK-Wohnzimmer.CONTROL_MODE", "type": "state", "common": { "name": "CONTROL_MODE", "role": "", "type": "number", "read": true, "write": true, "desc": "Manuell erzeugt", "def": "", "alias": { "id": "hm-rpc.0.OEQ0853950.4.CONTROL_MODE" } }, "native": {}, "from": "system.adapter.admin.0", "user": "system.user.admin", "ts": 1596990109308, "acl": { "object": 1636, "state": 1636, "owner": "system.user.admin", "ownerGroup": "system.group.administrator" } }
-
{ "_id": "alias.0.Erdgeschoss.HK-Wohnzimmer.CONTROL_MODE", "type": "state", "common": { "name": "CONTROL_MODE", "role": "", "type": "number", "read": true, "write": true, "desc": "Manuell erzeugt", "def": "", "min": 0, "max": 3, "states": { "0": "AUTO-MODE", "1": "MANU-MODE", "2": "PARTY-MODE", "3": "BOOST-MODE" }, "alias": { "id": "hm-rpc.0.OEQ0853950.4.CONTROL_MODE" } }, "native": {}, "from": "system.adapter.admin.0", "user": "system.user.admin", "ts": 1596990109308, "acl": { "object": 1636, "state": 1636, "owner": "system.user.admin", "ownerGroup": "system.group.administrator" } }
-
@CrunkFX
Das der Herkunfstdatenpunkt vom Typ enum ist macht im Alias kein Problem da hier Typ number??Es ist geschafft, das erste Thermostat ist nun im Alias.
Wann kommen die Werte oder wie bekomme ich die da rein.Ist es richtig, das nun bei Gerätetausch hier in den Datenpunkten nur noch auf die neue Geräte-ID geändert werden muss??
-
@Berlon Enum ist kein Datenpunkt sondern die Zuweisung in den IOBroker Aufzählungen. Die Werte kommen nach einem Update der Datenpunkte, dazu am einfachsten den Adapter einmal Neustart en. Nur was bei common steht hat relevanz. Ja es ist korrekt, dass bei nem Hardwaretausch nur die Adresse geändert werden muss. Das ist das große Konzept des Alias Systems. Der klassische Objekt Browser soll in Zukunft nur noch eine nebensächliche Rolle spielen und dafür das alias system ausgebaut werden.
-
Ich nutze zum Alias erstellen das Script von @CruziX
Das mit den Adaptern zur Alias Erstellung ist irgendwie noch nicht wirklich fertig, oder ich kapiere es einfach nicht.
Mit dem Script kann man alle Alias, wenn gewünscht, auf einmal erstellen. Es ist nur einmal Arbeit das Script zu befüllen.
Hier in diesem Beitrag im SpoilerVorlagen Alias
und dann im SpoilerVorlage Alias erstellen
habe ich ein Beispiel eingefügt. -
@CrunkFX hallo, lese hier das Thema gerade mit. Ich habe ZWave Türsensoren die für "offen" 22 und geschlossen "23"ausgeben. Nun möchte ich per Alias für 22 = true und für 23 = false ausgeben.
Geht dies ? Was muss ich hierfür in RAW eingeben ?Gruß André
-
@gelberlemmy Was soll denn mit true und false gemacht werden?
MFG
CrunkFX -
@gelberlemmy sagte in Die Alias funktion - Fragen:
@CrunkFX hallo, lese hier das Thema gerade mit. Ich habe ZWave Türsensoren die für "offen" 22 und geschlossen "23"ausgeben. Nun möchte ich per Alias für 22 = true und für 23 = false ausgeben.
Geht dies ? Was muss ich hierfür in RAW eingeben ?Gruß André
{ "from": "....", "user": "....", "ts": ..., "common": { "name": "on", "role": "", "type": "boolean", "desc": "Manuell erzeugt", "read": true, "write": false, "def": false, "alias": { "id": "orginal.pfad", "read": "val === '22' ? true : false" } }, "native": {}, "acl": { "object": ...., "owner": "system.user.admin", "ownerGroup": "system.group.administrator", "state": .... }, "_id": "....", "type": "state" }
Kann man noch ausweiten - aber im Prinzip langt ja 22 = true - alles andere false.
-
@CrunkFX ich würde gern solch Dinge relativ gleich haben. In den Skripten zB würde ich gern immer den Weg mit true und false arbeiten.
-
@mickym super danke. Werde es einmal ausprobieren. Wäre super genial wenn das klappt. Danke
-
@gelberlemmy ich habs nochmal im Gesamtzusammenhang gepostet. Das Ganze muss unter alias unter common definiert werden. ggf. müssen die hochkommas bei der 22 weg, wenn man die Quelle als Zahl interpretieren kann.
-
@mickym ja die hochkommas müssen gelöscht werden bei mir. Was bedeutet eigentlich val === '22' eigentlich genau. Was passiert ist ja klar...
-
@gelberlemmy Da das Ganze als Zeichenkette (String) in doppelten Anführungszeichen ist, markieren die Hochkommas eine Zeichenkette in der Zeichenkette - bei Dir ist es aber tatsächlich eine Zahl - deshalb ohne Hochkommas. Im Prinizip gibst Du in dem String mit den doppelten Anführungszeichen Javascript code ein und "val" repräsentiert den Wert des Orginal-Datenpunktes.
Im Prinzip wird einfach bei setzten des Wertes Deines Alias (Read) Datenpunktes (Wertes = val) den Conditional Operator genutzt. Somit bedeutet es nichts weiter als Dein Orginal hat den Wert 22, dann setze true anderenfalls false. -
@mickym super danke für die Erklärung