NEWS
[Vorlage] Alias per Skript erzeugen
-
Kann ich mit dem Skript aus dem ersten Beitrag auch mehrere Datenpunkte veraliasen? Also kann man irgendwie ein Array für idOrigin und idAlias für gleichartige Aliase nutzen?
-
@siggi85 sagte:
Kann ich mit dem Skript aus dem ersten Beitrag auch mehrere Datenpunkte veraliasen?
Es gibt ein Skript von @CruziX.
-
@paul53 sagte in [Vorlage] Alias per Skript erzeugen:
@siggi85 sagte:
Kann ich mit dem Skript aus dem ersten Beitrag auch mehrere Datenpunkte veraliasen?
Es gibt ein Skript von @CruziX.
Top, danke!
-
@guergen said in [Vorlage] Alias per Skript erzeugen:
@Garfonso Wo kann ich die automatische Erzeugung im iot denn ausschalten?
Du kannst in der iot-Konfiguration für alle Räume / Funktionen die Erstellung abschalten. Wenn man das gar nicht will, halt für alle aus, dann passiert das auch nicht mehr.
-
@Garfonso Ach das hier ist das?
Ok, alles ausgeschaltet.... hatte das immer so gelassen, wie es war
-
@guergen
ja, das meinte ich. -
Mal eine Frage zu deinem Skript:
Ich habe einen Datenpunkt true / false --> type = string
Ich möchte nun einen Alias erzeugen der bei true dann 1 liefert und bei false 0 (dürfte dann type = number sein?)
Wie mache ich das ?
-
@Segway sagte:
Datenpunkt true / false --> type = string
Du meinst: "true" / "false"; type: "string" ?
@Segway sagte in [Vorlage] Alias per Skript erzeugen:
Alias erzeugen der bei true dann 1 liefert und bei false 0
Weshalb binäre Werte ? In ioBroker / Javascript sollte man man mit booleschen Werten arbeiten.
-
War nur eine schreibweise um mein "Problem" zu schildern.
Warum ich 0 und 1 brauche ? Nunja, wie in meinem anderen aktuellen Thread zu erkennen, kann ich in Grafana leider den Zustand nicht mit true / false abbilden sondern brauche eine 0 und 1 (STAT-Panel in Grafana - anders gehts da nicht)
Edit:
// Folgende kommentieren, wenn keine Änderung der Eigenschaft erforderlichnameAlias = 'VM Influx';
desc = 'per Script erstellt';
typeAlias = 'number'; // oder 'number'
read = "!val"; // Erkennung "Aus" --> false erfolgt automatisch -
@Segway sagte:
read = "!val";
Das erzeugt einen booleschen Wert und invertiert gleichzeitig. Richtig:
read = "val == 'true' ? 1 : 0";
-
@paul53 sagte in [Vorlage] Alias per Skript erzeugen:
Das erzeugt einen booleschen Wert und invertiert gleichzeitig. Richtig:
read = "val == 'true' ? 1 : 0";
Ja das habe ich auch schon probiert ABER trotzdem wird in dem Aliaswert dann FALSE reingeschrieben warum auch immer:
{ "type": "state", "common": { "name": "VM Influx", "desc": "per Script erstellt", "type": "boolean", "read": true, "write": false, "role": "value", "custom": { "influxdb.0": { "enabled": true, "changesOnly": true, "debounce": "", "maxLength": 10, "retention": 0, "changesRelogInterval": "", "changesMinDelta": "", "storageType": "Boolean", "aliasId": "" }, "linkeddevices.0": { "enabled": true, "number_unit": "", "linkedId": "InfluxDB_.is_online", "name": "", "role": "", "mergeSettingsOnRestart": false, "expertSettings": false, "number_convertTo": "", "number_maxDecimal": "", "number_min": "", "number_max": "", "number_calculation": "", "number_calculation_readOnly": "", "number_to_boolean_condition": "", "number_to_boolean_value_true": "", "number_to_boolean_value_false": "", "number_to_string_condition": "", "number_to_duration_convert_seconds": "", "number_to_duration_format": "", "number_to_datetime_convert_seconds": "", "number_to_datetime_format": "", "number_to_multi_condition": "", "boolean_convertTo": "", "boolean_to_string_value_true": "", "boolean_to_string_value_false": "", "string_convertTo": "", "string_prefix": "", "string_suffix": "", "string_to_boolean_value_true": "", "string_to_boolean_value_false": "", "string_to_number_unit": "", "string_to_number_maxDecimal": "", "string_to_number_calculation": "", "string_to_number_calculation_readOnly": "", "string_to_duration_format": "", "string_to_datetime_parser": "", "string_to_datetime_format": "" } }, "alias": { "id": "linux-control.0.VM_Influx.info.is_online", "read": "val == 'true' ? 1 : 0" } }, "native": {}, "from": "system.adapter.javascript.0", "user": "system.user.admin", "ts": 1608034784675, "_id": "alias.0.linux-control.0.VM_Influx.info.is_online_InfluxDB", "acl": { "object": 1636, "state": 1636, "owner": "system.user.admin", "ownerGroup": "system.group.administrator" } }
-
@Segway sagte:
trotzdem wird in dem Aliaswert dann FALSE reingeschrieben
Ich lese
"type": "boolean",
"_id": "alias.0.linux-control.0.VM_Influx.info.is_online_InfluxDB",
ist wirklich vom Typ "string" ? Kann ich mir nicht vorstellen. Falls Typ "boolean", dann
read = "val ? 1 : 0"
EDIT:
log('typ: ' + typeof getState("linux-control.0.Ubuntu_18.info.is_online").val);
liefert bei mir 'boolean'.
-
Tja ich sollte nicht zig Dinge auf einmal ändern. Es stand mitllerweile wieder auf boolean. Habe jetzt auf number umgestellt und es klappt. Es landet auch eine 0 im Datenpunkt !
Allerdings landet bei true eine 0 im Punkt; das müsste ja eine 1 sein oder ?Edit:
Also doch auf boolean stellen ? -
-
@paul53 sagte in [Vorlage] Alias per Skript erzeugen:
@Segway sagte:
bei true eine 0 im Punkt
Siehe meinen letzten Beitrag:
read = "val ? 1 : 0"
Mhhh, nun hab ich es auf:
typeAlias = 'boolean'; // oder 'number' read = "val ? 1 : 0"; // Erkennung "Aus" --> false erfolgt automatisch
geändert und es kommt wieder nur TRUE rein anstatt 1
-
-
Ja das weiss ich. Ich habs nun nochmal komplett neu gemacht, allerdings wird mir in der Übersicht angezeigt "1" aber in der datenbank landet true ?????
iobroker Übersicht:
iobroker InfluxDB:
raw-Format:
{ "type": "state", "common": { "name": "VM Influx", "desc": "per Script erstellt", "type": "number", "read": true, "write": false, "role": "value", "custom": { "influxdb.0": { "enabled": true, "changesOnly": true, "debounce": "", "maxLength": 10, "retention": 0, "changesRelogInterval": "", "changesMinDelta": "", "storageType": "Boolean", "aliasId": "" }, "linkeddevices.0": { "enabled": true, "number_unit": "", "linkedId": "InfluxDB_.is_online", "name": "", "role": "", "mergeSettingsOnRestart": false, "expertSettings": false, "number_convertTo": "", "number_maxDecimal": "", "number_min": "", "number_max": "", "number_calculation": "", "number_calculation_readOnly": "", "number_to_boolean_condition": "", "number_to_boolean_value_true": "", "number_to_boolean_value_false": "", "number_to_string_condition": "", "number_to_duration_convert_seconds": "", "number_to_duration_format": "", "number_to_datetime_convert_seconds": "", "number_to_datetime_format": "", "number_to_multi_condition": "", "boolean_convertTo": "", "boolean_to_string_value_true": "", "boolean_to_string_value_false": "", "string_convertTo": "", "string_prefix": "", "string_suffix": "", "string_to_boolean_value_true": "", "string_to_boolean_value_false": "", "string_to_number_unit": "", "string_to_number_maxDecimal": "", "string_to_number_calculation": "", "string_to_number_calculation_readOnly": "", "string_to_duration_format": "", "string_to_datetime_parser": "", "string_to_datetime_format": "" } }, "alias": { "id": "linux-control.0.VM_Influx.info.is_online", "read": "val ? 1 : 0" } }, "native": {}, "from": "system.adapter.javascript.0", "user": "system.user.admin", "ts": 1608037099330, "_id": "alias.0.linux-control.0.VM_Influx.info.is_online_InfluxDB", "acl": { "object": 1636, "state": 1636, "owner": "system.user.admin", "ownerGroup": "system.group.administrator" } }
-
-
@Segway sagte:
Datenpunkt true / false --> type = string
type = "string" ist falsch. Habe PR auf Github erstellt.
-
@paul53 sagte in [Vorlage] Alias per Skript erzeugen:
@Segway sagte:
Datenpunkt true / false --> type = string
type = "string" ist falsch. Habe PR auf Github erstellt.
Du überforderst mich gerade.
Anscheinend liegt hier ein Fehler vor ? Ich habe diesen noch nicht erkannt