NEWS
[Neuer Adapter] LinkedDevices
-
@paul53 sagte in [Neuer Adapter] LinkedDevices:
@Scrounger
Habe einen String-Datenpunkt-Verlinkung getestet: Der Linked-Datenpunkt behält als Wert den Default-Wert (common.def). Bei Änderung im Linked-DP wird der geänderte Wert an den Original-DP übertragen, der Linked-DP ändert sich aber sofort wieder zurück auf den Default-Wert.Kann das leider nicht nachstellen - du verwendest auch sicher die Version 0.3.2?
Bitte poste mal die Raw Daten vom parentObject und linkedObject, dass ich das direkt nachstellen kann. Was steht im log (debug / silly) für diesen Datenpunkt, wenn du den Adapter neustartest? -> bitte auch posten@paul53 sagte in [Neuer Adapter] LinkedDevices:
Was sicherlich eine sehr nützliche Konvertierung wäre: String ("false"/"true", "0"/"1", "off"/"on") --> boolean.
Ok nehm ich in die nächste Version mit auf.
-
@Scrounger sagte:
wenn du den Adapter neustartest?
Nach einem Neustart der Instanz funktioniert es wie erwartet.
@Scrounger sagte in [Neuer Adapter] LinkedDevices:
verwendest auch sicher die Version 0.3.2?
Die Vorgängerversion bietet mir sicherlich keinen Präfix an ? Ich musste allerdings von Github installieren.
-
@Scrounger
Habe einen weiteren String-Datenpunkt erzeugt und verlinked mit dem Ergebnis wie oben beschrieben: Linked-DP behält Default-Wert.
Der zuerst erstellte Datenpunkt funktioniert. Es ist also nach Erstellen einer neuen Verknüpfung erst ein Neustart der Instanz erforderlich, was nicht sein sollte.linkeddevices.0 2019-07-27 15:28:36.753 debug [onStateChange] parentObject state 'meineDP.0.dev1.ch1.on_off2' changed to 'xx' (ack = false) --> set linkedObject state 'linkeddevices.0.Bad.Lampe4.Ein' to 'xx'
wurde nicht wirklich ausgeführt, denn der Zeitstempel von "Lampe4.Ein" ist 14 Minuten älter und der Wert ist "off" (default).
-
@paul53
Wie gesagt ich kann es nicht reproduzieren, bei mir funktioniert es wie es soll.Deshalb benötige ich wie oben beschrieben die Raw Daten beider Objekte und die logs (Mode: silly), direkt nach dem verlinken ohne den Adapter neuzustarten.
Dann einen neustart machen und nochmal die Raw Daten beider Objekte und die logs (Mode: silly) posten.
Ohne diese Infos kann ich nicht weiterhelfen bzw. den bug finden! -
@Scrounger
Log nach Erzeugen des Links:
Parent DP
Linked DP
Log nach Neustart:
Parent DP nach Neustart
Linked DP
-
@Scrounger
Habe 3 Verlinkungen (DP-Typ: boolean) nacheinander ohne Neustart erzeugt: Bei der 2. und 3. Verlinkung funktioniert es, bei der ersten Verlinkung funktioniert es nicht.DP1 ist die erste Verlinkung:
Ergänzung: Der Wert, auf dem der zu erst erstellte Linked-DP verharrt, ist nicht der Default-Wert, sondern der Wert, den er als erstes erhalten hat ("linkeddevices.0.Bad.Schalter.DP1" verharrt auf true).
-
@paul53 sagte in [Neuer Adapter] LinkedDevices:
@Scrounger
Log nach Erzeugen des Links:
....Also die logs sehen gut aus. Er erstellt korrekt die verlinkten Objekte. Infos in den logs nach dem Erstellen und nach dem Neustart des Adapters sind identisch, muss auch so sein, weil auf die gleichen Funktionen zugegriffen wird.
Hab es mit dem DP 'linkeddevices.0.Bad.Lampe5.Ein' bei mir getestet (Raw Daten direkt übernommen), funktioniert alles wie es soll, d.h. ich kann es nicht reproduzieren.@paul53 sagte in [Neuer Adapter] LinkedDevices:
@Scrounger
Habe 3 Verlinkungen (DP-Typ: boolean) nacheinander ohne Neustart erzeugt: Bei der 2. und 3. Verlinkung funktioniert es, bei der ersten Verlinkung funktioniert es nicht.DP1 ist die erste Verlinkung:
Ergänzung: Der Wert, auf dem der zu erst erstellte Linked-DP verharrt, ist nicht der Default-Wert, sondern der Wert, den er als erstes erhalten hat ("linkeddevices.0.Bad.Schalter.DP1" verharrt auf true).
Da sagen die logs was anderes. Z.b. der 'linkeddevices.0.Bad.Schalter.DP1' wird korrekt erstellt und auch die Änderungen werden korrekt laut log übergeben:
linkeddevices.0 2019-07-27 17:05:15.305 debug [onStateChange] parentObject state 'meineDP.0.ch2.DP1' changed to 'false' (ack = false) --> set linkedObject state 'linkeddevices.0.Bad.Schalter.DP1' to 'false' linkeddevices.0 2019-07-27 17:07:05.329 debug [onStateChange] parentObject state 'meineDP.0.ch2.DP1' changed to 'true' (ack = false) --> set linkedObject state 'linkeddevices.0.Bad.Schalter.DP1' to 'true' linkeddevices.0 2019-07-27 17:08:45.844 debug [onStateChange] parentObject state 'meineDP.0.ch2.DP1' changed to 'false' (ack = false) --> set linkedObject state 'linkeddevices.0.Bad.Schalter.DP1' to 'false' linkeddevices.0 2019-07-27 17:12:26.045 debug [onStateChange] parentObject state 'meineDP.0.ch2.DP1' changed to 'false' (ack = false) --> set linkedObject state 'linkeddevices.0.Bad.Schalter.DP1' to 'false'
DP 'linkeddevices.0.Bad.Schalter.DP1' ist bei letzter Änderung auf false.
@paul53 sagte in [Neuer Adapter] LinkedDevices:
Die Vorgängerversion bietet mir sicherlich keinen Präfix an ? Ich musste allerdings von Github installieren.
Korrekt Präfix bei string gibt es erst ab 0.3.2. Dauert allerdings immer ein bissle bis das über das latest verfügbar ist.
Bitte deinstalliere den Adapter vollständig und installier ihn noch mal neu aus dem latest rep, nicht über github. Vielleicht ist da was schief gegangen.
-
@Scrounger
Neue Beobachtung: Das hängt offenbar mit der Ansicht im Reiter "Objekte" zusammen. Habe nach Neustart eine weitere Verlinkung erzeugt mit dem Effekt, dass der Wert des Linked-DP in der Objekt-Ansicht falsch reagierte. Nach Wechsel in die Status-Ansicht hat dort der Linked-DP richtig reagiert; anschließend auch in der Objekt-Ansicht.Also: Entwarnung !!
-
@paul53 sagte in [Neuer Adapter] LinkedDevices:
@Scrounger
Neue Beobachtung: Das hängt offenbar mit der Ansicht im Reiter "Objekte" zusammen. Habe nach Neustart eine weitere Verlinkung erzeugt mit dem Effekt, dass der Wert des Linked-DP in der Objekt-Ansicht falsch reagierte. Nach Wechsel in die Status-Ansicht hat dort der Linked-DP richtig reagiert; anschließend auch in der Objekt-Ansicht.Das Verhalten kann ich auch nicht bestätigen, funktioniert bei meiner Dev-Umgebung mit beiden Ansichten korrekt.
Grundsätzlich kann ich nur empfehlen nach Erstellen einer Verlinkung, eine Aktualisierung der Objekte anzustoßen!
-
Hab ein nettes neues Feature entwickelt, allerdings brauche ich für eine elgante Umsetzung Hilfe
-> siehe require auf eigene Skriptdatei und Zugriff auf var -
Version 0.4.0 ist im latest (ab morgen)
- string to boolean converter hinzugefügt
- native daten werden übernommen, sofern verfügbar
- Skript mit Variablen aller verlinkten Objekte erzeugen
- bug fixes
Bitte testen und bei Fehlern immer log mit posten!
-
@Scrounger sagte:
Nicht mehr verlinkte Objekte komfortabel über den Objekt-Id-Selector einem Objekt zuweisen (z.B. bei einem Hardwarewechsel). Die Einstellungen werden dann automatisch für die neue Verlinkung übernommen.
MIt dieser Erweiterung wird ein Hardwareaustausch wirklich einfach.
Ich benutze diesen Adapter zwar nicht produktiv, da ich eindeutige Namen und in JS getIdByName() verwende, aber gerade für Anfänger ist er sehr zu empfehlen. Bei der Verlinkung von Datenpunkten macht man sich automatisch Gedanken über eine sinnvolle ID für die verlinkten Datenpunkte. Das hilft dann auch in Blockly, Vis, History ... -
Hab in der Funktion automatische Skript generierung noch einen Fehler entdeckt und in der Version 0.4.1. gefixt.
Müsste demnächst im latest sein.0.4.1
- (Scrounger) Bug fix: auto generate globale script for Javascript Script Engine with variables for all linked Object
-
@Scrounger
Man kann bei der Umrechnung von Zahlen für Min und Max keine negativen Werte eingeben ! -
@Scrounger
Genialer Adapter, danke dafür. Habe leider noch ein paar kleine Probleme:- Wenn ich true/false in An/Aus bei Schaltern konvertiere, dann schaltet anschließend mein Shelly nicht mehr, nur wenn ich nicht konvertiere, funktioniert das Schalten.
2.Kann man auch die Rolle konvertieren lassen? Habe ein paar Türsensoren, diese werden aber leider als switch angelegt. Wenn ich diese im linked device auf sensor.door umstelle, sehe ich das wie gewünscht im iogo Adapter. Leider wird nach einem Neustart vom Adapter wieder auf switch umgestellt. Habe mal im original device umgestellt und teste ob das ok ist. - Beim Anlegen von devices muss man immer alles neu per Hand eingeben, schöner wäre es wenn man alte Eingaben auch wieder übernehmen könnte.
- Wenn ich true/false in An/Aus bei Schaltern konvertiere, dann schaltet anschließend mein Shelly nicht mehr, nur wenn ich nicht konvertiere, funktioniert das Schalten.
-
@e-s
zu 1.) log? Und am besten die raw daten des objekte und des verlinkten objektes. Edit: Hab es mit meinem Shelly getestet, funktioniert bei mir wie es soll.zu 2.) Bzgl. role bitte ein issue bei github anlegen.
zu 3.) Das hab ich jetzt beim einrichten auf meinem Prodsystem auch festgestellt. Bitte auch ein Issue erstellen
-
@Scrounger
Bin jetzt gleich arbeiten und kann dies erst heute Abend überprüfen. Aber ich schätze, das es am iogo Adapter liegt. Dieser kann zwar das an/aus lesen, schreibt aber beim umschalten dann ein true/false rein. Und damit kommt der linked Device nicht klar. Könnte das sein?Github mache ich dann auch heute Abend.
-
@e-s sagte in:
Dieser kann zwar das an/aus lesen, schreibt aber beim umschalten dann ein true/false rein.
Das ist kein Problem des LinkedDevices-Adapters ! Welchen Typ hat der Datenpunkt (boolean / string) ?
-
@paul53
Keine Ahnung, Ist ein Original dp vom Shelly, nicht bearbeitet. -
@e-s
Also du hast einen DP X (type 'boolean'), den hast du verlinkt und konvertiert in type 'string' - nenen wir Ihn mal linkedX.
Im iogo Adapter hast du dann den DP linkedX hinterlegt - korrekt?Im iogo Adapter müsste der DP linkedX dann als string angelegt werden, damit die Übersetzung klappt.
Grundsätzlich kann ich Dir aber empfehlen z.B. bei Schaltern nur zu Visualisierungseffekte einen 'boolean' in einen 'string' umzuwandeln.