Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Tester
    4. Test Adapter flexcharts - Stapeldiagramme und mehr

    NEWS

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

    • ioBroker goes Matter ... Matter Adapter in Stable

    • Monatsrückblick - April 2025

    Test Adapter flexcharts - Stapeldiagramme und mehr

    This topic has been deleted. Only users with topic management privileges can see it.
    • jrbwh
      jrbwh @sigi234 last edited by

      @sigi234 Danke für Deine Rückmeldung.
      Leider arbeite ich selbst nicht mit Blockly, deshalb gibt es da noch kein Beispiel.

      Grundsätzlich geht es so:

      • Darzustellende Daten beschaffen, z.B. aus der History lesen
      • Ein Objekt erstellen, das eine für ECharts passende Struktur hat. Beispiel für ein einfaches Balkendiagramm s.u. Deine einzelnen Datenreihen musst Du jeweils im Key "data" speichern.
      • Das Objekt im JSON-Format in einem State speichern, z.B. unter der ID 0_userdata.0.flexcharts.chart1
      • In einem Browser-Tab oder in einem iFrame die ID des States an flexcharts übergeben. Also mit http://localhost:8200/echarts.html?source=state&id=0_userdata.0.flexcharts.chart1

      Mir ist schon klar, dass das ein bisschen kompliziert ist und sich nicht direkt erschließt. Das ist für Fälle gedacht, wenn man mit den GUI-basierten Ansätzen nicht weiter kommt und man bereit ist, mehr Zeit in das Thema zu investieren.

      Template für ein einfaches Balkendiagramm mit einer Datenreihe:

      {"tooltip":{"trigger":"axis","axisPointer":{"type":"shadow"}},
      "legend":{},
      "xAxis":[{"type":"category","data":["Mon","Tue","Wed","Thu","Fri","Sat","Sun"]}],
      "yAxis":[{"type":"value"}],
      "dataZoom":[{"show":true,"start":0,"end":100}],
      "series":[
        {"name":"Meine Datenreihe 1","type":"bar","color":"#a30000","data":[8,19,21,50,26,1,36]}
      ]}
      
      M 1 Reply Last reply Reply Quote 0
      • M
        MCU @jrbwh last edited by

        @jrbwh
        Kannst du einen Fehler bzgl. Port abfangen? In meinem Fall ist es der cameras-Adapter, der nutzt auch 8200.
        Oder evtl. direkt einen anderen Port verwenden?
        7aa0dde0-d6f4-4d8f-99e9-82949d774327-image.png

        error: flexcharts.0 (458177) Exception-Code: EADDRINUSE: listen EADDRINUSE: address already in use :::8200
        
        jrbwh 1 Reply Last reply Reply Quote 0
        • jrbwh
          jrbwh @MCU last edited by

          @mcu Danke für den Hinweis. Nein, habe ich nicht abgefangen. Werde ich einbauen.

          Den Default ändere ich dann auch gleich. Gibt es eine Liste der bereits verwendeten Ports?

          M 1 Reply Last reply Reply Quote 0
          • M
            MCU @jrbwh last edited by

            @jrbwh
            https://mcuiobroker.gitbook.io/iobroker-tipps/tipps/allgemein/iobroker/ubersicht-ports

            jrbwh 2 Replies Last reply Reply Quote 0
            • jrbwh
              jrbwh @MCU last edited by

              @mcu Super. Danke!

              1 Reply Last reply Reply Quote 0
              • jrbwh
                jrbwh @MCU last edited by

                @mcu Habe den Default-Port jetzt auf 3100 geändert. Da grafana auf 3000 liegt, scheint mir das passend.
                Mein Versuch, einen Port-Konflikt abzufangen, funktioniert aber bisher nicht. Ich habe den Start des http-Servers in ein try-catch gepackt, trotzdem stürzt der Adapter im Konfliktfall ab und meldet für die Zeile von this.webServer.listen diesen Fehler: uncaught exception: listen EADDRINUSE: address already in use. Der Code sieht so aus:

                		try {
                			this.webServer.listen({port: this.config.port}, () => {
                				this.log.info(`Server started on localhost:${this.config.port}`);
                				this.setState('info.connection', true, true);
                			});
                		} catch (e) {
                			this.log.error(`Start of http server failed on localhost:${this.config.port} - err=${e.message}`);
                			this.setState('info.connection', false, true);
                		}
                

                Verstehe ich nicht. Wie hast Du das gelöst?

                L 1 Reply Last reply Reply Quote 0
                • L
                  Lucky_ESA Developer Most Active @jrbwh last edited by

                  @jrbwh Nimm die Funktion.

                  const check_port = await this.getPortAsync(this.config.port);
                  

                  Ist der Prot belegt gibt check_port den nächsten freien wieder.

                  Gruß//Lucky

                  jrbwh 1 Reply Last reply Reply Quote 0
                  • jrbwh
                    jrbwh @Lucky_ESA last edited by

                    @lucky_esa Wow, kaum macht man es richtig, funktioniert's.

                    Vielen Dank für die super schnelle Hilfe!

                    1 Reply Last reply Reply Quote 0
                    • D
                      darkiop Most Active @jrbwh last edited by

                      @jrbwh sagte in Test Adapter flexcharts 0.0.1 - Stapeldiagramme und mehr:

                      An einem Skript für z.B. täglich gespeicherte Daten bin ich dran. Wie sieht denn Dein Datenformat konkret aus?

                      Ich bin leider immer noch nicht dazugekommen mich damit zu beschäftigen ... 😉 Aber der Winter ist ja lange 😄

                      Hier mal ein einfaches Beispiel wofür ich deine Charts verwenden würde:

                      160df428-d88c-4023-845d-08a329ef21cc-image.png

                      Die 3 Werte werden täglich um 23:59 ermittelt und in eine MariaDB mit dem SQL-Adapter geschrieben. Für das Chart stelle ich mir ein Balkendiagram mit den 3 Werten pro Tag und vielleicht 7 Tage zurück vor. In etwa so, nur eben xAxis.data ausgehende vom heutigen Tag -7d.

                      option = {
                        xAxis: {
                          type: 'category',
                          data: ['Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat', 'Sun']
                        },
                        yAxis: {
                          type: 'value'
                        },
                        series: [
                          {
                            data: [120, 200, 150, 80, 70, 110, 130],
                            type: 'bar'
                          },
                          {
                            data: [120, 200, 150, 80, 70, 110, 130],
                            type: 'bar'
                          },
                          {
                            data: [120, 200, 150, 80, 70, 110, 130],
                            type: 'bar'
                          }
                        ]
                      };
                      
                      jrbwh 1 Reply Last reply Reply Quote 0
                      • jrbwh
                        jrbwh @darkiop last edited by

                        @darkiop Das sollte mit dem Skript-Template direkt möglich sein, wie in meinem Post vom 31. Aug. 2024, 11:54 beschrieben. Folgendes musst Du anpassen:
                        "instanceHistory": Deine History-Instanz eintragen
                        "yAxis": Die 2te y-Achse entfernen
                        "mySeries.daily": Für die ersten 3 Zeilen Deine Datenpunkte eintragen, alles "stack_a" zuordnen (sofern es ein Stapeldiagramm mit einem Balken werden soll). Die restlichen Zeilen löschen.
                        "mySeries.monthly" und "mySeries.yearly": Alle Zeilen löschen, also nur [] übrig lassen
                        Aufrufen mit " ...params={"period":"daily", "start":7}

                        D 1 Reply Last reply Reply Quote 0
                        • L
                          legro @jrbwh last edited by legro

                          @jrbwh

                          Mir fehlte der direkte Link zur Installation. Dieser ist hier zu finden.

                          jrbwh 1 Reply Last reply Reply Quote 0
                          • jrbwh
                            jrbwh @legro last edited by

                            @legro Danke für den Hinweis. Habe den Link in der Beschreibung ergänzt.

                            L 1 Reply Last reply Reply Quote 0
                            • D
                              darkiop Most Active @jrbwh last edited by

                              @jrbwh Ja, kann ich bestätigen ... mit etwas selber code lesen hätt ich das auch hinbekommen ... aber wie gesagt, die Prios haben sich gerade verändert. Danke dir - ich werd mal schauen wie ich die Charts nutzen kann.

                              Hast du auch vorgesehen den Dark-Mode der echarts zu implementieren?

                              jrbwh 1 Reply Last reply Reply Quote 0
                              • jrbwh
                                jrbwh @darkiop last edited by

                                @darkiop Dark Mode war noch nicht drin. Habe ich eben mit V0.0.4 ergänzt. Aktivieren mit &darkmode im HTML-Aufruf.

                                1 Reply Last reply Reply Quote 0
                                • L
                                  legro @jrbwh last edited by

                                  @jrbwh

                                  Ich bin verwirrt: Der von mir oben eingestellte Link zeigt nicht mehr auf die Installationsseite. Wo ist die Installationsanweisung abgeblieben?

                                  jrbwh 1 Reply Last reply Reply Quote 0
                                  • jrbwh
                                    jrbwh @legro last edited by

                                    @legro Ich habe die Installationsanleitung nach dem Hinweis von Martin rausgenommen.

                                    Du kannst den Adapter aber einfach per npm installieren:

                                    cd /opt/iobroker
                                    npm i iobroker.flexcharts
                                    

                                    Dann in der Adapter-Ansicht eine Instanz ergänzen.

                                    D 1 Reply Last reply Reply Quote 0
                                    • D
                                      Delphinis @jrbwh last edited by

                                      @jrbwh
                                      Hallo,
                                      bin sehr an diesem Adapter interessiert. Machst du da noch einen offiziellen Adapter draus?

                                      jrbwh 1 Reply Last reply Reply Quote 0
                                      • jrbwh
                                        jrbwh @Delphinis last edited by

                                        @delphinis Ja, da ist der Plan. Das Review zur Aufnahme ins Beta-Repo läuft, siehe PR.

                                        Du kannst den Adapter aber sofort über npm installieren:

                                        cd /opt/iobroker
                                        npm i iobroker.flexcharts
                                        
                                        D 1 Reply Last reply Reply Quote 0
                                        • D
                                          Delphinis @jrbwh last edited by

                                          @jrbwh
                                          Danke, aber dann warte ich lieber den offiziellen Adapter ab 🙂 .

                                          jrbwh 1 Reply Last reply Reply Quote 0
                                          • jrbwh
                                            jrbwh @Delphinis last edited by

                                            @delphinis Der adapter ist jetzt im Beta-Repo verfügbar. Funktioniert jetzt als Web-Extension, d.h. der Web-Adapter (web.0) muss installiert sein und flexcharts ist dann unter Port 8082 erreichbar. Außerdem muss ein flexcharts in der Adresse vorangestellt werden, also z.B.

                                            http://localhost:8082/flexcharts/echarts.html?source=state&id=flexcharts.0.info.chart1
                                            

                                            Das Readme ist entsprechend angepasst.

                                            Freue mich auf Deine Rückmeldung.

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

                                            Support us

                                            ioBroker
                                            Community Adapters
                                            Donate

                                            871
                                            Online

                                            31.6k
                                            Users

                                            79.5k
                                            Topics

                                            1.3m
                                            Posts

                                            chart charts diagramme echarts visualisierung visualization
                                            18
                                            231
                                            19459
                                            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