NEWS
Alias-Manager Adapter
-
@docgame ok, mit optional kann ich leben. wie gesagt, ich vermeide blockly, ausser ich brauch etwas und das ist fertig. ansonst mach ich alles über adapter, dafür sind sie ja da.
gerade rumgespielt. manuell gehts ja, du willst die möglichkeit für automatik haben...
-
Hallo,
kann es sein, dass Alias-Datenpunkte nicht mit dem SQL-Adapter aufgezeichnet werden können? Zumindest klappt es bei mir irgendwie nicht (Aufzeichnung lässt sich aktivieren, aber es werden keine Datensätze geschrieben).
Der Original-Datenpunkt kann ich über den SQL-Adapter problemlos aufzeichnen.
Oder muss ich etwas spezielles beachten/einstellen?
VG Jan -
@centrofly bei mir funktioniert das Aufzeichnen von Alias-Datenpunkten mit dem SQL-Adapter. Die bekommen halt eine eigene ID in der datapoints Tabelle!
-
edit: Hat sich erledigt, die Frage wurde schon von @DocGame beantwortet.
-
@sabinet Hmm, aber bei mir wird gar nichts aufgezeichnet.
Einstellungen:
Keine Werte werden aufgezeichnet:
-
@centrofly alias-id angeben? so als vermutung...
-
@da_woody Hab ich auch versucht, ändert leider nichts
-
@centrofly was bekommst du, wenn du mal die SQL-Abfrage
SELECT * FROM `datapoints` WHERE name = "alias.0.heizung.arbeitszimmer.room_temperature"
machst? Da müsstest du dann die id, name und type bekommen. type sollte 0 sein (ist zumindest bei mir so).
Ich seh auch grad, du hast bei "Speichern als" Automatisch eingestellt. Ändere das mal auf Nummer, damit die Daten sicher in der Tabelle ts_number landen (Temperatur ist ja eine Zahl).
-
@centrofly sagte in Alias-Manager Adapter:
@sabinet Hmm, aber bei mir wird gar nichts aufgezeichnet.
Einstellungen:
Keine Werte werden aufgezeichnet:
Hast Du mal neu gestartet? Neu angelegte Aliase sind in den Adaptern (so auch im JS-Adapter) oft bis zu einem Neustart nicht abonniert. Hat mich beim Erstellen von Blocklys schon in den Wahnsinn getrieben, bis ich es gerafft hatte....
-
@s-bormann Super, das war's, Restart des SQL-Adapters hat's gebracht! Vielen Dank
-
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.