NEWS
[Gelöst]Alias mit Script erstellen - Button
-
@paul53
nur ein Beispiel...
-
Der Orginal DP ist vom Harmony Adapter da ist es auch ein button
EDIT:
Ich habe es jetzt nochmal mit steuere probiert
Mit dem Originalen DP geht es aber wieder nicht mit dem AliasHier mal das was das Log dazu sagt
javascript.0 2021-01-20 20:22:30.122 warn (1070) at processTimers (internal/timers.js:497:7) javascript.0 2021-01-20 20:22:30.122 warn (1070) at listOnTimeout (internal/timers.js:556:17) javascript.0 2021-01-20 20:22:30.118 warn (1070) at Timeout._onTimeout (/opt/iobroker/node_modules/iobroker.javascript/lib/sandbox.js:1475:29) javascript.0 2021-01-20 20:22:30.118 warn (1070) at Object.setState (/opt/iobroker/node_modules/iobroker.javascript/lib/sandbox.js:1417:20) javascript.0 2021-01-20 20:22:30.116 warn (1070) You are assigning a boolean to the state "harmony.0.Fernbedienung.Bose-AV-Receiver.VolumeUp" which expects a number. Please fix your code to use a number or change the state type to boolean. T@wszene sagte in Alias mit Script erstellen - Button funktionieren nicht:
Hier mal das was das Log dazu sagt
Die Warnung ist normal, wenn true auf einen Datenpunkt vom Typ "number" geschrieben wird.
Ändere mal den Alias common (type, min raus, read und alias.write), damit er nach "boolean" wandelt:
"common": { "name": "AV-Receiver - Leiser", "role": "button", "type": "boolean", "write": true, "read": false, "alias": { "id": "harmony.0.Fernbedienung.Bose-AV-Receiver.VolumeDown", "write": "val ? 1 : 0" }, "desc": "per Script erstellt" }, -
@wszene sagte: Ich kann mit den Alias z.B, Dein AV-Receiver lauter machen. Aber nur wenn ich direkt drauf drucke also im Browser direkt auf den Button
Prüfe mal mit dem Test-Blockly wie sich der Datenpunkt "VolumeDown" verhält, wenn man den Button manuell (Tab Objekte) betätigt.

@paul53 sagte in Alias mit Script erstellen - Button funktionieren nicht:
@wszene sagte: Ich kann mit den Alias z.B, Dein AV-Receiver lauter machen. Aber nur wenn ich direkt drauf drucke also im Browser direkt auf den Button
Prüfe mal mit dem Test-Blockly wie sich der Datenpunkt "VolumeDown" verhält, wenn man den Button manuell (Tab Objekte) betätigt.

Hier die Ausgabe
javascript.0 2021-01-20 20:42:53.243 info (1070) script.js.Zum_Testen.Test-Skript: Leiser: 0 , ack: true harmony.0 2021-01-20 20:42:53.225 info (1055) hub busy, stateChange delayed: harmony.0.Fernbedienung.Bose-AV-Receiver.VolumeUp = true -
@paul53 sagte in Alias mit Script erstellen - Button funktionieren nicht:
@wszene sagte: Ich kann mit den Alias z.B, Dein AV-Receiver lauter machen. Aber nur wenn ich direkt drauf drucke also im Browser direkt auf den Button
Prüfe mal mit dem Test-Blockly wie sich der Datenpunkt "VolumeDown" verhält, wenn man den Button manuell (Tab Objekte) betätigt.

Hier die Ausgabe
javascript.0 2021-01-20 20:42:53.243 info (1070) script.js.Zum_Testen.Test-Skript: Leiser: 0 , ack: true harmony.0 2021-01-20 20:42:53.225 info (1055) hub busy, stateChange delayed: harmony.0.Fernbedienung.Bose-AV-Receiver.VolumeUp = true -
@paul53 sagte in Alias mit Script erstellen - Button funktionieren nicht:
@dslraser sagte: Im Harmony Adapter sind die Button tatsächlich alle mit type number.
Ist das eigentlich okay ?ich habe mal ein issue angelegt
-
@wszene sagte in Alias mit Script erstellen - Button funktionieren nicht:
Hier mal das was das Log dazu sagt
Die Warnung ist normal, wenn true auf einen Datenpunkt vom Typ "number" geschrieben wird.
Ändere mal den Alias common (type, min raus, read und alias.write), damit er nach "boolean" wandelt:
"common": { "name": "AV-Receiver - Leiser", "role": "button", "type": "boolean", "write": true, "read": false, "alias": { "id": "harmony.0.Fernbedienung.Bose-AV-Receiver.VolumeDown", "write": "val ? 1 : 0" }, "desc": "per Script erstellt" },@paul53 sagte in Alias mit Script erstellen - Button funktionieren nicht:
@wszene sagte in Alias mit Script erstellen - Button funktionieren nicht:
Hier mal das was das Log dazu sagt
Die Warnung ist normal, wenn true auf einen Datenpunkt vom Typ "number" geschrieben wird.
Ändere mal den Alias common (type, min raus, read und alias.write), damit er nach "boolean" wandelt:
"common": { "name": "AV-Receiver - Leiser", "role": "button", "type": "boolean", "write": true, "read": false, "alias": { "id": "harmony.0.Fernbedienung.Bose-AV-Receiver.VolumeDown", "write": "val ? 1 : 0" }, "desc": "per Script erstellt" },Mit der Änderung klappt es
Gibt es eine Mäglichkeit diese auch direkt mit dem Script zu machen also beim erstellen des Alias? -
@paul53 sagte in Alias mit Script erstellen - Button funktionieren nicht:
@wszene sagte in Alias mit Script erstellen - Button funktionieren nicht:
Hier mal das was das Log dazu sagt
Die Warnung ist normal, wenn true auf einen Datenpunkt vom Typ "number" geschrieben wird.
Ändere mal den Alias common (type, min raus, read und alias.write), damit er nach "boolean" wandelt:
"common": { "name": "AV-Receiver - Leiser", "role": "button", "type": "boolean", "write": true, "read": false, "alias": { "id": "harmony.0.Fernbedienung.Bose-AV-Receiver.VolumeDown", "write": "val ? 1 : 0" }, "desc": "per Script erstellt" },Mit der Änderung klappt es
Gibt es eine Mäglichkeit diese auch direkt mit dem Script zu machen also beim erstellen des Alias?@wszene sagte: Gibt es eine Mäglichkeit diese auch direkt mit dem Script zu machen also beim erstellen des Alias?
Ja, außer common.read = false. Hier der Anfang:
// Original-Datenpunkt const idOrigin = 'sonoff.0.Lichtschalter-Stube.POWER1'; // Optional: Status-Datenpunkt, wenn Kommando und Status getrennt. // Bei Nicht-Verwendung Leerstring '' zuweisen const idRead = ''; // Alias-Datenpunkt const idAlias = '01_Stube.01_Schalter.Schalter-Esstisch'; var typeAlias, read, write, nameAlias, role, desc, min, max, unit, states, custom, raum, gewerk; // Folgende kommentieren, wenn keine Änderung der Eigenschaft erforderlich nameAlias = 'Schalter - Esstisch'; desc = 'per Script erstellt'; typeAlias = 'boolean'; // oder 'number' // read = "val < 0 ? -val : 0"; // Erkennung "Aus" --> false erfolgt automatisch write = "val ? 1 : 0"; -
@wszene sagte: Gibt es eine Mäglichkeit diese auch direkt mit dem Script zu machen also beim erstellen des Alias?
Ja, außer common.read = false. Hier der Anfang:
// Original-Datenpunkt const idOrigin = 'sonoff.0.Lichtschalter-Stube.POWER1'; // Optional: Status-Datenpunkt, wenn Kommando und Status getrennt. // Bei Nicht-Verwendung Leerstring '' zuweisen const idRead = ''; // Alias-Datenpunkt const idAlias = '01_Stube.01_Schalter.Schalter-Esstisch'; var typeAlias, read, write, nameAlias, role, desc, min, max, unit, states, custom, raum, gewerk; // Folgende kommentieren, wenn keine Änderung der Eigenschaft erforderlich nameAlias = 'Schalter - Esstisch'; desc = 'per Script erstellt'; typeAlias = 'boolean'; // oder 'number' // read = "val < 0 ? -val : 0"; // Erkennung "Aus" --> false erfolgt automatisch write = "val ? 1 : 0"; -
@paul53 sagte in Alias mit Script erstellen - Button funktionieren nicht:
common.read = false
Was macht dieses Kommando nur für mein Verständniss
-
@wszene sagte: nur für mein Verständniss
Das bedeutet "write only", hat aber keine Auswirkung auf die Button-Funktionalität.