NEWS
[Neuer Adapter] LinkedDevices
-
@Scrounger
Jupp, läuft so wie es soll, Dankeschön. -
Version 1.0.1 sollte demnächst im latest sein
Version 1.0.1
- (Scrounger) adapter configuration: repair function added
- (Scrounger) receive system messages added
Es gibt jetzt einen Button in der Adapterkonfiguration mit dem Ihr automatisch nicht mehr existierende verlinkungen reparieren könnt. D.h. wenn das linkedObject eine parentId hat und zu dieser parentId auch ein Objekt existiert (vom richtigen typ), dann repariert diese Funktion automatisch die Verlinkung.
Das ist z.B. hilfreich wenn ein Adapter seine Datenpunkte löscht und neu erstellt.Die Funktion ist als message (sendTo) ausgeführt, d.h. ihr könnt diese auch aus jedem javascript aufrufen.
sendTo("linkeddevices.0", "autoRepair", null, function (result) { if (!result.error || result.error.length === 0) { log(_("Repair process completed successfully")); } else { log(_("Errors have occurred, please check log file")); } });
Somit ist es z.B. möglich mit einem skript, einmal pro Tag zu prüfen ob evtl. Verlinkungen nicht mehr existieren und diese automatisch zu reparieren:
let id = "linkeddevices.0.info.notlinkedObjects"; // Jeden Tag um 18h prüfen schedule('0 18 * * *', checkLinks); function checkLinks() { let notLinkedObjectSize = getState(id).val; if (notLinkedObjectSize > 0) { sendTo("linkeddevices.0", "autoRepair", null, function (result) { if (!result.error || result.error.length === 0) { log(_("Repair process completed successfully")); } else { log(_("Errors have occurred, please check log file")); } }); } }
-
Hallo, ich verstehe leider nicht wie ich solche Linked Devices erstellen kann.
Im Adapter steht über die Schaltfläche Einstellungen im Menü Objekt.
Ich weiß nicht wo das sein sollte, könnte mir da bitte jemand helfen? -
@ymicky sagte in [Neuer Adapter] LinkedDevices:
Ich weiß nicht wo das sein sollte, könnte mir da bitte jemand helfen?
Ganz Rechts das Schraubenschlüssel Symbol !
-
@Scrounger hast du mitbekommen, dass im js Controller 2.x eine alias Funktionalität enthalten sein soll? Ich würde mich freuen wenn deine gesammelten Infos und Erfahrungen dort direkt mit einfließen.
-
@Xyolyp sagte:
Infos und Erfahrungen dort direkt mit einfließen.
Ich bin sicher, dass @apollon77 die Entwicklung des Adapters aufmerksam verfolgt hat und die dabei gewonnenen Erkenntnisse in die Alias-Funktionalität eingeflossen sind.
-
Version 1.1.0 ist demnächst im latest
1.1.0
- (Scrounger) option to merge linkedObject on adapter restart added
- (Scrounger) string to number conversion added
- (algar42) russian translation corrected
-
@paul53 said in [Neuer Adapter] LinkedDevices:
@Xyolyp sagte:
Infos und Erfahrungen dort direkt mit einfließen.
Ich bin sicher, dass @apollon77 die Entwicklung des Adapters aufmerksam verfolgt hat und die dabei gewonnenen Erkenntnisse in die Alias-Funktionalität eingeflossen sind.
Wobei ich das etw umständlich finde ein Objekt zu erstellen und die RAW Daten zu ändern. Den Weg über die Einstellungen vom Objekt finde ich komfortabel. Würde mich an sich freuen, wenn das irgendwie auch in die Funktion mit alias reinkäme
-
@ymicky sagte:
Den Weg über die Einstellungen vom Objekt finde ich komfortabel.
Ja, diese komfortable Möglichkeit ist noch in Entwicklung (Adapter ioBroker.devices), wobei sich @Bluefox dabei einiges von @Scrounger abschauen könnte.
Der große Unterschied ist, dass ioBroker.linkeddevices alle Link-Parameter im Original-Datenpunkt speichert, während Alias den Original-Datenpunkt völlig unverändert lässt. Das Alias-Konzept halte ich daher für besser, allerdings fehlt noch der Adapter mit einem wirklich komfortablen Umgang damit. Wer etwas mit Javascript vertraut ist, kann bis zur Realsierung die Skript-Vorlage zur Erstellung von Alias-Datenpunkten nutzen. -
@paul53 sagte in [Neuer Adapter] LinkedDevices:
Der große Unterschied ist, dass ioBroker.linkeddevices alle Link-Parameter im Original-Datenpunkt speichert, während Alias den Original-Datenpunkt völlig unverändert lässt.
Fast
Die Link-Parameter werden sowohl im Orginal-Datenpunkt und im verlinkten Datenpunkt gespeichert.
Bringt den Vorteil, dass man in beide Richtungen die Verlinkung wieder herstelle kann. -
Hallo,
Bei mir wirft der Adapter Fehler bei der Wandlung von String zu Nummer.
linkeddevices.0 2019-12-14 13:27:30.008 error at process._tickCallback (internal/process/next_tick.js:189:7) linkeddevices.0 2019-12-14 13:27:30.008 error at <anonymous> linkeddevices.0 2019-12-14 13:27:30.008 error at Linkeddevices.getConvertedValue (/opt/iobroker/node_modules/iobroker.linkeddevices/main.js:1653:40) linkeddevices.0 2019-12-14 13:27:30.008 error (27105) [createLinkedObject] stack: TypeError: value.replace is not a function linkeddevices.0 2019-12-14 13:27:30.008 error (27105) [createLinkedObject] parentObject 'mqtt.0.h801.switch.ESPURNA_318C6C.brightness.set', linkedObject 'linkeddevices.0.LED-Wohnzimmer.set' error: value.replace is not a function linkeddevices.0 2019-12-14 13:27:29.990 info (27105) [onObjectChange] parentObject 'mqtt.0.h801.switch.ESPURNA_318C6C.brightness.set' properties changed linkeddevices.0 2019-12-14 13:26:00.523 info (27105) [onObjectChange] count of active linkedObjects: 1 linkeddevices.0 2019-12-14 13:26:00.522 info (27105) [createLinkedObject] linked object 'mqtt.0.h801.switch.ESPURNA_318C6C.brightness.set' merged to 'linkeddevices.0.LED-Wohnzimmer.set' linkeddevices.0 2019-12-14 13:26:00.453 info (27105) [onObjectChange] parentObject 'mqtt.0.h801.switch.ESPURNA_318C6C.brightness.set' properties changed linkeddevices.0 2019-12-14 13:23:32.087 info (27105) [initialObjects] finished linkeddevices.0 2019-12-14 13:23:32.081 info (27105) [createAllLinkedObjects] count of active linkedObjects: 1 linkeddevices.0 2019-12-14 13:23:32.067 error at process._tickCallback (internal/process/next_tick.js:189:7) linkeddevices.0 2019-12-14 13:23:32.067 error at <anonymous> linkeddevices.0 2019-12-14 13:23:32.067 error at Linkeddevices.getConvertedValue (/opt/iobroker/node_modules/iobroker.linkeddevices/main.js:1653:40) linkeddevices.0 2019-12-14 13:23:32.067 error (27105) [createLinkedObject] stack: TypeError: value.replace is not a function linkeddevices.0 2019-12-14 13:23:32.065 error (27105) [createLinkedObject] parentObject 'mqtt.0.h801.switch.ESPURNA_318C6C.brightness.set', linkedObject 'linkeddevices.0.LED-Wohnzimmer.set' error: value.replace is not a function linkeddevices.0 2019-12-14 13:23:31.486 info (27105) [initialObjects] started... linkeddevices.0 2019-12-14 13:23:31.455 info (27105) starting. Version 1.1.0 in /opt/iobroker/node_modules/iobroker.linkeddevices, node: v8.16.2
-
@jack99n
Poste Mal bitte die raw Daten von 'mqtt.0.h801.switch.ESPURNA_318C6C.brightness.set' -
Sorry das ich es als Bild eingestellt habe bekomme es mit dem iPad nicht markiert
-
@jack99n
Damit kann ich nix anfangen. Vorallem weil der Screenshot genau da aufhört, wo die Daten kommen, die wichtig zur Fehlerbehbung sind.
Außerdem will ich per copy paste deinen Datenpunkt testen.Welchen Werte hat der Datenpunkt?
Edit: Welche nodejs Version verwendest du?
-
So jetzt vom PC aus.
{ "common": { "name": "/h801/switch/ESPURNA_318C6C/brightness/set", "write": true, "read": true, "role": "variable", "desc": "mqtt server variable", "type": "string", "custom": { "linkeddevices.0": { "enabled": true, "number_unit": "", "linkedId": "Wohnzimmer-LED.set", "name": "", "role": "", "mergeSettingsOnRestart": false, "expertSettings": true, "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": "number", "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": "" } } }, "native": { "topic": "/h801/switch/ESPURNA_318C6C/brightness/set" }, "type": "state", "from": "system.adapter.mqtt.0", "ts": 1558882360477, "_id": "mqtt.0.h801.switch.ESPURNA_318C6C.brightness.set", "acl": { "object": 1636, "state": 1636, "owner": "system.user.admin", "ownerGroup": "system.group.administrator" }, "user": "system.user.admin" }
-
Welchen Wert hat der Datenpunkt?
Welche nodejs Version? -
Ich hoffe du meinst mit Wert was der Orginal Datenpunkt hat? 0 bis 255
v 8.16.2
-
Habs glaub gefunden, teste bitte den aktuellen master von github.
-
Hat sich leider nicht geändert.
linkeddevices.0 2019-12-15 18:33:55.371 info (17341) [createAllLinkedObjects] count of active linkedObjects: 1 linkeddevices.0 2019-12-15 18:33:55.356 error at process._tickCallback (internal/process/next_tick.js:189:7) linkeddevices.0 2019-12-15 18:33:55.356 error at <anonymous> linkeddevices.0 2019-12-15 18:33:55.356 error at Linkeddevices.getConvertedValue (/opt/iobroker/node_modules/iobroker.linkeddevices/main.js:1653:20) linkeddevices.0 2019-12-15 18:33:55.356 error (17341) [createLinkedObject] stack: TypeError: value.replace is not a function linkeddevices.0 2019-12-15 18:33:55.354 error (17341) [createLinkedObject] parentObject 'mqtt.0.h801.switch.ESPURNA_318C6C.brightness.set', linkedObject 'linkeddevices.0.LED-Level.set' error: value.replace is not a function linkeddevices.0 2019-12-15 18:33:54.651 info (17341) [initialObjects] started... linkeddevices.0 2019-12-15 18:33:54.626 info (17341) starting. Version 1.1.0 in /opt/iobroker/node_modules/iobroker.linkeddevices, node: v8.16.2
-
stell den adapter mal bitte auf debug modus, starte ihn neu und poste das gesamte log.