HTTPMOD: Stündlich Strompreis bei Tibber auslesen

Begonnen von Reinhard.M, 13 Februar 2023, 09:41:16

Vorheriges Thema - Nächstes Thema

Damian

Das Beispiel aus dem ersten Post liest den aktuellen Strompreis der Stunde aus. Kann man über die HTTPMOD-Schnittstelle auch den voraussichtlichen Strompreis der Stunde von morgen auslesen?
Programmierte FHEM-Module: DOIF-FHEM, DOIF-Perl, DOIF-uiTable, THRESHOLD, FHEM-Befehl: IF

Reinhard.M

Ja, gewöhnlich werden um ca. 13:00 Uhr die Stundenpreise des Folgetages veröffentlicht. Wenn man die Werte um 13:300 abruft dürften sie sicher da sein. Werde ich auch noch aufsetzen, bin aber noch nicht dazu gekommen.

Damian

Ich habe etwas rumexperimentiert. Man kann jetzt eine tägliche Prognose in die Zukunft bis zum Ende des Tages darstellen (neue DOIF-Version wurde eingecheckt).

Dazu habe ich diese Definition genommen: https://forum.fhem.de/index.php?topic=130407.msg1264625#msg1264625

Und in einem DOIF um Mitternacht die prognostizierten Werte (total) des Tages ausgelesen und ins Diagramm geschoben:

   
defmod di_collect DOIF { [00:01];;\
my $out;;\
for (my $i=0;;$i<=23;;$i++){\
  $out.=ReadingsVal("EVU_Tibber",sprintf("fc0_%02d_startsAt",$i),"")." ".ReadingsVal("EVU_Tibber",sprintf("fc0_%02d_total",$i),"")."\n";;\
}\
::DOIF_modify_card_data ("di_collect","EVU_Tibber","total","bar1day",0,$out);;\
}
attr di_collect event_Readings total:[EVU_Tibber:total:bar1day]

und mit

devStateIcon {ui_Table::card(ReadingsVal("di_collect","total",""),undef,undef,0,2,90,0,"SEK",undef,"3",",fixedscaling,,,,")}
in Device EVU_Tibber visualisiert - siehe Anhang.
Programmierte FHEM-Module: DOIF-FHEM, DOIF-Perl, DOIF-uiTable, THRESHOLD, FHEM-Befehl: IF

xerion

Hallo Damian,

ich bekomme beim ausführen des Blocks folgenden Fehler.
FHEM Update ist aktuelle von heute (16.04.23)

block_01


condition c01: Can't use string ("") as a HASH ref while "strict refs" in use at ./FHEM/98_DOIF.pm line 1489.
Wechsel jetzt zu Octopus Energy und bekomme 150,00 € Bonus auf deine Rechnung. Die Anmeldung geht super leicht und schnell, klicke dafür einfach meinen persönlichen Empfehlungslink:
 https://share.octopusenergy.de/loved-heron-220.

Damian

Zitat von: xerion am 16 April 2023, 21:01:49Hallo Damian,

ich bekomme beim ausführen des Blocks folgenden Fehler.
FHEM Update ist aktuelle von heute (16.04.23)

block_01


condition c01: Can't use string ("") as a HASH ref while "strict refs" in use at ./FHEM/98_DOIF.pm line 1489.


Vermutlich, weil das Reading total in EVU_Tibber nicht existiert. Setz einfach setreading EVU_Tibber total 0 und schaue, ob im di_collect unter total ein Hash angezeigt wird.
Programmierte FHEM-Module: DOIF-FHEM, DOIF-Perl, DOIF-uiTable, THRESHOLD, FHEM-Befehl: IF

ch.eick

#35
Moin,
ich bekomme auch den HASH Fehler.    <<< Updates sind weiter unten im Post

Beide readings sind vorhanden.
fc0_00_startsAt 2023-04-17 00:00:00
fc0_00_total 0.2873
fc0_01_startsAt 2023-04-17 01:00:00
fc0_01_total 0.283

{ [00:01];
my $out;
for (my $i=0;$i<=23;$i++){
  $out.=ReadingsVal("EVU_Tibber",sprintf("fc0_%02d_startsAt",$i),"")." ".ReadingsVal("EVU_Tibber",sprintf("fc0_%02d_total",$i),"")."\n";
  print($out."\n");    <<< das habe ich mal eingefügt
}
::DOIF_modify_card_data ("EVU_Tibber_ctl","EVU_Tibber","total","bar1day",0,$out);
}

Im Log baut sich dann das $out langsam auf:
2023-04-17 00:00:00 0.2873

2023-04-17 00:00:00 0.2873
2023-04-17 01:00:00 0.283

2023-04-17 00:00:00 0.2873
2023-04-17 01:00:00 0.283
2023-04-17 02:00:00 0.2804

bis dann alle Einträge für das Diagramm da sind.

UPDATE 20230417 08:45
Nach dem "setreading EVU_Tibber total 0" kommt dann
condition c01: Argument "23:00:00" isn't numeric in addition (+) at ./FHEM/98_DOIF.pm line 1723.
UPDATE 20230417 09:33
Das Problem lag an TIMESTAMP, der wegen MySQL ohne "_" gespeichert wurde.
Es muss für das Diagramm "2023-04-17_09:00:00" geschrieben werden.
{ [00:01];
my $out;
my $timestamp;

for (my $i=0;$i<=23;$i++){
  $timestamp = ReadingsVal("EVU_Tibber",sprintf("fc0_%02d_startsAt",$i),"");
  $timestamp =~ s/ /_/g;
  $out.=$timestamp." ".ReadingsVal("EVU_Tibber",sprintf("fc0_%02d_total",$i),"")."\n";
}
::DOIF_modify_card_data("EVU_Tibber_ctl","EVU_Tibber","total","bar1day",0,$out);
}

Für meine Anwendung habe ich das DevstateIcon ins DOIF geschrieben. Dort kommen dann auch noch andere Schedulings und Steuerungen für das EVU_Tibber mit rein. Fortsetzung folgt...

Nun bleiben für mich noch zwei Fragen:

1. Kann ich das DevStateIcon mit meiner uiTable Status Tabelle kombinieren?
2. Bei mir bekomme ich das Diagramm nur bis zur aktuell laufenden Stunde angezeigt, kann ich den ganzen tag im voraus darstellen lassen?


VG Christian
RPI4; Docker; CUNX; Eltako FSB61NP; SamsungTV H-Serie; Sonos; Vallox; Luxtronik; 3x FB7490; Stromzähler mit DvLIR; wunderground; Plenticore 10 mit BYD; EM410; SMAEM; Modbus TCP
Contrib: https://svn.fhem.de/trac/browser/trunk/fhem/contrib/ch.eick

Damian

#36
Da EVU_Tibber sich nicht alleine aktualisiert, könnte man noch im Block nach der Zeitangabe get EVU_Tibber 02_priceAll aufrufen, damit die Preise aktuell sind.

Auch das fehlende Reading könnte man mit setreading EVU_Tibber total 0 im Block erzeugen.

Ich habe ja zwei verschiedene Tibber-Darstellunge hier im Forum dargestellt, die erste bezieht sich auf den aktuellen Strompreis, dort werden die Balken bis zum aktuellen Zeitpunkt dargestellt aufgrund der Events vom Strompreis, der stündlich aktualisiert wurde.

Die Prognose baut dagegen auf deiner ursprünglichen Definition zum Auslesen der Prognosedaten auf, hier gibt es keine Events, deswegen das einmalige Auslesen der Definition um Mitternacht für den ganzen Tag.

Bei mir hat bisher alles funktioniert. Mit bar2day hat man auch den Vergleich zum Vortag.

Was bisher noch nicht geht, ist die Prognose von morgen, dazu müsste ich noch das DOIF anpassen, um weiter in die Zukunft zu schauen.

Im Anhang die Daten von gestern und von heute.
 
Programmierte FHEM-Module: DOIF-FHEM, DOIF-Perl, DOIF-uiTable, THRESHOLD, FHEM-Befehl: IF

ch.eick

Zitat von: Damian am 17 April 2023, 11:09:05Da EVU_Tibber sich nicht alleine aktualisiert, könnte man noch im Block nach der Zeitangabe get EVU_Tibber 02_priceAll aufrufen, damit die Preise aktuell sind.

Auch das fehlende Reading könnte man mit setreading EVU_Tibber total 0 im Block erzeugen.

Ich habe ja zwei verschiedene Tibber-Darstellunge hier im Forum dargestellt, die erste bezieht sich auf den aktuellen Strompreis, dort werden die Balken bis zum aktuellen Zeitpunkt dargestellt aufgrund der Events vom Strompreis, der stündlich aktualisiert wurde.

Die Prognose baut dagegen auf deiner ursprünglichen Definition zum Auslesen der Prognosedaten auf, hier gibt es keine Events, deswegen das einmalige Auslesen der Definition um Mitternacht für den ganzen Tag.

Bei mir hat bisher alles funktioniert. Mit bar2day hat man auch den Vergleich zum Vortag.

Was bisher noch nicht geht, ist die Prognose von morgen, dazu müsste ich noch das DOIF anpassen, um weiter in die Zukunft zu schauen.

Im Anhang die Daten von gestern und von heute.
 

Ich werde auch das DOIF für die Visualisierung direkt verwenden und auch das Scheduling dort machen.
Das EVU_Tibber dient dann nur noch dem Datensammeln.

Momentan verzweifle ich leider an dem Diagramm und verstehe auch nicht das reading total 0. Wofür wird das verwendet oder ist das der HASH mit der Liste?

Die Prognose von morgen würde ich einfach als zweites Diagramm haben wollen. Da würde ich dann in einer zweiten For Schleife durch fc[0|1] laufen. Da ich aber noch nicht verstanden habe, wie die daten ins card kommen und was dort das reading mit den Daten ist, klappt das noch nicht.

Über/unter den Diagrammen möchte ich dann mein stateFormat als uiTable haben.
Da sollen dann die Diagramme auch größer sein, was ich auch noch nicht im Wiki bei den Beispielen gefunden habe.

Es ist noch viel zu lernen :-)
RPI4; Docker; CUNX; Eltako FSB61NP; SamsungTV H-Serie; Sonos; Vallox; Luxtronik; 3x FB7490; Stromzähler mit DvLIR; wunderground; Plenticore 10 mit BYD; EM410; SMAEM; Modbus TCP
Contrib: https://svn.fhem.de/trac/browser/trunk/fhem/contrib/ch.eick

ch.eick

Hier mal ein erster Entwurf für mein EVU_Tibber_Status Device mit DOIF

Die stateFormat Tabelle transferiere ich noch ins uiTable.
Dort möchte ich dann das Diagramm einbinden.

Das EVU_Tibber Scheduling ist bereits ein eigener Block.
RPI4; Docker; CUNX; Eltako FSB61NP; SamsungTV H-Serie; Sonos; Vallox; Luxtronik; 3x FB7490; Stromzähler mit DvLIR; wunderground; Plenticore 10 mit BYD; EM410; SMAEM; Modbus TCP
Contrib: https://svn.fhem.de/trac/browser/trunk/fhem/contrib/ch.eick

Damian

Du kannst statt dem Attribut uiTable das DOIF-Attribut uiState nehmen, wenn du die Tabelle im Status statt darunter im DOIF-Device haben willst. Die Syntax ist identisch.

Zum Thema Reading total:

Der Card-Aufruf erfolgt normalerweise innerhalb der uiTable mit der Triggerangabe des Readings [<device>:<reading>:<collect-Angaben>]. Damit weiß das DOIF-Device welches Reading in welchem Diagramm dargestellt werden soll und sammelt bei jedem Event des Reading intern die darzustellenden Daten und visualisiert diese.

Bei zukünftigen Daten zu einem Reading gibt es keine Events zum Sammeln. Daher habe ich die card_data-Funktion "missbraucht" (mit einer DOIF-Anpassung) Daten der Zukunft ins Diagramm zu laden.

Das DOIF braucht aber immer ein Reading, weil es eigentlich selbstständig Daten des Readings für die Darstellung sammeln will.

Man könnte auch das Reading Strompreis statt total nehmen, dann würde man um Mitternacht die Daten zum Strompreis laden statt zu total. Im Laufe des Tages würden sie falls es Events zum Reading Strompreis gibt (HTTMPOD mit Intervall, wie im Beispiel von Reinhard im ersten Post) überschrieben werden. Wenn die Prognose des Tages und die tatsächlichen Daten übereinstimmen, dann merkt man keinen Unterschied - nur das Reading "Strompreis" wäre auf jeden Fall da. 
Programmierte FHEM-Module: DOIF-FHEM, DOIF-Perl, DOIF-uiTable, THRESHOLD, FHEM-Befehl: IF

ch.eick

#40
Momentan sieht es dann jetzt schon mal so aus...

In dem Pull Down kann man auf den FHEMWEB einzelne Blöcke direkt manuell ausführen.
RPI4; Docker; CUNX; Eltako FSB61NP; SamsungTV H-Serie; Sonos; Vallox; Luxtronik; 3x FB7490; Stromzähler mit DvLIR; wunderground; Plenticore 10 mit BYD; EM410; SMAEM; Modbus TCP
Contrib: https://svn.fhem.de/trac/browser/trunk/fhem/contrib/ch.eick

Damian

#41
So sieht bei mir eine reine DOIF-Definition mit uiTable aus, angesetzt auf das Device EVU_Tibber:

defmod di_tibber DOIF { [00:01];;\
my $out;;\
fhem("get EVU_Tibber 02_priceAll");;\
for (my $i=0;;$i<=23;;$i++){\
  $out.=ReadingsVal("EVU_Tibber",sprintf("fc0_%02d_startsAt",$i),"")." ".(ReadingsVal("EVU_Tibber",sprintf("fc0_%02d_total",$i),"")*100*0.088)."\n";;\
}\
::DOIF_modify_card_data ("$SELF","EVU_Tibber","Strompreis","bar2day",0,$out);;\
}\
{[:01];\
fhem("get EVU_Tibber 01_priceInfo");\
}
attr di_tibber uiTable {package ui_Table;;}\
card([EVU_Tibber:Strompreis:bar2day],undef,"",0,40,90,0,"Cent",undef,"1",",fixedscaling,,,,halfring")


Ich habe den total-Preis auf Cent umgerechnet. Allerdings fand ich eine stündliche Aktualisierung des Strompreises per Intervall im HTTPMOD, wie bei Reinhard, besser. In deiner Definition von EVU_Tipper muss man es wohl, wie ich es sehe, extern per get anstoßen.

Programmierte FHEM-Module: DOIF-FHEM, DOIF-Perl, DOIF-uiTable, THRESHOLD, FHEM-Befehl: IF

Damian

Programmierte FHEM-Module: DOIF-FHEM, DOIF-Perl, DOIF-uiTable, THRESHOLD, FHEM-Befehl: IF

Tueftler1983

Hilfe ich bekomme die Dahrstellung in Fhem einfach nicht hin!!

das ist mein Tibber Device das die Daten ausliest
define myTibber HTTPMOD https://api.tibber.com/v1-beta/gql 3600
attr myTibber alignTime 00:05
attr myTibber devStateIcon {ui_Table::card(ReadingsVal("di_collect","total",""),undef,undef,0,2,90,0,"SEK",undef,"3",",fixedscaling,,,,")}
attr myTibber reading1JSON data_viewer_homes_01_currentSubscription_priceInfo_current_total
attr myTibber reading1Name Strompreis
attr myTibber reading1OExpr $val*100
attr myTibber reading2-1Name Datum
attr myTibber reading2-2Name Uhrzeit
attr myTibber reading2JSON data_viewer_homes_01_currentSubscription_priceInfo_current_startsAt
attr myTibber reading2Regex startsAt":"([\d+-]+)T(\d\d:\d\d)
attr myTibber replacement1Mode text
attr myTibber replacement1Regex %%Token%%
attr myTibber replacement1Value meiner
attr myTibber requestData { "query": "{viewer {homes {currentSubscription {priceInfo {current {total energy tax startsAt} today {total energy tax startsAt } tomorrow {total energy tax startsAt }}}}}}" }
attr myTibber requestHeader1 Content-Type: application/json
attr myTibber requestHeader2 Authorization: Bearer %%Token%%
attr myTibber room Strom
attr myTibber showBody 1
attr myTibber showError 1
attr myTibber userReadings TodayAverage {use List::Util qw(sum);;;;\
my @Preise = split /\|/, ReadingsVal("myTibber","TodayTotal",0.25);;;; return (100 * sum(@Preise) / @Preise);;;; },\
TomorrowAverage {use List::Util qw(sum);;;;\
my @Preise = split /\|/, ReadingsVal("myTibber","TomorrowTotal",0.25);;;; return $Preise[0] eq "NV" ? "NV" : (100 * sum(@Preise) / @Preise);;;; },\
TodayMin {use List::Util qw(min);;;; my @Preise = split /\|/, ReadingsVal("myTibber","TodayTotal",0.25);;;; return (min @Preise);;;;}
#   BUSY       0
#   CFGFN     
#   DEF        https://api.tibber.com/v1-beta/gql 3600
#   FUUID      66de0c5f-f33f-91a4-8a5a-33643964e7a8679e
#   Interval   3600
#   MainURL    https://api.tibber.com/v1-beta/gql
#   ModuleVersion 4.2.0 - 11.8.2023
#   NAME       myTibber
#   NOTIFYDEV  global
#   NR         66028
#   NTFY_ORDER 50-myTibber
#   STATE      ???
#   TYPE       HTTPMOD
#   eventCount 408
#   httpbody   {"data":{"viewer":{"homes":[{"currentSubscription":{"priceInfo":{"current":{"total":0.2739,"energy":0.067,"tax":0.2069,"startsAt":"2024-09-13T14:00:00.000+02:00"},"today":[{"total":0.3132,"energy":0.1,"tax":0.2132,"startsAt":"2024-09-13T00:00:00.000+02:00"},{"total":0.3031,"energy":0.0915,"tax":0.2116,"startsAt":"2024-09-13T01:00:00.000+02:00"},{"total":0.2981,"energy":0.0873,"tax":0.2108,"startsAt":"2024-09-13T02:00:00.000+02:00"},{"total":0.2975,"energy":0.0868,"tax":0.2107,"startsAt":"2024-09-13T03:00:00.000+02:00"},{"total":0.2949,"energy":0.0846,"tax":0.2103,"startsAt":"2024-09-13T04:00:00.000+02:00"},{"total":0.2988,"energy":0.0879,"tax":0.2109,"startsAt":"2024-09-13T05:00:00.000+02:00"},{"total":0.3138,"energy":0.1005,"tax":0.2133,"startsAt":"2024-09-13T06:00:00.000+02:00"},{"total":0.337,"energy":0.12,"tax":0.217,"startsAt":"2024-09-13T07:00:00.000+02:00"},{"total":0.3516,"energy":0.1322,"tax":0.2194,"startsAt":"2024-09-13T08:00:00.000+02:00"},{"total":0.3325,"energy":0.1162,"tax":0.2163,"startsAt":"2024-09-13T09:00:00.000+02:00"},{"total":0.3162,"energy":0.1025,"tax":0.2137,"startsAt":"2024-09-13T10:00:00.000+02:00"},{"total":0.3073,"energy":0.095,"tax":0.2123,"startsAt":"2024-09-13T11:00:00.000+02:00"},{"total":0.2996,"energy":0.0886,"tax":0.211,"startsAt":"2024-09-13T12:00:00.000+02:00"},{"total":0.2864,"energy":0.0775,"tax":0.2089,"startsAt":"2024-09-13T13:00:00.000+02:00"},{"total":0.2739,"energy":0.067,"tax":0.2069,"startsAt":"2024-09-13T14:00:00.000+02:00"},{"total":0.2801,"energy":0.0722,"tax":0.2079,"startsAt":"2024-09-13T15:00:00.000+02:00"},{"total":0.2826,"energy":0.0743,"tax":0.2083,"startsAt":"2024-09-13T16:00:00.000+02:00"},{"total":0.2892,"energy":0.0798,"tax":0.2094,"startsAt":"2024-09-13T17:00:00.000+02:00"},{"total":0.309,"energy":0.0965,"tax":0.2125,"startsAt":"2024-09-13T18:00:00.000+02:00"},{"total":0.3132,"energy":0.1,"tax":0.2132,"startsAt":"2024-09-13T19:00:00.000+02:00"},{"total":0.3064,"energy":0.0942,"tax":0.2122,"startsAt":"2024-09-13T20:00:00.000+02:00"},{"total":0.2949,"energy":0.0846,"tax":0.2103,"startsAt":"2024-09-13T21:00:00.000+02:00"},{"total":0.2886,"energy":0.0793,"tax":0.2093,"startsAt":"2024-09-13T22:00:00.000+02:00"},{"total":0.2668,"energy":0.061,"tax":0.2058,"startsAt":"2024-09-13T23:00:00.000+02:00"}],"tomorrow":[{"total":0.2604,"energy":0.0556,"tax":0.2048,"startsAt":"2024-09-14T00:00:00.000+02:00"},{"total":0.2537,"energy":0.05,"tax":0.2037,"startsAt":"2024-09-14T01:00:00.000+02:00"},{"total":0.2458,"energy":0.0433,"tax":0.2025,"startsAt":"2024-09-14T02:00:00.000+02:00"},{"total":0.248,"energy":0.0452,"tax":0.2028,"startsAt":"2024-09-14T03:00:00.000+02:00"},{"total":0.2498,"energy":0.0467,"tax":0.2031,"startsAt":"2024-09-14T04:00:00.000+02:00"},{"total":0.2469,"energy":0.0443,"tax":0.2026,"startsAt":"2024-09-14T05:00:00.000+02:00"},{"total":0.2601,"energy":0.0554,"tax":0.2047,"startsAt":"2024-09-14T06:00:00.000+02:00"},{"total":0.2716,"energy":0.065,"tax":0.2066,"startsAt":"2024-09-14T07:00:00.000+02:00"},{"total":0.2841,"energy":0.0755,"tax":0.2086,"startsAt":"2024-09-14T08:00:00.000+02:00"},{"total":0.2735,"energy":0.0666,"tax":0.2069,"startsAt":"2024-09-14T09:00:00.000+02:00"},{"total":0.243,"energy":0.041,"tax":0.202,"startsAt":"2024-09-14T10:00:00.000+02:00"},{"total":0.2038,"energy":0.0081,"tax":0.1957,"startsAt":"2024-09-14T11:00:00.000+02:00"},{"total":0.1952,"energy":0.0009,"tax":0.1943,"startsAt":"2024-09-14T12:00:00.000+02:00"},{"total":0.1941,"energy":-0.0001,"tax":0.1942,"startsAt":"2024-09-14T13:00:00.000+02:00"},{"total":0.1937,"energy":-0.0005,"tax":0.1942,"startsAt":"2024-09-14T14:00:00.000+02:00"},{"total":0.1941,"energy":-0.0001,"tax":0.1942,"startsAt":"2024-09-14T15:00:00.000+02:00"},{"total":0.2056,"energy":0.0095,"tax":0.1961,"startsAt":"2024-09-14T16:00:00.000+02:00"},{"total":0.2717,"energy":0.0651,"tax":0.2066,"startsAt":"2024-09-14T17:00:00.000+02:00"},{"total":0.3065,"energy":0.0944,"tax":0.2121,"startsAt":"2024-09-14T18:00:00.000+02:00"},{"total":0.3449,"energy":0.1266,"tax":0.2183,"startsAt":"2024-09-14T19:00:00.000+02:00"},{"total":0.3345,"energy":0.1178,"tax":0.2167,"startsAt":"2024-09-14T20:00:00.000+02:00"},{"total":0.3169,"energy":0.1031,"tax":0.2138,"startsAt":"2024-09-14T21:00:00.000+02:00"},{"total":0.3058,"energy":0.0938,"tax":0.212,"startsAt":"2024-09-14T22:00:00.000+02:00"},{"total":0.2951,"energy":0.0848,"tax":0.2103,"startsAt":"2024-09-14T23:00:00.000+02:00"}]}}}]}}}
#
#   value     
#   CompiledRegexes:
#   HttpUtils:
#     NAME       
#     addr       https://api.tibber.com:443
#     auth       0
#     code       200
#     compress   1
#     conn       
#     data       { "query": "{viewer {homes {currentSubscription {priceInfo {current {total energy tax startsAt} today {total energy tax startsAt } tomorrow {total energy tax startsAt }}}}}}" }
#     displayurl https://api.tibber.com/v1-beta/gql
#     header     Content-Type: application/json
#Authorization: Bearer S5TCMCSfQtnEk9kRnP9LDwluySi4QEru-Adlzcid-Ls
#     host       api.tibber.com
#     httpheader HTTP/1.1 200 OK
#Date: Fri, 13 Sep 2024 12:32:23 GMT
#Content-Type: application/json; charset=utf-8
#Connection: close
#X-Powered-By: Express
#Access-Control-Allow-Origin: *
#ETag: W/"115d-F/rHtRClFC/oXtozf7aljaPmCkc"
#Vary: Accept-Encoding
#Content-Encoding: gzip
#     httpversion 1.0
#     hu_blocking 0
#     hu_filecount 1
#     hu_port    443
#     hu_portSfx
#     ignoreredirects 1
#     loglevel   4
#     path       /v1-beta/gql
#     protocol   https
#     redirects  0
#     timeout    2
#     url        https://api.tibber.com/v1-beta/gql
#     sslargs:
#   QUEUE:
#   READINGS:
#     2024-09-13 14:32:23   Datum           2024-09-13
#     2024-09-13 14:32:23   Strompreis      27.39
#     2024-09-13 14:32:23   TodayAverage    30.2279166666667
#     2024-09-13 13:10:00   TodayEnergy     0.1|0.0915|0.0873|0.0868|0.0846|0.0879|0.1005|0.12|0.1322|0.1162|0.1025|0.095|0.0886|0.0775|0.067|0.0722|0.0743|0.0798|0.0965|0.1|0.0942|0.0846|0.0793|0.061|
#     2024-09-13 14:32:23   TodayMin        0.2668
#     2024-09-13 13:10:00   TodayTax        0.2132|0.2116|0.2108|0.2107|0.2103|0.2109|0.2133|0.217|0.2194|0.2163|0.2137|0.2123|0.211|0.2089|0.2069|0.2079|0.2083|0.2094|0.2125|0.2132|0.2122|0.2103|0.2093|0.2058|
#     2024-09-13 13:10:00   TodayTotal      0.3132|0.3031|0.2981|0.2975|0.2949|0.2988|0.3138|0.337|0.3516|0.3325|0.3162|0.3073|0.2996|0.2864|0.2739|0.2801|0.2826|0.2892|0.309|0.3132|0.3064|0.2949|0.2886|0.2668|
#     2024-09-13 14:32:23   TomorrowAverage 25.8283333333333
#     2024-09-13 13:10:00   TomorrowEnergy  0.0556|0.05|0.0433|0.0452|0.0467|0.0443|0.0554|0.065|0.0755|0.0666|0.041|0.0081|0.0009|-0.0001|-0.0005|-0.0001|0.0095|0.0651|0.0944|0.1266|0.1178|0.1031|0.0938|0.0848|
#     2024-09-13 13:10:00   TomorrowTax     0.2048|0.2037|0.2025|0.2028|0.2031|0.2026|0.2047|0.2066|0.2086|0.2069|0.202|0.1957|0.1943|0.1942|0.1942|0.1942|0.1961|0.2066|0.2121|0.2183|0.2167|0.2138|0.212|0.2103|
#     2024-09-13 13:10:00   TomorrowTotal   0.2604|0.2537|0.2458|0.248|0.2498|0.2469|0.2601|0.2716|0.2841|0.2735|0.243|0.2038|0.1952|0.1941|0.1937|0.1941|0.2056|0.2717|0.3065|0.3449|0.3345|0.3169|0.3058|0.2951|
#     2024-09-13 14:32:23   Uhrzeit         14:00
#     2024-09-13 14:25:11   total           0
#   REQUEST:
#     context    reading
#     data       { "query": "{viewer {homes {currentSubscription {priceInfo {current {total energy tax startsAt} today {total energy tax startsAt } tomorrow {total energy tax startsAt }}}}}}" }
#     header     Content-Type: application/json
#Authorization: Bearer %%Token%%
#     ignoreredirects 0
#     num        unknown
#     retryCount 0
#     type       update
#     url        https://api.tibber.com/v1-beta/gql
#   defptr:
#     readingBase:
#       Datum      reading
#       Strompreis reading
#       Uhrzeit    reading
#     readingNum:
#       Datum      2
#       Strompreis 1
#       Uhrzeit    2
#     readingOutdated:
#     requestReadings:
#       update:
#         Datum      reading 2-1
#         Strompreis reading 1
#         Uhrzeit    reading 2-2
#
setstate myTibber 2024-09-13 14:32:23 Datum 2024-09-13
setstate myTibber 2024-09-13 14:32:23 Strompreis 27.39
setstate myTibber 2024-09-13 14:32:23 TodayAverage 30.2279166666667
setstate myTibber 2024-09-13 13:10:00 TodayEnergy 0.1|0.0915|0.0873|0.0868|0.0846|0.0879|0.1005|0.12|0.1322|0.1162|0.1025|0.095|0.0886|0.0775|0.067|0.0722|0.0743|0.0798|0.0965|0.1|0.0942|0.0846|0.0793|0.061|
setstate myTibber 2024-09-13 14:32:23 TodayMin 0.2668
setstate myTibber 2024-09-13 13:10:00 TodayTax 0.2132|0.2116|0.2108|0.2107|0.2103|0.2109|0.2133|0.217|0.2194|0.2163|0.2137|0.2123|0.211|0.2089|0.2069|0.2079|0.2083|0.2094|0.2125|0.2132|0.2122|0.2103|0.2093|0.2058|
setstate myTibber 2024-09-13 13:10:00 TodayTotal 0.3132|0.3031|0.2981|0.2975|0.2949|0.2988|0.3138|0.337|0.3516|0.3325|0.3162|0.3073|0.2996|0.2864|0.2739|0.2801|0.2826|0.2892|0.309|0.3132|0.3064|0.2949|0.2886|0.2668|
setstate myTibber 2024-09-13 14:32:23 TomorrowAverage 25.8283333333333
setstate myTibber 2024-09-13 13:10:00 TomorrowEnergy 0.0556|0.05|0.0433|0.0452|0.0467|0.0443|0.0554|0.065|0.0755|0.0666|0.041|0.0081|0.0009|-0.0001|-0.0005|-0.0001|0.0095|0.0651|0.0944|0.1266|0.1178|0.1031|0.0938|0.0848|
setstate myTibber 2024-09-13 13:10:00 TomorrowTax 0.2048|0.2037|0.2025|0.2028|0.2031|0.2026|0.2047|0.2066|0.2086|0.2069|0.202|0.1957|0.1943|0.1942|0.1942|0.1942|0.1961|0.2066|0.2121|0.2183|0.2167|0.2138|0.212|0.2103|
setstate myTibber 2024-09-13 13:10:00 TomorrowTotal 0.2604|0.2537|0.2458|0.248|0.2498|0.2469|0.2601|0.2716|0.2841|0.2735|0.243|0.2038|0.1952|0.1941|0.1937|0.1941|0.2056|0.2717|0.3065|0.3449|0.3345|0.3169|0.3058|0.2951|
setstate myTibber 2024-09-13 14:32:23 Uhrzeit 14:00
setstate myTibber 2024-09-13 14:25:11 total 0


das ist das collect doif
define myTibber HTTPMOD https://api.tibber.com/v1-beta/gql 3600
attr myTibber alignTime 00:05
attr myTibber devStateIcon {ui_Table::card(ReadingsVal("di_collect","total",""),undef,undef,0,2,90,0,"SEK",undef,"3",",fixedscaling,,,,")}
attr myTibber reading1JSON data_viewer_homes_01_currentSubscription_priceInfo_current_total
attr myTibber reading1Name Strompreis
attr myTibber reading1OExpr $val*100
attr myTibber reading2-1Name Datum
attr myTibber reading2-2Name Uhrzeit
attr myTibber reading2JSON data_viewer_homes_01_currentSubscription_priceInfo_current_startsAt
attr myTibber reading2Regex startsAt":"([\d+-]+)T(\d\d:\d\d)
attr myTibber replacement1Mode text
attr myTibber replacement1Regex %%Token%%
attr myTibber replacement1Value S5TCMCSfQtnEk9kRnP9LDwluySi4QEru-Adlzcid-Ls
attr myTibber requestData { "query": "{viewer {homes {currentSubscription {priceInfo {current {total energy tax startsAt} today {total energy tax startsAt } tomorrow {total energy tax startsAt }}}}}}" }
attr myTibber requestHeader1 Content-Type: application/json
attr myTibber requestHeader2 Authorization: Bearer %%Token%%
attr myTibber room Strom
attr myTibber showBody 1
attr myTibber showError 1
attr myTibber userReadings TodayAverage {use List::Util qw(sum);;;;\
my @Preise = split /\|/, ReadingsVal("myTibber","TodayTotal",0.25);;;; return (100 * sum(@Preise) / @Preise);;;; },\
TomorrowAverage {use List::Util qw(sum);;;;\
my @Preise = split /\|/, ReadingsVal("myTibber","TomorrowTotal",0.25);;;; return $Preise[0] eq "NV" ? "NV" : (100 * sum(@Preise) / @Preise);;;; },\
TodayMin {use List::Util qw(min);;;; my @Preise = split /\|/, ReadingsVal("myTibber","TodayTotal",0.25);;;; return (min @Preise);;;;}
#   BUSY       0
#   CFGFN     
#   DEF        https://api.tibber.com/v1-beta/gql 3600
#   FUUID      66de0c5f-f33f-91a4-8a5a-33643964e7a8679e
#   Interval   3600
#   MainURL    https://api.tibber.com/v1-beta/gql
#   ModuleVersion 4.2.0 - 11.8.2023
#   NAME       myTibber
#   NOTIFYDEV  global
#   NR         66028
#   NTFY_ORDER 50-myTibber
#   STATE      ???
#   TYPE       HTTPMOD
#   eventCount 408
#   httpbody   {"data":{"viewer":{"homes":[{"currentSubscription":{"priceInfo":{"current":{"total":0.2739,"energy":0.067,"tax":0.2069,"startsAt":"2024-09-13T14:00:00.000+02:00"},"today":[{"total":0.3132,"energy":0.1,"tax":0.2132,"startsAt":"2024-09-13T00:00:00.000+02:00"},{"total":0.3031,"energy":0.0915,"tax":0.2116,"startsAt":"2024-09-13T01:00:00.000+02:00"},{"total":0.2981,"energy":0.0873,"tax":0.2108,"startsAt":"2024-09-13T02:00:00.000+02:00"},{"total":0.2975,"energy":0.0868,"tax":0.2107,"startsAt":"2024-09-13T03:00:00.000+02:00"},{"total":0.2949,"energy":0.0846,"tax":0.2103,"startsAt":"2024-09-13T04:00:00.000+02:00"},{"total":0.2988,"energy":0.0879,"tax":0.2109,"startsAt":"2024-09-13T05:00:00.000+02:00"},{"total":0.3138,"energy":0.1005,"tax":0.2133,"startsAt":"2024-09-13T06:00:00.000+02:00"},{"total":0.337,"energy":0.12,"tax":0.217,"startsAt":"2024-09-13T07:00:00.000+02:00"},{"total":0.3516,"energy":0.1322,"tax":0.2194,"startsAt":"2024-09-13T08:00:00.000+02:00"},{"total":0.3325,"energy":0.1162,"tax":0.2163,"startsAt":"2024-09-13T09:00:00.000+02:00"},{"total":0.3162,"energy":0.1025,"tax":0.2137,"startsAt":"2024-09-13T10:00:00.000+02:00"},{"total":0.3073,"energy":0.095,"tax":0.2123,"startsAt":"2024-09-13T11:00:00.000+02:00"},{"total":0.2996,"energy":0.0886,"tax":0.211,"startsAt":"2024-09-13T12:00:00.000+02:00"},{"total":0.2864,"energy":0.0775,"tax":0.2089,"startsAt":"2024-09-13T13:00:00.000+02:00"},{"total":0.2739,"energy":0.067,"tax":0.2069,"startsAt":"2024-09-13T14:00:00.000+02:00"},{"total":0.2801,"energy":0.0722,"tax":0.2079,"startsAt":"2024-09-13T15:00:00.000+02:00"},{"total":0.2826,"energy":0.0743,"tax":0.2083,"startsAt":"2024-09-13T16:00:00.000+02:00"},{"total":0.2892,"energy":0.0798,"tax":0.2094,"startsAt":"2024-09-13T17:00:00.000+02:00"},{"total":0.309,"energy":0.0965,"tax":0.2125,"startsAt":"2024-09-13T18:00:00.000+02:00"},{"total":0.3132,"energy":0.1,"tax":0.2132,"startsAt":"2024-09-13T19:00:00.000+02:00"},{"total":0.3064,"energy":0.0942,"tax":0.2122,"startsAt":"2024-09-13T20:00:00.000+02:00"},{"total":0.2949,"energy":0.0846,"tax":0.2103,"startsAt":"2024-09-13T21:00:00.000+02:00"},{"total":0.2886,"energy":0.0793,"tax":0.2093,"startsAt":"2024-09-13T22:00:00.000+02:00"},{"total":0.2668,"energy":0.061,"tax":0.2058,"startsAt":"2024-09-13T23:00:00.000+02:00"}],"tomorrow":[{"total":0.2604,"energy":0.0556,"tax":0.2048,"startsAt":"2024-09-14T00:00:00.000+02:00"},{"total":0.2537,"energy":0.05,"tax":0.2037,"startsAt":"2024-09-14T01:00:00.000+02:00"},{"total":0.2458,"energy":0.0433,"tax":0.2025,"startsAt":"2024-09-14T02:00:00.000+02:00"},{"total":0.248,"energy":0.0452,"tax":0.2028,"startsAt":"2024-09-14T03:00:00.000+02:00"},{"total":0.2498,"energy":0.0467,"tax":0.2031,"startsAt":"2024-09-14T04:00:00.000+02:00"},{"total":0.2469,"energy":0.0443,"tax":0.2026,"startsAt":"2024-09-14T05:00:00.000+02:00"},{"total":0.2601,"energy":0.0554,"tax":0.2047,"startsAt":"2024-09-14T06:00:00.000+02:00"},{"total":0.2716,"energy":0.065,"tax":0.2066,"startsAt":"2024-09-14T07:00:00.000+02:00"},{"total":0.2841,"energy":0.0755,"tax":0.2086,"startsAt":"2024-09-14T08:00:00.000+02:00"},{"total":0.2735,"energy":0.0666,"tax":0.2069,"startsAt":"2024-09-14T09:00:00.000+02:00"},{"total":0.243,"energy":0.041,"tax":0.202,"startsAt":"2024-09-14T10:00:00.000+02:00"},{"total":0.2038,"energy":0.0081,"tax":0.1957,"startsAt":"2024-09-14T11:00:00.000+02:00"},{"total":0.1952,"energy":0.0009,"tax":0.1943,"startsAt":"2024-09-14T12:00:00.000+02:00"},{"total":0.1941,"energy":-0.0001,"tax":0.1942,"startsAt":"2024-09-14T13:00:00.000+02:00"},{"total":0.1937,"energy":-0.0005,"tax":0.1942,"startsAt":"2024-09-14T14:00:00.000+02:00"},{"total":0.1941,"energy":-0.0001,"tax":0.1942,"startsAt":"2024-09-14T15:00:00.000+02:00"},{"total":0.2056,"energy":0.0095,"tax":0.1961,"startsAt":"2024-09-14T16:00:00.000+02:00"},{"total":0.2717,"energy":0.0651,"tax":0.2066,"startsAt":"2024-09-14T17:00:00.000+02:00"},{"total":0.3065,"energy":0.0944,"tax":0.2121,"startsAt":"2024-09-14T18:00:00.000+02:00"},{"total":0.3449,"energy":0.1266,"tax":0.2183,"startsAt":"2024-09-14T19:00:00.000+02:00"},{"total":0.3345,"energy":0.1178,"tax":0.2167,"startsAt":"2024-09-14T20:00:00.000+02:00"},{"total":0.3169,"energy":0.1031,"tax":0.2138,"startsAt":"2024-09-14T21:00:00.000+02:00"},{"total":0.3058,"energy":0.0938,"tax":0.212,"startsAt":"2024-09-14T22:00:00.000+02:00"},{"total":0.2951,"energy":0.0848,"tax":0.2103,"startsAt":"2024-09-14T23:00:00.000+02:00"}]}}}]}}}
#
#   value     
#   CompiledRegexes:
#   HttpUtils:
#     NAME       
#     addr       https://api.tibber.com:443
#     auth       0
#     code       200
#     compress   1
#     conn       
#     data       { "query": "{viewer {homes {currentSubscription {priceInfo {current {total energy tax startsAt} today {total energy tax startsAt } tomorrow {total energy tax startsAt }}}}}}" }
#     displayurl https://api.tibber.com/v1-beta/gql
#     header     Content-Type: application/json
#Authorization: Bearer S5TCMCSfQtnEk9kRnP9LDwluySi4QEru-Adlzcid-Ls
#     host       api.tibber.com
#     httpheader HTTP/1.1 200 OK
#Date: Fri, 13 Sep 2024 12:32:23 GMT
#Content-Type: application/json; charset=utf-8
#Connection: close
#X-Powered-By: Express
#Access-Control-Allow-Origin: *
#ETag: W/"115d-F/rHtRClFC/oXtozf7aljaPmCkc"
#Vary: Accept-Encoding
#Content-Encoding: gzip
#     httpversion 1.0
#     hu_blocking 0
#     hu_filecount 1
#     hu_port    443
#     hu_portSfx
#     ignoreredirects 1
#     loglevel   4
#     path       /v1-beta/gql
#     protocol   https
#     redirects  0
#     timeout    2
#     url        https://api.tibber.com/v1-beta/gql
#     sslargs:
#   QUEUE:
#   READINGS:
#     2024-09-13 14:32:23   Datum           2024-09-13
#     2024-09-13 14:32:23   Strompreis      27.39
#     2024-09-13 14:32:23   TodayAverage    30.2279166666667
#     2024-09-13 13:10:00   TodayEnergy     0.1|0.0915|0.0873|0.0868|0.0846|0.0879|0.1005|0.12|0.1322|0.1162|0.1025|0.095|0.0886|0.0775|0.067|0.0722|0.0743|0.0798|0.0965|0.1|0.0942|0.0846|0.0793|0.061|
#     2024-09-13 14:32:23   TodayMin        0.2668
#     2024-09-13 13:10:00   TodayTax        0.2132|0.2116|0.2108|0.2107|0.2103|0.2109|0.2133|0.217|0.2194|0.2163|0.2137|0.2123|0.211|0.2089|0.2069|0.2079|0.2083|0.2094|0.2125|0.2132|0.2122|0.2103|0.2093|0.2058|
#     2024-09-13 13:10:00   TodayTotal      0.3132|0.3031|0.2981|0.2975|0.2949|0.2988|0.3138|0.337|0.3516|0.3325|0.3162|0.3073|0.2996|0.2864|0.2739|0.2801|0.2826|0.2892|0.309|0.3132|0.3064|0.2949|0.2886|0.2668|
#     2024-09-13 14:32:23   TomorrowAverage 25.8283333333333
#     2024-09-13 13:10:00   TomorrowEnergy  0.0556|0.05|0.0433|0.0452|0.0467|0.0443|0.0554|0.065|0.0755|0.0666|0.041|0.0081|0.0009|-0.0001|-0.0005|-0.0001|0.0095|0.0651|0.0944|0.1266|0.1178|0.1031|0.0938|0.0848|
#     2024-09-13 13:10:00   TomorrowTax     0.2048|0.2037|0.2025|0.2028|0.2031|0.2026|0.2047|0.2066|0.2086|0.2069|0.202|0.1957|0.1943|0.1942|0.1942|0.1942|0.1961|0.2066|0.2121|0.2183|0.2167|0.2138|0.212|0.2103|
#     2024-09-13 13:10:00   TomorrowTotal   0.2604|0.2537|0.2458|0.248|0.2498|0.2469|0.2601|0.2716|0.2841|0.2735|0.243|0.2038|0.1952|0.1941|0.1937|0.1941|0.2056|0.2717|0.3065|0.3449|0.3345|0.3169|0.3058|0.2951|
#     2024-09-13 14:32:23   Uhrzeit         14:00
#     2024-09-13 14:25:11   total           0
#   REQUEST:
#     context    reading
#     data       { "query": "{viewer {homes {currentSubscription {priceInfo {current {total energy tax startsAt} today {total energy tax startsAt } tomorrow {total energy tax startsAt }}}}}}" }
#     header     Content-Type: application/json
#Authorization: Bearer %%Token%%
#     ignoreredirects 0
#     num        unknown
#     retryCount 0
#     type       update
#     url        https://api.tibber.com/v1-beta/gql
#   defptr:
#     readingBase:
#       Datum      reading
#       Strompreis reading
#       Uhrzeit    reading
#     readingNum:
#       Datum      2
#       Strompreis 1
#       Uhrzeit    2
#     readingOutdated:
#     requestReadings:
#       update:
#         Datum      reading 2-1
#         Strompreis reading 1
#         Uhrzeit    reading 2-2
#
setstate myTibber 2024-09-13 14:32:23 Datum 2024-09-13
setstate myTibber 2024-09-13 14:32:23 Strompreis 27.39
setstate myTibber 2024-09-13 14:32:23 TodayAverage 30.2279166666667
setstate myTibber 2024-09-13 13:10:00 TodayEnergy 0.1|0.0915|0.0873|0.0868|0.0846|0.0879|0.1005|0.12|0.1322|0.1162|0.1025|0.095|0.0886|0.0775|0.067|0.0722|0.0743|0.0798|0.0965|0.1|0.0942|0.0846|0.0793|0.061|
setstate myTibber 2024-09-13 14:32:23 TodayMin 0.2668
setstate myTibber 2024-09-13 13:10:00 TodayTax 0.2132|0.2116|0.2108|0.2107|0.2103|0.2109|0.2133|0.217|0.2194|0.2163|0.2137|0.2123|0.211|0.2089|0.2069|0.2079|0.2083|0.2094|0.2125|0.2132|0.2122|0.2103|0.2093|0.2058|
setstate myTibber 2024-09-13 13:10:00 TodayTotal 0.3132|0.3031|0.2981|0.2975|0.2949|0.2988|0.3138|0.337|0.3516|0.3325|0.3162|0.3073|0.2996|0.2864|0.2739|0.2801|0.2826|0.2892|0.309|0.3132|0.3064|0.2949|0.2886|0.2668|
setstate myTibber 2024-09-13 14:32:23 TomorrowAverage 25.8283333333333
setstate myTibber 2024-09-13 13:10:00 TomorrowEnergy 0.0556|0.05|0.0433|0.0452|0.0467|0.0443|0.0554|0.065|0.0755|0.0666|0.041|0.0081|0.0009|-0.0001|-0.0005|-0.0001|0.0095|0.0651|0.0944|0.1266|0.1178|0.1031|0.0938|0.0848|
setstate myTibber 2024-09-13 13:10:00 TomorrowTax 0.2048|0.2037|0.2025|0.2028|0.2031|0.2026|0.2047|0.2066|0.2086|0.2069|0.202|0.1957|0.1943|0.1942|0.1942|0.1942|0.1961|0.2066|0.2121|0.2183|0.2167|0.2138|0.212|0.2103|
setstate myTibber 2024-09-13 13:10:00 TomorrowTotal 0.2604|0.2537|0.2458|0.248|0.2498|0.2469|0.2601|0.2716|0.2841|0.2735|0.243|0.2038|0.1952|0.1941|0.1937|0.1941|0.2056|0.2717|0.3065|0.3449|0.3345|0.3169|0.3058|0.2951|
setstate myTibber 2024-09-13 14:32:23 Uhrzeit 14:00
setstate myTibber 2024-09-13 14:25:11 total 0


Gisbert

Zitat von: Reinhard.M am 13 Februar 2023, 09:41:16Liebe Community,
HTTPMOD ist bekanntlich ein wenig sperrig und nicht unbedingt intuitive. Ich habe mich jetzt eine ganze Weile im Forum gesucht und mich damit beschäftigt um den stündlich sich ändernden Stromtarif von Tibber auszulesen. Mein Ergebnis möchte ich gerne mit euch als Beispiel (einfach kopieren, ist sofort lauffähig) teilen. Der im Beispiel verwendetet Token ist der Tibber Demo Token und kann von jedem für Testzwecke verwendet werden. Für euren eigenen Token bitte das Attribut "replacement1Value" entsprechend anpassen. Das stündliche Auslesen wird über die '3600' im DEF erreicht und auf 1 Minute nach jeder vollen Stunde ausgerichtet (Attribut 'alignTime'). Die Home_ID habe ich nicht verwendet da ich nur einen Zähler besitze. Der wird in den "readingXJSON" über "homes_01" adressiert. Feedback würde mich freuen, viel Erfolg beim Testen :)

Gruß Reinhard

defmod ti2r HTTPMOD https://api.tibber.com/v1-beta/gql 3600
attr ti2r alignTime 00:01
attr ti2r reading1JSON data_viewer_homes_01_currentSubscription_priceInfo_current_total
attr ti2r reading1Name Strompreis
attr ti2r reading1OExpr $val*100
attr ti2r reading2-1Name Datum
attr ti2r reading2-2Name Uhrzeit
attr ti2r reading2JSON data_viewer_homes_01_currentSubscription_priceInfo_current_startsAt
attr ti2r reading2Regex startsAt":"([\d+-]+)T(\d\d:\d\d)
attr ti2r replacement1Mode text
attr ti2r replacement1Regex %%Token%%
attr ti2r replacement1Value 5K4MVS-OjfWhK_4yrjOlFe1F6kJXPVf7eQYggo8ebAE
attr ti2r requestData { "query": "{viewer {homes {currentSubscription {priceInfo {current {total startsAt}}}}}}" }
attr ti2r requestHeader1 Content-Type: application/json
attr ti2r requestHeader2 Authorization: Bearer %%Token%%
attr ti2r room Zentrale
attr ti2r showBody 1
attr ti2r showError 1
attr ti2r stateFormat {sprintf("Kosten ab %s Uhr => %.2f ct/kWh", ReadingsVal($name,"Uhrzeit",0),ReadingsVal($name,"Strompreis",0))}

setstate ti2r Kosten ab 09:00 Uhr => 95.52 ct/kWh
setstate ti2r 2023-02-13 09:12:01 Datum 2023-02-13
setstate ti2r 2023-02-13 09:12:01 Strompreis 95.52
setstate ti2r 2023-02-13 09:12:01 Uhrzeit 09:00


Hallo Reinhard,

ich hab deine Definition aus dem 1. Post verwendet.
Es scheint zu funktionieren, jedoch sehe ich eine Differenz zum Wert in Fhem und dem Wert auf der Tibberseite:
13.9.2024, 16:00, PLZ 51375
Fhem: 24.26 Cent/kWh
Tibber: 26.92 Cent/kWh, 9.17+17.75 Cent/kWh

An was muss ich mich denn halten? Der Wert auf der Tibberseite sollte doch der maßgebliche Wert sein.

Viele Grüße Gisbert
Aktuelles FHEM | PROXMOX | Fujitsu Futro S740 | Debian 12 | UniFi | Homematic, VCCU, HMUART | ESP8266 | ATtiny85 | Wasser-, Stromzähler | tuya local | Wlan-Kamera | SIGNALduino, Flamingo Rauchmelder FA21/22RF | RHASSPY | DEYE | JK-BMS | ESPHome