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' => ($timestamp-172800),
'Value' => $total
]
]);
$zaehler++;
}
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.