NEWS
Alias-Manager Adapter
-
@dslraser
@dslraser
Re: Alias-Manager AdapterEs ist doch richtig, dass ich bei den Geräten eine Änderung sehen müsste? Also in der Geräte-Tab, wo ich die Aliase einrichte, ich verwende nicht den alias Tab - aber da tauchen die auch auf.
{ "_id": "alias.0.Fenster.Terassentür.ACTUAL", "common": { "name": "ACTUAL", "role": "value.window", "type": "number", "read": true, "write": false, "alias": { "id": "hm-rpc.0.00155BE9A43672.1.STATE", "read": "!val" } }, "native": {}, "type": "state", "acl": { "object": 1636, "state": 1636, "owner": "system.user.admin", "ownerGroup": "system.group.administrator" }, "from": "system.adapter.admin.0", "user": "system.user.admin", "ts": 1640080881548 }
Zum Vergleich der Datenpunkt direkt:
{ "type": "state", "common": { "name": "STATE", "def": 0, "type": "number", "read": true, "write": false, "min": 0, "max": 1, "states": { "0": "CLOSED", "1": "OPEN" }, "role": "value.window" }, "native": { "MIN": "CLOSED", "UNIT": "\"\"", "OPERATIONS": 5, "MAX": "OPEN", "FLAGS": 1, "ID": "STATE", "TAB_ORDER": 0, "TYPE": "ENUM", "DEFAULT": "CLOSED", "VALUE_LIST": [ "CLOSED", "OPEN" ], "CONTROL": "DOOR_SENSOR.STATE" }, "from": "system.adapter.hm-rpc.0", "user": "system.user.admin", "ts": 1640018382906, "_id": "hm-rpc.0.00155BE9A43672.1.STATE", "acl": { "object": 1636, "state": 1636, "file": 1632, "owner": "system.user.admin", "ownerGroup": "system.group.administrator" } }
Danke, dass du hilfst.
-
@archimedeus sagte in Alias-Manager Adapter:
"type": "number",
bei Dir steht
"type": "number",
?
Du willst doch einen"type": "boolean",
haben ?Und warum
"name": "ACTUAL",
?Hast Du das gemacht ?
Nach dem erstellen von alias starte ich immer den admin adapter und javascript Adapter neu.
Achtung: admin nur neu starten, nicht stoppen ! (sonst sperrst Du Dich selbst aus und mußt den admin über die Konsole neu starten)EDIT: und ab hier sieht es bei Dir auch anders aus:
"native": {}, "type": "state", "acl": { "object": 1636, "state": 1636, "owner": "system.user.admin", "ownerGroup": "system.group.administrator" }, "from": "system.adapter.admin.0", "user": "system.user.admin", "ts": 1640080881548 }
Kopiere das mal in Deinen alias DP, da ist Dein Gerät drinn.
{ "type": "state", "common": { "name": "Testfenster", "type": "boolean", "read": true, "write": false, "role": "window.value", "alias": { "id": "hm-rpc.0.00155BE9A43672.1.STATE", "read": "!val" } }, "native": {}, "from": "system.adapter.javascript.0", "user": "system.user.admin", "ts": 1640079259467, "_id": "alias.0.Test.Testfenster", "acl": { "object": 1636, "state": 1636, "owner": "system.user.admin", "ownerGroup": "system.group.administrator" } }
-
Also irgendwas geht jetzt. Nochmal. Ich lege ein neues Fenster an (Fenster erzeugt boolean, Fensterkippung erzeugt number, ich nehme boolean)
Das erzeugt im Alias Tab das hier:
und direkt bei den aliasen in den Objekten erscheint das:
{ "_id": "alias.0.Fenster.NeuesFenster", "common": { "name": { "de": "NeuesFenster" }, "role": "window" }, "native": {}, "type": "channel", "acl": { "object": 1636, "owner": "system.user.admin", "ownerGroup": "system.group.administrator" }, "from": "system.adapter.admin.0", "user": "system.user.admin", "ts": 1640083079198 }
Aber oh schreck, da kann man was aufklappen:
Und das geht!
{ "_id": "alias.0.Fenster.NeuesFenster.ACTUAL", "common": { "name": "ACTUAL", "role": "sensor.window", "type": "boolean", "read": true, "write": false, "alias": { "id": "hm-rpc.0.00155BE9A43672.1.STATE" } }, "native": {}, "type": "state", "acl": { "object": 1636, "state": 1636, "owner": "system.user.admin", "ownerGroup": "system.group.administrator" }, "from": "system.adapter.admin.0", "user": "system.user.admin", "ts": 1640083079281 }
Mein Fehler ist offenbar, dass ich die Spalte "Zustände" im Geräte-Tab falsch verstanden habe. Es werden keine Zustände angezeigt sondern irgendetwas anderes gezählt.
Danke erstmal, bis zur nächsten Hürde. -
@archimedeus
Noch ein Hinweis. Bei Dir stand irgendwas irgendwo von "Fensterkippung". Wenn Du jetzt den alias so wie vorgeschlagen erstellst, dann kannst Du nicht mehr zwischen gekippt/geöffnet unterscheiden (wenn es ein Drehggiff ist) !Bei dieser Auswertung (
"read": "!val"
) ist boolean bei 0 = true (also Fenster geschlossen = wahr) und alles andere (z.B. 1 oder 2) dann false.
Also bei nicht true kann das Fenster gekippt oder geöffnet sein.
Wenn es ein einfacher Sensor ist, der nur auf und zu liefert, also das hier:"min": 0, "max": 1, "states": { "0": "CLOSED", "1": "OPEN" },
dann geht das so wie Du willst, anders ist das dann bei einem Drehgriff, der liefert ja das hier:
"min": 0, "max": 2, "states": { "0": "CLOSED", "1": "TILTED", "2": "OPEN"
und da wird Dir dann über diese Variante (
"read": "!val"
) nicht nach gekippt/geöffnet unterschieden. -
@archimedeus sagte in Alias-Manager Adapter:
Alles was ich will ist, Listen von eingeschalteten Lampen und offenen Fenstern anzuzeigen. Skripte gibts dafür aber es zu visualisieren ist mir bisher nicht gelungen.
Ich habe kein VIS, aber ich nutze iQontrol. Ich habe dafür ein Blockly, das erstellt auch HTML-Listen, die sollten sich bestimmt auch in VIS anzeigen lassen...
In iQontrol sieht das z.B. dann so aus (ich habe ein dunkles Design, es gehen aber auch andere/eigene Design)alle diese Listen lassen sich in iQontrol, oder aber auch in den Objekten zu/auf klappen.
So sieht es bei geschlossenen Listen aus. (die Fenster habe ich gerade zu gemacht...)Diese Blockly gibt es hier zu finden.
https://forum.iobroker.net/post/549501
Allerdings überarbeite ich die gerade, weil es aktuell ein Problem beim erstellen der Datenpunkte gibt (macht das Blockly selbst)
Ich füge die überarbeiteten Testversionen so nach und nach hier ein. (Bei mir funktionieren diese wie gewollt, aber ich habe erst drei davon ferig)https://forum.iobroker.net/post/722938
Dieses Blockly arbeitet auch mit alias Datenpunkten und Aufzählungen, allerdings kannst Du dann den Datenpunkt im alias fast 1:1 vom original DP übernehmen, nur sinnvolle Namen würde ich im Alias erstellen. Dieses Blockly wertet beide Arten von Sensoren aus und kann somit nach geschlossen/gekippt oder geöffnet unterscheiden)
Wenn Du Interesse an den Blocklys hast, oder Fragen dazu hast, dann Frage dort im Thema nach. -
@dslraser
Danke! Jetzt ist erstmal Weihnachten, dann werde ich weiter basteln. -
@dslraser mein rasender freund, vllt kannst du mir da helfen...
wie ja schon im listengequatsche beschrieben, muss ich meine alias heftig ummurksen.
wenn ich mir meine bestehenden so anschaue, hab ich da das prob, daß ich teilweise bei ordnern channel oder device habe.
was wäre da richtig, wie kann ich das ändern?
die entgültigen sind ja immer states. das müsste ja passen.
mich verwirrt halt, einmal channel, einmal device.
-
@da_woody ich bin nicht sicher, ob dir das weiterhilft, aber ich hab im Alias-Ordner alle Lampen nochmal nach Etage und Zimmer sortiert...bei mir läuft das Sammeln der Lampen über deren von mir zugewiesenen Funktion (ENUM) "licht_alias". Habe allen States der Lampen (egal ob Zigbee, HUE oder Yeelight) diese ENUM zugeordnet. Die Objekte dann alle einheitlich auf AN/AUS umgestellt via State im Code.
In iQontrol funktioniert damit auch das Auflisten aller Lichter bei mir...
-
@kueppert ja, ne, klar! das ist ja nicht das problem. wie du siehst, hab ich ja auch eine etagen/raum/gerätezuordnung.
was ich nicht kapiere, warum einmal device, einmal channel...
das system enum hab ich jetzt auch mal durchschaut. lang genug hats gedauert, weil ich da immer wieder fehle/warnings drinnen hatte.
da ich eigentlich nur shelly habe, kann ich die einfach über switch einsortieren...
-
@da_woody sagte in Alias-Manager Adapter:
@kueppert ja, ne, klar! das ist ja nicht das problem. wie du siehst, hab ich ja auch eine etagen/raum/gerätezuordnung.
was ich nicht kapiere, warum einmal device, einmal channel...
das system enum hab ich jetzt auch mal durchschaut. lang genug hats gedauert, weil ich da immer wieder fehle/warnings drinnen hatte.
da ich eigentlich nur shelly habe, kann ich die einfach über switch einsortieren...
Das mit channel und device ist wohl an HM Logik angelehnt. Die haben meistens mehrere Kanäle (channel), worin sich wiederum mehrere states befinden. Device wäre das ganze Gerät, worin sich channel drinn befinden und da drinn sind dann die states.
Ich habe bei mir nur Datenpunkte zum alias gemacht, die ich auch in enums oder in Blocklys/Scripten verwende.Beispiel: HMIP Steckdose
der obere Ordner ist das device(Gerät)
Dieses Gerät hat 8 channel (Kanäle)
In den channel sind die states -
@dslraser sagte in Alias-Manager Adapter:
Das mit channel und device ist wohl an HM Logik angelehnt.
schön und gut. ist ja bei einem shelly nix anderes.
erklärt aber noch immer nicht, warum ich z.b. bei anwesenheit device habe, bei erdgeschoss channel, bei garage und PV device, bei waschküche aber wieder channel stehn habe...
das zieht sich ja durch alle geschosse durch. einmal so, einmal so...
ein ordner sollte doch immer das selbe sein.
sorry, aber da steig ich nicht durch... -
Hi,
inspiriert von @dslraser und @da_Woody und einigen anderen wollte ich mal Aliase anlegen.
Jetzt habe ich gestern begonnen Aliase für meine Fenster zu erzeugen... bin aber nicht fertig geworden.
Wollte gerade noch die letzten hinzufügen genau wie ich gestern die anderen erzeugt habe und erhalte nun diese Meldung:
Was ist denn da jetzt los bzw. falsch gelaufen?
EDIT: nach einem Reload der Seite sind die Meldungen weg, aber hat das anlegen jetzt auch richtig funktioniert?
-
@wendy2702 sagte in Alias-Manager Adapter:
Hi,
inspiriert von @dslraser und @da_Woody und einigen anderen wollte ich mal Aliase anlegen.
Jetzt habe ich gestern begonnen Aliase für meine Fenster zu erzeugen... bin aber nicht fertig geworden.
Wollte gerade noch die letzten hinzufügen genau wie ich gestern die anderen erzeugt habe und erhalte nun diese Meldung:
Was ist denn da jetzt los bzw. falsch gelaufen?
EDIT: nach einem Reload der Seite sind die Meldungen weg, aber hat das anlegen jetzt auch richtig funktioniert?
Doch, alles gut. Das ist nur ein Hinweis, dass der RAW des Alias keinen .native-Teil enthielt. In vielen Fällen ist der ohnehin leer. Damit es zu keinen Problemen kommt, fügt der Alias-Manager einen leeren .native-Teile ein (das war der Hinweis).
-
@s-bormann Auch wenn du zur Zeit fast keine Zeit hast (hast du mehrfach in der IQontrol-Diskusion erwähnt) wollte ich nochmals nach dem Vorschlag vom November fragen, bei dem du geschrieben hast und es nach Möglichkeit einbauen würdest:
Namengebung durch Alias-Manager
Das ganze ist wieder bei mir hochgekocht nachdem ich deine geniale Listenfunktion umgesetzt habe. Ich habe gedacht, ich gehe das Alias-Thema nochmals an, da der Linkeddevice-Adapter scheinbar doch nicht auf Amdin5 angepasst werden kann). So habe ich die letzen 3 Tage von über 500 Geräten mit deinem Adapter Alias angelegt, die ganzen Linkeddevice-states aus den Aufzählungen entfernt und die Alias reingepackt.
Jertzt habe ich bei den Fenstern überall "is opened", bei den Batterien überall "battery percent" usw. drinstehen. Das ist nicht nur bei Blocklys störend. Deine Listen sind so überhaupt nicht mehr zu gebrauchen. Manuelles ändern wären bei 500 Geräten mit jeweils 5 bis 10 States mehrere Tausend die zu ändern wären. Das dauert Wochen.Habe gedacht, das noch mehr User das Problem haben, die Funktion sinnvoll und vor allem einfach zu implementieren wäre.
Werde jetzt wieder alle Aliase löschen und abermals zurück zu Linkeddevice gehen.Ich könnte mich schwarz ärgern, dass ich nicht mit einigen Devices ausführliche Tests gemacht habe bevor ich alle bearbeitet habe.
-
@da_woody sagte in Alias-Manager Adapter:
ein ordner sollte doch immer das selbe sein.
sorry, aber da steig ich nicht durch...das war doch hier Thema
-
@crunchip ja, danke! hab schon den tip per PN bekommen. wobei mir da was seltsam vorkommt. unter javascript.0 kann ich sehr wohl was erstellen. letzter satz im tooltip...
seis drum, wieder was gelernt und behirnt, glaub ich mal...
werd nach einem backup mal mit dem script von @paul53 versuchen ordnung in meinen sauhaufen zu bekommen... -
@docgame
hast du mal darüber nachgedacht mit einem Skript durch die Aliasse zu gehen und die Bezeichnungen (nicht ID's) der States automatisch umsetzen zu lassen ?Mit einem geeigneten Selektor sollte das einfach sein.
A.
-
@asgothian Das wäre (wenn ich JS-Script könnte) sicherlich nee Möglichkeit die Arbeit der letzten Tage zu retten. Davon abgesehen wäre es trotzdem eine sinnvolle Ergänzung.
-
Hallo Zusammen,
Ich bin gerade dabei beim Kumpel den ioBroker aufzusetzen
Dort möchten wir gern den Alias-Manager nutzen
Das funktioniert mit "normalen" Geräten auch sehr gutNun kommt aber das Problem
Er hat einen Harmony-Hub (wie ich auch)
Dort klappt es aber nicht ein Gerät über den Alias zu schaltenHier mal der Orignal DP
{ "type": "state", "common": { "name": "Philips_TV-Stube:PowerOn", "role": "button", "type": "number", "write": true, "read": true, "min": 0 }, "native": { "action": "{\"command\":\"PowerOn\",\"type\":\"IRCommand\",\"deviceId\":\"75802413\"}", "name": "PowerOn", "label": "Power On", "controlGroup": "Power", "deviceId": "75802413" }, "from": "system.adapter.harmony.0", "user": "system.user.admin", "ts": 1641272480956, "_id": "harmony.0.Fernbedienung.Philips_TV-Stube.PowerOn", "acl": { "object": 1636, "state": 1636, "owner": "system.user.admin", "ownerGroup": "system.group.administrator" } }
und hier der angelegte Alias
{ "common": { "alias": { "id": "harmony.0.Fernbedienung.Philips_TV-Stube.PowerOn" }, "name": "TV-Stube:PowerOn", "role": "button", "type": "number", "read": true, "write": true }, "native": {}, "type": "state", "from": "system.adapter.admin.0", "user": "system.user.wszene", "ts": 1641274238201, "_id": "alias.0.Fernbedienungen.TV-Stube.PowerOn", "acl": { "object": 1636, "state": 1636, "owner": "system.user.wszene", "ownerGroup": "system.group.administrator" } }
Kann mir da Jemand helfen
Danke im Voraus
Gruß
MarcelPS:
Ich nutze bei mir noch den LinkedDevices Adapter da klappt es wunderbar -
@wszene liegt es vllt an
@wszene sagte in Alias-Manager Adapter:
"user": "system.user.admin",
@wszene sagte in Alias-Manager Adapter:
"user": "system.user.wszene",
@wszene sagte in Alias-Manager Adapter:
"owner": "system.user.wszene",