Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Entwicklung
    4. Analytics-Adapter / DB-Harmonisierung

    NEWS

    • ioBroker@Smart Living Forum Solingen, 14.06. - Agenda added

    • ioBroker goes Matter ... Matter Adapter in Stable

    • Monatsrückblick - April 2025

    Analytics-Adapter / DB-Harmonisierung

    This topic has been deleted. Only users with topic management privileges can see it.
    • Jey Cee
      Jey Cee Developer last edited by

      Nein.

      Für was sollte man so etwas brauchen?

      Gesendet von meinem m8 mit Tapatalk

      1 Reply Last reply Reply Quote 0
      • Stabilostick
        Stabilostick last edited by

        Das ist noch nicht spruchreif.Ich prüfe gerade die Optionen, die ich habe.

        Also ein Adapter, zwei Gesichter…..?

        1 Reply Last reply Reply Quote 0
        • apollon77
          apollon77 last edited by

          Also an der Stelle musst DU zwei nom Pakete mit unterschiedlichen namen haben und der Adapter muss dann auch "doppelt" ins Repository - und er beiden Namen halt.

          Jeder muss passend und korrekt mit seine Namen eine package.json und io-package.json haben

          1 Reply Last reply Reply Quote 0
          • Stabilostick
            Stabilostick last edited by

            Mist. Ich will erreichen, dass ein Adapter sich für einen anderen ausgeben kann. Oder zumindest eine Instanz eines anderen Adapter bildet, damit bestehender Code nicht bricht. So etwas wie ein gesteuerter Alias auf js-controller-Ebene.

            1 Reply Last reply Reply Quote 0
            • arteck
              arteck Developer Most Active last edited by

              sinn und zweck ???

              1 Reply Last reply Reply Quote 0
              • apollon77
                apollon77 last edited by

                Ja, jetzt bitte mal den exakten Usecase sagen …

                1 Reply Last reply Reply Quote 0
                • Stabilostick
                  Stabilostick last edited by

                  Du hast Adapter A, er ist schon lange im ioBroker Universum mit dabei und weit verbreitet. Jetzt kommt Adapter B. Er kann u.a. alles was A kann, aber macht wesentlich mehr. Er soll A (vielleicht sogar noch zusätzlich C) ablösen, ohne dass Anwender oder andere Entwickler etwas ändern müssen.

                  Lösungsansätze:

                  1. Der Entwickler von A könnt prüfen, ob B installiert ist und dann seine Messages zu B umrouten…. Doch was ist mit den Objekten?

                  2. Alias im js-controller einführen

                  3. Es bleiben lassen, weil ... (insert breaking changes here)

                  Ich will es mir nicht so einfach machen und 3. ohne Diskussion akzeptieren.

                  Gibt es noch andere Ansätze/Ideen?

                  1 Reply Last reply Reply Quote 0
                  • apollon77
                    apollon77 last edited by

                    Das würde das gesamte Adapter-Konzept durcheinanderbringen. Jeder Adapter hat seine Objekte in seinem Namespace.

                    Also wenn ein neuer Adapter kommt der andere ablösen kann (warum auch immer neu und nicht die anderen Adapter sinnvoll erweitern?) dann kann an ggf die Konfiguration der anderen Adapter einlesen/Import erlauben aber dann würde ich es trennen.

                    Bitte auch bedenken das Adapter sinnvoll abgetrennte Funktionen bieten sollten. Nicht Dinge zusammenmischen die nicht zusammengehören!! (Haben schon den radar der neben der Hauptaufgabe auch Druckerpatronen und Unwetterdaten bereitstellt … hmmmm... findet kein User :-()

                    Also ich würde die komplexität gering halten - und das heisst im Zweifel das ein User einmalig Objekt-IDs vom alten auf den neuen Adapter umstellen muss. Und das ist dann so und gut so 🙂

                    Was auf der großen Roadmap steht sind Virtuelle Objekte. Die Idee ist hier das man jedem Objekt noch einen virtuellen namen geben kann den man dann Adapterunabhängig in einem "virtual"-Namespace benutzen kann. Aber wie das jemand kapselt obliegt dann jedem user selbst und müssen auch rückwärtskompatibel bleiben.

                    1 Reply Last reply Reply Quote 0
                    • Stabilostick
                      Stabilostick last edited by

                      Nehmen wir mal als hypothetisches Beispiel für A den History-Adapter… Und den SQL-Adapter. Und den Influx-DB-Adapter. Deine Kids, apollon77. 😄 Alle drei machen prinzipiell das Gleiche. Der SQL-Adapter hat schon die Möglichkeit verschiedene Backend-DBs einzubinden. Warum nicht auch für File und influx? ...

                      -> Entwickung hin zu einer zentralen Datenschnittstelle für ioBroker. -> Dafür ein zentraler Adapter.

                      Vereinfachung für die Anwender.

                      Möglichkeit dort das Backend auszutauschen.

                      Datenmigration. Backup. Alles an einer Stelle.

                      Aggregatoren.

                      Abstraktion, Möglichkeit, Text-Files mit SQL abzufragen,…

                      ...

                      Ich finde, das ioBroker von Entwicker für Entwickler geschrieben ist. Nichts schlechtes dabei. Doch was ist mit den Anwendern, die froh sind, dass der ioBroker überhaupt installiert ist... Abstraktion der Komplexität statt immer komplexer zu werden.

                      1 Reply Last reply Reply Quote 0
                      • kmxak
                        kmxak Most Active last edited by

                        Ich bin kein Entwickler und verstehe nicht was du machen willst. Das Adapter System ist simpel und gut verständlich.

                        Gesendet von meinem SM-G930F mit Tapatalk

                        1 Reply Last reply Reply Quote 0
                        • Stabilostick
                          Stabilostick last edited by

                          Jupp. Adapter finde ich auch gut. Ist universell. Wollte auf die Antwort von apollon77 eingehen.

                          1 Reply Last reply Reply Quote 0
                          • Homoran
                            Homoran Global Moderator Administrators last edited by

                            @kmxak:

                            Das Adapter System ist simpel und gut verständlich. `
                            und soll vor allem das große Problem von ccu.io vermeiden.

                            Jeder Adapter soll nur so viel wie unbedingt nötig machen, für jede Funktion ein anderer (in Grenzen natürlich!).

                            Wenn dann eine Funktion Probleme hat ist nicht der Multi-Mega-Adapter mit 100 Funktionen komplett down, sondern nur einer von 100.

                            Gruß

                            Rainer

                            1 Reply Last reply Reply Quote 0
                            • apollon77
                              apollon77 last edited by

                              @Stabilostick:

                              Nehmen wir mal als hypothetisches Beispiel für A den History-Adapter… Und den SQL-Adapter. Und den Influx-DB-Adapter. Deine Kids, apollon77. 😄 Alle drei machen prinzipiell das Gleiche. Der SQL-Adapter hat schon die Möglichkeit verschiedene Backend-DBs einzubinden. Warum nicht auch für File und influx? ...

                              -> Entwickung hin zu einer zentralen Datenschnittstelle für ioBroker. -> Dafür ein zentraler Adapter.

                              Vereinfachung für die Anwender.

                              Möglichkeit dort das Backend auszutauschen.

                              Datenmigration. Backup. Alles an einer Stelle.

                              Aggregatoren.

                              Abstraktion, Möglichkeit, Text-Files mit SQL abzufragen,…

                              ...

                              Ich finde, das ioBroker von Entwicker für Entwickler geschrieben ist. Nichts schlechtes dabei. Doch was ist mit den Anwendern, die froh sind, dass der ioBroker überhaupt installiert ist... Abstraktion der Komplexität statt immer komplexer zu werden. `

                              Hm … also gerade aus Anwendersicht ist diese Trennung super (finde ich)!

                              Was will ich? File oder SQL oder InfluxDB? Dann installiere ich den Adapter und er macht genau das was er soll. Wenn ich nicht weiss was SQL oder InfluxDB ist nehme ich "History" und habe Diagramme. Cool.

                              Ich gebe Dir recht, der "Migrationspfad" von einem zu einem der anderen Adapter ist nicht ganz so simpel aus Usersicht - aber auch in einem Adapter wäre eine automatisierte Datenmigration nahezu unmöglich bzw. eeeeeecht umfangreich! Und genau bei sowas will dann jeder was anderes und es entsteht ein Mega-Monster was niemand mehr (weder User noch Entwickler) unter Kontrolle hat. Allein SQL ist schon so ein halbes Monster 🙂

                              Je mehr man in eine Software (und das ist jetzt ganz allgemein gesprochen) reinpackt umso komplexer, fehleranfälliger, schlechter wartbarer und und und wird das ganze. Auch wenn das Featureset der 3 History-Adapter nach aussen hin "identisch" ist, ist unter der Haube einiges anders.

                              Irgendwo muss man Grenzen ziehen zwischen "für den User einfach" und "noch wartbar" und aus diesen Gesichtspunkten finde ich die Auftrennung genau hier passend.

                              Das ioBroker "von Entwicklern für Entwickler" ist möchte ich aber nicht unterschreiben. ioBroker ist eins der wenigen Systeme wo man ohne Kommandozeile auskommt und im ersten Schritt sehr viel tun kann ohne "Entwickeln" zu müssen. Ja, um das Ziel echt erreicht zu haben fehlt noch ein guter grafischer/UI "Wenn-Dann-Sonst"-Regeleditor, aber sonst ist genau das Ziel sich nicht nur an "Techniker" zu richten.

                              Die Thematik an "Smart-Home" ist das man viel mit wenig Wissen tun kann, aber wenn man mal Blut geleckt hat und mehr will, dann muss man sich auch damit beschäftigen.

                              Und ja wenn jemand mal soweit ich das wegen I/O-Problemen History nicht mehr die Wahl ist oder man jetzt weiss was SQL ist und ne NAS hat wo man das mit einem Klick installieren kann, dann stellt man "einfach" alle Datenpunkte auf SQL um und gut ist. Der Aufwand kommt nur wenn man die alten Daten migrieren will ... aber so gesehen gabs dazu 2-3 Thraeds im ganzen Forum bisher ... Ich denke die meisten stellen einfach um und gut ist 🙂

                              ALso wie Du siehst habe ich/wir das gleiche Interesse ... es gibt nur verschiedene Sichtweisen auf das ganze Thema ... (und ich will Deine in keinem Fall hier wegdiskutieren!) ... gib gern Feedback

                              1 Reply Last reply Reply Quote 0
                              • Stabilostick
                                Stabilostick last edited by

                                Ich lass das mal auf mich einige Zeit wirken… Ich komme eher von der DB-Seite und bin Konzepte wie OLEDB u.ä. gewohnt. Da ist es dann z.B. für Abfragen (nahezu) egal, welche DB darunter steckt. Das vermisse ich.

                                1 Reply Last reply Reply Quote 0
                                • apollon77
                                  apollon77 last edited by

                                  Also Javascriopt-Seitig gibt es die einheitliche "getHostory"-Message die alle 3 Adapter (und seit neuestem auch Homee) implementieren. Da kannst du die gleichen Abfragen (ja, kein SQL …) auf alle 3-4 Adapter loslassen - so machen es die Diagramm-Adapter z.B. flot.

                                  https://github.com/ioBroker/ioBroker.hi ... pt-adapter

                                  Also das haben wir hier schon. Nur keine echte Abfragesprache.

                                  Dann viel Spass beim wirken lassen 🙂

                                  1 Reply Last reply Reply Quote 0
                                  • Stabilostick
                                    Stabilostick last edited by

                                    Ja, "getHistory" mit den lustigen Aggregaten kenne ich. Das ist nicht das Problem. Aber z.B. Statistikwerte über den Datenbankzugriff/die Datenhaltung selbst, ohne dass ich mich als Anwender darum kümmern muss?

                                    1 Reply Last reply Reply Quote 0
                                    • apollon77
                                      apollon77 last edited by

                                      Usecase?

                                      1 Reply Last reply Reply Quote 0
                                      • Stabilostick
                                        Stabilostick last edited by

                                        Bin vor allem an analytischen- und ranking-Funktionen unabhängig von der zugrunde liegenden Datenhaltung interessiert.

                                        1 Reply Last reply Reply Quote 0
                                        • apollon77
                                          apollon77 last edited by

                                          Also weit weg von Normal-User Interessen 🙂

                                          Sorry aber die ANtwort ist mir gerade zu abstrakt (oder mein Kopf zu weit weg) … Was ? 🙂

                                          1 Reply Last reply Reply Quote 0
                                          • Stabilostick
                                            Stabilostick last edited by

                                            Na, wenn man sieht, wie da(s) in Scripts "getrickst", ähm, gelöst wird. Da werde munter ioBroker-Objekte zur temporären Datenhaltung angelegt und vorberechnet. Nichts schlimmes, aber was hat das mit Smart Home zu tun? Das sind reguläre Anforderungen an die zugrunde liegende Datenhaltung und -aufbereitung.

                                            Da baut sich jetzt halt jeder seine eigene Lösung, weil die minimale Basis der history-Adapter ist. Oder weil nicht jeder auf die 'query'-Funktion bei SQL stößt. Und der Anwender hofft auf Script-Sammlungen und das Forum. 😄

                                            Ich sag nur:

                                            Letzter Datensatz

                                            Letzte Woche

                                            Top 10

                                            Aggregationen über beliebige Zeiträume

                                            Vergleich von Zeiträumen

                                            Tendenzen

                                            Gezielter Werte-Zugriff auf Zeitpunkte in der Vergangenheit

                                            Parsen von JSON-Objekten aus der DB

                                            …

                                            Sag jetzt nicht SQL. Welcher Smart Home-Anwender will das freiwillig auch noch lernen...

                                            -> Ironie:

                                            Juhu, ein Analyse-Adapter muss her. Und der darf dann sich wieder mit den verschiedenen Datensenken herumschlagen, weil die nicht über eine zentrale Harmonisierungsschicht laufen... 😉

                                            1 Reply Last reply Reply Quote 0
                                            • First post
                                              Last post

                                            Support us

                                            ioBroker
                                            Community Adapters
                                            Donate

                                            786
                                            Online

                                            31.7k
                                            Users

                                            79.8k
                                            Topics

                                            1.3m
                                            Posts

                                            6
                                            23
                                            1390
                                            Loading More Posts
                                            • Oldest to Newest
                                            • Newest to Oldest
                                            • Most Votes
                                            Reply
                                            • Reply as topic
                                            Log in to reply
                                            Community
                                            Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen
                                            The ioBroker Community 2014-2023
                                            logo