NEWS
[Vorlage] Alias per Skript erzeugen
-
@paul53 Besten Dank. Jetzt habe ich es (hoffentlich) verstanden und werde es gleich mal versuchen umzusetzen.
-
@Markus84 said in [Vorlage] Alias per Skript erzeugen:
@paul53 Besten Dank. Jetzt habe ich es (hoffentlich) verstanden und werde es gleich mal versuchen umzusetzen.
Vielleicht habe ich es doch nicht so ganz verstanden... Den Alias anzulegen hat wunderbar funktioniert. Den value synchronisiert er auch sehr schön zwischen Alias und dem zu schaltenden Datenpunkt. Wenn ich Name, state oder role ändere, wird diese Änderung jedoch nicht mitsynchronisiert. Ist das normal? Falls dies normal ist, kann ich bedenkenlos diese Daten im Alias ändern (werden dann logischerweise zwar nicht synchronisiert) oder lässt man besser die Finger davon?
-
@Markus84 sagte:
Wenn ich Name, state oder role ändere, wird diese Änderung jedoch nicht mitsynchronisiert. Ist das normal?
Ja, das sind statische Attribute. Der Alias kann andere Attribute haben als das Original, wozu bei der Alias-Erzeugung die kommentierten Zeilen im Skript dienen. Einmal erzeugte Attribute können nur manuell geändert werden.
-
Hallo, leider wird bei mir der alias.0 nicht angelegt.
Im Log steht folgendes:javascript.0 2020-01-04 08:20:56.572 info (2420) script.js.common.alias_anlegen: registered 0 subscriptions and 0 schedules
javascript.0 2020-01-04 08:20:56.571 warn (2420) script.js.common.alias_anlegen: setObject(id=alias.0.lampe2, obj={"type":"state","common":{"name":"Lampe1 on","type":"boolean","role":"switch","read":true,"write":true,"alias":{"id":"deconz.0.
javascript.0 2020-01-04 08:20:56.569 info (2420) script.js.common.alias_anlegen: getObject(id=deconz.0.Lights.2.on, enumName=undefined) => {"type":"state","common":{"name":"Lampe1 on","type":"boolean","role":"switch","read":true,"write":true
javascript.0 2020-01-04 08:20:56.554 info (2420) Start javascript script.js.common.alias_anlegenDas komische auf einer anderen iobroker-Installation geht es. Softwarestand ist der gleiche. Zwei Unterschiede gibt es. Beim funktionierenden läuft iobroker auf ner VM und bei der anderen auf einem Rasberry Pi 3. Der 2te Unterschied es sind weniger Instancen auf der problematischen Installation.
Im Skript aber ich nur die Namen angepasst, den Rest auskommentiert gelassen. -
@patti72 sagte:
wird bei mir der alias.0 nicht angelegt.
In der Konfiguration der JS-Instanz ist setObject freigegeben ?
Logs bitte in Code tags (</>) posten.
-
Könntest Du bitte kurz erklären, wie aus einem alias vom typ boolean ein "offen" oder "geschlossen" wird?
Leider fehlen mir die Javascript-Kenntnisse, um Dein Script aus dem ersten Post dahingehend richtig zu interpretieren.
Danke!
Beispiel hier:
{ "_id": "alias.0.Fenster_und_Tuer_Sensoren.Fenster.EG.Esszimmer.Fenster.Stellung", "type": "state", "common": { "name": "Stellung", "role": "", "type": "boolean", "read": true, "write": true, "desc": "Manuell erzeugt", "def": false, "alias": { "id": "zigbee.0.00158d00028b5941.opened" } }, "native": {}, "from": "system.adapter.admin.0", "user": "system.user.admin", "ts": 1577905721582, "acl": { "object": 1636, "state": 1636, "owner": "system.user.admin", "ownerGroup": "system.group.administrator" } }
-
@XxJooO :
Wie sieht das Objekt vom Datenpunkt "zigbee.0.00158d00028b5941.opened" aus ? Welche Werte kann er annehmen ? -
{ "from": "system.adapter.zigbee.0", "user": "system.user.admin", "ts": 1572607261264, "common": { "name": "Is open", "type": "boolean", "role": "state", "read": true, "write": false, "custom": { "history.0": { "enabled": true, "changesOnly": true, "debounce": "", "maxLength": "", "retention": "31536000", "changesRelogInterval": "", "changesMinDelta": "", "aliasId": "" }, "influxdb.0": { "enabled": true, "changesOnly": true, "debounce": "", "maxLength": 10, "retention": 0, "changesRelogInterval": "", "changesMinDelta": "", "storageType": "", "aliasId": "" } } }, "native": {}, "acl": { "object": 1636, "owner": "system.user.admin", "ownerGroup": "system.group.administrator", "state": 1636 }, "_id": "zigbee.0.00158d000288e163.opened", "type": "state" }
-
@XxJooO
Der Original-Datenpunkt ist doch ebenfalls vom Typ "boolean", allerdings "read only". Da muss nichts gewandelt werden. Oder möchtest Du Zustandstexte darstellen (Zeile 17) ?states = {false: 'geschlossen', true: 'offen'}; // Zahlen (Multistate) oder Logikwert (z.B. Aus/Ein)
-
ja, der Ausgabewert soll bei true offen und bei false gern geschlossen sein.
-
-
@patti72
Den Haken bei "Nicht alle Zustände beim Start abonnieren" raus nehmen !! -
@paul53 leider geht es noch immer nicht. Die selbe Warnung im log.
-
@patti72 sagte:
Die selbe Warnung im log.
Die Warnung ist oben leider nicht vollständig. Bitte nochmal aus dem Reiter "Log" in Code tags posten.
-
Mehr kommt nicht, wenn ich das Script starte.
2020-01-04 08:17:42.694 - debug: javascript.0 (2420) system.adapter.admin.0: logging false 2020-01-04 08:17:43.293 - debug: javascript.0 (2420) system.adapter.admin.0: logging true 2020-01-04 08:17:52.269 - debug: javascript.0 (2420) sendTo "loadTypings" to system.adapter.admin.0 from system.adapter.javascript.0 2020-01-04 08:20:47.665 - debug: javascript.0 (2420) sendTo "loadTypings" to system.adapter.admin.0 from system.adapter.javascript.0 2020-01-04 08:20:53.988 - info: javascript.0 (2420) Stop script script.js.common.alias_anlegen 2020-01-04 08:20:56.554 - info: javascript.0 (2420) Start javascript script.js.common.alias_anlegen 2020-01-04 08:20:56.569 - info: javascript.0 (2420) script.js.common.alias_anlegen: getObject(id=deconz.0.Lights.2.on, enumName=undefined) => {"type":"state","common":{"name":"Lampe1 on","type":"boolean","role":"switch","read":true,"write":true},"native":{},"from":"system.adapter.deconz.0","user":"system.user.admin","ts":1578087361576,"_id":"deconz.0.Lights.2.on"} 2020-01-04 08:20:56.571 - warn: javascript.0 (2420) script.js.common.alias_anlegen: setObject(id=alias.0.lampe2, obj={"type":"state","common":{"name":"Lampe1 on","type":"boolean","role":"switch","read":true,"write":true,"alias":{"id":"deconz.0.Lights.2.on"}},"native":{}}) - was not executed, while debug mode is active 2020-01-04 08:20:56.572 - info: javascript.0 (2420) script.js.common.alias_anlegen: registered 0 subscriptions and 0 schedules 2020-01-04 08:28:45.983 - debug: javascript.0 (2420) system.adapter.admin.0: logging false 2020-01-04 08:28:53.754 - info: info.0 (1408) Popup news was read... 2020-01-04 08:28:55.246 - info: host.iobroker_oben Update repository "default" under "http://download.iobroker.net/sources-dist.json" 2020-01-04 08:29:48.955 - debug: javascript.0 (2420) system.adapter.admin.0: logging true
-
-
@paul53 von der JS Instanz oder im Script?
-
-
@paul53 Tausend Dank. Hat geholfen.
-
@XxJooO sagte in [Vorlage] Alias per Skript erzeugen:
ja, der Ausgabewert soll bei true offen und bei false geschlossen ausgeben.