Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. JavaScript
    5. Integrieren in javascript

    NEWS

    • Neuer Blog: Fotos und Eindrücke aus Solingen

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

    • ioBroker goes Matter ... Matter Adapter in Stable

    Integrieren in javascript

    This topic has been deleted. Only users with topic management privileges can see it.
    • S
      sgtpinback last edited by

      Hallo,

      ich hab folgendes Problem:
      Ich habe einen Stromzähler den ich aus dem js Adapter aufrufe und daraus einen Leistungswert berechne.
      Den Wert speichere ich dann wieder.
      Für die history data verwende ich den SQL Adapter.

      Das funktioniert auch alles und ich kann mir den Verlauf in ECharts ansehen.

      Jetzt möchte ich die Daten aber vor der Anzeige bearbeiten.
      Also z.B. das Integral berechnen, um die kWh anzuzeigen.
      D.h. ich möchte, dass ECharts nicht die Daten aus der Datenbank nimmt sondern die Daten von meinem JS Script.
      Das Script soll sich die Daten aus dem SQL Adapter holen und dann bearbeitet an ECharts weitergeben.

      Ich habe zwar bisher erreicht, dass ich die Daten zur Laufzeit erfasse, umrechne und dann is SQL abspeichere. Das kann ich mir in E-Charts auch anzeigen lassen.
      Das hat aber den Nachteil, wenn ich mir später überlege, ich müsste die Daten anders bearbeiten, dann geht das nicht mehr.
      D.h. das ist keine Lösung für mich.

      paul53 OliverIO 2 Replies Last reply Reply Quote 0
      • BananaJoe
        BananaJoe Most Active last edited by

        @sgtpinback naja, man könnte nativ auf die SQL-Datenpunkt zugreifen und auch darin schreiben. Oder besser über den SQL-Adapter: https://forum.iobroker.net/topic/4014/zugriff-auf-eigene-mysql-datenbank/8?_=1641740276875

        Du müsstest halt alle Datenpunkte einlesen und an anderer Stelle (Datenpunkt mit aktiviertem SQL) wieder neu schreiben (mit dem passenden Zeitstempeln)

        Die Datenpunkte zur Laufzeit zu manipulieren wäre - wie ich meine - aus Performancegründen sehr schlecht. Könnten ja ein paar tausend Daten sein.

        Ich habe gerade noch mal beim Adapter geschaut: https://github.com/ioBroker/ioBroker.sql
        Unten in den Beispielen ist aufgeführt wie du per SendTo abfragst und auch Daten setzen kannst.

        S 1 Reply Last reply Reply Quote 0
        • paul53
          paul53 @sgtpinback last edited by paul53

          @sgtpinback sagte: Ich habe einen Stromzähler ... einen Leistungswert berechne.

          Welche Daten liefert der Zähler an ioBroker?

          S 1 Reply Last reply Reply Quote 0
          • OliverIO
            OliverIO @sgtpinback last edited by

            @sgtpinback
            man kann in sql ebenfalls berechnen.
            so könntest die Daten original abspeichern und bei der abfrage direkt durch die Datenbank berechnen lassen.

            Was für eine Datenbank ist es,
            wie lautet die formel?

            hier beispielsweise die referenz zu mysql/heidi
            https://dev.mysql.com/doc/refman/8.0/en/functions.html

            S 1 Reply Last reply Reply Quote 0
            • S
              sgtpinback @OliverIO last edited by

              @oliverio said in Integrieren in javascript:

              https://dev.mysql.com/doc/refman/8.0/en/functions.html

              Selbst wenn das ginge. Wie krieg ich die Daten aus der Datenbank. Es ist doch eher so, dass ich einen Datenpunkt habe und dann in iobroker daran eine Datenbank ankopple, damit die Daten mit Zeitstempel in eine DB geschrieben werden. D.h. iobroker.sql muss die Daten ja irgendwie "advertisen" damit E-Charts die überhaupt akzeptiert.

              OliverIO 1 Reply Last reply Reply Quote 0
              • S
                sgtpinback @paul53 last edited by

                @paul53 Ich ermittle einfach nur die Zeit zwischen 2 Impulsen. Die schreibe in einen Wert und der wird dann an die DB gekoppelt. Das ist aber nicht das Problem hier.

                paul53 1 Reply Last reply Reply Quote 0
                • S
                  sgtpinback @BananaJoe last edited by

                  @bananajoe Das könnte ein Weg sein. Allerdings frage ich mich, wie E-charts dann darauf zugreifen kann. Bzw. wie kann ich die Daten in die sqlite DB so schreiben, dass iobroker.sql sie dann auch an E-Charts weitergeben kann.

                  1 Reply Last reply Reply Quote 0
                  • paul53
                    paul53 @sgtpinback last edited by

                    @sgtpinback sagte: Ich ermittle einfach nur die Zeit zwischen 2 Impulsen.

                    Wenn die Impulse an ioBroker gesendet werden, kann man diese auch zählen und muss nicht den Umweg der Integration über die Leistungswerte gehen.

                    S 1 Reply Last reply Reply Quote 0
                    • OliverIO
                      OliverIO @sgtpinback last edited by OliverIO

                      @sgtpinback

                      äh, ja, sorry denkfehler.
                      ich dachte man schiebt dem e-charts-adapter einfach nur ne andere abfrage unter.
                      das würde besipielsweise in der influx oberfläche gehen.

                      alternativ würde ich dann für jeden datenpunkt einen weiteren datenpunkt einrichten. dann ein skript, welches jeden wert der geschrieben wird umrechnet und in den anderen datenpunkt schreibt.
                      so hast du alle originaldaten, sowie die umgerechneten werte.

                      wenn du bereits in der DB befindlichen Daten umrechnen möchtest, dann die Werte per SQL umrechnen, das passiert ja nur einmal.

                      S 1 Reply Last reply Reply Quote 0
                      • S
                        sgtpinback @OliverIO last edited by

                        @oliverio OK, ich guck mir mal die influx Oberfläche an.

                        1 Reply Last reply Reply Quote 0
                        • S
                          sgtpinback @paul53 last edited by

                          @paul53 Mein Problem ist, dass ich die Werte nicht zur Laufzeit berechnen will, sondern später. D.h. wenn ich nach einem Jahr feststelle, die Form der Anzeige gefällt mir nicht, dass ich dan einfach eine andere Formel angeben kann und alle alten Werte werden neu berechnet und angezeigt.

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

                            @sgtpinback sagte in Integrieren in javascript:

                            wenn ich nach einem Jahr feststelle, die Form der Anzeige gefällt mir nicht

                            Ich lese hier schon länger oberflächlich mit.
                            Einerseits glaube ich zu verstehen was du willst und kann auch den Wunsch nachvollziehen.
                            Andererseits habe ich mit dieser Idee so meine Probleme.

                            Historisierte Daten sind für mich ein Audit-Trail, da kann ich nicht nach einem Jahr sagen: das gefällt mir aber nicht.
                            Zum Weiteren fällt mir auch gar nicht ein worum es da gehen sollte.
                            Die Temperatur von Heiligabend 2019 um 13:42 ist gegeben, was willst du da ändern?
                            Ebenso die Jahressumme der Regenmenge oder des Stromverbrauchs.

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

                            Support us

                            ioBroker
                            Community Adapters
                            Donate

                            645
                            Online

                            31.8k
                            Users

                            80.0k
                            Topics

                            1.3m
                            Posts

                            5
                            12
                            542
                            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