Erfahrung mit Tibber und Symcon?

Hat sich erledigt, habe den sehr unauffälligen Button „Gateway ändern“ rechts oben bei der Register Variable gefunden. Hat wieder einige Stunden suche gekostet…

Hi @ all,

bin heute zufällig über die Seite mit den aktuellen Preisen auf deren Homepage gestolpert:

Die liegen dort bei mir in der APP (wird ja abgerechnet) um 0,81 Cent/KWh höher als auf deren Homepage ausgewiesen.

Nun könnte es damit zusammen hängen, daß bei der PLZ Eingabe keine Auswahlmöglichkeit zwischen den beiden Netzbetreibern möglich ist;
aber bevor ich tibber mit unnötigen Anfragen belaste;
dachte ich mir, stell doch einfach mal die Frage hier im Forum:

Wie sieht es bei euch aus?

Differenzbetrag vorhanden?
weiterer Netzbetreiber vorhanden?

Dann hab ich aus lauter Interesse mal die PLZ meiner Mutter eingegeben (nur ein lokaler Netzbetreiber vorhanden) und nur anhand der Daten aus deren Homepage eine negative Differenz von 1,77 Cent/KWh festgestellt. Schon krass.

mfg

BerndJ

Tibber stellt aktuell seine smarte Homevolt Batterie vor.
Im Grunde macht sie das, was wir hier auch schon machen/versuchen, den PV Eigennutzungsgrad zu erhöhen und bei günstigen Strompreis die Batterie zu laden und bei hohem Preis die Energie wieder freizugeben.

Interessant ist hierbei aber, das sie eine offene API zur Verfügung stellen wollen.
Bin mal gespannt, was die dann letztendlich auf dem deutschen Markt kosten wird und wie der Wirkungsgrad ist …

Viele Grüße,
Doc

Wenn es zu den Preisen kommt, die man in diversen Foren/Facebookgruppe liest, dann uninteressant.
11k€ für 13,3kW und 7,7k€ für 6kW
Lassen wir uns überraschen, wie die offiziellen Preise ausfallen.

Woher hast du die Preise?

Habe mein Beitrag ergänzt/geändert. Offiziell sind die Preise nicht!

Die Tibber-Bridge Web-Server Daten können ab sofort über das SML-Counter-Modul in Symcon übernommen werden. Hierfür gibt es die neue Instanz SML-Counter über HTTP.
Aktuell ist es noch eine Beta-Version. Wenn keine Fehlermeldungen kommen, stelle ich auf stable um.
Grüße
Jürgen

4 „Gefällt mir“

Nutzt hier jemand das Test Modul von @philipp? Ich habe seit heute ca 9Uhr keine Realtime Daten mehr vom Zähler bekommen.
Schnittstellen waren alle in Ordnung.
Habe dann die IO Schnittstelle einmal deaktiviert und wieder aktiviert und schon kamen wieder Daten.
War das erste Mal seit ca zwei Wochen das das Problem aufgetreten ist.

Könntet Ihr das bitte mal näher beschreiben wie man das einrichten müsste mit dem SML-Counter usw. :wink:

So, heute morgen kamen wieder keine Daten über die Schnittstelle. Weiß jemand Rat wie man das abfangen könnte? Ansonsten werde ich mich ransetzen und lokal die Daten abgreifen.

Wo hakt es denn bei der Einrichtung?

Hallo

<?
$Token = 'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx';  // eigenen tibber Token einsetzen

$json = '{"query":"{viewer {homes {features {realTimeConsumptionEnabled} currentSubscription {priceInfo {current {total level }}}}}}"}';   // mit Pulse Abfrage

# 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);

$pulse = false;                                 // wenn keine Daten, dann Pulse auf false setzen

$data = json_decode($response);
$price = $data->data->viewer->homes[0]->currentSubscription->priceInfo->current->total;
$level = $data->data->viewer->homes[0]->currentSubscription->priceInfo->current->level;
$pulse = $data->data->viewer->homes[0]->features->realTimeConsumptionEnabled;

#Tibber Pulse Status
SetValueBoolean(23827, $pulse);

#Preisabfrage
$Parent = IPS_GetParent($_IPS['SELF']);
if ($price != 0) {                              // wenn mal keine Daten gelesen werden konnten
    SetValueFloat($Parent, $price * 100);       // aktueller Strompreis in Ct.
    SetValueString(41534, $level);              // aktueller PriceLevel von tibber direkt
}

//var_dump($level);      
# ========================================================================

#Preisstufe (-2 bis 2 , sehr günstig bis sehr teuer - zum weiteren rechnen und steuern)
$Preisstufe = 0;
if ($level == 'VERY_CHEAP')     {$Preisstufe = -2;}
if ($level == 'CHEAP')          {$Preisstufe = -1;}
if ($level == 'NORMAL')         {$Preisstufe = 0;}
if ($level == 'EXPENSIVE')      {$Preisstufe = 1;}
if ($level == 'VERY_EXPENSIVE') {$Preisstufe = 2;}

SetValueInteger(46502, $Preisstufe);

//var_dump($data);

?>

Als Fehler kommt
Warning: Variable #27205 does not exist in /var/lib/symcon/scripts/30215.ips.php on line 33

27205 ist der Kategorie Name

Bernd

Hallo Bernd,

kann dir gerade nicht ganz folgen, hast du eine Frage dazu oder nur etwas festgestellt?
Die Variable 27205 ist doch gar nicht in dem von dir verlinktem Script drin oder habe ich die übersehen?

Ist j ameine Verständnisproblem.
ich habe das Script aus deinem Post kopiert und mein Token eingetragen
Pulse ID und Level als Variable angelegt.
Mehr hatt eich auch nicht gefunden was ich anlegen sollte.
Nach der ausführung kommt die Fehlermeldung mit der ich nichts anfangen kann.

Ah,
mir fehlte in deiner Antwort irgendwie ein „?“ und ich wusste so auch nicht, welches die Zeile 33 ist …
Hilft dir das hier ggf. weiter?

Danke, das hat geholfen
Nach dem Bild sortiert und schon läufts.
Danke

Wie weit ist eigentlich das Modul von @philipp?

Das kann ich dir gar nicht genau sagen.
Ich hatte das zwar getestet, nutze es aber eigentlich gar nicht, da mir bis jetzt die Infos aus den Scripten reichten.
Vielleicht mag er sich da selber noch zu äußern …

Viele Grüße,
Doc

Hallo, seit vorgestern spinnt bei mir die Anzeige in der App, geschätzte Werte über Stunden, obwohl über die API alles richtig ankam. Seit gestern Nachmittag dann keine Zählerstände mehr, aber Kurve des aktuellen Verbrauchs und der Einspeisung sind vorhanden.
Habt ihr auch ähnliche Probleme aktuell oder ist das nur bei mir?

Hallo, ich muss nochmal nerven.
Du hattest ja noch ein Script veröffentlicht.

# 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 = 43099;  // ID der zu loggenden Variablen eintragen (leere Float-Variable, Cent)
$Token = 'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx';  // 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);

var_dump($prices_tomorrow);

Hier läuft zwar alles ohne Fehlermeldungen durch, im Archive steht aber nur eine „0“ und die Meldung aus dem var_dump ist

"array(0) {
}"

Edit/
Ich habe jetzt im Archiv gesprungen und fü den 20.6. stehen die Tageswerte von heute drin.
Aber das script ist eben durchgelaufen, hat aber die Werte für morgen nicht geholt.

Bernd

Also bei mir funktioniert das Script ohne Probleme.
Ich hatte das mal noch etwas upgedatet, falls mal noch nicht um 13:00 die Daten bei Tibber vorliegen.

Vielleicht magst du das ja mal testen …

edit:
Es macht natürlich auch nur Sinn, wenn das Script nach 13:00 läuft, erst dann gibt es die Daten für Morgen erst bei Tibber.
Ich weiss nicht, ob du das berücksichtigt hast?

# Tibber Chart heute und morgen erstellen
# Stundenpreise in geloggte Float-Variable schreiben um Diagramm von heute und morgen zu erstellen (Variable dann nicht mehr manuell ändern!)
# Script Ausführung immer um 13:01 (ab 13:00 liegen meistens neue Daten für morgen bei Tibber vor)

# *** Konfiguration ***
$ID_Variable = 32725;                                                                       // ID der zu loggenden Variablen eintragen (leere Float-Variable, Cent)
$Token = 'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx';                        // eigenen tibber Token einsetzen

# =============== ab hier nichts mehr ändern! ================
$ID_Archive = IPS_GetInstanceListByModuleID('{43192F0B-135B-4CE7-A0A7-1475603F3060}')[0];

$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);
//$current = $data->data->viewer->homes[0];

$prices_tomorrow = $data->data->viewer->homes[0]->currentSubscription->priceInfo->tomorrow;

if (!$prices_tomorrow) {                                                                    //wenn noch keine Daten da ... alle 5 min neu versuchen!
    IPS_SetScriptTimer($_IPS['SELF'], 300);   
    return; 
}

# 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),
    'TimeStamp' => strtotime('-2 days', $timestamp),
    'Value' => $total
    ]
]);
    $zaehler++;
}

IPS_Sleep(500);
AC_ReAggregateVariable($ID_Archive,$ID_Variable);

IPS_SetScriptTimer($_IPS['SELF'], 0);                                                       //Scripttimer wieder ausschalten