Hallo,
nachdem ich jetzt eine halbe Ewigkeit gebraucht habe, per HTTPMOD von Tibber den aktuellen Strompreis zu bekommen (Token und HomeID sind aus dem Demo-Portal), wollte ich jetzt über 2 variable Werte für Token bzw. HomeID im data-/Header-Statement ersetzen, so dass man die Sache später einfacher Einrichten kann... es klappt nicht, egal was ich versuche. Könnte sich bitte wer mal kurz das Device anschauen und mir etwas unter die Arme greifen? Das Modul HTTPMOD ist schon irgendwie ganz speziell und ich komme mit der Referenz bzw. dem Wiki zu keinem Ergebnis.
Ich würde das Device auch gerne nur einmal kurz nach der vollen Stunde aktualisieren lassen und habe keine Ahnung, wo man das einstellen kann.
Internals:
BUSY 0
DEF https://api.tibber.com/v1-beta/gql
FUUID 5fe88513-f33f-497e-0fed-09344ba3a32045be
Interval 10
MainURL https://api.tibber.com/v1-beta/gql
ModuleVersion 4.0.16 - 5.12.2020
NAME tibber
NOTIFYDEV global
NR 318
NTFY_ORDER 50-tibber
STATE Strompreis: 14.32 ct/kWh
TYPE HTTPMOD
value
CompiledRegexes:
HttpUtils:
NAME
addr https://api.tibber.com:443
auth 0
buf
code 200
compress 1
conn
data { "query": "{viewer {home(id:\"c70dcbe5-4485-4821-933d-a8a86452737b\") {currentSubscription {priceInfo {current {total energy tax startsAt }}}}}}" }
displayurl https://api.tibber.com/v1-beta/gql
header Content-Type: application/json
Authorization: Bearer d1007ead2dc84a2b82f0de19451c5fb22112f7ae11d19bf2bedb224a003ff74a
host api.tibber.com
httpheader HTTP/1.1 200 OK
Date: Sun, 27 Dec 2020 18:21:00 GMT
Content-Type: application/json; charset=utf-8
Content-Length: 163
Connection: close
Server: nginx/1.19.6
X-Powered-By: Express
Access-Control-Allow-Origin: *
ETag: W/"a3-LLuHw9s33s/kzpHqHWq4YOI3leU"
Vary: Accept-Encoding
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:
OLDREADINGS:
QUEUE:
READINGS:
2020-12-27 19:21:00 Strompreis 14.32
REQUEST:
context reading
data { "query": "{viewer {home(id:\"c70dcbe5-4485-4821-933d-a8a86452737b\") {currentSubscription {priceInfo {current {total energy tax startsAt }}}}}}" }
header Content-Type: application/json
Authorization: Bearer d1007ead2dc84a2b82f0de19451c5fb22112f7ae11d19bf2bedb224a003ff74a
ignoreredirects 0
num 0
retryCount 0
type update
url https://api.tibber.com/v1-beta/gql
defptr:
readingBase:
Strompreis reading
data_viewer_home_currentSubscription_priceInfo_current_total reading
readingNum:
Strompreis 1
data_viewer_home_currentSubscription_priceInfo_current_total 0
readingOutdated:
requestReadings:
update:
Strompreis reading 1
data_viewer_home_currentSubscription_priceInfo_current_total reading 0
Attributes:
reading1JSON data_viewer_home_currentSubscription_priceInfo_current_total
reading1Name Strompreis
reading1OExpr $val*100
requestData { "query": "{viewer {home(id:\"c70dcbe5-4485-4821-933d-a8a86452737b\") {currentSubscription {priceInfo {current {total energy tax startsAt }}}}}}" }
requestHeader1 Content-Type: application/json
requestHeader2 Authorization: Bearer d1007ead2dc84a2b82f0de19451c5fb22112f7ae11d19bf2bedb224a003ff74a
stateFormat {sprintf("Strompreis: %.2f ct/kWh", ReadingsVal($name,"Strompreis",0))}
verbose 5
Danke
Michael
ZitatrequestHeader2 Authorization: Bearer d1007ead2dc84a2b82f0de19451c5fb22112f7ae11d19bf2bedb224a003ff74a
requestHeader2 Authorization: Bearer %%token%%
replacement01Mode reading
replacement01Regex %%token%%
replacement01Value token
+ "setreading tibber token d1007ead2dc84a2b82f0de19451c5fb22112f7ae11d19bf2bedb224a003ff74a"
Das sollte für HomeID ähnlich gehen.
Prima, danke. Da war ich nah dran aber trotzdem daneben - hatte den replacementMode falsch :-(
Derzeit läuft das ganze ja mit Intervall. Ich verstehe die Syntax nicht, dass ich den Abruf manuell anstoßen kann. Wäre hier jemand so nett, das vielleicht noch zu erklären?
Hab's gefunden. Man muss den Aufruf über set tibber reread
ausführen. Mich hatte im Wiki verwirrt, dass da ein get-Kommando definiert wurde. Wie auch immer, es geht jetzt. Danke schonmal.
Zitat von: MichaelO am 27 Dezember 2020, 19:30:40
Ich würde das Device auch gerne nur einmal kurz nach der vollen Stunde aktualisieren lassen und habe keine Ahnung, wo man das einstellen kann.
Ahja, diese Frage hatte ich noch vergessen.
Mit einem Interval von 3600 wird die Abfrage automatisch jede Stunde angestossen.
Mit Attribut alignTime dazu, z.B. 00:05, kann man es so einstellen, dass es immer 5 Minuten nach voller Stunde erfolgt
Somit braucht man kein zusätzliches "at" mit "set tibber reread"
Ah, klasse. Ich hatte das jetzt schonmal mit einem doif gelöst, aber im httpmod selbst ist natürlich eleganter 8)
Danke schonmal, hat sehr geholfen!
Kannst du mal das def zeigen, ich bekommen irgendwie keine Werte zurück
Moin, sorry... hab das Device vor einiger Zeit gelöscht. Ich rufe Tibber über die Wallbox ab. Das reicht mir, in fhem brauche ich die Daten nicht mehr.