NEWS
[Neuer Adapter] LinkedDevices
-
@bommel_030 du könntest zb in deiner DB die alten Datenpunkte auf die libkeddevices so umbenennen, mit SQL ist das Recht einfach. Dann hast auch die alte History. Hab ich selbst schon mit meiner MySQL DB gemacht.
Evtl. Kannst du auch mit den alias des SQL Adapters verwenden, hab ich aber noch nicht ausprobiert.
-
@Scrounger
Klingt logisch, hätte man glatt selber drauf kommen können...
Und das wo ich mit SQL doch aufm Kriegsfuss stehe... Wie man aus dem Zeitstempel nen Datum mit Uhrzeit macht hab ich noch nicht verstanden... -
Version 0.3.0 ist jetzt im latest verfügbar.
Es gibt jetzt in der Adapterkonfiguration eine Übersicht über alle verlinkten Objekte. Ihr könnt von hier zu den Einstellungen der einzelnen Objekte abspringen.
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.
Die Dokumentation gibt es jetzt auch auf Englisch, vielen Dank an @FredF für seine Unterstützung.
-
Version 3.2.0 ist jetzt im latest verfügbar.
Neue Funktionen:
- Bei 'string' könnt ihr jetzt prefix und suffix für das verlinkte Objekt definieren
- 'number' readonly können in Dauer umgewandelt werden
- 'number' readonly können in Datum / Zeit umgewandelt werden
Bitte testen
-
@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.Was sicherlich eine sehr nützliche Konvertierung wäre: String ("false"/"true", "0"/"1", "off"/"on") --> boolean.
-
@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.