Skip to content
  • 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
Logo
  1. ioBroker Community Home
  2. Deutsch
  3. ioBroker Allgemein
  4. TibberLink Adapter

NEWS

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

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

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

TibberLink Adapter

TibberLink Adapter

Scheduled Pinned Locked Moved ioBroker Allgemein
613 Posts 85 Posters 192.8k Views 78 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.
  • Merlin123M Merlin123

    @reblausgt Die Darstellung sieht klasse aus 🙂 Ist die "echt" oder nur mal rumgespielt? Wenn "echt": Kannst Du mal teilen, wie Du die erzeugst?

    R Offline
    R Offline
    ReblausGT
    Developer
    wrote on last edited by
    #389

    @merlin123
    Nee das ist inzwischen echt.... macht der Adapter 4.2.0 5jetzt durch ansteuern vom FlexChart.... Ich bin nur noch am spielen mit den Beschriftungen, wenn man mehrere Blöcke hat.... da wird das etwas "blöd" mit dem vielen Text...

    03e52ea4-cda1-43ac-9558-f5a434c5413a-image.png 66

    Merlin123M 1 Reply Last reply
    0
    • R ReblausGT

      @merlin123
      Nee das ist inzwischen echt.... macht der Adapter 4.2.0 5jetzt durch ansteuern vom FlexChart.... Ich bin nur noch am spielen mit den Beschriftungen, wenn man mehrere Blöcke hat.... da wird das etwas "blöd" mit dem vielen Text...

      03e52ea4-cda1-43ac-9558-f5a434c5413a-image.png 66

      Merlin123M Offline
      Merlin123M Offline
      Merlin123
      wrote on last edited by Merlin123
      #390

      @reblausgt Ah klasse! Schau ich mit im Laufen des Tages mal an.
      Frage zu den Rechenfunktionen: Wann werden die ausgelöst?

      Konkret:
      Ich will die "best hours" haben. Werden die aktualisiert wenn der DP mit dem Referenzwert geändert wird?

      Hab mal kurz reingeschaut:
      Wo stelle ich den Vergleichswert dann eigentlich ein?
      Einfach den DP (z.B. tibberlink.0.Homes.xxxCalculations.1.TriggerPrice) aktualisieren?

      Und wo finde ich denn das Chart?
      Ist das das da:
      tibberlink.0.Homes.xxx.PricesToday.json

      Bin da grad etwas planlos 😛

      Bonusfrage: Wenn man z.B. noch nen Speicher hat und da anzeigen will, wann der aus dem Netz geladen werden soll und oberhalb welchen Strompreises er erst entladen soll: Ist angedacht das auch visualisierbar zu machen?

      Beta-Tester

      R 1 Reply Last reply
      0
      • R ReblausGT

        Hallo Community,

        Ich überlege wie man die Visualisierungs-Möglichkeiten der Preisdaten verbessern könnte...
        Wie macht ihr das? In VIS-2 habe ich keine so recht gute Idee dazu....

        In VIS-1 könnte ich mir an der Stelle gut vorstellen die Preisdaten kombiniert anzubieten als JSON. Jeweils Preise heute und morgen kombiniert, sofern vorhanden. Es würde für einen spezifischen Config Teil des Graphen dann einen einzubettenden JSON Block geben, (im Beispiel von "type": "bar" bis "yAxis_maximumDigits": 3) der in der Admin-Console eingegeben werden kann:

        {
          "graphs": [
          {
            "data": [
              0.228,
              0.336,
              0.348,
              0.281
            ],
            "type": "bar",
            .........
            "yAxis_maximumDigits": 3
          }],
          "axisLabels": [
            "28.12. 09:00",
            "28.12. 10:00",
            "28.12. 11:00",
            "28.12. 12:00"
          ]
        }
        

        die Axis Labels und Data fügt der Adapter dann hinzu und gibt das ganze als "jsonGraph" in die Struktur ... denke das wird ein neuer Folder PricesTotal....

        Evtl. noch ein weiterer JSON state in den Folder für e-charts Konformität (VIS-2)?
        "jsonECharts"

        [
          {"t": 1735370280000, "y": 0.228},
          {"t": 1735372800000, "y": 0.336},
          {"t": 1735376400000, "y": 0.348},
          {"t": 1735380000000, "y": 0.281}
        ]
        

        Was meinst Ihr?

        B Offline
        B Offline
        bakerman23
        wrote on last edited by
        #391

        @reblausgt ich nutze dafür grafana.
        Es gibt vorgefertigte Dashboards mit diversen Anzeigemöglichkeiten. Die Daten werden direkt aus der tibber API geholt.

        Merlin123M R 2 Replies Last reply
        0
        • B bakerman23

          @reblausgt ich nutze dafür grafana.
          Es gibt vorgefertigte Dashboards mit diversen Anzeigemöglichkeiten. Die Daten werden direkt aus der tibber API geholt.

          Merlin123M Offline
          Merlin123M Offline
          Merlin123
          wrote on last edited by
          #392

          @bakerman23 sagte in TibberLink Adapter:

          @reblausgt ich nutze dafür grafana.
          Es gibt vorgefertigte Dashboards mit diversen Anzeigemöglichkeiten. Die Daten werden direkt aus der tibber API geholt.

          Kannst Du da dann auch anzeigen lassen, wann das Auto geladen werden soll usw.?

          Beta-Tester

          R 1 Reply Last reply
          0
          • Merlin123M Merlin123

            @bakerman23 sagte in TibberLink Adapter:

            @reblausgt ich nutze dafür grafana.
            Es gibt vorgefertigte Dashboards mit diversen Anzeigemöglichkeiten. Die Daten werden direkt aus der tibber API geholt.

            Kannst Du da dann auch anzeigen lassen, wann das Auto geladen werden soll usw.?

            R Offline
            R Offline
            ReblausGT
            Developer
            wrote on last edited by
            #393

            @merlin123 said in TibberLink Adapter:

            @bakerman23 sagte in TibberLink Adapter:

            @reblausgt ich nutze dafür grafana.
            Es gibt vorgefertigte Dashboards mit diversen Anzeigemöglichkeiten. Die Daten werden direkt aus der tibber API geholt.

            Kannst Du da dann auch anzeigen lassen, wann das Auto geladen werden soll usw.?

            JA.... vorgefertigte in der Mehrzahl ist akut noch dezent übertrieben, aber, ja ich sehe meine Auto Ladung

            1 Reply Last reply
            0
            • Merlin123M Merlin123

              @reblausgt Ah klasse! Schau ich mit im Laufen des Tages mal an.
              Frage zu den Rechenfunktionen: Wann werden die ausgelöst?

              Konkret:
              Ich will die "best hours" haben. Werden die aktualisiert wenn der DP mit dem Referenzwert geändert wird?

              Hab mal kurz reingeschaut:
              Wo stelle ich den Vergleichswert dann eigentlich ein?
              Einfach den DP (z.B. tibberlink.0.Homes.xxxCalculations.1.TriggerPrice) aktualisieren?

              Und wo finde ich denn das Chart?
              Ist das das da:
              tibberlink.0.Homes.xxx.PricesToday.json

              Bin da grad etwas planlos 😛

              Bonusfrage: Wenn man z.B. noch nen Speicher hat und da anzeigen will, wann der aus dem Netz geladen werden soll und oberhalb welchen Strompreises er erst entladen soll: Ist angedacht das auch visualisierbar zu machen?

              R Offline
              R Offline
              ReblausGT
              Developer
              wrote on last edited by
              #394

              @merlin123 said in TibberLink Adapter:

              Frage zu den Rechenfunktionen: Wann werden die ausgelöst?
              Konkret:
              Ich will die "best hours" haben. Werden die aktualisiert wenn der DP mit dem Referenzwert geändert wird?

              JA

              Wo stelle ich den Vergleichswert dann eigentlich ein?
              Einfach den DP (z.B. tibberlink.0.Homes.xxxCalculations.1.TriggerPrice) aktualisieren?

              Korrekt

              Und wo finde ich denn das Chart?

              tibberlink.0.Homes.xxx.PricesTotal.jsonFlexCharts

              Bonusfrage: Wenn man z.B. noch nen Speicher hat und da anzeigen will, wann der aus dem Netz geladen werden soll und oberhalb welchen Strompreises er erst entladen soll: Ist angedacht das auch visualisierbar zu machen?

              Du meinst für den SmartBattery Channel ..... noch nicht implementiert, ab ja, natürlich - will ich doch sehen 😉
              Akut geht es noch nicht für alle Channel typen.... bin ich dran

              Merlin123M mcBirneM 2 Replies Last reply
              0
              • B bakerman23

                @reblausgt ich nutze dafür grafana.
                Es gibt vorgefertigte Dashboards mit diversen Anzeigemöglichkeiten. Die Daten werden direkt aus der tibber API geholt.

                R Offline
                R Offline
                ReblausGT
                Developer
                wrote on last edited by
                #395

                @bakerman23 said in TibberLink Adapter:

                @reblausgt ich nutze dafür grafana.
                Es gibt vorgefertigte Dashboards mit diversen Anzeigemöglichkeiten. Die Daten werden direkt aus der tibber API geholt.

                Bin ich voll bei Dir - wenn man den Aufwand mit Grafana - inkl. Server etc. machen will ist das schon ne gute Lösung, aber halt auch deutlich aufwendiger....
                Zudem habe ich das jetzt so gestaltet, dass man sich die Daten für zukünftige Schaltzustände jetzt auch einfacher aus dem System holen kann. - denke ich zumindest 😊

                1 Reply Last reply
                0
                • R ReblausGT

                  @merlin123 said in TibberLink Adapter:

                  Frage zu den Rechenfunktionen: Wann werden die ausgelöst?
                  Konkret:
                  Ich will die "best hours" haben. Werden die aktualisiert wenn der DP mit dem Referenzwert geändert wird?

                  JA

                  Wo stelle ich den Vergleichswert dann eigentlich ein?
                  Einfach den DP (z.B. tibberlink.0.Homes.xxxCalculations.1.TriggerPrice) aktualisieren?

                  Korrekt

                  Und wo finde ich denn das Chart?

                  tibberlink.0.Homes.xxx.PricesTotal.jsonFlexCharts

                  Bonusfrage: Wenn man z.B. noch nen Speicher hat und da anzeigen will, wann der aus dem Netz geladen werden soll und oberhalb welchen Strompreises er erst entladen soll: Ist angedacht das auch visualisierbar zu machen?

                  Du meinst für den SmartBattery Channel ..... noch nicht implementiert, ab ja, natürlich - will ich doch sehen 😉
                  Akut geht es noch nicht für alle Channel typen.... bin ich dran

                  Merlin123M Offline
                  Merlin123M Offline
                  Merlin123
                  wrote on last edited by Merlin123
                  #396

                  @reblausgt sagte in TibberLink Adapter:

                  tibberlink.0.Homes.xxx.PricesTotal.jsonFlexCharts

                  Irgendwas mache ich falsch... Ich habe jetzt das Template in den JSON Editor der Instanz kopiert (also die 3 Einträge, die da drin waren, durch das Template ersetzt) und es wird auch ein JSON erzeugt.
                  Versuche ich aber
                  http://192.168.0.251:8082/flexcharts/echarts.html?source=state&id=tibberlink.0.Homes.xxx.PricesTotal.jsonFlexCharts
                  in einem iFrame anzuzeigen kommt nix.

                  Das JSON sieht so aus:

                  option = {
                  	backgroundColor: "rgb(232, 232, 232)",
                  	title: {
                  		text: "Tibber Price",
                  	},
                  	tooltip: {
                  		trigger: "axis",
                  		axisPointer: {
                  			type: "cross"
                  		}
                  	},
                  	grid: { // Randabstände
                  		left: "10%", right: "4%", top: "8%", bottom: "8%"
                  	},
                  	xAxis: {
                  		type: "category",
                  		boundaryGap: false,
                  		data: ["02.01.\n00:00","02.01.\n01:00","02.01.\n02:00","02.01.\n03:00","02.01.\n04:00","02.01.\n05:00","02.01.\n06:00","02.01.\n07:00","02.01.\n08:00","02.01.\n09:00","02.01.\n10:00","02.01.\n11:00","02.01.\n12:00","02.01.\n13:00","02.01.\n14:00","02.01.\n15:00","02.01.\n16:00","02.01.\n17:00","02.01.\n18:00","02.01.\n19:00","02.01.\n20:00","02.01.\n21:00","02.01.\n22:00","02.01.\n23:00","03.01.\n00:00"]
                  	},
                  	yAxis: {
                  		type: "value",
                  		axisLabel: {formatter: "{value} ct/kWh"},
                  		axisPointer: {
                  			snap: true
                  		}
                  	},
                  	visualMap: {
                  		min: 0.2,
                  		max: 0.3,
                  		inRange: {
                  			color: ["green", "yellow", "red"] // Verlauf von grün über gelb nach rot
                  		},
                  		show: false
                  	},
                  	series: [
                  		{
                  			name: "Total",
                  			type: "line",
                  			step: "end",
                  			symbol: "none",
                  			data: [0.2059,0.2047,0.207,0.2112,0.218,0.2387,0.2828,0.3205,0.3475,0.3543,0.3532,0.3456,0.3409,0.3384,0.3483,0.3577,0.3678,0.3848,0.3849,0.3685,0.3576,0.3454,0.3378,0.301,0.301],
                  
                  			markArea: {
                  				itemStyle: {
                  					color: "rgba(120, 200, 120, 0.2)"
                  				},
                  				data: [
                  					%%CalcChannelsData%%
                  				]
                  			}
                  		}
                  	]
                  };
                  

                  Was mir auch aufgefallen ist:
                  Ich habe den TriggerPrice geändert, das Diagramm wurde aber nicht aktualisiert

                  Beta-Tester

                  R 1 Reply Last reply
                  0
                  • SMSS Offline
                    SMSS Offline
                    SMS
                    wrote on last edited by
                    #397

                    Hi!

                    Wie kann ich denn das hier auswerten?

                    bbb30f6c-3c29-4e70-8213-d95f92d6ccda-grafik.png

                    Vielen Dank!

                    Merlin123M paul53P 2 Replies Last reply
                    0
                    • SMSS SMS

                      Hi!

                      Wie kann ich denn das hier auswerten?

                      bbb30f6c-3c29-4e70-8213-d95f92d6ccda-grafik.png

                      Vielen Dank!

                      Merlin123M Offline
                      Merlin123M Offline
                      Merlin123
                      wrote on last edited by
                      #398

                      @sms Was meinst Du mit Auswerten? Ist ein JSON, kann man gut mit Blockly zerlegen.

                      Beta-Tester

                      SMSS 1 Reply Last reply
                      0
                      • Merlin123M Merlin123

                        @sms Was meinst Du mit Auswerten? Ist ein JSON, kann man gut mit Blockly zerlegen.

                        SMSS Offline
                        SMSS Offline
                        SMS
                        wrote on last edited by
                        #399

                        @merlin123 und wie? Habe ich noch nie gemacht.

                        R Merlin123M 2 Replies Last reply
                        0
                        • SMSS SMS

                          @merlin123 und wie? Habe ich noch nie gemacht.

                          R Offline
                          R Offline
                          ReblausGT
                          Developer
                          wrote on last edited by
                          #400

                          @sms said in TibberLink Adapter:

                          @merlin123 und wie? Habe ich noch nie gemacht.

                          Wenn ich ein wenig Werbung machen darf.... ChatGPT und seine Brüder sind sehr hilfreich bei solchen Dingen... Blockly kann der aber nicht, er würde direkt JavaScript erstellen... dann aber sehr einfach mit "schau mal die Daten: 'kjdfhshs' ich bräuchte bitte ein Liste der Totalen Kosten mit den Mittelwerten alle 4h und ...."

                          Was willst Du denn zerlegen? Bzw. was ist das Ziel?

                          1 Reply Last reply
                          0
                          • Merlin123M Merlin123

                            @reblausgt sagte in TibberLink Adapter:

                            tibberlink.0.Homes.xxx.PricesTotal.jsonFlexCharts

                            Irgendwas mache ich falsch... Ich habe jetzt das Template in den JSON Editor der Instanz kopiert (also die 3 Einträge, die da drin waren, durch das Template ersetzt) und es wird auch ein JSON erzeugt.
                            Versuche ich aber
                            http://192.168.0.251:8082/flexcharts/echarts.html?source=state&id=tibberlink.0.Homes.xxx.PricesTotal.jsonFlexCharts
                            in einem iFrame anzuzeigen kommt nix.

                            Das JSON sieht so aus:

                            option = {
                            	backgroundColor: "rgb(232, 232, 232)",
                            	title: {
                            		text: "Tibber Price",
                            	},
                            	tooltip: {
                            		trigger: "axis",
                            		axisPointer: {
                            			type: "cross"
                            		}
                            	},
                            	grid: { // Randabstände
                            		left: "10%", right: "4%", top: "8%", bottom: "8%"
                            	},
                            	xAxis: {
                            		type: "category",
                            		boundaryGap: false,
                            		data: ["02.01.\n00:00","02.01.\n01:00","02.01.\n02:00","02.01.\n03:00","02.01.\n04:00","02.01.\n05:00","02.01.\n06:00","02.01.\n07:00","02.01.\n08:00","02.01.\n09:00","02.01.\n10:00","02.01.\n11:00","02.01.\n12:00","02.01.\n13:00","02.01.\n14:00","02.01.\n15:00","02.01.\n16:00","02.01.\n17:00","02.01.\n18:00","02.01.\n19:00","02.01.\n20:00","02.01.\n21:00","02.01.\n22:00","02.01.\n23:00","03.01.\n00:00"]
                            	},
                            	yAxis: {
                            		type: "value",
                            		axisLabel: {formatter: "{value} ct/kWh"},
                            		axisPointer: {
                            			snap: true
                            		}
                            	},
                            	visualMap: {
                            		min: 0.2,
                            		max: 0.3,
                            		inRange: {
                            			color: ["green", "yellow", "red"] // Verlauf von grün über gelb nach rot
                            		},
                            		show: false
                            	},
                            	series: [
                            		{
                            			name: "Total",
                            			type: "line",
                            			step: "end",
                            			symbol: "none",
                            			data: [0.2059,0.2047,0.207,0.2112,0.218,0.2387,0.2828,0.3205,0.3475,0.3543,0.3532,0.3456,0.3409,0.3384,0.3483,0.3577,0.3678,0.3848,0.3849,0.3685,0.3576,0.3454,0.3378,0.301,0.301],
                            
                            			markArea: {
                            				itemStyle: {
                            					color: "rgba(120, 200, 120, 0.2)"
                            				},
                            				data: [
                            					%%CalcChannelsData%%
                            				]
                            			}
                            		}
                            	]
                            };
                            

                            Was mir auch aufgefallen ist:
                            Ich habe den TriggerPrice geändert, das Diagramm wurde aber nicht aktualisiert

                            R Offline
                            R Offline
                            ReblausGT
                            Developer
                            wrote on last edited by
                            #401

                            @merlin123 said in TibberLink Adapter:

                            Irgendwas mache ich falsch... Ich habe jetzt das Template in den JSON Editor der Instanz kopiert (also die 3 Einträge, die da drin waren, durch das Template ersetzt) und es wird auch ein JSON erzeugt.
                            Versuche ich aber
                            http://192.168.0.251:8082/flexcharts/echarts.html?source=state&id=tibberlink.0.Homes.xxx.PricesTotal.jsonFlexCharts
                            in einem iFrame anzuzeigen kommt nix.

                            lösch mal das aus dem erzeugten JSON raus und schau ob er es dann darstellt - das wär mal die halbe Miete:

                            			markArea: {
                            				itemStyle: {
                            					color: "rgba(120, 200, 120, 0.2)"
                            				},
                            				data: [
                            					%%CalcChannelsData%%
                            				]
                            			}
                            

                            Es hat bei Dir den Channel Data nicht eingetragen... evtl. hast Du auch nur Channel Typen die noch nicht unterstützt sind (die GIT Version von Gestern Abend kann da schon wieder mehr) - für den Fall dass keine Channel Daten vorhanden sind muss ich den Platzhalter noch passend ersetzen.... sehr gut! Da hast Du einen Bug gefunden 😉

                            Was mir auch aufgefallen ist:
                            Ich habe den TriggerPrice geändert, das Diagramm wurde aber nicht aktualisiert

                            Stimmt. Die Rohdaten werden schon erzeugt - ich muss nur noch einen Trigger freischalten dass er den jsonFlexCharts neu erstellt (aufgrund der Aufteilung der Programmteile gibt es da noch ein zu umschiffendes Hindernis) - aber das kommt noch... akut hilft ein Adapterneustart zum Probieren, oder die nächste volle Stunde.

                            Zudem habe ich gestern evtl. eine Lösung gefunden für das "zu viel Text bei mehreren Channels" Problem:
                            a70117d2-6504-404c-968d-6c4195616c80-image.png

                            Merlin123M 1 Reply Last reply
                            0
                            • SMSS SMS

                              Hi!

                              Wie kann ich denn das hier auswerten?

                              bbb30f6c-3c29-4e70-8213-d95f92d6ccda-grafik.png

                              Vielen Dank!

                              paul53P Offline
                              paul53P Offline
                              paul53
                              wrote on last edited by paul53
                              #402

                              @sms sagte: Wie kann ich denn das hier auswerten?

                              Bitte das komplette JSON in Code tags zeigen und angeben, welche Werte benötigt werden.

                              EDIT: Beispiel für eine Lesekonvertierung in einem Alias vom Typ "Zahl":

                              JSON.parse(val)[0].cost
                              

                              Bitte verzichtet auf Chat-Nachrichten, denn die Handhabung ist grauenhaft !
                              Produktiv: RPi 2 mit S.USV, HM-MOD-RPI und SLC-USB-Stick mit root fs

                              SMSS 1 Reply Last reply
                              0
                              • SMSS SMS

                                @merlin123 und wie? Habe ich noch nie gemacht.

                                Merlin123M Offline
                                Merlin123M Offline
                                Merlin123
                                wrote on last edited by
                                #403

                                @sms In Blockly gibt es den Block, damit kann man Attribute aus nem Json rausziehen. Schau Dir mal die Doku dazu an.

                                Screenshot 2025-01-02 195210.png

                                Beta-Tester

                                1 Reply Last reply
                                0
                                • R ReblausGT

                                  @merlin123 said in TibberLink Adapter:

                                  Irgendwas mache ich falsch... Ich habe jetzt das Template in den JSON Editor der Instanz kopiert (also die 3 Einträge, die da drin waren, durch das Template ersetzt) und es wird auch ein JSON erzeugt.
                                  Versuche ich aber
                                  http://192.168.0.251:8082/flexcharts/echarts.html?source=state&id=tibberlink.0.Homes.xxx.PricesTotal.jsonFlexCharts
                                  in einem iFrame anzuzeigen kommt nix.

                                  lösch mal das aus dem erzeugten JSON raus und schau ob er es dann darstellt - das wär mal die halbe Miete:

                                  			markArea: {
                                  				itemStyle: {
                                  					color: "rgba(120, 200, 120, 0.2)"
                                  				},
                                  				data: [
                                  					%%CalcChannelsData%%
                                  				]
                                  			}
                                  

                                  Es hat bei Dir den Channel Data nicht eingetragen... evtl. hast Du auch nur Channel Typen die noch nicht unterstützt sind (die GIT Version von Gestern Abend kann da schon wieder mehr) - für den Fall dass keine Channel Daten vorhanden sind muss ich den Platzhalter noch passend ersetzen.... sehr gut! Da hast Du einen Bug gefunden 😉

                                  Was mir auch aufgefallen ist:
                                  Ich habe den TriggerPrice geändert, das Diagramm wurde aber nicht aktualisiert

                                  Stimmt. Die Rohdaten werden schon erzeugt - ich muss nur noch einen Trigger freischalten dass er den jsonFlexCharts neu erstellt (aufgrund der Aufteilung der Programmteile gibt es da noch ein zu umschiffendes Hindernis) - aber das kommt noch... akut hilft ein Adapterneustart zum Probieren, oder die nächste volle Stunde.

                                  Zudem habe ich gestern evtl. eine Lösung gefunden für das "zu viel Text bei mehreren Channels" Problem:
                                  a70117d2-6504-404c-968d-6c4195616c80-image.png

                                  Merlin123M Offline
                                  Merlin123M Offline
                                  Merlin123
                                  wrote on last edited by
                                  #404

                                  @reblausgt Ich hatte "Beste Kosten" als Typ gewählt.

                                  Hab eben nochmal von Git geladen, ist weiterhin die Version 4.2.0

                                  JSON sieht so aus: (Hab jetzt nicht verglichen, ob das identisch ist)

                                  option = {
                                  	backgroundColor: "rgb(232, 232, 232)",
                                  	title: {
                                  		text: "Tibber Price",
                                  	},
                                  	tooltip: {
                                  		trigger: "axis",
                                  		axisPointer: {
                                  			type: "cross"
                                  		}
                                  	},
                                  	grid: { // Randabstände
                                  		left: "10%", right: "4%", top: "8%", bottom: "8%"
                                  	},
                                  	xAxis: {
                                  		type: "category",
                                  		boundaryGap: false,
                                  		data: ["02.01.\n00:00","02.01.\n01:00","02.01.\n02:00","02.01.\n03:00","02.01.\n04:00","02.01.\n05:00","02.01.\n06:00","02.01.\n07:00","02.01.\n08:00","02.01.\n09:00","02.01.\n10:00","02.01.\n11:00","02.01.\n12:00","02.01.\n13:00","02.01.\n14:00","02.01.\n15:00","02.01.\n16:00","02.01.\n17:00","02.01.\n18:00","02.01.\n19:00","02.01.\n20:00","02.01.\n21:00","02.01.\n22:00","02.01.\n23:00","03.01.\n00:00","03.01.\n01:00","03.01.\n02:00","03.01.\n03:00","03.01.\n04:00","03.01.\n05:00","03.01.\n06:00","03.01.\n07:00","03.01.\n08:00","03.01.\n09:00","03.01.\n10:00","03.01.\n11:00","03.01.\n12:00","03.01.\n13:00","03.01.\n14:00","03.01.\n15:00","03.01.\n16:00","03.01.\n17:00","03.01.\n18:00","03.01.\n19:00","03.01.\n20:00","03.01.\n21:00","03.01.\n22:00","03.01.\n23:00","04.01.\n00:00"]
                                  	},
                                  	yAxis: {
                                  		type: "value",
                                  		axisLabel: {formatter: "{value} ct/kWh"},
                                  		axisPointer: {
                                  			snap: true
                                  		}
                                  	},
                                  	visualMap: {
                                  		min: 0.2,
                                  		max: 0.3,
                                  		inRange: {
                                  			color: ["green", "yellow", "red"] // Verlauf von grün über gelb nach rot
                                  		},
                                  		show: false
                                  	},
                                  	series: [
                                  		{
                                  			name: "Total",
                                  			type: "line",
                                  			step: "end",
                                  			symbol: "none",
                                  			data: [0.2059,0.2047,0.207,0.2112,0.218,0.2387,0.2828,0.3205,0.3475,0.3543,0.3532,0.3456,0.3409,0.3384,0.3483,0.3577,0.3678,0.3848,0.3849,0.3685,0.3576,0.3454,0.3378,0.301,0.3213,0.307,0.304,0.3026,0.2951,0.2979,0.3023,0.2962,0.3011,0.299,0.2953,0.2867,0.2861,0.2955,0.2967,0.3044,0.3284,0.3417,0.3398,0.3396,0.3377,0.3312,0.3198,0.3083,0.3083],
                                  
                                  			markArea: {
                                  				itemStyle: {
                                  					color: "rgba(120, 200, 120, 0.2)"
                                  				},
                                  				data: [
                                  					%%CalcChannelsData%%
                                  				]
                                  			}
                                  		}
                                  	]
                                  };
                                  

                                  In der Instanz sieht es so aus: (Muss da bei Zielzustand was rein? Wenn ja: Was?)

                                  Screenshot 2025-01-02 195928.png

                                  Lösche ich den Teil raus, den Du geschrieben hast, kommt das raus:

                                  Screenshot 2025-01-02 200430.png

                                  Was für Preise der da aber anzeigt ist mir etwas rätselhaft.... Sind "etwas" niedrig 😛

                                  Beta-Tester

                                  R 1 Reply Last reply
                                  0
                                  • Merlin123M Merlin123

                                    @reblausgt Ich hatte "Beste Kosten" als Typ gewählt.

                                    Hab eben nochmal von Git geladen, ist weiterhin die Version 4.2.0

                                    JSON sieht so aus: (Hab jetzt nicht verglichen, ob das identisch ist)

                                    option = {
                                    	backgroundColor: "rgb(232, 232, 232)",
                                    	title: {
                                    		text: "Tibber Price",
                                    	},
                                    	tooltip: {
                                    		trigger: "axis",
                                    		axisPointer: {
                                    			type: "cross"
                                    		}
                                    	},
                                    	grid: { // Randabstände
                                    		left: "10%", right: "4%", top: "8%", bottom: "8%"
                                    	},
                                    	xAxis: {
                                    		type: "category",
                                    		boundaryGap: false,
                                    		data: ["02.01.\n00:00","02.01.\n01:00","02.01.\n02:00","02.01.\n03:00","02.01.\n04:00","02.01.\n05:00","02.01.\n06:00","02.01.\n07:00","02.01.\n08:00","02.01.\n09:00","02.01.\n10:00","02.01.\n11:00","02.01.\n12:00","02.01.\n13:00","02.01.\n14:00","02.01.\n15:00","02.01.\n16:00","02.01.\n17:00","02.01.\n18:00","02.01.\n19:00","02.01.\n20:00","02.01.\n21:00","02.01.\n22:00","02.01.\n23:00","03.01.\n00:00","03.01.\n01:00","03.01.\n02:00","03.01.\n03:00","03.01.\n04:00","03.01.\n05:00","03.01.\n06:00","03.01.\n07:00","03.01.\n08:00","03.01.\n09:00","03.01.\n10:00","03.01.\n11:00","03.01.\n12:00","03.01.\n13:00","03.01.\n14:00","03.01.\n15:00","03.01.\n16:00","03.01.\n17:00","03.01.\n18:00","03.01.\n19:00","03.01.\n20:00","03.01.\n21:00","03.01.\n22:00","03.01.\n23:00","04.01.\n00:00"]
                                    	},
                                    	yAxis: {
                                    		type: "value",
                                    		axisLabel: {formatter: "{value} ct/kWh"},
                                    		axisPointer: {
                                    			snap: true
                                    		}
                                    	},
                                    	visualMap: {
                                    		min: 0.2,
                                    		max: 0.3,
                                    		inRange: {
                                    			color: ["green", "yellow", "red"] // Verlauf von grün über gelb nach rot
                                    		},
                                    		show: false
                                    	},
                                    	series: [
                                    		{
                                    			name: "Total",
                                    			type: "line",
                                    			step: "end",
                                    			symbol: "none",
                                    			data: [0.2059,0.2047,0.207,0.2112,0.218,0.2387,0.2828,0.3205,0.3475,0.3543,0.3532,0.3456,0.3409,0.3384,0.3483,0.3577,0.3678,0.3848,0.3849,0.3685,0.3576,0.3454,0.3378,0.301,0.3213,0.307,0.304,0.3026,0.2951,0.2979,0.3023,0.2962,0.3011,0.299,0.2953,0.2867,0.2861,0.2955,0.2967,0.3044,0.3284,0.3417,0.3398,0.3396,0.3377,0.3312,0.3198,0.3083,0.3083],
                                    
                                    			markArea: {
                                    				itemStyle: {
                                    					color: "rgba(120, 200, 120, 0.2)"
                                    				},
                                    				data: [
                                    					%%CalcChannelsData%%
                                    				]
                                    			}
                                    		}
                                    	]
                                    };
                                    

                                    In der Instanz sieht es so aus: (Muss da bei Zielzustand was rein? Wenn ja: Was?)

                                    Screenshot 2025-01-02 195928.png

                                    Lösche ich den Teil raus, den Du geschrieben hast, kommt das raus:

                                    Screenshot 2025-01-02 200430.png

                                    Was für Preise der da aber anzeigt ist mir etwas rätselhaft.... Sind "etwas" niedrig 😛

                                    R Offline
                                    R Offline
                                    ReblausGT
                                    Developer
                                    wrote on last edited by ReblausGT
                                    #405

                                    @merlin123 said in TibberLink Adapter:

                                    @reblausgt Ich hatte "Beste Kosten" als Typ gewählt.
                                    Hab eben nochmal von Git geladen, ist weiterhin die Version 4.2.0

                                    ja, das bleibt auch so bis die released wird - vor 5 Minuten aktualisiert... jetzt schreibt er einen Dummy in das JSON wenn kein Channel Daten liefert

                                    In der Instanz sieht es so aus: (Muss da bei Zielzustand was rein? Wenn ja: Was?)

                                    Muss nichts rein - ist optional. Wenn Du einen Zielzustand eingibst dann wird der direkt geschaltet, bzw. beschrieben mit den Werten die Du vorgibst. Wenn du keinen State auswählst macht er einen "Output" im Folder des Channels.

                                    Screenshot 2025-01-02 195928.png

                                    Was für Preise der da aber anzeigt ist mir etwas rätselhaft.... Sind "etwas" niedrig 😛

                                    Äh - ja die sind gut. Würde ich nehmen.... Kann es sein dass du den Demo Token im Adapter hast? Da kommen solche Preise raus.
                                    Eigentlich sind das die "Total" Preise... Und bei mir auch identisch mit denen der Handy APP

                                    Stell doch mal den Channel so ein, dass er "Einschaltet" .... wenn du im States-Folder des Channels dann den Channel aktivierst, dann sollte auch ein state OutputJSON befüllt werden.... Das sind die Daten die dann auch in den Graph kommen.

                                    Merlin123M 1 Reply Last reply
                                    0
                                    • paul53P paul53

                                      @sms sagte: Wie kann ich denn das hier auswerten?

                                      Bitte das komplette JSON in Code tags zeigen und angeben, welche Werte benötigt werden.

                                      EDIT: Beispiel für eine Lesekonvertierung in einem Alias vom Typ "Zahl":

                                      JSON.parse(val)[0].cost
                                      
                                      SMSS Offline
                                      SMSS Offline
                                      SMS
                                      wrote on last edited by
                                      #406

                                      @paul53 Hier wäre der Wert "totalCost" für mich interessant:

                                      [{"from":"2025-01-01T00:00:00.000+01:00","to":"2025-01-02T00:00:00.000+01:00","cost":1.5221652831,"unitPrice":0.210564,"unitPriceVAT":0.033619,"consumption":7.229,"consumptionUnit":"kWh","totalCost":1.4510258931,"unitCost":1.5221652831,"currency":"EUR"}]
                                      
                                      paul53P 1 Reply Last reply
                                      0
                                      • SMSS SMS

                                        @paul53 Hier wäre der Wert "totalCost" für mich interessant:

                                        [{"from":"2025-01-01T00:00:00.000+01:00","to":"2025-01-02T00:00:00.000+01:00","cost":1.5221652831,"unitPrice":0.210564,"unitPriceVAT":0.033619,"consumption":7.229,"consumptionUnit":"kWh","totalCost":1.4510258931,"unitCost":1.5221652831,"currency":"EUR"}]
                                        
                                        paul53P Offline
                                        paul53P Offline
                                        paul53
                                        wrote on last edited by
                                        #407

                                        @sms sagte: Wert "totalCost"

                                        Dann Lesekonvertierung

                                        JSON.parse(val)[0].totalCost
                                        

                                        Bitte verzichtet auf Chat-Nachrichten, denn die Handhabung ist grauenhaft !
                                        Produktiv: RPi 2 mit S.USV, HM-MOD-RPI und SLC-USB-Stick mit root fs

                                        SMSS 1 Reply Last reply
                                        0
                                        • R ReblausGT

                                          @merlin123 said in TibberLink Adapter:

                                          @reblausgt Ich hatte "Beste Kosten" als Typ gewählt.
                                          Hab eben nochmal von Git geladen, ist weiterhin die Version 4.2.0

                                          ja, das bleibt auch so bis die released wird - vor 5 Minuten aktualisiert... jetzt schreibt er einen Dummy in das JSON wenn kein Channel Daten liefert

                                          In der Instanz sieht es so aus: (Muss da bei Zielzustand was rein? Wenn ja: Was?)

                                          Muss nichts rein - ist optional. Wenn Du einen Zielzustand eingibst dann wird der direkt geschaltet, bzw. beschrieben mit den Werten die Du vorgibst. Wenn du keinen State auswählst macht er einen "Output" im Folder des Channels.

                                          Screenshot 2025-01-02 195928.png

                                          Was für Preise der da aber anzeigt ist mir etwas rätselhaft.... Sind "etwas" niedrig 😛

                                          Äh - ja die sind gut. Würde ich nehmen.... Kann es sein dass du den Demo Token im Adapter hast? Da kommen solche Preise raus.
                                          Eigentlich sind das die "Total" Preise... Und bei mir auch identisch mit denen der Handy APP

                                          Stell doch mal den Channel so ein, dass er "Einschaltet" .... wenn du im States-Folder des Channels dann den Channel aktivierst, dann sollte auch ein state OutputJSON befüllt werden.... Das sind die Daten die dann auch in den Graph kommen.

                                          Merlin123M Offline
                                          Merlin123M Offline
                                          Merlin123
                                          wrote on last edited by Merlin123
                                          #408

                                          @reblausgt Die Versionsnummer bei Änderungen gleich zu lassen finde ich nicht gut. Man weiß dann nie, welche Version man gerade installiert hat. Jede Änderung (oder mehrere, wenn sie zeitgleich aktiv werden) sollte eine neue Versionsnummer auslösen.

                                          Demo Token habe ich nicht. Die Preise werden sonst richtig angezeigt

                                          Das OutpurJSON sieht so aus:

                                          [
                                            {
                                              "hour": 0,
                                              "startsAt": "2025-01-02T00:00:00.000+01:00",
                                              "total": 0.2059,
                                              "output": true
                                            },
                                            {
                                              "hour": 1,
                                              "startsAt": "2025-01-02T01:00:00.000+01:00",
                                              "total": 0.2047,
                                              "output": true
                                            },
                                            {
                                              "hour": 2,
                                              "startsAt": "2025-01-02T02:00:00.000+01:00",
                                              "total": 0.207,
                                              "output": true
                                            },
                                            {
                                              "hour": 3,
                                              "startsAt": "2025-01-02T03:00:00.000+01:00",
                                              "total": 0.2112,
                                              "output": true
                                            },
                                            {
                                              "hour": 4,
                                              "startsAt": "2025-01-02T04:00:00.000+01:00",
                                              "total": 0.218,
                                              "output": true
                                            },
                                            {
                                              "hour": 5,
                                              "startsAt": "2025-01-02T05:00:00.000+01:00",
                                              "total": 0.2387,
                                              "output": true
                                            },
                                            {
                                              "hour": 6,
                                              "startsAt": "2025-01-02T06:00:00.000+01:00",
                                              "total": 0.2828,
                                              "output": true
                                            },
                                            {
                                              "hour": 7,
                                              "startsAt": "2025-01-02T07:00:00.000+01:00",
                                              "total": 0.3205,
                                              "output": true
                                            },
                                            {
                                              "hour": 8,
                                              "startsAt": "2025-01-02T08:00:00.000+01:00",
                                              "total": 0.3475,
                                              "output": true
                                            },
                                            {
                                              "hour": 9,
                                              "startsAt": "2025-01-02T09:00:00.000+01:00",
                                              "total": 0.3543,
                                              "output": true
                                            },
                                            {
                                              "hour": 10,
                                              "startsAt": "2025-01-02T10:00:00.000+01:00",
                                              "total": 0.3532,
                                              "output": true
                                            },
                                            {
                                              "hour": 11,
                                              "startsAt": "2025-01-02T11:00:00.000+01:00",
                                              "total": 0.3456,
                                              "output": true
                                            },
                                            {
                                              "hour": 12,
                                              "startsAt": "2025-01-02T12:00:00.000+01:00",
                                              "total": 0.3409,
                                              "output": true
                                            },
                                            {
                                              "hour": 13,
                                              "startsAt": "2025-01-02T13:00:00.000+01:00",
                                              "total": 0.3384,
                                              "output": true
                                            },
                                            {
                                              "hour": 14,
                                              "startsAt": "2025-01-02T14:00:00.000+01:00",
                                              "total": 0.3483,
                                              "output": true
                                            },
                                            {
                                              "hour": 15,
                                              "startsAt": "2025-01-02T15:00:00.000+01:00",
                                              "total": 0.3577,
                                              "output": true
                                            },
                                            {
                                              "hour": 16,
                                              "startsAt": "2025-01-02T16:00:00.000+01:00",
                                              "total": 0.3678,
                                              "output": true
                                            },
                                            {
                                              "hour": 17,
                                              "startsAt": "2025-01-02T17:00:00.000+01:00",
                                              "total": 0.3848,
                                              "output": true
                                            },
                                            {
                                              "hour": 18,
                                              "startsAt": "2025-01-02T18:00:00.000+01:00",
                                              "total": 0.3849,
                                              "output": true
                                            },
                                            {
                                              "hour": 19,
                                              "startsAt": "2025-01-02T19:00:00.000+01:00",
                                              "total": 0.3685,
                                              "output": true
                                            },
                                            {
                                              "hour": 20,
                                              "startsAt": "2025-01-02T20:00:00.000+01:00",
                                              "total": 0.3576,
                                              "output": true
                                            },
                                            {
                                              "hour": 21,
                                              "startsAt": "2025-01-02T21:00:00.000+01:00",
                                              "total": 0.3454,
                                              "output": true
                                            },
                                            {
                                              "hour": 22,
                                              "startsAt": "2025-01-02T22:00:00.000+01:00",
                                              "total": 0.3378,
                                              "output": true
                                            },
                                            {
                                              "hour": 23,
                                              "startsAt": "2025-01-02T23:00:00.000+01:00",
                                              "total": 0.301,
                                              "output": true
                                            }
                                          ]
                                          

                                          Preise in Euro, sieht richtig aus...

                                          Im Chart wird aber z.B. 0,3ct/kWh angezeigt, sind aber 0,3€/kWh
                                          Das generierte Chart wird jetzt auch angezeigt.
                                          Wie mache ich da jetzt die Stunden sichtbar, wo der Preis unterhalb des Triggerpreises liegt?

                                          Beta-Tester

                                          mcm1957M 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
                                          FAQ Cloud / IOT
                                          HowTo: Node.js-Update
                                          HowTo: Backup/Restore
                                          Downloads
                                          BLOG

                                          600

                                          Online

                                          32.4k

                                          Users

                                          81.3k

                                          Topics

                                          1.3m

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

                                          • Don't have an account? Register

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