NEWS
TibberLink Adapter
-
-
@sms In Blockly gibt es den Block, damit kann man Attribute aus nem Json rausziehen. Schau Dir mal die Doku dazu an.
-
@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?)
Lösche ich den Teil raus, den Du geschrieben hast, kommt das raus:
Was für Preise der da aber anzeigt ist mir etwas rätselhaft.... Sind "etwas" niedrig
-
@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.0ja, 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.
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 APPStell 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.
-
@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"}]
-
-
@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? -
@merlin123 said in TibberLink Adapter:
@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.
Jede neue Release hat zwingend eine neue Releasenummer. Der Maintainer kann neben den Releaseversionen (a.b.c) auch prereleases (a.b.c-alpha.x) erstellen und via npm anbieten.
Wenn du direkt von Github installierst musst du selbst wissen warum du das tust. Da dies nur für konkrete Tests in Abstimmung mit dem Dev sinnvoll iat, sind Versionsnummern hier irrelevant. Github Installationen haben per Definition keine definierte Versionsnummer. (Du sieht aber die Github SHA - damit kannst ggF auf Github checken welchen Satnd du installiert hats.)
Generell gilt:
Von direkten Installation von GitHub - insbesondere auf produktiven Systemen - wird explizit abgeraten.
GitHub Versionen können sich jederzeit (auch kurzfristig) ändern und durchaus auch in sich inkonsistent und fehlerhaft sein. Versionsangaben von GitHub Installationen sind Schall und Rauch da die Versionsnummer zumindest bei Verwendung der standardmäßigen Umgebung erst im Zuge der Releaseerstellung geändert wird.
Auf explizite Aufforderung durch den Entwickler kann eine GitHub Installation zur Fehlereingrenzung oder zum Test neuer Funktionalität - unter Inkaufnahme des erhöhten Risikos - natürlich erfolgen.
Adapter die nur via GitHub oder npm (also NICHT aus einem der beiden Repositories) installierbar sind sind mit erhöhter Vorsicht zu betrachten. Hier sollte der Entwickler drum ersucht werden eine Aufnahme in die Repositories zu veranlassen indem z.B. ein Issue im Adapterrepository erstellt wird.
Und falls es irgendwie unklar ist:
ioBroker unterstützt folgende Arten von Installation:
-
aus dem STABLE Repository
Das sind Adapter Releases die keine groben Fehler aufweisen (sollten). Natürlich kann es auch dort Fehler geben, die Behebung davon obliegt dem jeweiligen Dev und kann ggF auch dauern.
-
aus dem LATEST Repository
Das sind Adapter Releases die neu erstellt wurden und nur rudimentär getestet sind - oft auch als BETA Releases bezeichnet. Releases aus dem LATEST sind primär für unsere zahlreichen freiwilligen Tester gedacht. BETA / LATEST Releases können durchaus Fehler aufweisen - auch wenn ich davon ausgehe dass jeder aintainer dies zu vermeiden versucht. Vom Einsatz auf produktiven Systemen wird abgeraten außer man braucht irgenein neues Feature (z.B. neues Gerät) unbedingt. Hier muss dann jeder Entscheiden was ihm wichtig ist.
-
direkt von GITHUB
Von Installationen direkt aus Giuthub wird definitiv abgeraten außer auf Anweisung des Maintainers und für den Fall dass man gemeinsam mit diesem etwas testen will. Details siehe oben.
-
direkt von npm
Diese Installation kann erforderlich sein, wenn man eine bestimmte Version installieren möchte / muss. Im Normalfall sollte man direkte npm Installationen ebenso meiden wie direkte GitHub Installationen - ausgenommen um z.B. zu einer bekannten Version downzugraden - obwohl hier wenigstens ein definierter Stand garantiert ist.
Adapter die NUR via npm und/oder nur via GitHub installierbar sind sollte man meiden - diese wurden nicht mal einem rudimentären Review unterzogen und sollten mit dem Attribut "vollständig auf eigenes Risiko verwenden" installiert werden. Hier empfiehlt es sich den Developer zu ersuchen eine Aufnahme in die Repos zu veranlassen. Wenn dieser darauf nicht reagiert sollte man von einer eher kurzen und unklaren Lebensdauer des Adapters ausgehen. Support meiner-/unsererseits für solche Adapter ist mit sicherheit minimalistisch.
-
-
@mcm1957 Und diese Antwort sagt mir jetzt was in Bezug auf "Neue Version = neue Versionsnummer"?
Ich habe lediglich gesagt, dass aus meiner Sicht eine neue Version eine neue Versionsnummer bekommen sollte, sobald diese "irgendwo" veröffentlicht wird.
Ich empfinde eine saubere Versionierung auch (oder vielleicht sogar gerade) bei Tests sehr wichtig und sinnvoll.Ich hab ja oben das beste Beispiel geliefert:
Ich hatte V4.2.0 installiert. Nachdem ich neu von Git installiert hatte, stand da weiterhin 4.2.0.
Wurde jetzt wirklich die neue Version installiert? Oder ging vielleicht was schief?
und: Ich schreibe "bei V4.2.0" ist mir XY aufgefallen. Ein anderer sagt "Nö, das geht bei mir mit 4.2.0". Kein Mensch kann dann sagen, ob beide wirklich auf der gleichen Version sind.-Das macht einfach alles unnötig kompliziert und ist halt sehr einfach vermeidbar.
Und wie gesagt: Das ist lediglich meine Meinung zu dem Thema Versionsnummern
-
@merlin123 Martin hat schon Recht... eigentlich sind das Arbeitsstände und keine Releases - damit keine Versionsnummer....
Aber Du hast auch Recht... wenn wir hier im Forum über Stände reden sollte man eine Build Nummer dazu haben. Daher:
Auf GIT gibt es jetzt eine 4.2.0-beta1 .... die aktualisiert die jsonFlexChart jetzt immer auch gleich bei Änderung der dynamischen Channel Config - nicht nur zur vollen Stunde -
@reblausgt Dank dir
Meine Frage bzgl. Markierung und der Hinweis zu den Preisen hast Du gesehen?
-
@merlin123 said in TibberLink Adapter:
Im Chart wird aber z.B. 0,3ct/kWh angezeigt, sind aber 0,3€/kWh
im Template steht
axisLabel: {formatter: "{value} ct/kWh"},
... da muss dann EUR oder € rein... soll ja so sein dass man sich das umbauen kann... du kannst ja auch einen BAR Graph daraus machen oder zur Not einen POLAR Chart....
Wie mache ich da jetzt die Stunden sichtbar, wo der Preis unterhalb des Triggerpreises liegt?
der Channel ist auf active = true? Der Preis hoch genug?
-
@merlin123
FYI: bei der achse geht auch sowas:axisLabel: { formatter: function (value) { return value * 100 + " ct/kWh"; } }
da kann man zur Not auch in andere Währungen umrechnen
-
@reblausgt Danke für den Tipp mit der Beschriftung
Geht jetzt
Muss dann morgen mal schauen wie das Diagramm aussieht, wenn es noch keine Preise vom Folgetag gibt
Wann wird das Diagramm denn neu erzeugt? Zur vollen Stunde oder wenn es neue Preise gibt?NACHTRAG:
Da ist doch noch ein Wurm drin...Der Trigger steht auf 0.303, er zeigt aber für den 3.1. nicht alle Stunden an:
Sind das zu viele "Auto_laden" Blöcke? Oder hat das ne andere Ursache?
-
@merlin123 said in TibberLink Adapter:
Der Trigger steht auf 0.303, er zeigt aber für den 3.1. nicht alle Stunden an:
Sind das zu viele "Auto_laden" Blöcke? Oder hat das ne andere Ursache?
Block Anzahl ist nicht begrenzt. Er macht aber was er soll.... der BestCost Typ arbeitet immer pro Kalendertag. Nachts um 0:00 würde sich dann das Ergebnis ändern.
Für andere Zeiträume nimm die LTF Variante.
Graph JSON wird jetzt jede Stunde neu geschrieben (wenn der aktuelle Preis empfangen wird). Und nach Änderungen der Einstellung.Du kannst übrigens ruhig Leerzeichen in den Channel Namen verwenden.
-
Hallo liebe Leute,
ich bin seit 1.1. diesen Jahres Tibber-Kunde.
Auf meinem Handy läuft alle sehr gut.
Beim einrichten des Tibberlink-Adapters komme ich nicht weiter.
ich habe den API-Token eingetragen, bei Tibber-Haus sollte sich, nach lesen von diversen Anleitungen,
nach Neustart ein Wert eintragen.
Es passiert aber nichts, habe alles ausprobiert, wieder und wieder und jetzt frage ich euch wie es richtig gemacht wird.Freue mich auf eure Hilfe.
PS: Habe die neueste Version 4.1.0
-
@paul53 Wie würde denn mein Blockly aussehen? Kannst du oder jemand mir dabei helfen?
Danke!
-
@reblausgt Leerzeichen: OK
so... nachdem heute der neue Tag ist sieht die Anzeige so aus:
Vorschläge:
- Optional getrennte Diagramme für heute und morgen. Ich persönlich finde es verwirrend, wenn das Diagramm einmal nur heute und einmal heute und morgen anzeigt. (Vielleicht zur Erklärung: Ich bin neuodivers und für mich ist es einfacher, wenn Dinge immer gleich sind)
- Anzeige der Blöcke auch für morgen. Gerade beim Auto Laden ist es ja oft so, dass die billigen Stunden Nachts sind. Und dann die Ladestunden nicht zu sehen ist nicht optimal.
Und allgemein: Danke für Deine Arbeit! Ist echt klasse!
-
@sms sagte in: Wie würde denn mein Blockly aussehen?
-
@paul53 ne... Da wo "Wert" ist kommt der Wert des DPs mit dem JSON rein (also das passt). Bei Attribut der Name des Attributes, z.B.
totalCostDann liefert der Block bei dem JSON aus dem DP
[{"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"}]
1.4510258931
zurückEDIT: Hab das auf Grund des Hinweises von Homoran etwas umformuliert