Skip to content
  • Home
  • Aktuell
  • Tags
  • 0 Ungelesen 0
  • Kategorien
  • Unreplied
  • Beliebt
  • GitHub
  • Docu
  • Hilfe
Skins
  • Light
  • Brite
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Standard: (Kein Skin)
  • Kein Skin
Einklappen
ioBroker Logo

Community Forum

  1. ioBroker Community Home
  2. Deutsch
  3. Tester
  4. Test Adapter TibberConnect 0.0.x inkl. Tibber Pulse

NEWS

  • UPDATE 31.10.: Amazon Alexa - ioBroker Skill läuft aus ?
    apollon77A
    apollon77
    48
    3
    8.2k

  • Monatsrückblick – September 2025
    BluefoxB
    Bluefox
    13
    1
    1.9k

  • Neues Video "KI im Smart Home" - ioBroker plus n8n
    BluefoxB
    Bluefox
    15
    1
    2.2k

Test Adapter TibberConnect 0.0.x inkl. Tibber Pulse

Geplant Angeheftet Gesperrt Verschoben Tester
360 Beiträge 49 Kommentatoren 90.8k Aufrufe 53 Watching
  • Älteste zuerst
  • Neuste zuerst
  • Meiste Stimmen
Antworten
  • In einem neuen Thema antworten
Anmelden zum Antworten
Dieses Thema wurde gelöscht. Nur Nutzer mit entsprechenden Rechten können es sehen.
  • C Codibris
    Aktuelle Test Version 0.0.7
    Veröffentlichungsdatum 19.11.2022
    Github Link https://github.com/Codibris/ioBroker.tibberconnect
    Issues https://github.com/Codibris/ioBroker.tibberconnect/issues

    Neu in der Version

    1. Der Connection Status wird nun gesetzt - entweder durch den Feed (bei einem Pulse) oder durch den Kontakt zur API (ohne Pulse)
    2. Die Verbindung an zur API wurde auf die Änderung durch Tibber im Dezember 2022 vorbereitet
    S Offline
    S Offline
    souhl
    schrieb am zuletzt editiert von souhl
    #39

    @codibris Klasse arbeit! Leider bekomme ich den Adapter nicht installiert. Probiere es, in dem ich GitHub Link im ioBroker über die Custom URL installiere. Leider passiert da nichts. Gibt es einen anderen Weg?
    Screenshot 2022-11-21 at 15.35.06.png Screenshot 2022-11-21 at 15.34.56.png

    Thomas BraunT C 2 Antworten Letzte Antwort
    0
    • S Online
      S Online
      Schimi
      schrieb am zuletzt editiert von
      #40

      greift der Adapter direkt auf "den Puls" zu, oder über eine Cloud?

      Überlege ob ich zu Tibber wechsel.... habe aber zur Zeit nen IR Dongel am Zähler, der würde ja ersetzt werden...

      T 1 Antwort Letzte Antwort
      0
      • S Schimi

        greift der Adapter direkt auf "den Puls" zu, oder über eine Cloud?

        Überlege ob ich zu Tibber wechsel.... habe aber zur Zeit nen IR Dongel am Zähler, der würde ja ersetzt werden...

        T Offline
        T Offline
        theGrinch
        schrieb am zuletzt editiert von
        #41

        @schimi Wenn du zu Tibber wechselst und den Pulse nutzen möchtest, muss der ja eh mit Tibber verbunden sein. Die Daten kommen aus der Tibber API, also Cloud.
        Der Pulse ist mit der Bridge über ein eigene Funkverbindung verbunden, die Bridge dann mit WLAN.

        1 Antwort Letzte Antwort
        1
        • M Offline
          M Offline
          MikeRow
          schrieb am zuletzt editiert von MikeRow
          #42

          0.0.7 hab ich installiert, stürzt aber leider regelmäßig ab. Kann ich logfiles oder ähnliches zur Fehlersuche beisteuern?

          T 1 Antwort Letzte Antwort
          0
          • S Online
            S Online
            Schimi
            schrieb am zuletzt editiert von
            #43

            hat jemand nen Einladunngscode? vielleicht Der Adapter Ersteller? 🙂

            T C 2 Antworten Letzte Antwort
            1
            • M MikeRow

              0.0.7 hab ich installiert, stürzt aber leider regelmäßig ab. Kann ich logfiles oder ähnliches zur Fehlersuche beisteuern?

              T Offline
              T Offline
              theGrinch
              schrieb am zuletzt editiert von
              #44

              @mikerow bekanntes Thema, ist er dran.
              Workaround: expertenmodus, restart alle 30min.

              1 Antwort Letzte Antwort
              1
              • S Schimi

                hat jemand nen Einladunngscode? vielleicht Der Adapter Ersteller? 🙂

                T Offline
                T Offline
                theGrinch
                schrieb am zuletzt editiert von theGrinch
                #45

                gelöscht weil obsolet

                1 Antwort Letzte Antwort
                0
                • C Codibris

                  @thegrinch sagte in Test Adapter TibberConnect 0.0.x inkl. Tibber Pulse:

                  Außerdem tauchen nicht alle anwählbaren Punkte als Datenpunkte auf, z. B. Signalstärke.

                  Hey @theGrinch,
                  in meiner Testumgebung bekomme ich da Werte. Allerdings ist der Adapter so gebaut, dass nur Datenpunkte erstellt werden, wenn hier von der API auch wirklich Werte kommen.

                  Kannst du über den Tibber API Explorer (https://developer.tibber.com/explorer) mit deinem Token mal schauen, ob du da Werte bekommst, wenn du die "signalStrength" mit anforderst?

                  Hier mal als Bsp. mit dem Demo Token - oben rechts die passende Vorlage nehmen und den Wert links ergänzen:
                  6eb6916c-5e43-4bbf-b7fe-6a8de1b6712f-image.png

                  Vielleicht ist das ja schon das "ganze" Problem. Könnte das als Hinweis mit in die Konfiguration schreiben - je nach deiner Rückmeldung würde ich das gitHub Issue anpassen (https://github.com/Codibris/ioBroker.tibberconnect/issues/84)

                  T Offline
                  T Offline
                  theGrinch
                  schrieb am zuletzt editiert von
                  #46

                  @codibris ich hatte ein paar Probleme mit der Connectivität des Pulse. Jetzt geht er wieder und ja, bei mir kommen auch keine Werte:
                  "signalStrength": null,

                  Dann ist das wohl in der API vorgesehen, aber nicht implementiert.

                  1 Antwort Letzte Antwort
                  0
                  • C Offline
                    C Offline
                    Codibris
                    Developer
                    schrieb am zuletzt editiert von
                    #47

                    Hallo zusammen,

                    den Einladungscode von Tibber könnte ich natürlich oben mit reinschreiben 🙂 das werde ich mal noch machen 🙂

                    Zu den Abstürzen: ich habe da letzte Woche dran gearbeitet und bei mir in meiner produktiven Umgebung die Änderung aus dem Fork installiert. Rein von außen (VIS) konnte ich diese Woche keine Abstürze sehen. Ich werde morgen mal das Log File analysieren. Wenn auch das gut aussieht, würde ich die Änderung in den Haupt Zweig überführen. Und eine Version 0.0.8 veröffentlichen.

                    Dann hoffe ich, dass der auch bei euch stabil läuft.

                    1 Antwort Letzte Antwort
                    1
                    • S souhl

                      @codibris Klasse arbeit! Leider bekomme ich den Adapter nicht installiert. Probiere es, in dem ich GitHub Link im ioBroker über die Custom URL installiere. Leider passiert da nichts. Gibt es einen anderen Weg?
                      Screenshot 2022-11-21 at 15.35.06.png Screenshot 2022-11-21 at 15.34.56.png

                      Thomas BraunT Online
                      Thomas BraunT Online
                      Thomas Braun
                      Most Active
                      schrieb am zuletzt editiert von
                      #48

                      @souhl sagte in Test Adapter TibberConnect 0.0.x inkl. Tibber Pulse:

                      Leider passiert da nichts. Gibt es einen anderen Weg?

                      Liegt an deinem veralteten NPM.
                      Installier das aktuelle nodejs@16, das bringt auch ein aktuelles npm mit.

                      Linux-Werkzeugkasten:
                      https://forum.iobroker.net/topic/42952/der-kleine-iobroker-linux-werkzeugkasten
                      NodeJS Fixer Skript:
                      https://forum.iobroker.net/topic/68035/iob-node-fix-skript
                      iob_diag: curl -sLf -o diag.sh https://iobroker.net/diag.sh && bash diag.sh

                      C 1 Antwort Letzte Antwort
                      0
                      • S souhl

                        @codibris Klasse arbeit! Leider bekomme ich den Adapter nicht installiert. Probiere es, in dem ich GitHub Link im ioBroker über die Custom URL installiere. Leider passiert da nichts. Gibt es einen anderen Weg?
                        Screenshot 2022-11-21 at 15.35.06.png Screenshot 2022-11-21 at 15.34.56.png

                        C Offline
                        C Offline
                        Codibris
                        Developer
                        schrieb am zuletzt editiert von
                        #49

                        @souhl hast du den jetzt installiert bekommen? Von den Screens her sieht erst mal alles okay aus. Hatte gesehen, dass du auch ein issue aufgemacht hast, oder? Dann versuche ich das mal bei mir nachzustellen. Beim Installieren dauert es ein klein Moment da noch weitere Pakete benötigt werden und die in diesem Schritt geladen werden. Aber wenn das gar nicht zu geht es Fenster - ist das nicht der Plan gewesen 🙂

                        Hoffe, dass ich morgen etwas Zeit finde, mir das mal anzuschauen.

                        1 Antwort Letzte Antwort
                        0
                        • Thomas BraunT Thomas Braun

                          @souhl sagte in Test Adapter TibberConnect 0.0.x inkl. Tibber Pulse:

                          Leider passiert da nichts. Gibt es einen anderen Weg?

                          Liegt an deinem veralteten NPM.
                          Installier das aktuelle nodejs@16, das bringt auch ein aktuelles npm mit.

                          C Offline
                          C Offline
                          Codibris
                          Developer
                          schrieb am zuletzt editiert von
                          #50

                          @thomas-braun danke 🙂

                          1 Antwort Letzte Antwort
                          0
                          • M Michaelnorge

                            @codibris Gibt es die Möglichkeit einen Wert zu implementieren der anzeigt wann das E-Auto aufgeladen werden wird?

                            C Offline
                            C Offline
                            Codibris
                            Developer
                            schrieb am zuletzt editiert von
                            #51

                            @michaelnorge kannst du das als GitHub Issue aufmachen? Aktuell stellt die API von Tibber solche Werte nicht zur Verfügung. Aber ich würde die Wünsche sammeln und bei Tibber mal anfragen, ob es Möglichkeiten gibt, die Daten zu bekommen oder in der Zukunft in der API noch ergänzt werden.

                            1 Antwort Letzte Antwort
                            0
                            • T Offline
                              T Offline
                              theGrinch
                              schrieb am zuletzt editiert von
                              #52

                              Bevor ich da nen GitHub Issue von mache: hat noch jemand disconnects nach ca. 4 Minuten?

                              
                              tibberconnect.0 2022-11-26 21:16:26.814	debug	Tibber Feed: Disconnected from Tibber feed.
                              tibberconnect.0 2022-11-26 21:16:26.809	debug	Tibber Feed: Disconnected from Tibber feed.
                              tibberconnect.0 2022-11-26 21:12:14.862	debug	Tibber Feed: Connected to Tibber feed.
                              tibberconnect.0 2022-11-26 21:12:14.858	debug	Tibber Feed: Connected to Tibber feed.
                              tibberconnect.0 2022-11-26 21:12:14.517	debug	Websocket URL ermittelt: wss://websocket-api.tibber.com/v1-beta/gql/subscriptions
                              tibberconnect.0 2022-11-26 21:12:14.409	debug	Websocket URL ermittelt: wss://websocket-api.tibber.com/v1-beta/gql/subscriptions
                              tibberconnect.0 2022-11-26 21:12:14.065	debug	Ermittle Websocket URL für TibberFeed
                              tibberconnect.0 2022-11-26 21:12:14.056	debug	Ermittle Websocket URL für TibberFeed
                              tibberconnect.0 2022-11-26 21:12:13.563	debug	Schedule restart: */33 * * * *
                              tibberconnect.0 2022-11-26 21:12:13.445	info	starting. Version 0.0.7 (non-npm: Codibris/ioBroker.tibberconnect#9afa849891c6184f7314e1ed174b728ed4d4d757) in /opt/iobroker/node_modules/iobroker.tibberconnect, node: v14.19.1, js-controller: 4.0.21
                              

                              Ich habe 16 Datenpunkte auf aktualisieren gesetzt. Rennt der Adapter da ggf. mit Anlauf in die neue API-Beschränkung?

                              Rate limiting
                              There is a rate limit of 100 requests in 5 minutes per IP address intended to protect the API. Note that prices are calculated once per day in the afternoon (for Norway and Sweden they are first preliminary and later finalized potentially with minor changes after currency rates are confirmed). You can use priceInfo.today and priceInfo.tomorrow for fetching them up front instead of only using priceInfo.current for the current hour.

                              Thomas BraunT C 2 Antworten Letzte Antwort
                              0
                              • T theGrinch

                                Bevor ich da nen GitHub Issue von mache: hat noch jemand disconnects nach ca. 4 Minuten?

                                
                                tibberconnect.0 2022-11-26 21:16:26.814	debug	Tibber Feed: Disconnected from Tibber feed.
                                tibberconnect.0 2022-11-26 21:16:26.809	debug	Tibber Feed: Disconnected from Tibber feed.
                                tibberconnect.0 2022-11-26 21:12:14.862	debug	Tibber Feed: Connected to Tibber feed.
                                tibberconnect.0 2022-11-26 21:12:14.858	debug	Tibber Feed: Connected to Tibber feed.
                                tibberconnect.0 2022-11-26 21:12:14.517	debug	Websocket URL ermittelt: wss://websocket-api.tibber.com/v1-beta/gql/subscriptions
                                tibberconnect.0 2022-11-26 21:12:14.409	debug	Websocket URL ermittelt: wss://websocket-api.tibber.com/v1-beta/gql/subscriptions
                                tibberconnect.0 2022-11-26 21:12:14.065	debug	Ermittle Websocket URL für TibberFeed
                                tibberconnect.0 2022-11-26 21:12:14.056	debug	Ermittle Websocket URL für TibberFeed
                                tibberconnect.0 2022-11-26 21:12:13.563	debug	Schedule restart: */33 * * * *
                                tibberconnect.0 2022-11-26 21:12:13.445	info	starting. Version 0.0.7 (non-npm: Codibris/ioBroker.tibberconnect#9afa849891c6184f7314e1ed174b728ed4d4d757) in /opt/iobroker/node_modules/iobroker.tibberconnect, node: v14.19.1, js-controller: 4.0.21
                                

                                Ich habe 16 Datenpunkte auf aktualisieren gesetzt. Rennt der Adapter da ggf. mit Anlauf in die neue API-Beschränkung?

                                Rate limiting
                                There is a rate limit of 100 requests in 5 minutes per IP address intended to protect the API. Note that prices are calculated once per day in the afternoon (for Norway and Sweden they are first preliminary and later finalized potentially with minor changes after currency rates are confirmed). You can use priceInfo.today and priceInfo.tomorrow for fetching them up front instead of only using priceInfo.current for the current hour.

                                Thomas BraunT Online
                                Thomas BraunT Online
                                Thomas Braun
                                Most Active
                                schrieb am zuletzt editiert von
                                #53

                                @thegrinch sagte in Test Adapter TibberConnect 0.0.x inkl. Tibber Pulse:

                                node: v14.19.1, js-controller: 4.0.21

                                Am Rande würde ich das System auf Stand bringen.
                                NodeJS 16 und js-controller 4.0.23 sind (seit Monaten) angesagt.

                                Linux-Werkzeugkasten:
                                https://forum.iobroker.net/topic/42952/der-kleine-iobroker-linux-werkzeugkasten
                                NodeJS Fixer Skript:
                                https://forum.iobroker.net/topic/68035/iob-node-fix-skript
                                iob_diag: curl -sLf -o diag.sh https://iobroker.net/diag.sh && bash diag.sh

                                1 Antwort Letzte Antwort
                                0
                                • T theGrinch

                                  Bevor ich da nen GitHub Issue von mache: hat noch jemand disconnects nach ca. 4 Minuten?

                                  
                                  tibberconnect.0 2022-11-26 21:16:26.814	debug	Tibber Feed: Disconnected from Tibber feed.
                                  tibberconnect.0 2022-11-26 21:16:26.809	debug	Tibber Feed: Disconnected from Tibber feed.
                                  tibberconnect.0 2022-11-26 21:12:14.862	debug	Tibber Feed: Connected to Tibber feed.
                                  tibberconnect.0 2022-11-26 21:12:14.858	debug	Tibber Feed: Connected to Tibber feed.
                                  tibberconnect.0 2022-11-26 21:12:14.517	debug	Websocket URL ermittelt: wss://websocket-api.tibber.com/v1-beta/gql/subscriptions
                                  tibberconnect.0 2022-11-26 21:12:14.409	debug	Websocket URL ermittelt: wss://websocket-api.tibber.com/v1-beta/gql/subscriptions
                                  tibberconnect.0 2022-11-26 21:12:14.065	debug	Ermittle Websocket URL für TibberFeed
                                  tibberconnect.0 2022-11-26 21:12:14.056	debug	Ermittle Websocket URL für TibberFeed
                                  tibberconnect.0 2022-11-26 21:12:13.563	debug	Schedule restart: */33 * * * *
                                  tibberconnect.0 2022-11-26 21:12:13.445	info	starting. Version 0.0.7 (non-npm: Codibris/ioBroker.tibberconnect#9afa849891c6184f7314e1ed174b728ed4d4d757) in /opt/iobroker/node_modules/iobroker.tibberconnect, node: v14.19.1, js-controller: 4.0.21
                                  

                                  Ich habe 16 Datenpunkte auf aktualisieren gesetzt. Rennt der Adapter da ggf. mit Anlauf in die neue API-Beschränkung?

                                  Rate limiting
                                  There is a rate limit of 100 requests in 5 minutes per IP address intended to protect the API. Note that prices are calculated once per day in the afternoon (for Norway and Sweden they are first preliminary and later finalized potentially with minor changes after currency rates are confirmed). You can use priceInfo.today and priceInfo.tomorrow for fetching them up front instead of only using priceInfo.current for the current hour.

                                  C Offline
                                  C Offline
                                  Codibris
                                  Developer
                                  schrieb am zuletzt editiert von
                                  #54

                                  @thegrinch kurios, dass der Ablauf und der Debug Output doppelt kommt - sieht aus, als würde der 2x laufen. Vom Ablauf her sind die Ausgaben korrekt - nur eigentlich nicht doppelt.

                                  Die Pulse Daten kommen von einer Websocket Verbindung - da steckt kein einzelner API Request hinter - das dürfte also auch nicht ins Limit zählen. Gucke mal ich mir aber auch noch mal an.

                                  Ich werde jetzt erstmal schauen, ob ich die Änderung bei den API Anfragen (error handling) in die Hauptversion überführen kann - vielleicht sehen wir dann noch mehr im Log, ob vor dem disconnect noch mehr passiert.

                                  1 Antwort Letzte Antwort
                                  0
                                  • M Offline
                                    M Offline
                                    Michaelnorge
                                    schrieb am zuletzt editiert von
                                    #55

                                    Terminated (START_IMMEDIATELY_AFTER_STOP): Without reason automatisiert?

                                    Hab ich was verpasst? Ich habe nur zufällig in den logs gesehen, daß der Neustart des Adapters außerhalb meines Zeitplans erfolgte - ist das bei der neusten Version implementiert?

                                    –--------------------------------------------------------------------------------------

                                    • Smart mit: Rasp 4B / ioBroker / Conbee2 / Trådfri / Xiaomi / HUE / Logitech Harmony / Aqara / Easee Wallbox / Hyundai Ioniq / Alexa / Google Home / Fully Kiosk / VIS
                                    C 1 Antwort Letzte Antwort
                                    0
                                    • M Michaelnorge

                                      Terminated (START_IMMEDIATELY_AFTER_STOP): Without reason automatisiert?

                                      Hab ich was verpasst? Ich habe nur zufällig in den logs gesehen, daß der Neustart des Adapters außerhalb meines Zeitplans erfolgte - ist das bei der neusten Version implementiert?

                                      C Offline
                                      C Offline
                                      Codibris
                                      Developer
                                      schrieb am zuletzt editiert von
                                      #56

                                      @michaelnorge In der Hauptanwendung ist die Anpassung zum Fehlerhandling mit der API noch nicht drin - daher stürzt der aktuell unverändert ab. Bei mir lief der jetzt mit meiner Anpassung eine Woche durch. Ich werde demnächst einen Release erstellen. Dann könnt ihr das auch testen.

                                      1 Antwort Letzte Antwort
                                      1
                                      • M Offline
                                        M Offline
                                        MikeRow
                                        schrieb am zuletzt editiert von
                                        #57

                                        Moin, für den alten Tibber Adapter hatte jemand für die VIS ein BarChart geschrieben. Hat jemand zufällig schon eine Chart Lösung mit diesem Adapter in Verwendung und könnte diesen mal vorstellen? Gruß Mike

                                        T 1 Antwort Letzte Antwort
                                        0
                                        • M MikeRow

                                          Moin, für den alten Tibber Adapter hatte jemand für die VIS ein BarChart geschrieben. Hat jemand zufällig schon eine Chart Lösung mit diesem Adapter in Verwendung und könnte diesen mal vorstellen? Gruß Mike

                                          T Offline
                                          T Offline
                                          theGrinch
                                          schrieb am zuletzt editiert von theGrinch
                                          #58

                                          @mikerow ich hatte da die Google Charts von @Mic angepasst.
                                          Hier ist die Anpassung für den hiesigen Adapter. Ich hatte noch keine Zeit zu forschen, warum vormittags die aktuelle Werte als die Werte von morgen angezeigt werden.
                                          Evtl. noch was, wie der Adapter die Zahlen handelt @Codibris ? Aber wie gesagt, noch nicht näher geschaut.

                                          Du musst an 4 Stellen "XXX" durch deine HomeID im Datenpunktpfad ersetzt.


                                          /****************************************************************************************************

                                          • Script, um mittels Google Charts einen Wetter-Graph anzuzeigen

                                          • Aktuelle Version: https://github.com/Mic-M/iobroker.google-charts-example/
                                          • Support: https://forum.iobroker.net/topic/22779/vorlage-google-charts-beispiel
                                          • Autor: Mic (ioBroker-Forum) / Mic-M (Github)
                                          • changes for tibber: theGrinch (ioBroker-Forum), Tibber invite: https://invite.tibber.com/3ixvd5z5

                                          • Change Log:
                                          • 0.3.2 changed for tibberconnect adapter
                                          • 0.3.1 show energy prices from tibber
                                          • 0.3 Mic * Added line color - https://forum.iobroker.net/post/389919
                                          • 0.2 Mic + Fix/improve file creation.
                                          • 0.1 Mic - Initial Release
                                            ******************************************************************************/

                                          /*******************************************************************************

                                          • Konfiguration
                                            ******************************************************************************/

                                          // Der Pfad der HTML-Datei, einfach entsprechend anpassen.
                                          // Die Datei wird abgelegt unterhalb von '/opt/iobroker/iobroker-data/files/vis.0/'
                                          const FILE_PATH = 'main/googleChartTibber.html';

                                          // Schedule
                                          const M_SCHEDULE = '2 * * * *'; // Jede Stunde +2 Minuten

                                          // Ausgaben für Debug
                                          const LOG_DEBUG = true;

                                          /*******************************************************************************

                                          • Global constants/variables
                                            *******************************************************************************/
                                            let mSchedule; // for the schedule

                                          /*******************************************************************************

                                          • Executed on every script start.
                                            *******************************************************************************/
                                            main();
                                            function main() {

                                            // Write the file initially on script start
                                            writeGoogleHtml(function(success) {
                                            if (LOG_DEBUG) log('[Debug] We are now in the callback of writeWeatherHtml().');
                                            if (success) {
                                            if (LOG_DEBUG) log('[Debug] Successfully executed writeWeatherHtml(), so we schedule the updates.');
                                            clearSchedule(mSchedule);
                                            mSchedule = schedule(M_SCHEDULE, writeGoogleHtml);
                                            } else {
                                            log('File not successfully created/updated, so we stop at this point.', 'error');
                                            }
                                            });

                                          }

                                          /**

                                          • Writing Google html file.
                                          • @param {object} [callback] Optional: A callback function which is executed after proceeding this function.
                                            */
                                            function writeGoogleHtml(callback = undefined) {
                                            let result = writeFile('vis.0', FILE_PATH, buildHTML(), function (error) {
                                            if (error) {
                                            log('[Error] Error while executing writeFile(): ' + error);
                                            if (typeof callback === 'function') { // execute if a function was provided to parameter callback
                                            if (LOG_DEBUG) log('[Debug] Function to callback parameter was provided');
                                            return callback(false);
                                            } else {
                                            return;
                                            }
                                            } else {
                                            if (LOG_DEBUG) log('[Debug] File successfully written: [' + FILE_PATH + ']');
                                            if (typeof callback === 'function') { // execute if a function was provided to parameter callback
                                            if (LOG_DEBUG) log('[Debug] Function to callback parameter was provided');
                                            return callback(true);
                                            } else {
                                            return;
                                            }
                                            }
                                            })
                                            return result;
                                            }

                                          function buildHTML() {
                                          let html = '';
                                          html += '<html>\n';
                                          html += '<script type="text/javascript" src="https://www.gstatic.com/charts/loader.js"></script>\n';
                                          html += '<script type="text/javascript">\n';
                                          html += "google.charts.load('current', {'packages':['corechart']});\n";
                                          html += "google.charts.setOnLoadCallback(drawChart);\n";
                                          html += "function drawChart() {"; + "\n";

                                          html += "var data = new google.visualization.DataTable();\n";
                                          html += "data.addColumn('number', 'hour');\n";
                                          html += "data.addColumn('number', 'today');\n";
                                          html += "data.addColumn({type: 'number', role: 'annotation'});\n";
                                          html += "data.addColumn('number', 'tomorrow');\n";
                                          html += "data.addColumn({type: 'number', role: 'annotation'});\n";
                                          for (let i = 0; i <= 9; i++) {
                                              let tLow = getState('tibberconnect.0.Homes.XXX.PricesToday.' + i + '.total').val;
                                              let tHigh  = getState('tibberconnect.0.Homes.XXX.PricesTomorrow.' + i + '.total').val;
                                              html += "    data.addRow([" + i + ", " + tLow + ", " + tLow + ", " + tHigh + ", " + tHigh + "]);\n";
                                          }
                                          for (let i = 10; i <= 23; i++) {
                                              let tLow = getState('tibberconnect.0.Homes.XXX.PricesToday.' + i + '.total').val;
                                              let tHigh  = getState('tibberconnect.0.Homes.XXX.PricesTomorrow.' + i + '.total').val;
                                              html += "    data.addRow([" + i + ", " + tLow + ", " + tLow + ", " + tHigh + ", " + tHigh + "]);\n";
                                          }
                                          
                                          // See: https://developers.google.com/chart/interactive/docs/gallery/linechart#configuration-options
                                          html += "var options = {\n";
                                          // Line colors (HTML): lower    upper
                                          html += "    colors: ['CornflowerBlue', 'DarkTurquoise'],\n";
                                          html += "    curveType: 'function', backgroundColor: 'transparent', pointSize: 4,\n";
                                          html += "    hAxis: { textStyle:{color:'black'}},\n";
                                          html += "    vAxis: { textPosition: 'none', textStyle:{color:'red'},\n";
                                          html += "    baselineColor:'transparent', gridlines:{count:0} }, legend: { position: 'bottom' },\n";
                                          html += "    annotations: { stem: { length: 5, color: 'transparent' }, textStyle: {fontSize: 10, alwaysOutside: true, bold: false} }\n";
                                          html += "};\n";
                                          html += "var chart = new google.visualization.LineChart(document.getElementById('mychart'));\n";
                                          html += "chart.draw(data, options);\n";
                                          html += "}\n";
                                          html += "</script>\n";
                                          html += '<div id="mychart" style="width: 700px; height: 400px;"></div>\n';
                                          html += '</html>\n';
                                          return html;
                                          

                                          }

                                          /edit:
                                          Hier sind noch die angepassten Widgets für die vis. Gleiches Thema: XXX durch die house-ID ersetzen.


                                          [{"tpl":"tplImage","data":{"g_fixed":true,"g_visibility":true,"g_css_font_text":false,"g_css_background":false,"g_css_shadow_padding":false,"g_css_border":false,"g_gestures":false,"g_signals":false,"g_last_change":false,"visibility-cond":"==","visibility-val":"CHEAP","visibility-groups-action":"hide","refreshInterval":"0","signals-cond-0":"==","signals-val-0":true,"signals-icon-0":"/vis/signals/lowbattery.png","signals-icon-size-0":0,"signals-blink-0":false,"signals-horz-0":0,"signals-vert-0":0,"signals-hide-edit-0":false,"signals-cond-1":"==","signals-val-1":true,"signals-icon-1":"/vis/signals/lowbattery.png","signals-icon-size-1":0,"signals-blink-1":false,"signals-horz-1":0,"signals-vert-1":0,"signals-hide-edit-1":false,"signals-cond-2":"==","signals-val-2":true,"signals-icon-2":"/vis/signals/lowbattery.png","signals-icon-size-2":0,"signals-blink-2":false,"signals-horz-2":0,"signals-vert-2":0,"signals-hide-edit-2":false,"lc-type":"last-change","lc-is-interval":true,"lc-is-moment":false,"lc-format":"","lc-position-vert":"top","lc-position-horz":"right","lc-offset-vert":0,"lc-offset-horz":0,"lc-font-size":"12px","lc-font-family":"","lc-font-style":"","lc-bkg-color":"","lc-color":"","lc-border-width":"0","lc-border-style":"","lc-border-color":"","lc-border-radius":10,"lc-zindex":0,"src":"/vis.0/main/img/ioBroker/icons8-coin-49 cheap.png","visibility-oid":"tibberconnect.0.Homes.XXX.CurrentPrice.level","name":"tibber-coin-cheap"},"style":{"left":"327px","top":"1452px","width":"49px","height":"49px","z-index":"5"},"widgetSet":"basic"},{"tpl":"tplValueFloat","data":{"oid":"tibberconnect.0.Homes.XXX.CurrentPrice.total","g_fixed":true,"g_visibility":false,"g_css_font_text":false,"g_css_background":false,"g_css_shadow_padding":false,"g_css_border":false,"g_gestures":false,"g_signals":false,"g_last_change":false,"visibility-cond":"==","visibility-val":1,"visibility-groups-action":"hide","is_comma":"true","factor":"1","signals-cond-0":"==","signals-val-0":true,"signals-icon-0":"/vis/signals/lowbattery.png","signals-icon-size-0":0,"signals-blink-0":false,"signals-horz-0":0,"signals-vert-0":0,"signals-hide-edit-0":false,"signals-cond-1":"==","signals-val-1":true,"signals-icon-1":"/vis/signals/lowbattery.png","signals-icon-size-1":0,"signals-blink-1":false,"signals-horz-1":0,"signals-vert-1":0,"signals-hide-edit-1":false,"signals-cond-2":"==","signals-val-2":true,"signals-icon-2":"/vis/signals/lowbattery.png","signals-icon-size-2":0,"signals-blink-2":false,"signals-horz-2":0,"signals-vert-2":0,"signals-hide-edit-2":false,"lc-type":"last-change","lc-is-interval":true,"lc-is-moment":false,"lc-format":"","lc-position-vert":"top","lc-position-horz":"right","lc-offset-vert":0,"lc-offset-horz":0,"lc-font-size":"12px","lc-font-family":"","lc-font-style":"","lc-bkg-color":"","lc-color":"","lc-border-width":"0","lc-border-style":"","lc-border-color":"","lc-border-radius":10,"lc-zindex":0,"name":"Tibber current price"},"style":{"left":"324px","top":"1507px","z-index":"5"},"widgetSet":"basic"},{"tpl":"tplImage","data":{"g_fixed":true,"g_visibility":true,"g_css_font_text":false,"g_css_background":false,"g_css_shadow_padding":false,"g_css_border":false,"g_gestures":false,"g_signals":false,"g_last_change":false,"visibility-cond":"==","visibility-val":"EXPENSIVE","visibility-groups-action":"hide","refreshInterval":"0","signals-cond-0":"==","signals-val-0":true,"signals-icon-0":"/vis/signals/lowbattery.png","signals-icon-size-0":0,"signals-blink-0":false,"signals-horz-0":0,"signals-vert-0":0,"signals-hide-edit-0":false,"signals-cond-1":"==","signals-val-1":true,"signals-icon-1":"/vis/signals/lowbattery.png","signals-icon-size-1":0,"signals-blink-1":false,"signals-horz-1":0,"signals-vert-1":0,"signals-hide-edit-1":false,"signals-cond-2":"==","signals-val-2":true,"signals-icon-2":"/vis/signals/lowbattery.png","signals-icon-size-2":0,"signals-blink-2":false,"signals-horz-2":0,"signals-vert-2":0,"signals-hide-edit-2":false,"lc-type":"last-change","lc-is-interval":true,"lc-is-moment":false,"lc-format":"","lc-position-vert":"top","lc-position-horz":"right","lc-offset-vert":0,"lc-offset-horz":0,"lc-font-size":"12px","lc-font-family":"","lc-font-style":"","lc-bkg-color":"","lc-color":"","lc-border-width":"0","lc-border-style":"","lc-border-color":"","lc-border-radius":10,"lc-zindex":0,"src":"/vis.0/main/img/ioBroker/icons8-coin-49 expensive.png","visibility-oid":"tibberconnect.0.Homes.XXX.CurrentPrice.level","name":"tibber-coin-expensive"},"style":{"left":"325px","top":"1452px","width":"49px","height":"49px","z-index":"5"},"widgetSet":"basic"},{"tpl":"tplImage","data":{"g_fixed":true,"g_visibility":true,"g_css_font_text":false,"g_css_background":false,"g_css_shadow_padding":false,"g_css_border":false,"g_gestures":false,"g_signals":false,"g_last_change":false,"visibility-cond":"==","visibility-val":"NORMAL","visibility-groups-action":"hide","refreshInterval":"0","signals-cond-0":"==","signals-val-0":true,"signals-icon-0":"/vis/signals/lowbattery.png","signals-icon-size-0":0,"signals-blink-0":false,"signals-horz-0":0,"signals-vert-0":0,"signals-hide-edit-0":false,"signals-cond-1":"==","signals-val-1":true,"signals-icon-1":"/vis/signals/lowbattery.png","signals-icon-size-1":0,"signals-blink-1":false,"signals-horz-1":0,"signals-vert-1":0,"signals-hide-edit-1":false,"signals-cond-2":"==","signals-val-2":true,"signals-icon-2":"/vis/signals/lowbattery.png","signals-icon-size-2":0,"signals-blink-2":false,"signals-horz-2":0,"signals-vert-2":0,"signals-hide-edit-2":false,"lc-type":"last-change","lc-is-interval":true,"lc-is-moment":false,"lc-format":"","lc-position-vert":"top","lc-position-horz":"right","lc-offset-vert":0,"lc-offset-horz":0,"lc-font-size":"12px","lc-font-family":"","lc-font-style":"","lc-bkg-color":"","lc-color":"","lc-border-width":"0","lc-border-style":"","lc-border-color":"","lc-border-radius":10,"lc-zindex":0,"src":"/vis.0/main/img/ioBroker/icons8-coin-49.png","visibility-oid":"tibberconnect.0.Homes.XXX.CurrentPrice.level","name":"tibber-coin-normal"},"style":{"left":"325px","top":"1452px","width":"49px","height":"49px","z-index":"5"},"widgetSet":"basic"},{"tpl":"tplImage","data":{"g_fixed":true,"g_visibility":true,"g_css_font_text":false,"g_css_background":false,"g_css_shadow_padding":false,"g_css_border":false,"g_gestures":false,"g_signals":false,"g_last_change":false,"visibility-cond":"==","visibility-val":"VERY_CHEAP","visibility-groups-action":"hide","refreshInterval":"0","signals-cond-0":"==","signals-val-0":true,"signals-icon-0":"/vis/signals/lowbattery.png","signals-icon-size-0":0,"signals-blink-0":false,"signals-horz-0":0,"signals-vert-0":0,"signals-hide-edit-0":false,"signals-cond-1":"==","signals-val-1":true,"signals-icon-1":"/vis/signals/lowbattery.png","signals-icon-size-1":0,"signals-blink-1":false,"signals-horz-1":0,"signals-vert-1":0,"signals-hide-edit-1":false,"signals-cond-2":"==","signals-val-2":true,"signals-icon-2":"/vis/signals/lowbattery.png","signals-icon-size-2":0,"signals-blink-2":false,"signals-horz-2":0,"signals-vert-2":0,"signals-hide-edit-2":false,"lc-type":"last-change","lc-is-interval":true,"lc-is-moment":false,"lc-format":"","lc-position-vert":"top","lc-position-horz":"right","lc-offset-vert":0,"lc-offset-horz":0,"lc-font-size":"12px","lc-font-family":"","lc-font-style":"","lc-bkg-color":"","lc-color":"","lc-border-width":"0","lc-border-style":"","lc-border-color":"","lc-border-radius":10,"lc-zindex":0,"src":"/vis.0/main/img/ioBroker/icons8-coin-49 very cheap.png","visibility-oid":"tibberconnect.0.Homes.XXX.CurrentPrice.level","name":"tibber-coin-very-cheap"},"style":{"left":"325px","top":"1452px","width":"49px","height":"49px","z-index":"5"},"widgetSet":"basic"},{"tpl":"tplImage","data":{"g_fixed":true,"g_visibility":true,"g_css_font_text":false,"g_css_background":false,"g_css_shadow_padding":false,"g_css_border":false,"g_gestures":false,"g_signals":false,"g_last_change":false,"visibility-cond":"==","visibility-val":"VERY_EXPENSIVE","visibility-groups-action":"hide","refreshInterval":"0","signals-cond-0":"==","signals-val-0":true,"signals-icon-0":"/vis/signals/lowbattery.png","signals-icon-size-0":0,"signals-blink-0":false,"signals-horz-0":0,"signals-vert-0":0,"signals-hide-edit-0":false,"signals-cond-1":"==","signals-val-1":true,"signals-icon-1":"/vis/signals/lowbattery.png","signals-icon-size-1":0,"signals-blink-1":false,"signals-horz-1":0,"signals-vert-1":0,"signals-hide-edit-1":false,"signals-cond-2":"==","signals-val-2":true,"signals-icon-2":"/vis/signals/lowbattery.png","signals-icon-size-2":0,"signals-blink-2":false,"signals-horz-2":0,"signals-vert-2":0,"signals-hide-edit-2":false,"lc-type":"last-change","lc-is-interval":true,"lc-is-moment":false,"lc-format":"","lc-position-vert":"top","lc-position-horz":"right","lc-offset-vert":0,"lc-offset-horz":0,"lc-font-size":"12px","lc-font-family":"","lc-font-style":"","lc-bkg-color":"","lc-color":"","lc-border-width":"0","lc-border-style":"","lc-border-color":"","lc-border-radius":10,"lc-zindex":0,"src":"/vis.0/main/img/ioBroker/icons8-coin-49 very expensive.png","visibility-oid":"tibberconnect.0.Homes.XXX.CurrentPrice.level","name":"tibber-coin-very-expensive"},"style":{"left":"325px","top":"1452px","width":"49px","height":"49px","z-index":"5"},"widgetSet":"basic"}]

                                          Grafiken:
                                          icons8-coin-tibber.zip
                                          Quelle: https://icons8.com/icons/set/euro
                                          Pfad: /vis.0/main/img/ioBroker/

                                          M 1 Antwort Letzte Antwort
                                          0
                                          Antworten
                                          • In einem neuen Thema antworten
                                          Anmelden zum Antworten
                                          • Älteste zuerst
                                          • Neuste zuerst
                                          • Meiste Stimmen


                                          Support us

                                          ioBroker
                                          Community Adapters
                                          Donate

                                          720

                                          Online

                                          32.4k

                                          Benutzer

                                          81.4k

                                          Themen

                                          1.3m

                                          Beiträge
                                          Community
                                          Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen | Einwilligungseinstellungen
                                          ioBroker Community 2014-2025
                                          logo
                                          • Anmelden

                                          • Du hast noch kein Konto? Registrieren

                                          • Anmelden oder registrieren, um zu suchen
                                          • Erster Beitrag
                                            Letzter Beitrag
                                          0
                                          • Home
                                          • Aktuell
                                          • Tags
                                          • Ungelesen 0
                                          • Kategorien
                                          • Unreplied
                                          • Beliebt
                                          • GitHub
                                          • Docu
                                          • Hilfe