Skip to content
  • 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
  1. ioBroker Community Home
  2. Deutsch
  3. Tester
  4. Test Adapter tibber v0.1.x

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.1k

Test Adapter tibber v0.1.x

Geplant Angeheftet Gesperrt Verschoben Tester
testtibber
145 Beiträge 38 Kommentatoren 45.1k Aufrufe 35 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.
  • M Magnus 1

    @malz1902 gut zu hören, dass es läuft.

    bzgl. der Meldung über die API ist mit nicht bekannt, dass Tibber das unterstützt für die stundenweise Abrechnung.

    Ich meine gelesen zu habend, dass es eine Möglichkeit über die API einen Wert zu Tibber zu übertragen gibt - das habe ich noch nicht testen können, da bei mir die Werte bereits sekündlich via Discovergy an tibber gehen.

    Ob Sie das allerdings anerkennen um darüber dann stündlich abzurechnen weiß ich nicht. Ich meine aber, dass sie grundsätzlich immerhin tagesgenaue Preise anbieten und selbst dafür würde sich ein regelmäßiger Übertrag ja dann schon lohnen. Ich schreib mir das mal auf die Feature-Wunsch-Liste 😉

    Viele Grüße
    Magnus

    T Offline
    T Offline
    Tomy020
    schrieb am zuletzt editiert von
    #35

    @magnus-1 Hallo Magnus,

    vielen Dank für den Adapter. Installiert und läuft super.
    Den Vorschlag von Malz würde mir auch noch fehlen. Das wäre dann echt super, wenn man die Stundengenaue Abrechnung integrieren könnte.
    Hab ein Smartmeter von Sungrow, was von Tibber nicht unterstützt wird.

    Danke
    VG
    Thomas

    1 Antwort Letzte Antwort
    0
    • M Magnus 1

      @Andreas-Del-Galdo , @Thomas-Kohb : Hallo zusammen, sorry für die verzögerte Rückmeldung. Schaue mir das spätestens am Wochende mal genauer an wo es hier hängt.

      @Michaelnorge : steht auf der todo liste. habe allerdings noch nicht ganz die passende idee wie ich das am besten in der datenstruktur abbilde. Den aktuellen wert in einen Datenpunkt ist sicher klar, aber was mache ich mit der historie? das erzeugt ja schnell sehr viele Datenpunkte im Adapter. Bin nicht sicher ob das so design good practice ist. Hast Du einen Vorschlag?

      Thomas KohbT Offline
      Thomas KohbT Offline
      Thomas Kohb
      schrieb am zuletzt editiert von
      #36

      @magnus-1 Hey, gibt es hier schon eine Lösung? Ich würde den Adapter gern verwenden 😃

      B 1 Antwort Letzte Antwort
      0
      • B Bennideluecks

        @thomas-kohb

        Ich habe auch das gleiche Problem: Über npm installiert, aber nicht unter ioB bei den Instanzen sichtbar. Ich bekomme die gleichen Meldungen angezeigt.

        Habe ich etwas vergessen?

        Thomas KohbT Offline
        Thomas KohbT Offline
        Thomas Kohb
        schrieb am zuletzt editiert von
        #37

        @bennideluecks ich hab bis jetzt auch noch nicht raus, was ich falsch mache =(

        M 1 Antwort Letzte Antwort
        0
        • Thomas KohbT Thomas Kohb

          @bennideluecks ich hab bis jetzt auch noch nicht raus, was ich falsch mache =(

          M Offline
          M Offline
          Magnus 1
          Developer
          schrieb am zuletzt editiert von
          #38

          @thomas-kohb hi, sorry fürs vertrösten, schaffe es gerade nicht mich an das Thema dran zu setzten und habe adhoc auch keine Idee wo es hier bei Dir hakt.

          Hat einer von den Nutzern bei denen es läuft eine Idee wo hier das Problem liegen könnte bei Thomas und kann helfen?

          W 1 Antwort Letzte Antwort
          0
          • Thomas KohbT Thomas Kohb

            @magnus-1 Hey, gibt es hier schon eine Lösung? Ich würde den Adapter gern verwenden 😃

            B Offline
            B Offline
            berlinerbolle
            schrieb am zuletzt editiert von berlinerbolle
            #39

            @thomas-kohb

            Nach der Installation taucht der Adapter noch nicht in den Instanzen auf, sondern nur in der Adapter-Liste. Von dort kannst Du dann ganz normal eine Instanz hinzufügen.

            Installiert habe ich über Expert mode --> install from custom URL --> und dann bei "from github" den Github Link "https://github.com/Magnus8513/ioBroker.tibber" eingeben. So ging es bei mir.

            Edit: sorry falls Du das alles sowieso getan hast, soll nicht altklug rüberkommen - ich weiß nicht, wie vertraut du mit der Prozedur bist, und manchmal übersieht man ja was. 😉

            1 Antwort Letzte Antwort
            0
            • G Offline
              G Offline
              Gatam
              schrieb am zuletzt editiert von
              #40

              Habe mir nun auch den Tibber Adapter installiert.
              Vielen Dank für die Entwicklung.

              Ich bin Tibber Kunde und habe einen Discovergy Smartmeter im Keller.

              Fertige Lösungen sind gut
              Aber noch mehr will ich wissen wie und warum etwas funktioniert

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

                Moin,
                ich habe mal das Script von @Mic angepasst um die Strompreise für heute und morgen als Graph anzuzeigen.
                Erzeugt eine html-Seite, die dann über iframe in der vis eingebunden werden kann.

                /****************************************************************************************************
                 * 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)
                 * --------------------------------------------------------------------------------------------------
                 * Change Log:
                 *  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('tibber.0.priceInfo.today.0' + i + '.total').val;
                        let tHigh  = getState('tibber.0.priceInfo.tomorrow.0' + i + '.total').val;
                        html += "    data.addRow([" + i + ", " + tLow + ", " + tLow + ", " + tHigh + ", " + tHigh + "]);\n";
                    }
                    for (let i = 10; i <= 23; i++) {
                        let tLow = getState('tibber.0.priceInfo.today.' + i + '.total').val;
                        let tHigh  = getState('tibber.0.priceInfo.tomorrow.' + 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;
                }
                

                2a256ff7-981b-4442-944a-f45e1bd85ab6-image.png

                Der Graph "tomorrow" kommt erst dazu, wenn die Daten festgelegt sind.
                Die Münze unten links wird je nach Wert (VERY CHEAP, CHEAP, ...) farbig angezeigt, Widgets dazu:

                [{"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":"tibber.0.priceInfo.current.level","name":"tibber-coin-cheap"},"style":{"left":"327px","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":"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":"tibber.0.priceInfo.current.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":"tibber.0.priceInfo.current.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":"tibber.0.priceInfo.current.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":"tibber.0.priceInfo.current.level","name":"tibber-coin-very-expensive"},"style":{"left":"325px","top":"1452px","width":"49px","height":"49px","z-index":"5"},"widgetSet":"basic"},{"tpl":"tplValueFloat","data":{"oid":"tibber.0.priceInfo.current.total","g_fixed":false,"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},"style":{"left":"324px","top":"1507px","z-index":"5"},"widgetSet":"basic"}]
                
                G 1 Antwort Letzte Antwort
                2
                • T theGrinch

                  Moin,
                  ich habe mal das Script von @Mic angepasst um die Strompreise für heute und morgen als Graph anzuzeigen.
                  Erzeugt eine html-Seite, die dann über iframe in der vis eingebunden werden kann.

                  /****************************************************************************************************
                   * 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)
                   * --------------------------------------------------------------------------------------------------
                   * Change Log:
                   *  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('tibber.0.priceInfo.today.0' + i + '.total').val;
                          let tHigh  = getState('tibber.0.priceInfo.tomorrow.0' + i + '.total').val;
                          html += "    data.addRow([" + i + ", " + tLow + ", " + tLow + ", " + tHigh + ", " + tHigh + "]);\n";
                      }
                      for (let i = 10; i <= 23; i++) {
                          let tLow = getState('tibber.0.priceInfo.today.' + i + '.total').val;
                          let tHigh  = getState('tibber.0.priceInfo.tomorrow.' + 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;
                  }
                  

                  2a256ff7-981b-4442-944a-f45e1bd85ab6-image.png

                  Der Graph "tomorrow" kommt erst dazu, wenn die Daten festgelegt sind.
                  Die Münze unten links wird je nach Wert (VERY CHEAP, CHEAP, ...) farbig angezeigt, Widgets dazu:

                  [{"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":"tibber.0.priceInfo.current.level","name":"tibber-coin-cheap"},"style":{"left":"327px","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":"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":"tibber.0.priceInfo.current.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":"tibber.0.priceInfo.current.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":"tibber.0.priceInfo.current.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":"tibber.0.priceInfo.current.level","name":"tibber-coin-very-expensive"},"style":{"left":"325px","top":"1452px","width":"49px","height":"49px","z-index":"5"},"widgetSet":"basic"},{"tpl":"tplValueFloat","data":{"oid":"tibber.0.priceInfo.current.total","g_fixed":false,"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},"style":{"left":"324px","top":"1507px","z-index":"5"},"widgetSet":"basic"}]
                  
                  G Offline
                  G Offline
                  Gatam
                  schrieb am zuletzt editiert von Gatam
                  #42

                  @thegrinch

                  Super! Vielen Dank.

                  Habe dein js übernommen und es wird die html Datei im entsprechenden Ordner abgespeichert.

                  Wie lautet der genaue Pfad im iFrame von VIS?
                  Wenn ich sie als iFrame integrieren will in VIS, findet er aber immer nicht die html.
                  Wie muss der Pfad vor dem Dateinamen den genau lauten. Habe von /opt.. bis nur dem html Namen alles probiert.

                  /opt/iobroker/iobroker-data/files/vis.0/VIEWNAME/xxx.html
                  Da liegt sie auf meinem ubuntu Server auf dem io läuft.

                  Fehler:
                  File iobroker/iobroker-data/files/vis.0/VIEWNAME/googleChartTibber.html not found: {}

                  Und 2.
                  Wie/Wo trage ich das Blockly ein?
                  Habe den kopierten Text importieren wollen unter Skripte, oder wo?

                  Fertige Lösungen sind gut
                  Aber noch mehr will ich wissen wie und warum etwas funktioniert

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

                    @gatam
                    Pfad: /vis.0/main/googleChartTibber.html

                    "Blockly": Da war ich gedanklich woanders... das ist natürlich in vis! Oben rechts der Button "Widgets importieren"

                    G 1 Antwort Letzte Antwort
                    1
                    • T theGrinch

                      @gatam
                      Pfad: /vis.0/main/googleChartTibber.html

                      "Blockly": Da war ich gedanklich woanders... das ist natürlich in vis! Oben rechts der Button "Widgets importieren"

                      G Offline
                      G Offline
                      Gatam
                      schrieb am zuletzt editiert von
                      #44

                      @thegrinch

                      das hat geklappt. Bin noch nicht so vertraut mit VIS.
                      Nun habe ich meinen Graph. Freut mich.

                      Muss man sich die Bilddatei dann noch wo laden?
                      Die fehlt ja und wird wohl nicht mit dem Widget mit gereicht.

                      Fertige Lösungen sind gut
                      Aber noch mehr will ich wissen wie und warum etwas funktioniert

                      T 1 Antwort Letzte Antwort
                      0
                      • G Gatam

                        @thegrinch

                        das hat geklappt. Bin noch nicht so vertraut mit VIS.
                        Nun habe ich meinen Graph. Freut mich.

                        Muss man sich die Bilddatei dann noch wo laden?
                        Die fehlt ja und wird wohl nicht mit dem Widget mit gereicht.

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

                        @gatam sind von https://icons8.com/icons/set/euro
                        Pfad: /vis.0/main/img/ioBroker/

                        icons8-coin-49.png icons8-coin-49 very expensive.png icons8-coin-49 very cheap.png icons8-coin-49 expensive.png icons8-coin-49 cheap.png

                        Nach dem Runterladen die Zahl vor dem "icons8" löschen, dann sollten die Namen stimmen.

                        1 Antwort Letzte Antwort
                        1
                        • P Offline
                          P Offline
                          PV_Mainz
                          schrieb am zuletzt editiert von PV_Mainz
                          #46

                          Hallo,

                          ich finde das Konzept von Tibber interessant und den Adapter toll - danke für die Entwicklung. Bevor ich zu Tibber wechsele, wollte ich erst mal die Preise beobachten.

                          Problem: Ich habe den Adapter installiert, eine Instanz aufgemacht und einen API Key generiert und eingetragen. Leider erhalte ich im Log folgende Fehlermeldung:

                          tibber.0
                          2022-06-08 20:25:16.208 error error during API fetch: TypeError: Cannot read property 'priceInfo' of null

                          In den Datenpunkten sehe ich nur NOK als Einheit, ich vermute, da sollte bei Erfolg EURO stehen.

                          Hat jemand eine Idee?

                          LG, Tim

                          G 1 Antwort Letzte Antwort
                          0
                          • P PV_Mainz

                            Hallo,

                            ich finde das Konzept von Tibber interessant und den Adapter toll - danke für die Entwicklung. Bevor ich zu Tibber wechsele, wollte ich erst mal die Preise beobachten.

                            Problem: Ich habe den Adapter installiert, eine Instanz aufgemacht und einen API Key generiert und eingetragen. Leider erhalte ich im Log folgende Fehlermeldung:

                            tibber.0
                            2022-06-08 20:25:16.208 error error during API fetch: TypeError: Cannot read property 'priceInfo' of null

                            In den Datenpunkten sehe ich nur NOK als Einheit, ich vermute, da sollte bei Erfolg EURO stehen.

                            Hat jemand eine Idee?

                            LG, Tim

                            G Offline
                            G Offline
                            Gatam
                            schrieb am zuletzt editiert von Gatam
                            #47

                            @pv_mainz

                            Wo hast du den Token für den API Zugang her?
                            Oder vielleicht funktioniert der DEMO Token nicht mehr?

                            Fertige Lösungen sind gut
                            Aber noch mehr will ich wissen wie und warum etwas funktioniert

                            P 2 Antworten Letzte Antwort
                            0
                            • G Gatam

                              @pv_mainz

                              Wo hast du den Token für den API Zugang her?
                              Oder vielleicht funktioniert der DEMO Token nicht mehr?

                              P Offline
                              P Offline
                              PV_Mainz
                              schrieb am zuletzt editiert von
                              #48

                              @gatam Der Demo Zugang funktioniert. Da kommen Werte rein.
                              Das sind aber stündliche Preise aus Norwegen vermute ich.

                              Einen persönlichen API Key kann ich problemlos erstellen. Mit fehlt aber eine HomeID, da ich keinen Tarif habe.

                              Gibt es einen deutschen Demo key?

                              LG, Tim

                              1 Antwort Letzte Antwort
                              0
                              • G Gatam

                                @pv_mainz

                                Wo hast du den Token für den API Zugang her?
                                Oder vielleicht funktioniert der DEMO Token nicht mehr?

                                P Offline
                                P Offline
                                PV_Mainz
                                schrieb am zuletzt editiert von
                                #49

                                @gatam Ich habe Antwort vom Support bekommen.
                                Ohne Tibber Vertrag keine Preise per API.
                                Es gab aber den Tip, dass man hier die aktuellen Strombörsenpreise einsehen kann (ohne EEG und Steuern): https://www.netztransparenz.de/EEG/Marktpraemie/EPEX-SPOT-Stundenkontrakte#
                                LG, Tim

                                T 1 Antwort Letzte Antwort
                                1
                                • P PV_Mainz

                                  @gatam Ich habe Antwort vom Support bekommen.
                                  Ohne Tibber Vertrag keine Preise per API.
                                  Es gab aber den Tip, dass man hier die aktuellen Strombörsenpreise einsehen kann (ohne EEG und Steuern): https://www.netztransparenz.de/EEG/Marktpraemie/EPEX-SPOT-Stundenkontrakte#
                                  LG, Tim

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

                                  Hallo, ich habe jetzt auch einen Pulse. Wäre klasse, wenn man den auch Datenpunkte kriegen könnte für Momentantverbrauch etc.
                                  Gibt's da schon was? Habe hier nichts dazu gelesen.

                                  M 1 Antwort Letzte Antwort
                                  1
                                  • T theGrinch

                                    Hallo, ich habe jetzt auch einen Pulse. Wäre klasse, wenn man den auch Datenpunkte kriegen könnte für Momentantverbrauch etc.
                                    Gibt's da schon was? Habe hier nichts dazu gelesen.

                                    M Offline
                                    M Offline
                                    Michaelnorge
                                    schrieb am zuletzt editiert von
                                    #51

                                    @thegrinch Ja wäre cool 🙂

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

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

                                      @thegrinch Ja wäre cool 🙂

                                      W Offline
                                      W Offline
                                      warp-it
                                      schrieb am zuletzt editiert von
                                      #52

                                      Kann es sein, dass im Datenpunkt LastEnd als letzte Uhrzeit 23:00:00 des Folgetages akzeptiert wird?
                                      23:50:00 oder 23:59:59 werden abgelehnt.

                                      1 Antwort Letzte Antwort
                                      0
                                      • M Michaelnorge

                                        @thegrinch Ja wäre cool 🙂

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

                                        @michaelnorge gucke mal was ich grad zufällig gefunden habe!
                                        Funktioniert bei mir.
                                        https://forum.iobroker.net/topic/52486/test-adapter-tibberconnect-0-0-x-inkl-tibber-pulse

                                        M 1 Antwort Letzte Antwort
                                        0
                                        • T theGrinch

                                          @michaelnorge gucke mal was ich grad zufällig gefunden habe!
                                          Funktioniert bei mir.
                                          https://forum.iobroker.net/topic/52486/test-adapter-tibberconnect-0-0-x-inkl-tibber-pulse

                                          M Offline
                                          M Offline
                                          Michaelnorge
                                          schrieb am zuletzt editiert von
                                          #54

                                          @thegrinch Wow wie geil! Sogar der Pulse funktioniert. Allerdings geht der Adapter nicht auf Grün, vielleicht noch etwas bugy? Aber vielen Dank für den Tipp, behalte es im Auge.

                                          Diesen Adapter hier behalte ich natürlich, alleine schon die Berechnungsmöglichkeit ist gold wert!

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

                                          • Smart mit: Rasp 4B / ioBroker / Conbee2 / Trådfri / Xiaomi / HUE / Logitech Harmony / Aqara / Easee Wallbox / Hyundai Ioniq / Alexa / Google Home / Fully Kiosk / VIS
                                          T 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

                                          751

                                          Online

                                          32.4k

                                          Benutzer

                                          81.4k

                                          Themen

                                          1.3m

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

                                          • Du hast noch kein Konto? Registrieren

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