NEWS
[Neuer Adapter] LinkedDevices
-
@docgame
Bin ich dran, wir aber sicher noch dauern, weil da noch ein paar Sachen im Admin Adapter integriert werden müssen. -
Hi,
ich erhalte just nach (angeblich erfolgreichem) Install-Versuch folgende Fehlermeldung:host.HALslave-08 2021-05-08 09:49:07.109 error startInstance system.adapter.linkeddevices.0: required adapter "admin" not found!
Ja, es handelt sich um eine Multihost-Installation auf einem Slave (Raspi 4 8GB).
Die in diesem Faden irgendwann in 2019 gefundene Diskussion zur Multihost-Tauglichkeit hielt ich in der Argumentation (damals und völlig zustimme: Ausfallsicherheit bei Wegfall der Verbindung zum Host-Master auch nicht gegeben) für sicher überholt, erstrecht nach nun erfolgreicher Installation. Andere nur Master-taugliche Adapter (zB IoT) geben schon bei Installation eine Meldung + Install-Abbruch aus.Warum auf Slave? - Lastverteilung!
- Rechenlast (im Cluster schwacher Slaves schon wichtig)
- passende Hardware, z.B. RAM-Last, noch dazu umverteilbar bei Bedarf
- Übersichtlichkeit durch Aufgaben- und Standortgruppierung, ja, auch Standort der Geräte (Reaktionszeiten)
Außerdem hat der Master wahrlich wichtigeres zu tun (Koordinierung der Slave-Prozesse), als sich selbst auch noch um ihn selbst unnötig zusätzlich belastende Detailaufgeben zu kümmern. Alle IOs wie HM usw. laufen ja auch eh längst und besser auf darauf "spezialisierte" Slaves (Erfahrung nach > 2 Jahren entsprechenden Betrieb).
Im Zusammenhang mit Redis im Clusterbetrieb (auch Master ist dann nur ein weiterer "Slave") und dabei erfolgter Verteilung / autom Verfügbarkeitsanpassung durch die Redis-Clustergeräte bei Ausfall einzelner, gibt es eher GAR KEINEN Grund mehr, das auf dem Master zu zentrieren. Wenn die Redis-Slaves untereinander einen anderen Primärserver wählen, ist der Master eh nicht mehr der, der primär auf die Daten zugreift (bei mir 3 Raspi 4er, alle je mit 1TB SSD USB3-"Platte" nur dafür, Stückpreis zZt ca. 59,- bei MM/Sat). Billiger, performanter und hochverfügbarer gehts kaum noch. Ausserdem ist in der Redis Anleitung angekündigt, auch den Admin/Hostmaster ähnlich zur echten Cluster/Hochverfügbarkeit zu bringen...
Schade, ich fand den Ansatz vom Linkeddevice-Adapter um einiges flexibler, als im Alias und hätte ihn gerne verwendet.
Übrigens Ziel bei mir:
Ablösung meiner >3 Jahre alten Lösung für verteilte Verwaltung zusätzlicher DP in einzelnen Devices (mit "Vorgabe"-Device eines Typs -> Verteilung/Anpassung/Löschung der Zusatz-DB bei allen anderen Devices dieses Typs. Anwendung: Als Basis/Parameteriesierung/Datenschnittstelle/Triggerpunkte für darauf aufsetzende kognitive Verfahren, ohne jedes mal bei jeder kleinen Anpassung bei ALLEN Geräten eines Typs (Jalousien, od. Heizungen od. Switches usw.) alles manuell anpassen bzw. initial dort überhaupt ergänzen zu müssen. Gilt auch für Wegfall/hinzukommende Geräte des passenden Typs usw.Seit den 3 Jahren haben die Adapter-Entwickler einige Restriktionen eingefügt, wodurch "zusätzliche / ihnen unbekannte" DP Probleme dort bereiten. Verständlich. Das nun herauszunehmen, quasi als Spiegel der wenigen benötigten Basis-DP der Adapter und diese dann wie gehabt extern im Clone zu verwalten und zu nutzen (und so aus den eigentlichen Adapter-DP rauszuhalten), wäre mein Ziel. Fertige Arbeit wäre da natürlich sehr willkommen!
Wäre übrigens nett, wenn man auch einen eigenen Ziel-Baum (dessen Root) angeben könnte für die Clone-Objekte, also nicht nur wie jetzt default unter "linkeddevice.0" sondern da, wo wirklich (auch künftig) alle Freiheiten für eigene Scripts und Objektmanipulationen herrschen (javascript.n oder 0_userdata.n usw.). Ich will die nicht NOCHMAL sinnlos nach Basissystem-Änderungen anpassen müssen! (was ja eigentlich sehr im ursprünglichen Sinn dieses Adapters sein sollte, oder? )
Mal sehen, was der Alias-Adapter zur gleichen Aufgabe sagt. Auf Slave installieren UND da auch arbeiten, kann der Alias-Adapter schon mal. Falls aber das alles auch da doch nicht gehen sollte, werde ich auch die Basis-Daten-Verwaltung generell ins SQL zurückziehen müssen. ioBroker würde dann nur noch (ein weiterer) externer IO dafür sein, allerdings dann auch an keinen der eigentlichen, da bestehenden Module teilhaben können.
Gruß von der Küste
-
Noch eine Idee zur Konvertierung / Formel usw. beisteuern möchte:
...die ich übrigens sehr gut findeBei o.g. SQL-Engine hab ich vor einigen Jahren eine Rule-Engine vorgeschaltet, die ähnliches macht. Würde mich aber viel lieber "aus Kapazitätsgründen" auf die Kernmodule (FFT, Fuzzy, Neuro...) zurückziehen und gerne auf vorgeschaltete fertige und breiter gepflegte Module zurückgreifen, bei denen ich mich bei Bedarf natürlich zumindest mit (auch praktischen) Erfahrungen gerne einbringen könnte.
Ein wichtiges Modul fehlt im Konvertierungs-Kontext: Zeiten und Verzögeungen
also statische sowie dynamische temporale Filter bzw. "Konvertierungen"Klingt komplizierter als es ist. Simples Beispiel: Fenstergriff
Zu(unten)-Offen(quer)-gekippt(oben)Realität: Von gekippt auf zu in "einem Zug" bedient.
ABER: dabei erstes abgegebenes Signal ist OFFEN! (Millisec vor ZU, was mitunter verloren geht)
Lösung: "Verzögerungs-Filter", nichts anderes als "Frage Quell-DP nach x (=1 sec, parametrisierbar) nochmal nach seinem Status und überschreibe ihn ERST DANN im Ziel-DP
Könnte SEHR hilfreich sein. Und Stabilität stark erhöhen!
...und wäre gleich ebenso anwendbar auf Verzögerte Trainingsprozesse etc.Andere Temporalfilter: (quasi die "basalen"):
- wenn (made/mody, also ts oder lc) am DP im Zeitraum liegen/getriggert wurden (Wert triggert)
- nach Zeitpunkt liegen (und Weitergabe (Werteübernahme) noch nicht erfolgt ist) - (Zeit triggert)
- schon (relative Zeitangabe) Status x haben (="laufen", "alt sind") - (Polling / def. Zeitpunkte triggern)
...
Nur mal so als ein paar Ideen, die sich woanders schon sehr bewährt haben
-
Hi,
ich habe den Adapter im Einsatz und bin super zufrieden. Ich hab dazu auch den Adapter Eventlist (ist auch im Test) am laufen. Der Adapter Eventlist erkennt Datenpunkte von LinkedDevice leider nicht als bool. Kennt jemand das gleiche Phänomen? -
Hallo,
falls sich noch jemand nach einem Update des Admin-Adapters gewundert hat, dass jetzt alles anders aussieht und LinkedDevices nicht mehr funktioniert: Man kann in den Adaptereinstellungen des Admin-Adapters wieder zur alten Ansicht zurück wechseln.
Vielen Dank für die Arbeit an diesem Adapter.
-
@Scrounger
Wie weit bist du mit deinen changes für admin5, du hast ja schon einiges gepusht. Kann man die github version schon testen oder sollte man noch warten? -
Hallo, eine Frage zum "Umwandeln".
Ich erhalte die Werte ursprünglich als Wörter -> also zb "alles ok" oder "Fehler links".
Diese Wörter benötige ich in Zahlen umgewandelt -> also zb "alles ok" = 1 oder "Fehler links" = 2.
Kann ich das über LindedDevices realisieren, und wenn ja wie muss ich das angehen? Hat hier einer Tipps/Beispiele für mich?Danke!
-
Hast du die aktuelle github mal ausprobiert?
-
@emd
Bisher noch nicht... -
@e-s sagte in [Neuer Adapter] LinkedDevices:
@Scrounger
Wie weit bist du mit deinen changes für admin5, du hast ja schon einiges gepusht. Kann man die github version schon testen oder sollte man noch warten?Noch warten. Sobald es was zum testen gibt, ist es im latest
-
Ich liebe übrigens diesen Adapter, bei den Alias Teilen hat immer irgendwas nicht funktioniert. Hier bei deinem Adapter hatte ich noch nie Probleme. Alle größten Respekt von meiner Seite aus. Mach bitte weiter so!
MfG
eMd -
@samke sagte in [Neuer Adapter] LinkedDevices:
Diese Wörter benötige ich in Zahlen umgewandelt -> also zb "alles ok" = 1 oder "Fehler links" = 2.
Kann ich das über LindedDevices realisieren, und wenn ja wie muss ich das angehen? Hat hier einer Tipps/Beispiele für mich?Ja geht. Lies bitte zu erstmal die Doku, wenn es dann noch klemmt, einfach hier fragen.
In diesem Fall würde ich den String in Boolean umwandeln.
@emd sagte in [Neuer Adapter] LinkedDevices:
Ich liebe übrigens diesen Adapter, bei den Alias Teilen hat immer irgendwas nicht funktioniert. Hier bei deinem Adapter hatte ich noch nie Probleme. Alle größten Respekt von meiner Seite aus. Mach bitte weiter so!
MfG
eMdDanke für die Blume, sowas liest man sehr gerne
-
@scrounger said in [Neuer Adapter] LinkedDevices:
Boolean
Ich hab nur "nicht umwandeln, Logikwert, Zahl, Dauer und Datum/Uhrzeit" zur Auswahl.
Mein Feld ist vom Typ 'Zeichenkette (read only)'.Mit Logikwert bekommen ich true und false hin.
Bei Zahl bekomme ich nur "null" hin.Ich muss aber ja, je nach "Wort" eine Zahl realisieren.
Verstehe ich gerade was falsch? Mit der Doku bin ich jetzt leider auch nicht in die richtige Richtung gekommen.
Vielleicht könntet ihr mir noch weitere Tipps geben?Danke
-
@samke sagte in [Neuer Adapter] LinkedDevices:
Bei Zahl bekomme ich nur "null" hin.
Ich muss aber ja, je nach "Wort" eine Zahl realisieren.
Ok das geht damit auch nicht. Lang lang ist es her das ich das geschrieben habe
Damit kann man nur einen String aus Zahlen in eine echte Number umwandeln.Mehere Wörter in verschiedene Zahlen umwandeln geht damit nicht. Falls du das benötigst, schreib bitte nen issue auf github, dann bau ich das mal ein oder evtl. geht das mit alias, da kenn ich mich aber nicht mit aus.
-
@samke Zur Not kanst Du das mit einem Blockly-Script und eigenen Datenpunkten realisieren (Blockly deshalb, weil ich kein Java beherrsche):
-
@guergen said in [Neuer Adapter] LinkedDevices:
Zur Not kanst Du das mit einem Blockly-Script und eigenen Datenpunkten realisieren
Danke, genau so habe ich es jetzt gemacht (war auch ein Tipp aus dem Script Bereich).
-
@scrounger Hallo! Super Adapter. Nutze ich nun schon länger. Mir ist heute aufgefallen, das der LOG mit Meldungen "properties changed" voll läuft. Log steht auf "Info". Das ist mir so nicht aufgefallen. Ist das normal? Danke für deine Antwort
-
@dirk-smart
kommt wahrscheinlich von dem adapter von dem du das verlinkte object erstellt hast. zeig mal das log vorallem was vor der meldung drin steht -
@scrounger
Hallo: Kommt wahrscheinlich, wirklich nur vom deconz-Adapter. -
@scrounger Hier noch mit debug: