Du kannst dieses Modul verwenden, [Modul] Energierechner, Tibber und aWattar Modul aWATTar verwenden die Börsenstrompreise, daraus kannst du alle möglichen Bedingungen zB. Script mit PHP ableiten.
object(stdClass)#4 (1) {
["currentSubscription"]=>
object(stdClass)#1 (2) {
["status"]=>
string(7) "running"
["priceInfo"]=>
object(stdClass)#3 (1) {
["current"]=>
object(stdClass)#2 (1) {
["total"]=>
float(0,4053)
}
}
}
}
Aber wie bekomme ich damit den Wert "total" in ein Variable?
JSON ist irgendwie noch nicht so mein Ding ...
Danke u. viele Grüße,
Doc
Also ich habe auch den Pulse (bestellt), da ich in Kombination mit PV, Akku und WP die günstigeren Stunden ausnutzen möchte.
Scripte zum Abrufen der Daten habe ich schon einige erstellt bzw. die hier angebotenen Scripte für mich abgeändert.
Falls wer z.B. die Stundenpreise von heute und morgen im Diagramm sehen möchte, hier mal ein Beispiel.
Die hellblaue Farbe sind immer die Preise von heute und die dunkelblaue die von morgen.
Der Rest sind Zusatzinfos nach belieben.
Mit der geloggten Variablen kann man dann auch schön weitere Werte berechnen, um den „günstigsten“ Zeitpunkt zu bestimmen.
Viele Grüße,
Doc
# tibber Chart heute und morgen erstellen
# Stundenpreise in geloggte Variable schreiben um Diagramm von heute und morgen zu erstellen
# Script Ausführung immer um 13:30 (ab 13:00 liegen neue Daten für morgen bei tibber vor)
# *** Konfiguration ***
$ID_Variable = 32725; // ID der zu loggenden Variablen eintragen (leere Float-Variable, Cent)
$Token = 'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx'; // eigenen tibber Token einsetzen
$ID_Archive = IPS_GetInstanceListByModuleID('{43192F0B-135B-4CE7-A0A7-1475603F3060}')[0];
# =============== ab hier nichts mehr ändern! ================
$json = '{"query":"{viewer {homes {currentSubscription {priceInfo {tomorrow{ total energy tax startsAt }}}}}}"}';
# Create a connection
$ch = curl_init('https://api.tibber.com/v1-beta/gql');
# Setting options
curl_setopt($ch, CURLOPT_URL, 'https://api.tibber.com/v1-beta/gql');
curl_setopt($ch, CURLOPT_HTTPHEADER, array('Content-Type: application/json','Authorization: Bearer '.$Token));
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, $json);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
# Get the response and close connection
$response = curl_exec($ch);
curl_close($ch);
# decode data
$data = json_decode($response);
$prices_tomorrow = $data->data->viewer->homes[0]->currentSubscription->priceInfo->tomorrow;
# write data to variable
$zaehler = 0;
foreach($prices_tomorrow as $price)
{
$timestamp = strtotime($price->startsAt);
$total = ($price->total) * 100; // Wert in Ct
AC_AddLoggedValues($ID_Archive, $ID_Variable, [
[
'TimeStamp' => strtotime('-2 days', $timestamp),
'Value' => $total
]
]);
$zaehler++;
}
IPS_Sleep(500);
AC_ReAggregateVariable($ID_Archive,$ID_Variable);
Vorsicht, wenn die im Nachhinein anfangen und rückwirkend schätzen!
(sieht man an den ausgegrauten Balken)
Dann sind alle Deine Bemühungen zeitlich den Akku zum optimalem Zeitpunkt zu laden hin;
die Verbräuche werden linearisiert und liegen dann schön verteilt auf den ganzen Tag.
Ist mir 2 mal passiert:
zum ersten weil der Pulse am ersten Tag noch nicht eingebunden war,
zum zweiten nachdem ich den aktuellen Zählerstand nach einigen Tagen erneut meldete.
Richtig,
du brauchst nur einen Tibber Token und eine Variable.
Da die Werte nur rückwirkend ins Archiv geschrieben werden können, hast du erst nach 2 Tagen den richtigen Chart mit dem morgigen Tag zur Verfügung.
Das Script läuft soweit fehlerfrei durch, nur leider wird die Variable nicht beschrieben. Welche Ursache kann das haben? Beim Tiber Access Token hatte ich alle scopes ausgewählt…
am Ende hinzu führe das Script noch mal manuell aus.
Bekommst du da Daten?
Bist du überhaupt schon Tibber Kunde, das dein Token funktioniert?
Ja genau, einmal vorgestern (-2) für die Werte von heute, und gestern (-1) für die Werte von morgen.
Und keinen Knoten davon im Kopf kriegen beim darüber nachdenken …
Falls noch jemand mit dem Gedanken spielt Tibber mal auszuprobieren oder mal den Anbieter wechseln möchte oder muss, kann das gerne über diesen Link tun oder direkt mit dem Einladungscode g5suontq.
Wir bekommen dann beide je €50.- auf den Tibber Store gutgeschrieben und man kann diese Gutschrift nach der Anmeldung auch gleich wieder für den Tibber Puls verwenden und so direkt €50.- sparen.
Na dann poste mal doch mal dein Script und auch die Ausgabe, wie soll man sonst helfen?
Das Logging in der Variable hast du aber aktiv, oder?
Nur um keine Missverständnisse zu haben, du schaust im Archive nach, ob da Daten drin sind, oder?
Die Variable selber ändert ihren Zeitstempel und Wert nämlich nicht …
Ups, ich hatte tatsächlich nur auf die Variable geschaut, weil die in Deinem Screenshot auch einen Wert anzeigt und bei mir auch nach dem manuellen Ausführen immer noch auf null stehengeblieben ist. Im Archiv (wieder was gelernt) stehen tatsächlich stündliche Werte drin…
Tut mir echt leid, dass ich euch mit so vielen Anfängerfragen nerve, ich hoffe das hat bald ein Ende…
Ja prima das es jetzt doch klappt.
Die Variable selber wird eigentlich gar nicht benutzt, sondern nur die Daten im Archiv dahinter und dann die Werte in die Vergangenheit geschrieben, da das Archive keine Werte in der Zukunft unterstützt.
Die Variable darfst du ab jetzt aber dennoch nicht ändern, weil jede Änderung dann auch ins Archiv geschrieben wird und du das dann 2 Tage später im Diagramm sehen würdest.
Vielleicht lassen sich Daten auch irgendwann mal für die Zukunft ablegen.
Und hier noch ein kleines Script für alle Tibberfreunde und Stromsparfüchse um den aktuellen Preis und den aktuellen PreisLevel von Tibber zu bekommen.
Der PriceLevel gibt an, ob man sich bezogen auf ein 3 Tagesfenster gerade im günstigen Preissegment oder im teureren Preisbereich befindet. (in der Tibber App die orangen und grünen Linien).
Damit lassen sich dann ganz gut die Zeiten für Großverbraucher regeln …
$Token = 'xxxxxxxxxxxxxxxxxxxxxxxxxxxxx';
$json = '{"query":"{viewer {homes {currentSubscription {status priceInfo {current {total level }}}}}}"}';
# Create a connection
$ch = curl_init('https://api.tibber.com/v1-beta/gql');
# Setting our options
curl_setopt($ch, CURLOPT_URL, 'https://api.tibber.com/v1-beta/gql');
curl_setopt($ch, CURLOPT_HTTPHEADER, array('Content-Type: application/json','Authorization: Bearer '.$Token));
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, $json);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
# Get the response
$response = curl_exec($ch);
curl_close($ch);
$data = json_decode($response);
$price = $data->data->viewer->homes[0]->currentSubscription->priceInfo->current->total;
$level = $data->data->viewer->homes[0]->currentSubscription->priceInfo->current->level;
$Parent = IPS_GetParent($_IPS['SELF']);
if ($price != 0) { // wenn mal keine Daten gelesen werden konnten
SetValueFloat($Parent, $price * 100); // aktueller Strompreis in Ct.
SetValueString(23232, $level); // aktueller PriceLevel von tibber direkt
}
//var_dump($data);
Und nochmal der Hinweis, wenn jemand ggf. sich auch den Tibber Pulse bestellen möchte oder muss …
Die Kündigungsfrist bei Tibber liegt übrigens bei kundenfreudlichen 2 Wochen.
Falls noch jemand mit dem Gedanken spielt Tibber mal auszuprobieren oder mal den Anbieter wechseln möchte oder muss, kann das gerne über diesen Link tun oder direkt mit dem Einladungscode g5suontq.
Wir bekommen dann beide je €50.- auf den Tibber Store gutgeschrieben und man kann diese Gutschrift nach der Anmeldung auch gleich wieder für den Tibber Pulse verwenden und so direkt die €50.- sparen.
Ja,
die Preise sind die Endpreise.
Wenn du die Preise anders brauchst, kann man sie auch netto abrufen, aber das sollte im Privatbereich eher unbedeutend sein.
Für heute sieht der Strompreis ja echt super aus, geht runter auf 18 Cent.
Diese Woche soll auch der Pulse kommen, dann werde ich den mal mit dem Akku kombinieren.
Aber auch jetzt aktuell noch mit der monatlichen Abrechnung hat sich das für Februar auch so schon gelohnt. Der Strompreis lag hier deutlich unter dem der aktuell angebotenen Festverträge.
Ich logge da mein normales Verbrauchsverhalten bei Tibber und anderen Anbietern mit um mal den Unterschied zu sehen.
vielen Dank für deine Mühe - hab deinen Einladungscode genutzt & morgen startet der Vertrag. Hast du mittlerweile den Pulse im Einsatz?
Ich habe ihn eben mit dem 50€ Bonus bestellt - jetzt geht’s Warten los. Im nächsten Schritt möchte ich versuchen die Live-Daten vom Tibber auszulesen (Watt & Zählerstände) - um dann im Weiteren Verlauf Verbraucher, E-Auto und Akku-Ladung dynamisch regeln zu können… also ähnliche Ziele wie du
Hallo Markus,
Die Gutscheinpromo ist angekommen, vielen Dank.
Meinen Pulse habe ich heute bekommen, liege aber aktuell flach und bin noch nicht zum Einbau gekommen.
Die Lieferzeit des Pulse ist aktuell übrigens ca. 4-5 Wochen.
Wenn ich den Pulse installiert habe schreibe ich hier meine Codeschnipsel wieder rein, hatte schon etwas damit gemacht, die API liefert ja viele Werte.