Skip to content
  • Home
  • Recent
  • Tags
  • 0 Unread 0
  • Categories
  • Unreplied
  • Popular
  • 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

  • Default (No Skin)
  • No Skin
Collapse
ioBroker Logo

Community Forum

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

NEWS

  • Monatsrückblick Januar/Februar 2026 ist online!
    BluefoxB
    Bluefox
    17
    1
    415

  • Jahresrückblick 2025 – unser neuer Blogbeitrag ist online! ✨
    BluefoxB
    Bluefox
    17
    1
    5.0k

  • Neuer Blogbeitrag: Monatsrückblick - Dezember 2025 🎄
    BluefoxB
    Bluefox
    13
    1
    1.4k

Test Adapter TibberConnect 0.0.x inkl. Tibber Pulse

Scheduled Pinned Locked Moved Tester
360 Posts 49 Posters 98.9k Views 53 Watching
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • T theGrinch

    Auf Anregung von @MikeRow habe ich mal die BarChart von @Familienvater auf diesen Adapter angepasst.

    Einfach das "home" reinkopieren in Zeile 6+7.

    var myName = "tibber.createchartdata";
     
    var logOn           = false;     // Skript Logausgabe ein- (true) / ausschalten (false). Fehler werden immer ausgegeben.
    var forceCreation    = false;    // Default: false. true: Datenpunkte werden überschrieben (wenn z.B. Bezeichnungen geändert wurden)
     
    var tibberPricesToday = "tibberconnect.0.Homes.*****.PricesToday.";        // mit . am Ende!
    var tibberPricesTomorrow = "tibberconnect.0.Homes.*****.PricesTomorrow.";  // mit . am Ende!
     
    var tibberStartsAt = "startsAt";
    var tibberTotal = "total";
     
     
    // Datenpunkte anlegen:
    // -----------------------------------------------------------------------------
    var idChartData = "tibber.prices.chartData";                      // Pfad und Name, unter dem in der Javascript-Instanz der Datenpunkte angelegt wird
    createState(idChartData, '[{"label":"15","value":"25.2","dataColor":"#ffffff"},{"label":"16","value":"28.8","dataColor":"#ffffff"},{"label":"17","value":3"5.2","dataColor":"#ffffff"},{"label":"18","value":"33.2","dataColor":"#ffffff"},{"label":"19","value":"20.2","dataColor":"#ffffff"}]', forceCreation, {
         name: 'Chart-Data Price Forecast',
         desc: 'Chart-Data Price Forecast',
         type: 'string',
         role: 'value'
    });
     
    // Datenpunkte anlegen:
    // -----------------------------------------------------------------------------
    var idBarChartData = "tibber.prices.barChartData";                      // Pfad und Name, unter dem in der Javascript-Instanz der Datenpunkte angelegt wird
    createState(idBarChartData, '[{"label":"15","value":"25.2","dataColor":"#ffffff"},{"label":"16","value":"28.8","dataColor":"#ffffff"},{"label":"17","value":3"5.2","dataColor":"#ffffff"},{"label":"18","value":"33.2","dataColor":"#ffffff"},{"label":"19","value":"20.2","dataColor":"#ffffff"}]', forceCreation, {
         name: 'Bar Chart-Data Price Forecast',
         desc: 'Bar Chart-Data Price Forecast',
         type: 'string',
         role: 'value'
    });
     
    createBarChartData();
     
    // Cron-Job, zum Stundenwechsel
    // Stundenwechsel, Ausführen immer um *:00:10
    schedule('10 0 * * * *', function () {createBarChartData()});
     
    function createBarChartData () {    
    	if(logOn) console.log(myName + " Stundenwechsel");
        
        let barChart = [];
     
        var jetzt = new Date(Date.now());
        var aktStunde = jetzt.getHours();
        var unixTimestamp=new Date().getTime();
     
        // bis zu 18 Stunden in die Zukunft
        const offsets=[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 12, 13, 14, 15, 16, 17, 18];
     
        for (let offset of offsets)
        {
            // Template Objekt für BarChart erzeugen
            let itemData ={label:"", value:0.0, dataColor: "#c2c2c2", valueColor: "#dddddd"}; //, valueAppendix: "", valueColor: #ffffff"
     
            // Vorbereitung um Werte aus Tibber Adapter zu holen         
            var prefix="";
            aktStunde=jetzt.getHours()+offset;
            if (aktStunde>23)
            {
                aktStunde=aktStunde-24;
                prefix=tibberPricesTomorrow;
            }
            else
            {
                prefix=tibberPricesToday;
            }
     
            var strStunde = (aktStunde.toString()).slice(-2); //("0" + aktStunde.toString()).slice(-2);
            itemData['label']=strStunde;
     
            prefix=prefix+strStunde+'.';
     
            var aktPrice=getState(prefix+tibberTotal).val;
     
            // falls keine Daten vorliegen, weiter ohne diese ItemData an das Chart-Objekt anzuhängen
            if (aktPrice==null && aktStunde>=0)
                continue;
     
            // von 0.2345 € auf Cent mit einer Nachkomma-Stelle umrechnen
            itemData['value']=Math.round(aktPrice*1000)/10.0;
     
            // Je nach Preis den Balken einfärben
            if (aktPrice<0.30)
                itemData['dataColor']="green";
            else
            if (aktPrice<0.40)
                itemData['dataColor']="yellow";
            else
            if (aktPrice<0.50)
                itemData['dataColor']="orange";
            else
            if (aktPrice<0.60)
                itemData['dataColor']="red";
            else
                itemData['dataColor']="magenta";
     
            // Daten für diese Stunde dem Objekt zufügen
            barChart.push(itemData);
        }
     
        // fertiges Objekt in den Datenpunkt als JSON schreiben
        setState("javascript."+instance+"."+idBarChartData, JSON.stringify(barChart), true);
     
    };
     
    function createChartData () {    
    	if(logOn) console.log(myName + " Stundenwechsel");
        
        let chart = {};
        let axisLabels =[];
        let values =[];
        let datalabels =[];
     
        var jetzt = new Date(Date.now());
        var aktStunde = jetzt.getHours();
        var unixTimestamp=new Date().getTime();
     
        const offsets=[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 12, 13, 14, 15, 16, 17, 18];
     
        // Spaltenbeschriftungen
     
        //chart.graphs[0].axisLables=axisLabels;
        chart.graphs=new Array();
        chart.graphs.push({});
        chart.graphs[0].color="green";
        chart.graphs[0].type="bar";
        chart.graphs[0].datalabel_rotation=-90;
        chart.graphs[0].datalabel_color="lightgreen";
        chart.graphs[0].datalabel_fontSize=10;
        chart.graphs[0].yAxis_title_text="cent";
        chart.graphs[0].yAxis_show=true;
        chart.graphs[0].legendText="Uhrzeit";
        chart.graphs[0].datalabel_show=true;
        chart.graphs[0].yAxis_minimumDigits=1;
        chart.graphs[0].yAxis_maximumDigits=1;
     
        for (let offset of offsets)
        {
            // Spaltenbeschriftungen
            aktStunde=jetzt.getHours()+offset;
            if (aktStunde>23)
                aktStunde=aktStunde-24;
            var strStunde = (aktStunde.toString()).slice(-2); //("0" + aktStunde.toString()).slice(-2);
            axisLabels.push(strStunde)
            //axisLabels.push(aktStunde);
                   
            var prefix="";
            aktStunde=jetzt.getHours()+offset;
            if (aktStunde>23)
            {
                aktStunde=aktStunde-24;
                prefix=tibberPricesTomorrow+".";
            }
            else
            {
                prefix=tibberPricesToday+".";
            }
     
            strStunde = ("0" + aktStunde.toString()).slice(-2);
            prefix=prefix+strStunde+'.';
     
            //if(logOn) console.log(myName + " Stundenwechsel, akt Stunde "+strStunde+", prefix "+prefix);
            var aktPrice=getState(prefix+tibberTotal).val;
            //var aktStartAt=getState(prefix+tibberStartsAt).val;
            //if(logOn) console.log(myName + " aktPrice "+aktPrice+", aktStartAt "+aktStartAt);
            //let itemData ={t:0, y:0.0};
            //itemData['t']=unixTimestamp+3600*offset;
            //itemData['y']=aktPrice;
            values.push(Math.round(aktPrice*1000)/10.0);
            var cents=(Math.round(aktPrice*1000)/10.0).toString();
            datalabels.push(cents);
     
        }
        chart.graphs[0].data=values;
        chart.graphs[0].datalabel_override=datalabels;
        chart.data=values;
        chart.datalabel_override=datalabels;
        chart.axisLables=axisLabels;
     
        setState("javascript."+instance+"."+idChartData, JSON.stringify(chart));
     
    };
    

    /edit: Originalpost mit allen Infos: https://forum.iobroker.net/topic/47195/diagramm-mit-festen-werten-in-vis-nur-wie/12

    M Offline
    M Offline
    MikeRow
    wrote on last edited by
    #151

    @thegrinch Super, vielen Dank. Läuft!

    1 Reply Last reply
    1
    • W Waldmensch

      Mal ne Verständnisfrage: Reicht zur Preisabfrage ein Account bei Tibber mit Api Key oder gibt es die Preisinfo nur, wenn man einen Stromvertrag hat? Die Account Basisdaten werden vom Adapter geladen aber die Preisinfos kommen als leere Arrays.

      Wen ich auf der Developer Seite eine Abfragemit meinem Token starte, kommt nur

      {
        viewer {
          homes {
            currentSubscription{
              priceInfo{
                current{
                  total
                  energy
                  tax
                  startsAt
                }
                today {
                  total
                  energy
                  tax
                  startsAt
                }
                tomorrow {
                  total
                  energy
                  tax
                  startsAt
                }
              }
            }
          }
        }
      }
      
      {
        "data": {
          "viewer": {
            "homes": [
              {
                "currentSubscription": null
              }
            ]
          }
        }
      }
      
      T Offline
      T Offline
      ThomKast
      wrote on last edited by
      #152

      @waldmensch
      Preise werden erst mit Abschluss und Aktivierung eines Vertrags übermittelt. Ich hatte im November 2022 den Vertrag zum 01.01.23 geschlossen und hatte ca. Mitte Dezember erstmalig Zugriff auf Preis Informationen.

      1 Reply Last reply
      0
      • W Waldmensch

        Mal ne Verständnisfrage: Reicht zur Preisabfrage ein Account bei Tibber mit Api Key oder gibt es die Preisinfo nur, wenn man einen Stromvertrag hat? Die Account Basisdaten werden vom Adapter geladen aber die Preisinfos kommen als leere Arrays.

        Wen ich auf der Developer Seite eine Abfragemit meinem Token starte, kommt nur

        {
          viewer {
            homes {
              currentSubscription{
                priceInfo{
                  current{
                    total
                    energy
                    tax
                    startsAt
                  }
                  today {
                    total
                    energy
                    tax
                    startsAt
                  }
                  tomorrow {
                    total
                    energy
                    tax
                    startsAt
                  }
                }
              }
            }
          }
        }
        
        {
          "data": {
            "viewer": {
              "homes": [
                {
                  "currentSubscription": null
                }
              ]
            }
          }
        }
        
        O Offline
        O Offline
        oxident
        wrote on last edited by
        #153

        @waldmensch Ja, gibt es erst nach Vertragsabschluss aber in der Tat auch schon vor Lieferbeginn.

        1 Reply Last reply
        0
        • M Offline
          M Offline
          Michaelnorge
          wrote on last edited by
          #154

          Gibt es jetzt eigentlich schon einen fix für den Pulse?

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

          • Smart mit: Rasp 4B / ioBroker / Conbee2 / Trådfri / Xiaomi / HUE / Logitech Harmony / Aqara / Easee Wallbox / Hyundai Ioniq / Alexa / Google Home / Fully Kiosk / VIS
          1 Reply Last reply
          0
          • P PavelCoast

            @Codibris
            Hallo,

            habe Deinen Adapter nun auch installiert, super Arbeit, liefert die Werte, die ich benötige, habe vorher mit Node-RED gearbeitet, allerdings mit der alten API.
            Hast Du vor auch die Übertragung des Zählerstandes mit einzubauen?
            Soll zwar nur für Norweger sein, aber vielleicht funktioniert es auch hier, dann könnte man täglich den Zählerstand automatisiert senden, statt über die App.

            Ich mein dies in der API:
            Field Argument Type Description
            sendMeterReading MeterReadingResponse!
            Send meter reading for home (only available for Norwegian users)

            input MeterReadingInput!
            updateHome Home!
            Update home information

            Beste Grüße
            René

            Michael WyrazM Offline
            Michael WyrazM Offline
            Michael Wyraz
            wrote on last edited by Michael Wyraz
            #155

            @pavelcoast said in Test Adapter TibberConnect 0.0.x inkl. Tibber Pulse:

            Soll zwar nur für Norweger sein, aber vielleicht funktioniert es auch hier, dann könnte man täglich den Zählerstand automatisiert senden, statt über die App.

            Leider nicht:

            ebec0252-0f27-4e8b-bf59-9492e997b8a0-grafik.png

            Dazu müsste man sich die App mal anschauen und die private API herausfinden.

            Edit: Hab mir die App mal angeschaut und die private API herausgefunden ^^

            https://app.tibber.com/v4/gql

            Beispiele:

            Auth-Info:

            {
              me {
                id
                firstName
                homes {
                  id
                }
              }
            }
            

            Aktueller Zähler:

            {
              me {
                home(id:"xxxxxx-xxxxxx-xxxxxx-xxxxx") {
                  currentMeter {
                    id
                    meterNo
                    isUserRead
                  }
                }
              }
            }
            

            Zähler und Register anzeigen:

            {
              me {
                meters {
                  items {
                    type
                    title
                    meter {
                      id
                      readingDateScreen {
                        title
                        nextButtonText
                      }
                      registers {
                        id
                        title
                        description
                        expectedMin
                        expectedMax
                      }
                    }
                  }
                }
              }
            }
            

            Zählerstand eintragen

            mutation {
              me {
                addMeterReadings(meterId: "xxxxx-xxxxx-xxxxx-xxxx-xxxxxxxx",readingDate: "2023-01-16", readings: [{id:"1-0:1.8.0",value:26529}])
                {
                  success {
                    inputTitle
                    inputValue
                    title
                    descriptionHtml
                    doneButtonText
                  }
                  error {
                    statusCode
                    title
                    message
                  }
                }
              }
            }
            

            Viel Spaß damit ;-)

            O S 3 Replies Last reply
            1
            • Michael WyrazM Michael Wyraz

              @pavelcoast said in Test Adapter TibberConnect 0.0.x inkl. Tibber Pulse:

              Soll zwar nur für Norweger sein, aber vielleicht funktioniert es auch hier, dann könnte man täglich den Zählerstand automatisiert senden, statt über die App.

              Leider nicht:

              ebec0252-0f27-4e8b-bf59-9492e997b8a0-grafik.png

              Dazu müsste man sich die App mal anschauen und die private API herausfinden.

              Edit: Hab mir die App mal angeschaut und die private API herausgefunden ^^

              https://app.tibber.com/v4/gql

              Beispiele:

              Auth-Info:

              {
                me {
                  id
                  firstName
                  homes {
                    id
                  }
                }
              }
              

              Aktueller Zähler:

              {
                me {
                  home(id:"xxxxxx-xxxxxx-xxxxxx-xxxxx") {
                    currentMeter {
                      id
                      meterNo
                      isUserRead
                    }
                  }
                }
              }
              

              Zähler und Register anzeigen:

              {
                me {
                  meters {
                    items {
                      type
                      title
                      meter {
                        id
                        readingDateScreen {
                          title
                          nextButtonText
                        }
                        registers {
                          id
                          title
                          description
                          expectedMin
                          expectedMax
                        }
                      }
                    }
                  }
                }
              }
              

              Zählerstand eintragen

              mutation {
                me {
                  addMeterReadings(meterId: "xxxxx-xxxxx-xxxxx-xxxx-xxxxxxxx",readingDate: "2023-01-16", readings: [{id:"1-0:1.8.0",value:26529}])
                  {
                    success {
                      inputTitle
                      inputValue
                      title
                      descriptionHtml
                      doneButtonText
                    }
                    error {
                      statusCode
                      title
                      message
                    }
                  }
                }
              }
              

              Viel Spaß damit ;-)

              O Offline
              O Offline
              oxident
              wrote on last edited by
              #156

              @michael-wyraz Mal eine blöde Frage: Warum braucht man das? Überträgt die Bridge den Zählerstand nicht automatisch?

              T 1 Reply Last reply
              0
              • O oxident

                @michael-wyraz Mal eine blöde Frage: Warum braucht man das? Überträgt die Bridge den Zählerstand nicht automatisch?

                T Offline
                T Offline
                theGrinch
                wrote on last edited by
                #157

                @oxident ich würde denken wenn du deinen Zähler anders als mit dem Pulse ausliest.

                O 1 Reply Last reply
                0
                • T theGrinch

                  @oxident ich würde denken wenn du deinen Zähler anders als mit dem Pulse ausliest.

                  O Offline
                  O Offline
                  oxident
                  wrote on last edited by
                  #158

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

                  @oxident ich würde denken wenn du deinen Zähler anders als mit dem Pulse ausliest.

                  Ach, das ist möglich/erlaubt? Zumindest theoretisch...

                  T 1 Reply Last reply
                  0
                  • O oxident

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

                    @oxident ich würde denken wenn du deinen Zähler anders als mit dem Pulse ausliest.

                    Ach, das ist möglich/erlaubt? Zumindest theoretisch...

                    T Offline
                    T Offline
                    theGrinch
                    wrote on last edited by
                    #159

                    @oxident so wie ich das auf tibber.de gelesen habe, machen die stündliche Abrechnung nur mit dem Pulse. Hätte also nur einen Effekt für die monatliche Übermittlung, wenn es denn akzeptiert wird.

                    Michael WyrazM 1 Reply Last reply
                    1
                    • T theGrinch

                      @oxident so wie ich das auf tibber.de gelesen habe, machen die stündliche Abrechnung nur mit dem Pulse. Hätte also nur einen Effekt für die monatliche Übermittlung, wenn es denn akzeptiert wird.

                      Michael WyrazM Offline
                      Michael WyrazM Offline
                      Michael Wyraz
                      wrote on last edited by
                      #160

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

                      @oxident so wie ich das auf tibber.de gelesen habe, machen die stündliche Abrechnung nur mit dem Pulse. Hätte also nur einen Effekt für die monatliche Übermittlung, wenn es denn akzeptiert wird.

                      Exakt. Die ursprüngliche Frage war ja, ob/wie man Werte hochladen kann, anstatt sie monatlich selbst in die App einzugeben, wenn man keinen Pulse hat. Da ich vor dem selben Problem stehe, bis mein Pulse ankommt und bis ich weiß, dass er mit meinem Zähler kompatibel ist, habe ich mich damit mal beschäftigt.

                      Mit einem funktionierenden Pulse erledigt sich das Thema natürlich komplett.

                      1 Reply Last reply
                      2
                      • Michael WyrazM Michael Wyraz

                        @pavelcoast said in Test Adapter TibberConnect 0.0.x inkl. Tibber Pulse:

                        Soll zwar nur für Norweger sein, aber vielleicht funktioniert es auch hier, dann könnte man täglich den Zählerstand automatisiert senden, statt über die App.

                        Leider nicht:

                        ebec0252-0f27-4e8b-bf59-9492e997b8a0-grafik.png

                        Dazu müsste man sich die App mal anschauen und die private API herausfinden.

                        Edit: Hab mir die App mal angeschaut und die private API herausgefunden ^^

                        https://app.tibber.com/v4/gql

                        Beispiele:

                        Auth-Info:

                        {
                          me {
                            id
                            firstName
                            homes {
                              id
                            }
                          }
                        }
                        

                        Aktueller Zähler:

                        {
                          me {
                            home(id:"xxxxxx-xxxxxx-xxxxxx-xxxxx") {
                              currentMeter {
                                id
                                meterNo
                                isUserRead
                              }
                            }
                          }
                        }
                        

                        Zähler und Register anzeigen:

                        {
                          me {
                            meters {
                              items {
                                type
                                title
                                meter {
                                  id
                                  readingDateScreen {
                                    title
                                    nextButtonText
                                  }
                                  registers {
                                    id
                                    title
                                    description
                                    expectedMin
                                    expectedMax
                                  }
                                }
                              }
                            }
                          }
                        }
                        

                        Zählerstand eintragen

                        mutation {
                          me {
                            addMeterReadings(meterId: "xxxxx-xxxxx-xxxxx-xxxx-xxxxxxxx",readingDate: "2023-01-16", readings: [{id:"1-0:1.8.0",value:26529}])
                            {
                              success {
                                inputTitle
                                inputValue
                                title
                                descriptionHtml
                                doneButtonText
                              }
                              error {
                                statusCode
                                title
                                message
                              }
                            }
                          }
                        }
                        

                        Viel Spaß damit ;-)

                        S Online
                        S Online
                        Schimi
                        wrote on last edited by
                        #161

                        @michael-wyraz

                        Wenn da jemand nen blocklyoder JavaScript machen könnte, wäre super... ich weiss gar nicht wie ich anfangen soll..

                        Nen Automatismus der z.B. am 01 jedes Monats um 0:10Uhr) den Zählerstand überträgt würde reichen..

                        Michael WyrazM 1 Reply Last reply
                        0
                        • S Schimi

                          @michael-wyraz

                          Wenn da jemand nen blocklyoder JavaScript machen könnte, wäre super... ich weiss gar nicht wie ich anfangen soll..

                          Nen Automatismus der z.B. am 01 jedes Monats um 0:10Uhr) den Zählerstand überträgt würde reichen..

                          Michael WyrazM Offline
                          Michael WyrazM Offline
                          Michael Wyraz
                          wrote on last edited by
                          #162

                          @schimi

                          Ich baue mir gerade eine kleine Anwendung dazu. Wird allerdings in Java, weil mir das locker aus der Hand fließt.

                          • Konfigurierbare Quelle, erstmal generische REST-Api oder ne Zeitreihendatenbank
                          • Angabe des Ziels (Login zu Tibber)

                          Das Tool soll täglich nach neuen Zählerständen schauen und die fehlenden bis maximal 30 Tage zurück nachtragen (die API erlaubt maximal Tageswerte und maximal 30 Tage zurück).

                          Welche Datenquelle hast Du?

                          S 1 Reply Last reply
                          0
                          • Michael WyrazM Michael Wyraz

                            @schimi

                            Ich baue mir gerade eine kleine Anwendung dazu. Wird allerdings in Java, weil mir das locker aus der Hand fließt.

                            • Konfigurierbare Quelle, erstmal generische REST-Api oder ne Zeitreihendatenbank
                            • Angabe des Ziels (Login zu Tibber)

                            Das Tool soll täglich nach neuen Zählerständen schauen und die fehlenden bis maximal 30 Tage zurück nachtragen (die API erlaubt maximal Tageswerte und maximal 30 Tage zurück).

                            Welche Datenquelle hast Du?

                            S Online
                            S Online
                            Schimi
                            wrote on last edited by
                            #163

                            @michael-wyraz

                            ich nutze einen IR Lesekopf mit dem "smartmeter"-Adapter...
                            gibt dann so eine ausgabe:
                            460b24ab-dd3c-4bc6-b767-33a4a608bd25-image.png

                            Vielleicht kannst du das ja über ne variable lösen, wo man im config bereich den Datenpunkt angibt.....

                            mir würde es im grunde reichen wenn ich einmal im Monat (lösbar über Cronjob, dann könnte man flexibel auch jeden Tag oder so, wählen) den Zählerstand übertrage.... (In meinem fall, macht der Pulse wenig sinn und ich habe mehr vom Durchschnittspreis)

                            Michael WyrazM O crunchipC 3 Replies Last reply
                            0
                            • S Schimi

                              @michael-wyraz

                              ich nutze einen IR Lesekopf mit dem "smartmeter"-Adapter...
                              gibt dann so eine ausgabe:
                              460b24ab-dd3c-4bc6-b767-33a4a608bd25-image.png

                              Vielleicht kannst du das ja über ne variable lösen, wo man im config bereich den Datenpunkt angibt.....

                              mir würde es im grunde reichen wenn ich einmal im Monat (lösbar über Cronjob, dann könnte man flexibel auch jeden Tag oder so, wählen) den Zählerstand übertrage.... (In meinem fall, macht der Pulse wenig sinn und ich habe mehr vom Durchschnittspreis)

                              Michael WyrazM Offline
                              Michael WyrazM Offline
                              Michael Wyraz
                              wrote on last edited by
                              #164

                              @schimi
                              Ich denke, du möchtest die 1_8_0 melden. Woher kommt die Ausgabe, ist das von ioBroker? (ich kenne ioBroker nicht, hab nur hier gepostet, weil ich hier einige Infos gefunden habe und mich mit meinen Infos revanchieren wollte).

                              S 1 Reply Last reply
                              0
                              • Michael WyrazM Michael Wyraz

                                @schimi
                                Ich denke, du möchtest die 1_8_0 melden. Woher kommt die Ausgabe, ist das von ioBroker? (ich kenne ioBroker nicht, hab nur hier gepostet, weil ich hier einige Infos gefunden habe und mich mit meinen Infos revanchieren wollte).

                                S Online
                                S Online
                                Schimi
                                wrote on last edited by
                                #165

                                @michael-wyraz sagte in Test Adapter TibberConnect 0.0.x inkl. Tibber Pulse:

                                ...
                                (ich kenne ioBroker nicht, hab nur hier gepostet, weil ich hier einige Infos gefunden habe und mich mit meinen Infos revanchieren wollte)...

                                Ahso..... ok... das ist aber auch mega cool von dir :+1:

                                ja genau, die 1_8_0.... und kommt von iobroker... wird alle par sek aktualisiert :-)

                                Michael WyrazM 1 Reply Last reply
                                0
                                • S Schimi

                                  @michael-wyraz sagte in Test Adapter TibberConnect 0.0.x inkl. Tibber Pulse:

                                  ...
                                  (ich kenne ioBroker nicht, hab nur hier gepostet, weil ich hier einige Infos gefunden habe und mich mit meinen Infos revanchieren wollte)...

                                  Ahso..... ok... das ist aber auch mega cool von dir :+1:

                                  ja genau, die 1_8_0.... und kommt von iobroker... wird alle par sek aktualisiert :-)

                                  Michael WyrazM Offline
                                  Michael WyrazM Offline
                                  Michael Wyraz
                                  wrote on last edited by
                                  #166

                                  @schimi

                                  Welche Möglichkeit gibt es denn, die abzurufen?

                                  S 1 Reply Last reply
                                  0
                                  • Michael WyrazM Michael Wyraz

                                    @schimi

                                    Welche Möglichkeit gibt es denn, die abzurufen?

                                    S Online
                                    S Online
                                    Schimi
                                    wrote on last edited by
                                    #167

                                    @michael-wyraz

                                    den Datenpunkt auslesen würde reichen....

                                    Leider weiß ich nicht wie ich es anders beschreiben soll....

                                    hier habe ich mal nen Script was einen andern Datenpunkt ausließt und an eine Wallbox sendet...
                                    Ich nutze es zwar nicht (habe es nur in der Sammlung, falls ich sowas mal "brauche") aber es funktioniert (getestet)

                                    vielleicht erklärt es einiges.

                                    on({id: 'smartmeter.0.1-0:16_7_0__255.value', change: 'any'}, function (obj) {
                                    var XMLHttpRequest = require("xmlhttprequest").XMLHttpRequest;
                                     
                                    Arbeit = getState("smartmeter.0.1-0:1_8_0__255.value").val;
                                    Arbeit = Arbeit * 1000
                                    Leistung  = getState("smartmeter.0.1-0:16_7_0__255.value").val;
                                    Strom = Leistung / 0.690
                                     
                                    var url = "http://192.168.20.148/cnf?cmd=set_ajax_meter&dev_id=M5";
                                     
                                    var xhr = new XMLHttpRequest();
                                    xhr.open("POST", url);
                                     
                                    xhr.setRequestHeader("Authorization", "Basic YWRtaW46MTIzNGFiY2Q=");
                                    xhr.setRequestHeader("Content-Type", "application/json");
                                     
                                    xhr.onreadystatechange = function () {
                                       if (xhr.readyState === 4) {
                                          console.log(xhr.status);
                                          console.log(xhr.responseText);
                                       }};
                                    var data = `{
                                       "import_vah": ${Arbeit},
                                       "power_va": ${Leistung},
                                       "current": [${Strom}, ${Strom}, ${Strom}]
                                    }`;
                                    xhr.send(data);
                                    });
                                    
                                    1 Reply Last reply
                                    0
                                    • T theGrinch

                                      Auf Anregung von @MikeRow habe ich mal die BarChart von @Familienvater auf diesen Adapter angepasst.

                                      Einfach das "home" reinkopieren in Zeile 6+7.

                                      var myName = "tibber.createchartdata";
                                       
                                      var logOn           = false;     // Skript Logausgabe ein- (true) / ausschalten (false). Fehler werden immer ausgegeben.
                                      var forceCreation    = false;    // Default: false. true: Datenpunkte werden überschrieben (wenn z.B. Bezeichnungen geändert wurden)
                                       
                                      var tibberPricesToday = "tibberconnect.0.Homes.*****.PricesToday.";        // mit . am Ende!
                                      var tibberPricesTomorrow = "tibberconnect.0.Homes.*****.PricesTomorrow.";  // mit . am Ende!
                                       
                                      var tibberStartsAt = "startsAt";
                                      var tibberTotal = "total";
                                       
                                       
                                      // Datenpunkte anlegen:
                                      // -----------------------------------------------------------------------------
                                      var idChartData = "tibber.prices.chartData";                      // Pfad und Name, unter dem in der Javascript-Instanz der Datenpunkte angelegt wird
                                      createState(idChartData, '[{"label":"15","value":"25.2","dataColor":"#ffffff"},{"label":"16","value":"28.8","dataColor":"#ffffff"},{"label":"17","value":3"5.2","dataColor":"#ffffff"},{"label":"18","value":"33.2","dataColor":"#ffffff"},{"label":"19","value":"20.2","dataColor":"#ffffff"}]', forceCreation, {
                                           name: 'Chart-Data Price Forecast',
                                           desc: 'Chart-Data Price Forecast',
                                           type: 'string',
                                           role: 'value'
                                      });
                                       
                                      // Datenpunkte anlegen:
                                      // -----------------------------------------------------------------------------
                                      var idBarChartData = "tibber.prices.barChartData";                      // Pfad und Name, unter dem in der Javascript-Instanz der Datenpunkte angelegt wird
                                      createState(idBarChartData, '[{"label":"15","value":"25.2","dataColor":"#ffffff"},{"label":"16","value":"28.8","dataColor":"#ffffff"},{"label":"17","value":3"5.2","dataColor":"#ffffff"},{"label":"18","value":"33.2","dataColor":"#ffffff"},{"label":"19","value":"20.2","dataColor":"#ffffff"}]', forceCreation, {
                                           name: 'Bar Chart-Data Price Forecast',
                                           desc: 'Bar Chart-Data Price Forecast',
                                           type: 'string',
                                           role: 'value'
                                      });
                                       
                                      createBarChartData();
                                       
                                      // Cron-Job, zum Stundenwechsel
                                      // Stundenwechsel, Ausführen immer um *:00:10
                                      schedule('10 0 * * * *', function () {createBarChartData()});
                                       
                                      function createBarChartData () {    
                                      	if(logOn) console.log(myName + " Stundenwechsel");
                                          
                                          let barChart = [];
                                       
                                          var jetzt = new Date(Date.now());
                                          var aktStunde = jetzt.getHours();
                                          var unixTimestamp=new Date().getTime();
                                       
                                          // bis zu 18 Stunden in die Zukunft
                                          const offsets=[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 12, 13, 14, 15, 16, 17, 18];
                                       
                                          for (let offset of offsets)
                                          {
                                              // Template Objekt für BarChart erzeugen
                                              let itemData ={label:"", value:0.0, dataColor: "#c2c2c2", valueColor: "#dddddd"}; //, valueAppendix: "", valueColor: #ffffff"
                                       
                                              // Vorbereitung um Werte aus Tibber Adapter zu holen         
                                              var prefix="";
                                              aktStunde=jetzt.getHours()+offset;
                                              if (aktStunde>23)
                                              {
                                                  aktStunde=aktStunde-24;
                                                  prefix=tibberPricesTomorrow;
                                              }
                                              else
                                              {
                                                  prefix=tibberPricesToday;
                                              }
                                       
                                              var strStunde = (aktStunde.toString()).slice(-2); //("0" + aktStunde.toString()).slice(-2);
                                              itemData['label']=strStunde;
                                       
                                              prefix=prefix+strStunde+'.';
                                       
                                              var aktPrice=getState(prefix+tibberTotal).val;
                                       
                                              // falls keine Daten vorliegen, weiter ohne diese ItemData an das Chart-Objekt anzuhängen
                                              if (aktPrice==null && aktStunde>=0)
                                                  continue;
                                       
                                              // von 0.2345 € auf Cent mit einer Nachkomma-Stelle umrechnen
                                              itemData['value']=Math.round(aktPrice*1000)/10.0;
                                       
                                              // Je nach Preis den Balken einfärben
                                              if (aktPrice<0.30)
                                                  itemData['dataColor']="green";
                                              else
                                              if (aktPrice<0.40)
                                                  itemData['dataColor']="yellow";
                                              else
                                              if (aktPrice<0.50)
                                                  itemData['dataColor']="orange";
                                              else
                                              if (aktPrice<0.60)
                                                  itemData['dataColor']="red";
                                              else
                                                  itemData['dataColor']="magenta";
                                       
                                              // Daten für diese Stunde dem Objekt zufügen
                                              barChart.push(itemData);
                                          }
                                       
                                          // fertiges Objekt in den Datenpunkt als JSON schreiben
                                          setState("javascript."+instance+"."+idBarChartData, JSON.stringify(barChart), true);
                                       
                                      };
                                       
                                      function createChartData () {    
                                      	if(logOn) console.log(myName + " Stundenwechsel");
                                          
                                          let chart = {};
                                          let axisLabels =[];
                                          let values =[];
                                          let datalabels =[];
                                       
                                          var jetzt = new Date(Date.now());
                                          var aktStunde = jetzt.getHours();
                                          var unixTimestamp=new Date().getTime();
                                       
                                          const offsets=[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 12, 13, 14, 15, 16, 17, 18];
                                       
                                          // Spaltenbeschriftungen
                                       
                                          //chart.graphs[0].axisLables=axisLabels;
                                          chart.graphs=new Array();
                                          chart.graphs.push({});
                                          chart.graphs[0].color="green";
                                          chart.graphs[0].type="bar";
                                          chart.graphs[0].datalabel_rotation=-90;
                                          chart.graphs[0].datalabel_color="lightgreen";
                                          chart.graphs[0].datalabel_fontSize=10;
                                          chart.graphs[0].yAxis_title_text="cent";
                                          chart.graphs[0].yAxis_show=true;
                                          chart.graphs[0].legendText="Uhrzeit";
                                          chart.graphs[0].datalabel_show=true;
                                          chart.graphs[0].yAxis_minimumDigits=1;
                                          chart.graphs[0].yAxis_maximumDigits=1;
                                       
                                          for (let offset of offsets)
                                          {
                                              // Spaltenbeschriftungen
                                              aktStunde=jetzt.getHours()+offset;
                                              if (aktStunde>23)
                                                  aktStunde=aktStunde-24;
                                              var strStunde = (aktStunde.toString()).slice(-2); //("0" + aktStunde.toString()).slice(-2);
                                              axisLabels.push(strStunde)
                                              //axisLabels.push(aktStunde);
                                                     
                                              var prefix="";
                                              aktStunde=jetzt.getHours()+offset;
                                              if (aktStunde>23)
                                              {
                                                  aktStunde=aktStunde-24;
                                                  prefix=tibberPricesTomorrow+".";
                                              }
                                              else
                                              {
                                                  prefix=tibberPricesToday+".";
                                              }
                                       
                                              strStunde = ("0" + aktStunde.toString()).slice(-2);
                                              prefix=prefix+strStunde+'.';
                                       
                                              //if(logOn) console.log(myName + " Stundenwechsel, akt Stunde "+strStunde+", prefix "+prefix);
                                              var aktPrice=getState(prefix+tibberTotal).val;
                                              //var aktStartAt=getState(prefix+tibberStartsAt).val;
                                              //if(logOn) console.log(myName + " aktPrice "+aktPrice+", aktStartAt "+aktStartAt);
                                              //let itemData ={t:0, y:0.0};
                                              //itemData['t']=unixTimestamp+3600*offset;
                                              //itemData['y']=aktPrice;
                                              values.push(Math.round(aktPrice*1000)/10.0);
                                              var cents=(Math.round(aktPrice*1000)/10.0).toString();
                                              datalabels.push(cents);
                                       
                                          }
                                          chart.graphs[0].data=values;
                                          chart.graphs[0].datalabel_override=datalabels;
                                          chart.data=values;
                                          chart.datalabel_override=datalabels;
                                          chart.axisLables=axisLabels;
                                       
                                          setState("javascript."+instance+"."+idChartData, JSON.stringify(chart));
                                       
                                      };
                                      

                                      /edit: Originalpost mit allen Infos: https://forum.iobroker.net/topic/47195/diagramm-mit-festen-werten-in-vis-nur-wie/12

                                      O Offline
                                      O Offline
                                      oxident
                                      wrote on last edited by
                                      #168

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

                                      Auf Anregung von @MikeRow habe ich mal die BarChart von @Familienvater auf diesen Adapter angepasst.

                                      Einfach das "home" reinkopieren in Zeile 6+7.

                                      var myName = "tibber.createchartdata";
                                       
                                      var logOn           = false;     // Skript Logausgabe ein- (true) / ausschalten (false). Fehler werden immer ausgegeben.
                                      var forceCreation    = false;    // Default: false. true: Datenpunkte werden überschrieben (wenn z.B. Bezeichnungen geändert wurden)
                                       
                                      var tibberPricesToday = "tibberconnect.0.Homes.*****.PricesToday.";        // mit . am Ende!
                                      var tibberPricesTomorrow = "tibberconnect.0.Homes.*****.PricesTomorrow.";  // mit . am Ende!
                                       
                                      var tibberStartsAt = "startsAt";
                                      var tibberTotal = "total";
                                       
                                       
                                      // Datenpunkte anlegen:
                                      // -----------------------------------------------------------------------------
                                      var idChartData = "tibber.prices.chartData";                      // Pfad und Name, unter dem in der Javascript-Instanz der Datenpunkte angelegt wird
                                      createState(idChartData, '[{"label":"15","value":"25.2","dataColor":"#ffffff"},{"label":"16","value":"28.8","dataColor":"#ffffff"},{"label":"17","value":3"5.2","dataColor":"#ffffff"},{"label":"18","value":"33.2","dataColor":"#ffffff"},{"label":"19","value":"20.2","dataColor":"#ffffff"}]', forceCreation, {
                                           name: 'Chart-Data Price Forecast',
                                           desc: 'Chart-Data Price Forecast',
                                           type: 'string',
                                           role: 'value'
                                      });
                                       
                                      // Datenpunkte anlegen:
                                      // -----------------------------------------------------------------------------
                                      var idBarChartData = "tibber.prices.barChartData";                      // Pfad und Name, unter dem in der Javascript-Instanz der Datenpunkte angelegt wird
                                      createState(idBarChartData, '[{"label":"15","value":"25.2","dataColor":"#ffffff"},{"label":"16","value":"28.8","dataColor":"#ffffff"},{"label":"17","value":3"5.2","dataColor":"#ffffff"},{"label":"18","value":"33.2","dataColor":"#ffffff"},{"label":"19","value":"20.2","dataColor":"#ffffff"}]', forceCreation, {
                                           name: 'Bar Chart-Data Price Forecast',
                                           desc: 'Bar Chart-Data Price Forecast',
                                           type: 'string',
                                           role: 'value'
                                      });
                                       
                                      createBarChartData();
                                       
                                      // Cron-Job, zum Stundenwechsel
                                      // Stundenwechsel, Ausführen immer um *:00:10
                                      schedule('10 0 * * * *', function () {createBarChartData()});
                                       
                                      function createBarChartData () {    
                                      	if(logOn) console.log(myName + " Stundenwechsel");
                                          
                                          let barChart = [];
                                       
                                          var jetzt = new Date(Date.now());
                                          var aktStunde = jetzt.getHours();
                                          var unixTimestamp=new Date().getTime();
                                       
                                          // bis zu 18 Stunden in die Zukunft
                                          const offsets=[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 12, 13, 14, 15, 16, 17, 18];
                                       
                                          for (let offset of offsets)
                                          {
                                              // Template Objekt für BarChart erzeugen
                                              let itemData ={label:"", value:0.0, dataColor: "#c2c2c2", valueColor: "#dddddd"}; //, valueAppendix: "", valueColor: #ffffff"
                                       
                                              // Vorbereitung um Werte aus Tibber Adapter zu holen         
                                              var prefix="";
                                              aktStunde=jetzt.getHours()+offset;
                                              if (aktStunde>23)
                                              {
                                                  aktStunde=aktStunde-24;
                                                  prefix=tibberPricesTomorrow;
                                              }
                                              else
                                              {
                                                  prefix=tibberPricesToday;
                                              }
                                       
                                              var strStunde = (aktStunde.toString()).slice(-2); //("0" + aktStunde.toString()).slice(-2);
                                              itemData['label']=strStunde;
                                       
                                              prefix=prefix+strStunde+'.';
                                       
                                              var aktPrice=getState(prefix+tibberTotal).val;
                                       
                                              // falls keine Daten vorliegen, weiter ohne diese ItemData an das Chart-Objekt anzuhängen
                                              if (aktPrice==null && aktStunde>=0)
                                                  continue;
                                       
                                              // von 0.2345 € auf Cent mit einer Nachkomma-Stelle umrechnen
                                              itemData['value']=Math.round(aktPrice*1000)/10.0;
                                       
                                              // Je nach Preis den Balken einfärben
                                              if (aktPrice<0.30)
                                                  itemData['dataColor']="green";
                                              else
                                              if (aktPrice<0.40)
                                                  itemData['dataColor']="yellow";
                                              else
                                              if (aktPrice<0.50)
                                                  itemData['dataColor']="orange";
                                              else
                                              if (aktPrice<0.60)
                                                  itemData['dataColor']="red";
                                              else
                                                  itemData['dataColor']="magenta";
                                       
                                              // Daten für diese Stunde dem Objekt zufügen
                                              barChart.push(itemData);
                                          }
                                       
                                          // fertiges Objekt in den Datenpunkt als JSON schreiben
                                          setState("javascript."+instance+"."+idBarChartData, JSON.stringify(barChart), true);
                                       
                                      };
                                       
                                      function createChartData () {    
                                      	if(logOn) console.log(myName + " Stundenwechsel");
                                          
                                          let chart = {};
                                          let axisLabels =[];
                                          let values =[];
                                          let datalabels =[];
                                       
                                          var jetzt = new Date(Date.now());
                                          var aktStunde = jetzt.getHours();
                                          var unixTimestamp=new Date().getTime();
                                       
                                          const offsets=[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 12, 13, 14, 15, 16, 17, 18];
                                       
                                          // Spaltenbeschriftungen
                                       
                                          //chart.graphs[0].axisLables=axisLabels;
                                          chart.graphs=new Array();
                                          chart.graphs.push({});
                                          chart.graphs[0].color="green";
                                          chart.graphs[0].type="bar";
                                          chart.graphs[0].datalabel_rotation=-90;
                                          chart.graphs[0].datalabel_color="lightgreen";
                                          chart.graphs[0].datalabel_fontSize=10;
                                          chart.graphs[0].yAxis_title_text="cent";
                                          chart.graphs[0].yAxis_show=true;
                                          chart.graphs[0].legendText="Uhrzeit";
                                          chart.graphs[0].datalabel_show=true;
                                          chart.graphs[0].yAxis_minimumDigits=1;
                                          chart.graphs[0].yAxis_maximumDigits=1;
                                       
                                          for (let offset of offsets)
                                          {
                                              // Spaltenbeschriftungen
                                              aktStunde=jetzt.getHours()+offset;
                                              if (aktStunde>23)
                                                  aktStunde=aktStunde-24;
                                              var strStunde = (aktStunde.toString()).slice(-2); //("0" + aktStunde.toString()).slice(-2);
                                              axisLabels.push(strStunde)
                                              //axisLabels.push(aktStunde);
                                                     
                                              var prefix="";
                                              aktStunde=jetzt.getHours()+offset;
                                              if (aktStunde>23)
                                              {
                                                  aktStunde=aktStunde-24;
                                                  prefix=tibberPricesTomorrow+".";
                                              }
                                              else
                                              {
                                                  prefix=tibberPricesToday+".";
                                              }
                                       
                                              strStunde = ("0" + aktStunde.toString()).slice(-2);
                                              prefix=prefix+strStunde+'.';
                                       
                                              //if(logOn) console.log(myName + " Stundenwechsel, akt Stunde "+strStunde+", prefix "+prefix);
                                              var aktPrice=getState(prefix+tibberTotal).val;
                                              //var aktStartAt=getState(prefix+tibberStartsAt).val;
                                              //if(logOn) console.log(myName + " aktPrice "+aktPrice+", aktStartAt "+aktStartAt);
                                              //let itemData ={t:0, y:0.0};
                                              //itemData['t']=unixTimestamp+3600*offset;
                                              //itemData['y']=aktPrice;
                                              values.push(Math.round(aktPrice*1000)/10.0);
                                              var cents=(Math.round(aktPrice*1000)/10.0).toString();
                                              datalabels.push(cents);
                                       
                                          }
                                          chart.graphs[0].data=values;
                                          chart.graphs[0].datalabel_override=datalabels;
                                          chart.data=values;
                                          chart.datalabel_override=datalabels;
                                          chart.axisLables=axisLabels;
                                       
                                          setState("javascript."+instance+"."+idChartData, JSON.stringify(chart));
                                       
                                      };
                                      

                                      /edit: Originalpost mit allen Infos: https://forum.iobroker.net/topic/47195/diagramm-mit-festen-werten-in-vis-nur-wie/12

                                      Danke dafür!

                                      Wichtig ist jedoch zu wissen, dass der Adapter derzeit den Folgetag nicht zurücksetzt. Daher sind bis mittags noch die Daten vom aktuellen und Folgetag gleich.

                                      Das betrifft auch das Diagramm.

                                      1 Reply Last reply
                                      0
                                      • M MikeRow

                                        @joau8 Bei mir läuft es, gerade mal getestet
                                        06550d02-a9c2-4c27-9ea6-9c64bfc05cdd-image.png

                                        Nur im Tibberconnect Adapter kommt seit gestern das LiveMeasurement nicht mehr rüber

                                        J Offline
                                        J Offline
                                        JoAu84
                                        wrote on last edited by
                                        #169

                                        @mikerow @ThomKast
                                        sorry für die sehr späte Antwort; das Skript lief bei mir auch, aber das Livemeasurement nicht mehr. Geht übrigens immer noch nicht - weiß jemand, wann das im Adapter geändert werden könnte (gab ja wohl ne Änderung der Api-Adresse...
                                        Vielen Dank!

                                        M T 2 Replies Last reply
                                        0
                                        • J JoAu84

                                          @mikerow @ThomKast
                                          sorry für die sehr späte Antwort; das Skript lief bei mir auch, aber das Livemeasurement nicht mehr. Geht übrigens immer noch nicht - weiß jemand, wann das im Adapter geändert werden könnte (gab ja wohl ne Änderung der Api-Adresse...
                                          Vielen Dank!

                                          M Offline
                                          M Offline
                                          MikeRow
                                          wrote on last edited by
                                          #170

                                          @joau84 Leider nein, ich denke dass muss sich @Codibris ansehen. Ich nutze für den Übergang eine Home Assistant Instanz mit Tibber Adapter. Diese Daten lese ich dann mit IOB ein.

                                          1 Reply Last reply
                                          0
                                          Reply
                                          • Reply as topic
                                          Log in to reply
                                          • Oldest to Newest
                                          • Newest to Oldest
                                          • Most Votes


                                          Support us

                                          ioBroker
                                          Community Adapters
                                          Donate

                                          636

                                          Online

                                          32.7k

                                          Users

                                          82.5k

                                          Topics

                                          1.3m

                                          Posts
                                          Community
                                          Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen | Einwilligungseinstellungen
                                          ioBroker Community 2014-2025
                                          logo
                                          • Login

                                          • Don't have an account? Register

                                          • Login or register to search.
                                          • First post
                                            Last post
                                          0
                                          • Home
                                          • Recent
                                          • Tags
                                          • Unread 0
                                          • Categories
                                          • Unreplied
                                          • Popular
                                          • GitHub
                                          • Docu
                                          • Hilfe