NEWS
Alias-Manager Adapter
-
Anfängerproblem mit HM Fenstersensor - hat jemand nen Tipp?
Ich möchte mit einem Script die aliase auswerten, das geht aber davon aus, dass bei "Fenster" ein boolean ist.Der Homematic Sensor liefert aber
OPEN(1) oder
CLOSED(0)
zurück. Der Alias bleibt für immer auf 1 stehen. Ich habe den Verdacht, dass man das mit der Konvertierung im Alias beheben kann, habe aber zu wenig Ahnung. Danke im Voraus. -
@archimedeus sagte in Alias-Manager Adapter:
Anfängerproblem mit HM Fenstersensor - hat jemand nen Tipp?
Ich möchte mit einem Script die aliase auswerten, das geht aber davon aus, dass bei "Fenster" ein boolean ist.Der Homematic Sensor liefert aber
OPEN(1) oder
CLOSED(0)
zurück. Der Alias bleibt für immer auf 1 stehen. Ich habe den Verdacht, dass man das mit der Konvertierung im Alias beheben kann, habe aber zu wenig Ahnung. Danke im Voraus.Probier mal als Read-Function:
(val == 1 ? true : false)
-
@s-bormann said in Alias-Manager Adapter:
(val == 1 ? true : false)
Es tut nicht. Es ist unglaublich frustrierend. Seit Jahren versuche ich mit iobroker etwas hinzubekommen, aber ich stoße ständig auf scheinbar simple Probleme. Ich dachte mit alias bekomme ich jetzt eine funktionale GUI hin. 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. Einziger Grund es überhaupt zu versuchen, ist, dass iobroker und HM CCU auf einem PI laufen. Schon klar, nicht dein Problem.
In den Objekten sehe ich zwar sofort, wenn sich der Sensor ändert, aber in alias ändert sich nichts. Ein simpler Test mit einem BOOL widget in VIS hat auch nicht funktioniert, warscheinlich auch wegen Doofheit. ABER in Jarvis geht es, komischerweise, von selber. Mir ist nicht mal klar, warum der Sensor da drin ist Allerdings will ich ja den alias, nicht den Sensor, wegen besagter Skripte. Ich habe als alias auch Fensterkippung versucht, keine Verbesserung, es steht immer auf 1.
-
@archimedeus
versuch mal (val == "OPEN(1)" ? true : false), sofern "OPEN(1)" als string geliefert wird -
@archimedeus sagte in Alias-Manager Adapter:
Anfängerproblem mit HM Fenstersensor - hat jemand nen Tipp?
Ich möchte mit einem Script die aliase auswerten, das geht aber davon aus, dass bei "Fenster" ein boolean ist.Der Homematic Sensor liefert aber
OPEN(1) oder
CLOSED(0)
zurück. Der Alias bleibt für immer auf 1 stehen. Ich habe den Verdacht, dass man das mit der Konvertierung im Alias beheben kann, habe aber zu wenig Ahnung. Danke im Voraus.wie sieht denn der RAW von Deinem alias aus ? Poste das hier mal bitte in Code Tags.
"read": "!val"
EDIT:
Beispiel{ "type": "state", "common": { "name": "Badezimmer Fenster rechts", "type": "boolean", "read": true, "write": false, "role": "window.value", "alias": { "id": "hm-rpc.0.0007DBE9A69310.1.STATE", "read": "!val" } }, "native": {}, "from": "system.adapter.javascript.0", "user": "system.user.admin", "ts": 1640079259467, "_id": "alias.0.Test.Badezimmer_Fenster_rechts", "acl": { "object": 1636, "state": 1636, "owner": "system.user.admin", "ownerGroup": "system.group.administrator" } }
EDIT2:
Beachte Zeile 11. Ich habe das eben getestet, bei mir hat das funktioniert. Allerdings weiß ich nicht ob die role richtig ist ? ("role": "window.value",
)
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) -
@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