Tibber & Tibber Pulse

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

Vorheriges Thema - Nächstes Thema

octek0815

Zitat von: ch.eick am 15 März 2023, 18:15:56
Das steht schon hier :-)

Sorry, war zu schnell mit dem Schreiben, habe ich auch schone gelesen.
Aber wie kann ich die HomeID auslesen?

ch.eick

#46
Zitat von: octek0815 am 15 März 2023, 18:17:28
Sorry, war zu schnell mit dem Schreiben, habe ich auch schone gelesen.
Aber wie kann ich die HomeID auslesen?
Ich meine, das wäre auch bereits weiter vorne beschrieben, ich finde es nur gerade nicht ;-)

EDIT: And here we go
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

Butzel

Zitat von: Prof. Dr. Peter Henning am 14 März 2023, 19:46:07
Bitte mal die Dokumenation zu FHEM lesen. Keines der Gerätemodule erstellt eigene Logs oder Graphen.

LG

pah

Gerne schaue ich mal nach. Ich habe so tolle Module bei mir integriert. Falls es wider Erwarten nicht vorhanden sein sollte, so kann man es gerne als Anregung aufnehmen.

octek0815

Zitat von: ch.eick am 15 März 2023, 18:21:33
Ich meine, das wäre auch bereits weiter vorne beschrieben, ich finde es nur gerade nicht ;-)

EDIT: And here we go

Habs raus...

Im GraphiQL mit folgendem abfragen


{
  viewer {
    homes {
      id
    }
  }
}


Trotzdem danke.

ch.eick

#49
Hallo zusammen,

ich habe hier mal die Device Definition aktualisiert.

Mit einem regelmäßigen start von "get 03_consumption_hour" kann man damit die letzte von Tibber berechnete Stunde abrufen und loggen.
Für DbLog, mit MySQL, wird dabei im userReading direkt mit dem richtigen TIMESTAMP in die Datenbank geschrieben.
Bei FileLog wäre auf das richtige Timing zu achten, damit Ihr den Eintrag dann richtig zuordnen könnt. Nach meiner Meinung macht aber im
Strom Geschäft auf jeden fall eine Datenbank sinn.

Bitte testet den TIMESTAMP, damit ich das noch korrigieren kann, ich denke ich liege da im Moment noch falsch.
Auch für die Berechnung des "Strompreis" bräuchte ich mal eine Rückmeldung, da ich vermute, dass "$val *100" sicherlich nicht korrekt 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

ZitatGerne schaue ich mal nach. Ich habe so tolle Module bei mir integriert. Falls es wider Erwarten nicht vorhanden sein sollte, so kann man es gerne als Anregung aufnehmen.
Nicht doch. Grafiken und Logs werden _nicht_ von den Gerätemodulen erzeugt.

LG

pah

Butzel

Guten Morgen,

dann habe ich mich anscheinend falsch ausgedrückt. Die Anregung halte ich aufrecht.

Viele Grüße

TimoD

#52
Zitat von: ch.eick am 20 Februar 2023, 17:16:05
Zitat von: TimoD am 20 Februar 2023, 13:40:39Also ich habe nun heute meinen Tarif bei Tibber abgeschlossen.

Konfiguration, ähnlich PV Anlage mit Speicher, 2x e-Auto und eigentlich auch ziemlich autark. Bei Interesse kann ich gerne über meine Erfahrungen inkl. PULSE stündlicher Abrechnung berichten.

Denn HTTPMOD zur Abfrage habe ich hinbekommen:

Jetzt würde ich gerne mit Regex alle data_viewer_homes_01_currentSubscription_priceInfo_today_08_startsAt.* in die eigentliche Uhrzeit zerlegen. (Zur not wüsste ich wie ich das über userreadings macht) könnt Ihr mir hier weiterhelfen?
Hallo Timo,
hier wäre dann mal meine Definition, jedoch nur mit dem Test Konto ausprobiert.

Es gibt bisher vier get Aufrufe, die man z.B. mit einem DOIF triggern könnte.
01_priceInfo
02_priceall
03_consumption_hourly_100
04_address
Hierbei setzen 01_priceInfo und auch 01_priceInfo beide den aktuellen Preis und Datum, sowie Uhrzeit.

Beim 02_priceall werden die readings für heute und morgen geschrieben.
Ich habe die reading Namen an andere Devices im FHEM angeglichen:
fc0_00_*    ist der Forecast, wobei 0 für heute steht und 00 bis 23 die jeweilige Stunde ist
fc1_00_*    wäre dann für morgen

Eventuell könnte man noch die *startsAt weg lassen, da das ja im reading Namen mit der Stunde enthalten ist. Unter Datum und Uhrzeit wäre der Rest an Information.
Die consumption habe ich noch nicht aufgedröselt, da wären Vorschläge gerne gesehen. Auch die Adresse ist noch nicht eingelesen, falls das jemand haben möchte.

VG  Christian

UPDATE 20230316
- Die get Definitionen wurden erweitert und haben sich in der Nummerierung verschoben
- 03_consumtion_hour holt die letzte Preisberechnung. Achtung, bitte prüft mal die Zuordnung der Uhrzeit, wegen der timezone Anzeige.
- im userReading wird die letzte Preisberechnung in die DbLog geschrieben.
  Dafür muss noch ein DbRep Device definiert werden.
  Wenn Ihr kein DbLog mit MySQL verwendet muss das userReading nodes_to_TIMESTAMP gelöscht werden, oder aber auch für andere Datenbanken geändert werden.

DbRep Device
defmod LogDBRep_<Tibber Device Name>_SQL DbRep <DbLog Device Name>
attr LogDBRep_<Tibber Device Name>_SQL DbLogExclude .*
attr LogDBRep_<Tibber Device Name>_SQL room System
attr LogDBRep_<Tibber Device Name>_SQL sqlCmdHistoryLength 5

Tibber Device
defmod EVU_Tibber HTTPMOD https://api.tibber.com/v1-beta/gql 0
attr EVU_Tibber DbLogExclude .*
attr EVU_Tibber comment Version 2023.03.16 12:00 \
https://developer.tibber.com/explorer
attr EVU_Tibber enableControlSet 1
....

Bin gerade an der erneuten Einrichtung, das es bei mir funktioniert benötigen die beiden attr
replacement01 & 02 Mode text
Melde mich wie es weiter geht :-)

Edit1: Also es scheint alles soweit zu funktionieren.

Was die Abfragen angeht.

Allerdings kenne ich mich mit dem dblog nicht aus, kannst du mir erklären, was folgendes macht:
defmod LogDBRep_EVU_Tibber_SQL DbRep logdb
attr LogDBRep_EVU_Tibber_SQL DbLogExclude .*
attr LogDBRep_EVU_Tibber_SQL room System
attr LogDBRep_EVU_Tibber_SQL sqlCmdHistoryLength 5

Und wie ich daraus z.B. in FTUI3 ein Plot erzeugen kann?
Und was folgendes macht:
nodes_to_TIMESTAMP:nodes_cost.* {
my $timestamp =sprintf("%s %s:00",ReadingsVal("$NAME","nodes_to_date","0000-00-00"),
                                                    ReadingsVal("$NAME","nodes_to_hour",0)+ReadingsVal("$NAME","nodes_to_timezone",0) );
::CommandGet(undef, "LogDBRep_".$NAME."_SQL sqlCmdBlocking
                  INSERT INTO history (TIMESTAMP,DEVICE,TYPE,READING,VALUE)
                    VALUES('".$timestamp."','$NAME','Tibber','nodes_cost','".ReadingsVal("$NAME","nodes_cost","null")."')
                  ON DUPLICATE KEY UPDATE
                    VALUE='".ReadingsVal("$NAME","nodes_cost","null")."';") ;
$timestamp;
}
-> Muss ich diesem Code noch anpassen, wie mein dblog Device heißt?

Was ich zusätzlich gerne hätte, ich würde gerne die zukünftigen Strompreise auch ein einem Plot darstellen, wie muss ich den die Werte fc0_xx_total in ein Plot schreiben, dass ich mir diese anzeigen lassen kann?

Vorab vielen Dank für deine MEGA Arbeit :-)
Grüße Timo

Edit 2:
Und ich würde sagen die Timestamps passen noch nicht, wenn ich get03 mache, bekomme ich um 15:58 die Kostenangezeigt für 17 Uhr, müssten ja aber 14 Uhr sein, oder?

Muss ich denn jetzt eigentlich noch die Abfrage 03 zyklisch einmal in der Stunde aufrufen?

Edit 3: Ich bin nun in der Lage für mein Proplanta Device nach dieser Anleitung LINK die Vorhersage zu plotten, dass dies auch für das Tibber Device möglich ist, wird dann wohl eine Sub-Func benötigt, folgendes habe ich versucht, leider klappt das noch nicht:

sub logProxy_Tibber2Plot($$$$) {
my ($device, $fcValue, $from, $to) = @_;
my @rl;

return undef if( !$device );

if( defined($defs{$device}) ) {
if( $defs{$device}{TYPE} eq "HTTPMOD" ) {
@rl = sort( grep /^fc.*_$..${fcValue}/,keys %{$defs{$device}{READINGS}} );
return undef if( !@rl );
} else {
Log3 undef, 2, "logProxy_proplanta2Plot: $device is not a PROPLANTA device";
return undef;
}
}

my $fromsec = SVG_time_to_sec($from);
my $tosec   = SVG_time_to_sec($to);
my $sec = $fromsec;
my ($h,$fcDay,$mday,$mon,$year);
my $timestamp;
   
my $reading;
my $value;
my $prev_value;
my $min = 999999;
my $max = -999999;
my $ret = "";

# while not end of plot range reached
while(($sec < $tosec) && @rl) {
#remember previous value for start of plot range
$prev_value = $value;

$reading = shift @rl;
                $reading =~ m/^fc([\d]+)_$([\d]+)${fcValue}/;
                $fcDay = $1;
                $h = $2;
$value = ReadingsVal($device,$reading,undef);
       
($mday,$mon,$year) = split('\.',ReadingsVal($device,"fc".$fcDay."_".$h."_startsAt",undef));
$timestamp = sprintf("%04d-%02d-%02d_%02d:%02d:%02d", $year, $mon, $mday, $h, 0, 0);
$sec = SVG_time_to_sec($timestamp);
       
# skip all values before start of plot range
next if( SVG_time_to_sec($timestamp) < $fromsec );

# add first value at start of plot range
if( !$ret && $prev_value ) {
$min = $prev_value if( $prev_value < $min );
$max = $prev_value if( $prev_value > $max );
$ret .= "$from $prev_value\n";
}

# done if after end of plot range
last if( SVG_time_to_sec($timestamp) > $tosec );

$min = $value if( $value < $min );
$max = $value if( $value > $max );

# add actual controll point
$ret .= "$timestamp $value\n";
}
return ($ret,$min,$max,$prev_value);
}

ch.eick

#53
ZitatEdit1: Also es scheint alles soweit zu funktionieren.

Was die Abfragen angeht.
Das ist schon mal gut.

ZitatAllerdings kenne ich mich mit dem dblog nicht aus, kannst du mir erklären, was folgendes macht:
Das DbLog Device alleine macht erstmal gar nichts, es dient der Kommunikation aus FHEM zur Datenbank.
Das userReading ruft dann aus dem Perlcode dieses DbRep auf und lässt den SQL Code in der Datenbank ausführen.

ZitatMuss ich diesem Code noch anpassen, wie mein dblog Device heißt?
Wenn Du die Devices umbenennst, musst Du auch den Code anpassen.
Ich habe versucht es etwas generischer zu machen. An dieser Stelle wird der Name des DbRep devices generiert.
LogDBRep_".$NAME."_SQL

ZitatUnd wie ich daraus z.B. in FTUI3 ein Plot erzeugen kann?
Die Daten für den Plot befinden sich in der Datenbank.

ZitatWas ich zusätzlich gerne hätte, ich würde gerne die zukünftigen Strompreise auch ein einem Plot darstellen, wie muss ich den die Werte fc0_xx_total in ein Plot schreiben, dass ich mir diese anzeigen lassen kann?
Wenn die Abfrage von Tibber stündlich erfolgt sollte durch das userReading der Wert nodes_cost mit dem korrekten Zeitstempel in die Datenbank geschrieben werden. Das wäre ein Beispiel, wie man sowas machen kann. Dieser Umweg ist erforderlich, damit der Wert in der Datenbank nicht einen automatischen TIMESTAMP bekommt, denn wäre irgendwann in der Folgestunde.

ZitatUnd ich würde sagen die Timestamps passen noch nicht, wenn ich get03 mache, bekomme ich um 15:58 die Kostenangezeigt für 17 Uhr, müssten ja aber 14 Uhr sein, oder?
Das war ja eine meiner Fragen, da ich selber keine Eecht Daten habe :-) Somit muss die Zeitberechnung im userReading geändert werden.
Wir müssen jetzt raus finden, ob der Zeitwert "nodes_to_date" passender wäre und was mit der "nodes_to_timezone" zu tun ist. Das wird dann in dieser Berechnung geändert.
my $timestamp =sprintf("%s %s:00",ReadingsVal("$NAME","nodes_to_date","0000-00-00"),
                                                    ReadingsVal("$NAME","nodes_to_hour",0)+ReadingsVal("$NAME","nodes_to_timezone",0) );

ZitatMuss ich denn jetzt eigentlich noch die Abfrage 03 zyklisch einmal in der Stunde aufrufen?
Ja, um kurz nach der Vollen Stunde wäre wohl passend, wenn da bereits die nodes_cost von Tibber bereit stehen.
Auch die fc0 und fc1 Werte müssen getriggert werden, was aber nicht jede Stunde passieren sollte.
Meisten baue ich ein DOIF im Perl Modus in dem ich soetwas triggere und auch meine Daten im FHEMWEB als Tabelle anzeige. Mit Pull Down Menüs habe ich dann auch die Möglichkeit einzelne Aktionen auch manuell zu starten. Hier im Wiki wären mal Beispielbilder.

ZitatEdit 3: Ich bin nun in der Lage für mein Proplanta Device nach dieser Anleitung LINK die Vorhersage zu plotten, dass dies auch für das Tibber Device möglich ist, wird dann wohl eine Sub-Func benötigt, folgendes habe ich versucht, leider klappt das noch nicht:
Mit logproxy kenne ich mich nicht aus, ich versuche immer erst die Daten richtig in die Datenbank zu schreiben und hole mir dann alles mit Grafana wieder raus. Bei einer MySQL SELECT abfrage kann man auch noch vieles korrigieren oder anders aufbereiten.
Wenn ich mir Deinen logproxy Code anschaue, wird damit wohl auch der TIMESTAMP entsprechend dem reading Namen korrigiert, was ich bereits vor dem Schreiben in die Datenbank mache. Aus fc0_hh wird bei mir ein "<Datum heute> hh:00:00" in die Datenbank geschrieben. Der Rest wird dann bei der Abfrage aus der Datenbank vom Grafana erledigt, also z.B. der Plot Zeitraum und was ansonsten noch so mit dem Plot zu tun hat.

ZitatWas ich zusätzlich gerne hätte, ich würde gerne die zukünftigen Strompreise auch in einem Plot darstellen, wie muss ich den die Werte fc0_xx_total in ein Plot schreiben, dass ich mir diese anzeigen lassen kann?
Die kannst Du im Tibber Device mit dem Attribut "DbLogInclude" über DbLog in die Datenbank schreiben lassen.
attr EVU_Tibber DbLogInclude fc.*_.*_total
Bei meiner PV-Leistungs Prognose schreibe ich mir jedoch auch die fc1 Werte mit einem Datum vom Folgetag in die Datenbank, wodurch ich dann am aktuellen Tag mit der Prognose vom Vortag vergleichen kann, da sich diese oftmals unterscheiden.
Ob Tibber auch die fc0 Werte im Vergleich zur fc1 Preisauskunft anpasst kann ich nicht sagen. Eigentlich dürfte das nicht sein, da ja die Preise 24h vorher bekannt gegeben werden.

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

Ollifant

#54
Hi Zusammen,

ich bin seit kurzem auch Tibber Kunde und habe inzwischen den Tibber Pulse in Betrieb genommen. Da dieser nun meinen IR Lesekopf ersetzt, möchte ich gerne den Gesamtverbrauch und die Gesamteinspeisung des Zählers weiterhin als Info abgreiefn und nun aus der Tibber API beziehen.

Im Tibber API Explorer kann ich über das Beispiel der Real Time Subscription diese Infos sehen (lastMeterConsumption, lastMeterProduction), aber verstehe leider nicht wie ich diese über das FHEM HTTPMOD abgreifen könnte.

Sofern ich das richtig verstanden habe, greifen die in diesem Beitrag genannten HTTPMOD Abfragen die Daten in Form von Queries ab. Die oben genannten Infos werden über einen kontinuierlichen Stream bereitgestellt. Kann man die HTTPMOD Abfragen so anpassen, dass sie die von mir gewünschten Infos auslesen können?

In der Tibber Schema Reference habe ich auf Anhieb auch keine alternativen Werte gefunden, die ich über ein Query auslesen könnte.

Wäre das von mir gewünschte möglich und wenn ja wie?

Danke und viele Grüße
Michael

ch.eick

#55
Zitat von: Ollifant am 01 April 2023, 21:12:55Hi Zusammen,

ich bin seit kurzem auch Tibber Kunde und habe inzwischen den Tibber Pulse in Betrieb genommen. Da dieser nun meinen IR Lesekopf ersetzt, möchte ich gerne den Gesamtverbrauch und die Gesamteinspeisung des Zählers weiterhin als Info abgreiefn und nun aus der Tibber API beziehen.

Im Tibber API Explorer kann ich über das Beispiel der Real Time Subscription diese Infos sehen (lastMeterConsumption, lastMeterProduction), aber verstehe leider nicht wie ich diese über das FHEM HTTPMOD abgreifen könnte.

Sofern ich das richtig verstanden habe, greifen die in diesem Beitrag genannten HTTPMOD Abfragen die Daten in Form von Queries ab. Die oben genannten Infos werden über einen kontinuierlichen Stream bereitgestellt. Kann man die HTTPMOD Abfragen so anpassen, dass sie die von mir gewünschten Infos auslesen können?

In der Tibber Schema Reference habe ich auf Anhieb auch keine alternativen Werte gefunden, die ich über ein Query auslesen könnte.
Moin Michael,
das wurde schon mal weiter zu beginn beantwortet, bisher haben wir noch keinen Weg, um eine Dauer Session aufzubauen.
Somit können wir nicht die aktuellen, gestreamten Werte mitlesen. Mit dem HTTPMOD werden nur Abfragen zur API durchgeführt.

Eventuell könntest Du versuchen die Daten direkt lokal vom Tibber Pulse mit einem eigenen FHEM Device zu holen.

Hier habe ich bereits etwas für node-red gefunden, was man eventuell als "Proxy" dazwischen schalten könnte.

EDIT: Ich habe gerade mal den node-red Flow ausprobiert und man kann darüber eine Session aufbauen, die die aktuellen Tibber Pulse Werte liefert.
Zitatpower,location=test,currency=SEK power=0,lastMeterConsumption=46158.47,accumulatedConsumption=19.684,accumulatedProduction=13.505,accumulatedCost=24.575738,accumulatedReward=18.294575,minPower=0,averagePower=1614.1,maxPower=5385,powerProduction=2066,minPowerProduction=0,maxPowerProduction=4102,lastMeterProduction=6597.485,powerFactor=0,voltagePhase1=228.9,voltagePhase2=228.9,voltagePhase3=230.5,currentL1=1.8,currentL2=5,currentL3=5.8
Mit etwas Geduld müsste man nun den Flow erweitern und z.B. die Werte mit mqtt zum FHEM senden, oder wie in der Demo direkt in eine Datenbank schreiben.
Um es dann ganz sauber zu implementieren würde man dann natürlich auch die jetzigen HTTPMOD API Aufrufe ins Node-Red überführen und dann im FHEM ein mqtt Device verwenden. Somit wäre dann der Node-Red Flow ein Proxy inklusiese der Tibber Pulse Session zum FHEM mqtt.

So, mit etwas clicky,clicky habe ich am ende des Flow mal mqtt verbunden und siehe da, mit autocreate war ein Device im FHEM, was die Tibber Pulse Daten entgegen nimmt. Das geschiet jedoch im Sekundentakt, aber ich habe den Node-Red Modul Schöpfer bereits mal angeschrieben, ob man das auf 1/Minute (konfigurierbar) bremsen könnte.

UPDATE: 20220403 16:30
Ich habe den Node-Red Flow schon etwas modifiziert und die Datenübergabe zum MQTT auf JSON verändert. Das lässt sich dann sehr schön im FHEM wieder entpacken und könnte so aussehen.
   READINGS:
     2023-04-03 15:14:55   IODev           MQTT2_FHEM_Server
     2023-04-03 16:28:56   I_L1            2.6
     2023-04-03 16:28:56   I_L2            3.5
     2023-04-03 16:28:56   I_L3            2.5
     2023-04-03 16:28:56   P_avg           1355.5
     2023-04-03 16:28:56   P_max           5385
     2023-04-03 16:28:56   P_min           0
     2023-04-03 16:28:56   U_L1            227.4
     2023-04-03 16:28:56   U_L2            226.7
     2023-04-03 16:28:56   U_L3            228.5
     2023-04-03 16:28:56   accumulatedConsumption 22.344
     2023-04-03 16:28:56   accumulatedCost 27.794746
     2023-04-03 16:28:56   accumulatedProduction 17.693
     2023-04-03 16:28:56   accumulatedReward 21.963537
     2023-04-03 16:28:56   currency        SEK
     2023-04-03 16:28:56   lastMeterConsumption 46161.13
     2023-04-03 16:28:56   lastMeterProduction 6601.673
     2023-04-03 16:28:56   location        test
     2023-04-03 16:28:56   maxPowerProduction 4102
     2023-04-03 16:28:56   meassurement    power
     2023-04-03 16:28:56   minPowerProduction 0
     2023-04-03 16:28:56   power           1222
     2023-04-03 16:28:56   powerFactor     0.793
     2023-04-03 16:28:56   powerProduction 0
Nur die reading Namen gefallen mir so noch nicht,denn leider macht jeder Hersteller wieder etwas anderes. Hättet Ihr da einen Vorschlag? Das I/P/U habe ich bereits geändert :-)

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

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

#57
Achtung, all diese Updates sind weiter nach oben gerutscht und auf 5 Teile aufgeteilt.

UPDATE 20230411
Ich habe nochmal geringfügig Fehler korrigiert und das RAW ersetzt.

Im Moment habe ich festgestellt, dass es bei z.B. 9 ct Einspeisevergütung kaum einen günstigen Preis zum Laden des Speichers geben würde, man könnte natürlich auch selber jede andere Einspeisevergütung eintragen und es damit etwas justieren. Ich denke im Herbst Winter, wo man das dann wirklich braucht,

< snip >

Das 04_consumtion_hourly_100 ist für ein Nachtragen bei einer Tibber Störung gedacht und deckt ca. 4 Tage rückwirkend ab. Das SQL INSERT würde nur die fehlenden Einträge in der Datenbank ergänzen und die bereits vorhandenen behalten.
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

Damian

Darstellung von Prognosedaten des Tages im Tibber-Device siehe:

https://forum.fhem.de/index.php?topic=132188.msg1272752#msg1272752
Programmierte FHEM-Module: DOIF-FHEM, DOIF-Perl, DOIF-uiTable, THRESHOLD, FHEM-Befehl: IF

duu75

Zitat von: decaflo am 02 März 2023, 17:57:43
Zitat von: haneub am 02 Februar 2023, 20:21:07Hallo,
ich verwende im Moment einen eigenen USB IR-Kopf um meinen Stromzähler ca alle 30s auszulesen und damit die Leistung der go-e Wallbox an die Photovoltaikleistung anzupassen.
Funktioniert subba.
Nun möchte ich zu Tibber wechseln um in den energiereichen Zeiten im Winter auch zu laden. Bei Tibber wird der Tibber Kopf aber an die Stelle gesetzt, wo jetzt mein IR Lesekopf ist.

Wie bekomme ich die aktuelle Leistung alle ca. 30s in fhem wenn ein Tibber Pulse installiert ist?

Bei mir hängt an /dev/ttyUSB0 ein IR-Kopf am Stromzaehler und ein zweiter an /dev/ttyUSB1 ist verbunden mit dem Tibber Pulse. /dev/ttyUSB0 und /dev/ttyUSB1 sind über socat verbunden, das als MITM die übertragenen Daten an fhem ausleitet.
Zitat von: decaflo am 02 März 2023, 17:57:43
Zitat von: haneub am 02 Februar 2023, 20:21:07Hallo,
ich verwende im Moment einen eigenen USB IR-Kopf um meinen Stromzähler ca alle 30s auszulesen und damit die Leistung der go-e Wallbox an die Photovoltaikleistung anzupassen.
Funktioniert subba.
Nun möchte ich zu Tibber wechseln um in den energiereichen Zeiten im Winter auch zu laden. Bei Tibber wird der Tibber Kopf aber an die Stelle gesetzt, wo jetzt mein IR Lesekopf ist.

Wie bekomme ich die aktuelle Leistung alle ca. 30s in fhem wenn ein Tibber Pulse installiert ist?

Bei mir hängt an /dev/ttyUSB0 ein IR-Kopf am Stromzaehler und ein zweiter an /dev/ttyUSB1 ist verbunden mit dem Tibber Pulse. /dev/ttyUSB0 und /dev/ttyUSB1 sind über socat verbunden, das als MITM die übertragenen Daten an fhem ausleitet.

Kannst du das mal etwas näher erläutern?
Welche Hardware genau hast du am T.Pulse hängen um zu senden?
Und wie macht man das mit SOCAT und dem 1:1 Weiterleiten von einem Serial-Port zum anderen?

Habe selber die preiswerteste Version nur mit Phototransistor an einem CP2102 USB/UART dranhängen und logge so die OBIS Daten in FHEM.
Das würde ich gerne so belassen aber gleichzeitig auch Tibber Pulse nutzen können.
FHEM auf Ubuntu 20.04
RaspberryMatic CCU3 Charly, CUL 868, HUEBridge 2.0, HM-CFG-USB, AVR-NET-IO, Wemos D1 Mini ESP Easy, ESP32-CAM AI-on-the-Edge