trucki-eu / Trucki2Shelly-Gateway

T2SG *.bin file for a ESP8266 WEMOS D1 mini. Its purpose is to read the total power from a Shelly 3EM and send it via UART to Trucki's RS485 interface pcb for SUN GTIL2-1/2000 MPPT inverter
111 stars 7 forks source link

feature request: add support for tibber pulse #6

Open christophsing opened 1 year ago

christophsing commented 1 year ago

It would be good to have a native support for tibber pulse here. This is helpful for people where a shelly is not possible or not allowed.

trucki-eu commented 1 year ago

Kannst Du mir mehr Input geben? z.B. Kann man mit CURL den aktuellen Verbrauch auslesen? Braucht man dafür https und einen speziellen Auth Header / API Key?

christophsing commented 1 year ago

aber gerne doch - es gibt eine Anleitung wie das klappen könnte - erscheint mir jedoch nicht besonders praktikabel. https://github.com/MSkjel/LocalPulse2Tibber

eine direkte Anbindung an die Tibber APi ist möglich aber aufgrund des Rate limits nicht sinnvoll: https://developer.tibber.com/docs/overview

Ich habe eine Anfrage an Tibber gesendet und melde mich nochmal mit Infos.

wauzzi commented 1 year ago

Die Tibber Json Werte bekommt man Problemlos in den IO Broker mittels NODE RED und können problemlos über den SETPOINTOVR an den SUN XY mittels Script übergeben werden. Klappt bei mir Problemlos.

christophsing commented 1 year ago

@wauzzi von wo werden die Daten abgerufen? Von der Tibber public API? Diese hat ein rate limit von 100 request pro Minute.

wauzzi commented 1 year ago

@wauzzi von wo werden die Daten abgerufen? Von der Tibber public API? Diese hat ein rate limit von 100 request pro Minute.

Ich bin grad unterwegs, daher kann ich nicht direkt schauen. Die Live Daten werden über eine WebSocket Schnittstelle abgerufen

wauzzi commented 1 year ago

@wauzzi von wo werden die Daten abgerufen? Von der Tibber public API? Diese hat ein rate limit von 100 request pro Minute.

https://developer.tibber.com/docs/guides/calling-api

christophsing commented 1 year ago

@wauzzi es sind sogar nur 100 requests pro 5 Minuten:

Rate limiting There is a rate limit of 100 requests in 5 minutes per IP address intended to protect the API. Note that prices are calculated once per day in the afternoon (for Norway and Sweden they are first preliminary and later finalized potentially with minor changes after currency rates are confirmed). You can use priceInfo.today and priceInfo.tomorrow for fetching them up front instead of only using priceInfo.current for the current hour.

For more information see Calling API

wauzzi commented 1 year ago

@wauzzi es sind sogar nur 100 requests pro 5 Minuten:

Rate limiting There is a rate limit of 100 requests in 5 minutes per IP address intended to protect the API. Note that prices are calculated once per day in the afternoon (for Norway and Sweden they are first preliminary and later finalized potentially with minor changes after currency rates are confirmed). You can use priceInfo.today and priceInfo.tomorrow for fetching them up front instead of only using priceInfo.current for the current hour.

For more information see Calling API

Bei einer WebSocket Verbindung handelt es sich nach Aussage meines Arbeitskollegen (Entwickler) nicht direkt um einen request, sondern eine Art Live Stream.

Die Request wo du meist, beziehen sich glaube ich nur auf den Abruf der aktuellen Preise.

marcokiewit commented 1 year ago

aber gerne doch - es gibt eine Anleitung wie das klappen könnte - erscheint mir jedoch nicht besonders praktikabel. https://github.com/MSkjel/LocalPulse2Tibber

eine direkte Anbindung an die Tibber APi ist möglich aber aufgrund des Rate limits nicht sinnvoll: https://developer.tibber.com/docs/overview

Ich habe eine Anfrage an Tibber gesendet und melde mich nochmal mit Infos.

Hast du auf deine Anfrage schon eine Antwort bekommen?

christophsing commented 11 months ago

https://github.com/marq24/ha-tibber-pulse-local

Tekklab commented 11 months ago

https://github.com/marq24/ha-tibber-pulse-local

Danke fürs teilen, das funktioniert tatsächlich hervorragend nach Freischaltung der Pulse. Wenn ich das richtig gelesen habe, könnte man nun mal versuchen die Daten über http://admin:{pwd}@{host}/data.json?node_id=1 zu nutzen

Tekklab commented 10 months ago

Heute sind Trucki Platine und Meanwell Stick gekommen, Tibber Vertrag startet ab Januar, Zugriff etc. funktionieren aber, ich werde also mit der Tibber Integration starten. Frage in die Runde: Gibt es da grundsätzlich Interesse an einer "echten" Tibber Pulse Anbindung oder reicht auch eine Anbindung über HA, das wäre nämlich relativ easy und funktioniert bereits jetzt:

  1. die Schritte auf https://github.com/marq24/ha-tibber-pulse-local befolgen, d.h. 1.1 Tibber Pulse Frontend dauerhaft öffnen (ist recht einfach und gut beschrieben) 1.2. HACS Integration in HA durchführen und die lokalen Werte sind in HA zu finden

Läuft bei mir seit 3 Wochen sehr stabil, sehr viel stabiler als die Tibber API, die ich zusätzlich in HA angebunden habe und die im Zeitraum einige Aussetzer hatte.

2a. Jetzt kann man sich einfach den Wert des im Schritt 1 erzeugten Sensors als JSON direkt von der lokalen HA API holen: curl -H "Authorization: Bearer TOKEN" -H "Content-Type: application/json" http://HA-IP:8123/api/states/sensor.PULSE-SENSOR und im Trucki2Shelly hinterlegen. Das JSON Objekt sieht dann so aus: {"entity_id":"sensor.pulse_0100100700ff","state":"446.85","attributes":{"state_class":"measurement","unit_of_measurement":"W","device_class":"energy","icon":"mdi:meter-electric","friendly_name":"Tibber Pulse Bridge local polling Wirkleistung aktuell"},"last_changed":"2023-11-15T17:53:49.487536+00:00","last_updated":"2023-11-15T17:53:49.487536+00:00","context":{"id":"XXX","parent_id":null,"user_id":null}}%

ODER

2b. man schreibt den Wert des Sensors einfach in die MQTT Topic: T2SG/METEROVR (meter_url muss dabei leer sein)

Das ist dann noch keine echte Tibber Integration, sondern eine Tibber Pulse Integration, interessant wird's dann beim Laden des Akkus zu günstigen Zeiten über das Trucki2Meanwell Gateway. Hier schaue ich mir gerade die von der Tibber API zur Verfügung gestellten "PriceLevel" an, ein Ansatz wäre: Laden des Akku bei "VERY_CHEAP" und "CHEAP" und die Nutzung des SUN bei "EXPENSIVE" und "VERY_EXPENSIVE" Strom.

Gibts Interesse und/oder bereits gesammelte Tibber Erfahrung?

Ultrahoschie commented 9 months ago

Ich hätte definitiv Interesse, da damit das System rund wird! Zudem könnte man von günstigen Preisen bei eventuellen zuladen und endladen profitieren.

Ultrahoschie commented 9 months ago

Zudem ist es so, das alle drei Phasen ausgelesen werden, ähnlich dem Shelley!

enterframe commented 6 months ago

+1

Tekklab commented 6 months ago

jetzt ist es doch stiller im feature request geworden... Grundsätzlich kann sich jeder seine Pulse lokal freischalten und dann erhält dann ein json Objekt mit den notwendigen Werten, Anleitung siehe oben. Integration in das T2S Gateway wäre möglich, hier liegt die Entscheidung bei @trucki-eu , ob er diesen Ansatz weiter verfolgen will. Integration der Tibber API halte ich für schlechtere Variante, ich erlebe häufig aussetzer der API, teilweise über mehrere Stunden fehlen dann die korrekten Werte - blöd wenn Sun oder Laderegler dann z.b. mit Volldampf gegen falsche Werte arbeiten. Die Frage ist nur, wie sinnvoll eine reine Integration der Tibber Pulse lokal in das T2S Gateway ist, da im Gateway ja zusätzlich noch z.B. Schwellwerte Preis/kWh aus der Tibber API integriert werden müssten. Bin mir nicht sicher, ob das wirklich die Aufgabe des T2SG sein sollte - für mich sind das eher Aufgaben eines EMS.

Ich habe mittlerweile die Logik für die Steuerung meines Hausakkus (mit T2SG & T2MG) komplett in Home Assistant abgebildet. Dazu habe ich die Tibber Pulse Local Komponente, sowie die Tibber API in HA angebunden. Mit diesen Werten kann man sehr einfach über z.B. HA Automationen Logiken zum laden bei günstigen Strompreisen etc. abbilden.

D.h. im Normalfall schreibe ich die live Verbrauchswerte der Pulse Local Komponente direkt auf die METEROVR Queue von Sun und Meanwell, beide Geräte arbeiten damit super, ich sehe da keinerlei Nachteil z.b. ggü. einem Shelly. Wenn jetzt z.B. der Tibber Strom besonders günstig ist und einen Schwellwert (z.B. kWh Preis oder PriceLevel der Tibber API) unterschritten wird, dann stoppe ich für diesen Zeitraum das schreiben auf die METEROVR Queue und setze ACSETPOINTOVR auf den Maximalwert des Meanwell Ladereglers. Nach dem günstigen Zeitfenster gehts dann wieder normal weiter, sobald man auf die METEROVR Queue schreibt, wird der ACSETPOINT überschrieben. Nach dem gleichen Prinzip lasse ich den Sun nur laufen, wenn die Energiepreise über einem Schwellwert sind, damit der Akku nicht leer gelutscht wird, wenn die Energiepreise gerade besonders günstig sind. Über die Batteriespannung kann man dann noch feiner Akkuladung und Entladung organisieren.

Geht in Home Assistant alle ohne eine Zeile Code, richtig spannend wäre eine vollwertige Integration von T2SG und T2MG für mich dann in das geplante EMS von Andreas Schmitz. @trucki-eu hast du eventuell schon mehr Infos?