Tibber & Tibber Pulse

Begonnen von hyper2910, 20 November 2022, 10:27:31

Vorheriges Thema - Nächstes Thema

ch.eick

Moin,
ich habe gerade mal den fc0_trigger_max mit ins Grafana Diagramm eingezeichnet, der ist heute von 16:00-19:00 Uhr im EVU_Tibber_connect Device angegeben.
Zu der Zeit müsste man den Speicher dann noch voll haben :-)
Der normale fc0_trigger ist der gelbe.
Du darfst diesen Dateianhang nicht ansehen.

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

ch.eick

Moin zusammen,
bei Tibber scheint es wohl ein Problem mit der Berechnung der consumption zu geben, ich denke die sind etwas in Verzug.
Mit "get EVU_Tibber_connect [03_|04_|05_]consumption.* " könnt Ihr die Lücken dann schließen, sobald Tibber mit den Berechnungen fertig ist. Mit get 05_consumption_hourly_100 kommt Ihr ca 4 Tage zurück, also 100 / 24 = 4,16 Tage.
Es ginge auch noch mehr, falls Ihr mal den Zeitpunkt verpasst habt es nachzuladen.

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

jnewton957

Zitat von: ch.eick am 27 Januar 2024, 10:17:40Es ginge auch noch mehr, falls Ihr mal den Zeitpunkt verpasst habt es nachzuladen.

VG   Christian

Ich habe mir ein atEVU_tibber_connect_last4days gebaut, der +*90:00:00 get EVU_Tibber_connect 05_consumption_hourly_100 meine Vergesslichkeit automatisiert.

FHEM6.2 auf Pi5
V 1.66 nanoCUL 433 (IT)
V 1.66 nanoCUL868 (HM)
sqlite3 LogDb
ELRO AB440, DECT200,  TFA30.3125, esp8266, HM, TabletUI, IR-Schreiblesekopf (Udo),tibber Pulse, Kostal Pico, cfos Wallbox, Modbus TCP

ch.eick

Zitat von: jnewton957 am 27 Januar 2024, 13:19:57
Zitat von: ch.eick am 27 Januar 2024, 10:17:40Es ginge auch noch mehr, falls Ihr mal den Zeitpunkt verpasst habt es nachzuladen.

VG   Christian
Ich habe mir ein atEVU_tibber_connect_last4days gebaut, der +*90:00:00 get EVU_Tibber_connect 05_consumption_hourly_100 meine Vergesslichkeit automatisiert.
Moin,
das würde in meinem Gedankengud dann ins EVU_Tibber Device als eigener Block gehören, damit alles zur Steuerung zusammen ist.

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

Prof. Dr. Peter Henning

Ich bin kein Tibber-Kunde, aber die flexiblen Strompreise halte ich in Anbetracht der Tatsache, dass mein BEV im Zulauf ist, für hoch interessant.

Meine schicke neue WallBox hat ein aWattar-Interface eingebaut, das ich aber nicht direkt nutzen will. Sondern ich will ein Gesamtsystem zum Energiemanagement aufbauen.

Folgende Vorschläge deshalb:

1. Diesen Thread hier zumachen oder verschieben. Das ist nichts mehr für "Anfängerfragen"
2. Im Bereich "Solaranlagen" künftig alle Fragen (und Module) für Energiemanagement und Wallboxen diskutieren.
3. Im Wiki das Thema aWattar vom Thema Tibber trennen.

LG

pah

ch.eick

Zitat von: Prof. Dr. Peter Henning am 28 Januar 2024, 13:42:47Ich bin kein Tibber-Kunde, aber die flexiblen Strompreise halte ich in Anbetracht der Tatsache, dass mein BEV im Zulauf ist, für hoch interessant.

Meine schicke neue WallBox hat ein aWattar-Interface eingebaut, das ich aber nicht direkt nutzen will. Sondern ich will ein Gesamtsystem zum Energiemanagement aufbauen.

Folgende Vorschläge deshalb:

1. Diesen Thread hier zumachen oder verschieben. Das ist nichts mehr für "Anfängerfragen"
Das denke ich auch.
Zitat2. Im Bereich "Solaranlagen" künftig alle Fragen (und Module) für Energiemanagement und Wallboxen diskutieren.
Mache ich ja auch bereits so.
Zitat3. Im Wiki das Thema aWattar vom Thema Tibber trennen.
Das hatte ich gerade erst zusammen unter Strombörse angesiedelt.
Ich würde gerne jeweils ein Device für die Anbindung der EVU nach Strömbörse dort ansiedeln und versuchen es unter einem Device für die Visualisierung zu verbinden. Beim EVU_aWATTar_connect habe ich die readings an das vom EVU_Tibber_connect angeglichen und ergänzt.
aWATTar scheint jedoch wohl kaum jemand zu verwenden.

Ich verwende weder das eine noch das andere, da ich die hohen Grundkosten bei nur 2600 möglichen kWh nicht wieder raus bekomme.

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

Prof. Dr. Peter Henning

Ich habe gerade eine Umbenennung der Kategorien im Forum angeregt, wart mal ein paar Stunden.

Zum Wiki: Auch da sollte es neue Kategorien geben, mache ich morgen mal. Und dann eben nicht alles in gigantisch langen Artikeln, sondern mit viel Struktur und Verlinkung.

LG

pah

jnewton957

#232
Ich habe mich gestern nochmals mit den Werten nodes_consumption und nodes_cost beschäftigt und diese mit der Tibber-App und der Tibber-Api (detailliert auf Stundenbasis) verglichen.

good news:
nodes_consumption entspricht exakt Tibber-App und der Tibber-Api ("consumption")
nodes_cost entspricht Tibber-Api ("cost")

bad news:
nodes_cost entspricht nicht der Tibber-App und somit dann dem Rechnungsbetrag.

Ursache:
Tibber-Api: cost = unit price (excl. VAT) * consumption
Der übertragene Wert "cost" aus der Tibber-Api enthält nicht die MwSt. node_cost muss noch die MwSt addiert werden.

Mögliche weitere Ursache
Der übertragene Wert cost/node_cost aus der Tibber-Api enthält nicht die verbrauchsunabhängigen Kosten (u.a. Tibber-Monatsgebühr). Da ich noch keinen Monatsrechnung erhalten habe, kann ich dieses im Detail noch nicht mit den readings nachvollziehen.

Validierung:
Ich habe das reading 05_consumption_hourly_100 mal mit 680 Std quasi ab 1.1.24 neu laufen lassen und dann ein nodes_TIMESTAMP_MwSt mit 2050 loops jeweils nodes_cost_mwst neu in der DB erstellen lassen.
Ein darauf aufbauendes Total_cost_MwSt ergibt erfreulicherweise bis auf  4€ genau den Wert der Tibber-App. Ggf. ist dies ja genau die Tibber-Monatsgebühr.

Auch ein Total_cost_day *1,19 bzw. Total_cost_month*1,19 bringt das gleich gute Ergebnis.










FHEM6.2 auf Pi5
V 1.66 nanoCUL 433 (IT)
V 1.66 nanoCUL868 (HM)
sqlite3 LogDb
ELRO AB440, DECT200,  TFA30.3125, esp8266, HM, TabletUI, IR-Schreiblesekopf (Udo),tibber Pulse, Kostal Pico, cfos Wallbox, Modbus TCP

tomhead

Könntet ihr mir helfen, wie ich in dem EVU_Tibber_connect von Christian noch ein zusätzliches Reading mit der Vorschau des Strompreises für die nächsten 3h anlegen könnte, entweder als 3 eigene Readings oder in einem Reading z.B. über Leerzeichen getrennt?
Danke, Tom

ch.eick

#234
Zitat von: tomhead am 05 Februar 2024, 22:32:43Könntet ihr mir helfen, wie ich in dem EVU_Tibber_connect von Christian noch ein zusätzliches Reading mit der Vorschau des Strompreises für die nächsten 3h anlegen könnte, entweder als 3 eigene Readings oder in einem Reading z.B. über Leerzeichen getrennt?
Danke, Tom
Hallo Tom,
zum EVU_Tibber_connect gehör noch das EVU_Tibber dazu. Dort wird so ziemlich alles, was von Interesse ist angezeigt.
Du darfst diesen Dateianhang nicht ansehen.
Ansonsten wird ja das nächste günstige Fenster angegeben, was Du in einem DOIF als Timer verwenden solltest.
Sobald fc0_trigger_[start|stop] auf null steht gibt es kein Fenster mehr unter dem berechneten trigger Wert.
Wenn Du die Preise nochmal selber auswerten möchtest, müsstest Du im userReading einen Trigger und dann die aktuelle Stunde verwenden, um die nächsten drei Stunden in eigene readings zu kopieren. Nach meiner persönlichen Meinung ist das jedoch nicht notwendig, da Du ja in den readings bereits die Zeiten drin hast.
Für Sperrzeiten wurden auch die fc0_trigger_max_[start|stop] eingeführt, die das Maximum des Tages signalisieren.

VG  Christian

P.S.
im EVU_Tibber wird die uiTable Anzeige der nächsten drei Stunden über eine Funktion im uiTable umgesetzt. Die müsste jedoch für ein userReadings entsprechend umgesetzt werden. Achtung, auch der Tageswechsel muss berücksichtigt werden.

Price([0-3])
sub Price {
  my($i)=@_;
  my $j;
  my $value;
  my ($sec,$min,$hour,$mday,$mon,$year,$wday,$yday,$isdst) = localtime(time); $year += 1900; $mon += 1 ;

  if ($i == 0) {
    $value = ::ReadingsVal(Device(),"current_price",0);
    $value = ( ::ReadingsVal(Device(),"fc0_trigger","off") eq "on" ) ?
         "<span style='color:green'>".$value."</span>" :
         "<span style='color:red'>".$value."</span>" ;
    $value .= " ct/kWh";
  } else {
    $j       = $i+$hour;
    if ($j < 24) {
      $value = ::round(::ReadingsVal(Device(),"fc0_".sprintf("%02d",$j)."_total",0)*100,1);
    } else {
      $j = $j - 24;
      $value = ::round(::ReadingsVal(Device(),"fc1_".sprintf("%02d",$j)."_total",0)*100,1);
    }
    $value = ( ::ReadingsVal(Device(),"fc_trigger_price","0") > $value ) ?
         "<span style='color:green'>".$value."</span>" :
         "<span style='color:red'>".$value."</span>" ;
    $value = sprintf("%02d",$j)." :  ".$value ;
  }
  return  $value;
 }
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

Moin nochmal,
um in einem Verbraucher Device auf den Tibber Trigger zu reagieren habe ich das wie folgt gemacht.

Ein Beispielblock für ein DOIF im Perl Modus
< snip >
################################################################################################################
## 12 Stromboerse
##
12_Stromboerse
{if( !([$SELF:state] eq "off")                                           ## DOIF enabled
     and
      ((   [WR_ctl:Yield_fc0_day] < [WR_1_Speicher_1_ExternControl:SpeicherMinSOC_fc1_Limit]  ## Im Herbst/Winter ist wenig zu erwarten
       and [WB_1:lp_1_PlugStat]         eq "Plugged in"   
#       and [Kia_connect:atHomeStanding] eq "true"                        ##   wenn das Auto zuhause ist

       and [$SELF:SpeicherStromboerse]  eq "Tibber"                      ## Soll Tibber verwendet werden?
       and [EVU_Tibber_connect:fc0_trigger]                              ## Wurde der Trigger geändert
       )
       or [$SELF:ui_command_4] eq "12_Stromboerse"                       ## Hier wird das uiTable select ausgewertet
      )
   ) {

    if ([?EVU_Tibber_connect:fc0_trigger] eq "on") {
      set_Reading("SpeicherTriggerLaden","An");

      fhem_set("WB_1 Lademodus SofortLaden");
      if (AttrVal("$SELF","verbose",0) >= 3)
         {Log 3, "$SELF 12_Stromboerse          : Lademodus SofortLaden"};

    } else {
      set_Reading("SpeicherTriggerLaden","Aus");

      fhem_set("WB_1 Lademodus Stop");
      if (AttrVal("$SELF","verbose",0) >= 3)
         {Log 3, "$SELF 12_Stromboerse          : Lademodus Stop"};

    }

   if (AttrVal("$SELF","verbose",0) >=3)
     {Log 3, "$SELF 12_Stromboerse          : ".[EVU_Tibber_connect:fc0_trigger]." by ".[$SELF:SpeicherStromboerse]};

   set_Reading("ui_command_4","---");                                    ## Hier wird das uiTable select wieder zurückgesetzt, ansonsten
                                                                         ## kann das Kommando nicht sofort wiederholt werden
   }
}
< snip >
Zuerst wird geprüft, wann auf Tibber reagiert werden soll, was bei mir nur im Winter oder bei schlechtem Wetter sein soll.
In diesem Fall ist es das E-Auto, was dann natürlich angesteckt sein muss, man kann es auch verschärfen, indem man das Auto fragt, wo es gerade ist. Hier wird somit noch verhindert, dass kein fremdes Auto "ausversehen" geladen würde (ist momentan auf Kommentar).
"and [$SELF:SpeicherStromboerse]  eq "Tibber"" Das ist ein uiTable Button, mit dem man Tibber aktivieren kann.
"and [EVU_Tibber_connect:fc0_trigger]" Hier wird auf jedes Event des Triggers reagiert, ob es ein on/off ist wird im Block entschieden.

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

ch.eick

Die EVU_Tibber Devices sind in meinem contrib/ch.eick zu finden, der Link ist im Footer.
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

#237
Leider scheint Tibber die Lieferung der aktuellen Kosten nodes_*_cost eingestellt zu haben, weshalb sie aktuell nicht im EVU_Tibber unter Day zu sehen sind.

EDIT:
Auch der WebSocket liefert bei mir nichts mehr zurück.
2024.02.06 09:39:35.023 3: EVU_Tibber_connect:ws_connect: websocket data: >>><<<
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

tomhead

Zitat von: ch.eick am 06 Februar 2024, 08:39:59
Zitat von: tomhead am 05 Februar 2024, 22:32:43Könntet ihr mir helfen, wie ich in dem EVU_Tibber_connect von Christian noch ein zusätzliches Reading mit der Vorschau des Strompreises für die nächsten 3h anlegen könnte, entweder als 3 eigene Readings oder in einem Reading z.B. über Leerzeichen getrennt?
Danke, Tom
Hallo Tom,
zum EVU_Tibber_connect gehör noch das EVU_Tibber dazu. Dort wird so ziemlich alles, was von Interesse ist angezeigt.
Wenn Du die Preise nochmal selber auswerten möchtest, müsstest Du im userReading einen Trigger und dann die aktuelle Stunde verwenden, um die nächsten drei Stunden in eigene readings zu kopieren. Nach meiner persönlichen Meinung ist das jedoch nicht notwendig, da Du ja in den readings bereits die Zeiten drin hast.

VG  Christian
P.S.
im EVU_Tibber wird die uiTable Anzeige der nächsten drei Stunden über eine Funktion im uiTable umgesetzt. Die müsste jedoch für ein userReadings entsprechend umgesetzt werden. Achtung, auch der Tageswechsel muss berücksichtigt werden.

Hallo Christian, ich möchte das als eigene readings haben, um sie dann z.B. in FTUI anzeigen zu können.
Müsste das userReadings im EVU_Tibber_connect dann z.B. so ausschauen? (Sorry, habe leider so gar keine Ahnung von Perl)
next1_hour:current_price.* {
  my($i)=1;
  my $j;
  my $value;
  my ($sec,$min,$hour,$mday,$mon,$year,$wday,$yday,$isdst) = localtime(time); $year += 1900; $mon += 1 ;

  if ($i == 0) {
    $value = ::ReadingsVal(Device(),"current_price",0);
    $value .= " ct/kWh";
  } else {
    $j       = $i+$hour;
    if ($j < 24) {
      $value = ::round(::ReadingsVal(Device(),"fc0_".sprintf("%02d",$j)."_total",0)*100,1);
    } else {
      $j = $j - 24;
      $value = ::round(::ReadingsVal(Device(),"fc1_".sprintf("%02d",$j)."_total",0)*100,1);
    }
    $value = ( ::ReadingsVal(Device(),"fc_trigger_price","0") > $value ) ?;
    $value = sprintf("%02d",$j)." :  ".$value ;
  }
  return  $value;
 }

ch.eick

Zitat von: tomhead am 06 Februar 2024, 21:45:40
Zitat von: ch.eick am 06 Februar 2024, 08:39:59
Zitat von: tomhead am 05 Februar 2024, 22:32:43Könntet ihr mir helfen, wie ich in dem EVU_Tibber_connect von Christian noch ein zusätzliches Reading mit der Vorschau des Strompreises für die nächsten 3h anlegen könnte, entweder als 3 eigene Readings oder in einem Reading z.B. über Leerzeichen getrennt?
Danke, Tom
Hallo Tom,
zum EVU_Tibber_connect gehör noch das EVU_Tibber dazu. Dort wird so ziemlich alles, was von Interesse ist angezeigt.
Wenn Du die Preise nochmal selber auswerten möchtest, müsstest Du im userReading einen Trigger und dann die aktuelle Stunde verwenden, um die nächsten drei Stunden in eigene readings zu kopieren. Nach meiner persönlichen Meinung ist das jedoch nicht notwendig, da Du ja in den readings bereits die Zeiten drin hast.

VG  Christian
P.S.
im EVU_Tibber wird die uiTable Anzeige der nächsten drei Stunden über eine Funktion im uiTable umgesetzt. Die müsste jedoch für ein userReadings entsprechend umgesetzt werden. Achtung, auch der Tageswechsel muss berücksichtigt werden.

Hallo Christian, ich möchte das als eigene readings haben, um sie dann z.B. in FTUI anzeigen zu können.
Müsste das userReadings im EVU_Tibber_connect dann z.B. so ausschauen? (Sorry, habe leider so gar keine Ahnung von Perl)
< snip >
 }
Hallo Tom,

Ich habe es Dir dann mal etwas bereinigt, wobei es natürlich unschön ist das dann drei mal für next[1-3]_hour ins userReadings zu packen :-(
Du müstest dann $i von 1-3 jeweils ändern, ansonsten habe ich den code korrigiert und gekürzt.
next1_hour:current_price.* {
  my $i =1;
  my $j;
  my ($sec,$min,$hour,$mday,$mon,$year,$wday,$yday,$isdst) = localtime(time); $year += 1900; $mon += 1 ;

    $j      = $i+$hour;
    if ($j < 24) {
      return round(ReadingsVal($NAME,"fc0_".sprintf("%02d",$j)."_total",0)*100,1);
    } else {
      $j = $j - 24;
      return round(ReadingsVal($NAME,"fc1_".sprintf("%02d",$j)."_total",0)*100,1);
    }
 }
gibt es im FTUI nicht eventuell eine Funktion, die über die aktuelle Zeit auf das richtige reading zeigen kann?
Irgend etwas, was in der 99_myUtils.pm abgelegt werden kann?
Mach doch mal hier https://forum.fhem.de/index.php?board=71.50 einen Thread auf.


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