Per Skript Daten einlesen über Tibber Pulse API, um mit Balkon PV einzuspeisen

  • Hallo,

    erstmal vorweg ich bin neu was das Thema Shelly angeht. Ich würde aber gerne folgendes Umsetzen:

    Wir haben eine Balkon PV Anlage die oft einspeist, wenn wir keinen Verbrauch haben. Unser Eigensverbauchsanteil liegt bei gerademal 60%. Da ich einen 36V 2kwh Akku sowieso hier habe (brauche ihn für unser Boot, aber halt nur 10-15Tage im Jahr), würde ich diesen gerne nutzen um den Eigenverbrauchs Anteil zu erhöhen. Dafür habe ich ein Solarladeregler gekauft und eine Konstantstromquelle mit der ich auf den Wechselrichter gehe. Wer mehr Infos dazu braucht kann sich dazu ein Video von Andreas Schmitz auf Youtube anschauen. Nun ist die spannende Frage, wann speise ich wie viel in das Netz ein.

    Nun haben wir auch einen Tibber Pulse am Stromzähler installiert. Dieser liest den Zähler live aus und schickt die Daten per Internet an Tibber. Tibber stellt die Daten auch über eine Schnittstelle zur Verfügung per API und nutzt dafür GraphQL. Dafür habe ich mir einen Token generiert und die Abfrage auf der Webseite sieht wie folgt aus:

    [script] [/script]

    [script]{ [/script]

    [script]viewer { [/script]

    [script]homes { [/script]

    [script]consumption(resolution: HOURLY, last: 10) { [/script]

    [script]nodes { [/script]

    [script]from [/script]

    [script]to [/script]

    [script]consumption [/script]

    [script]} [/script]

    [script]} [/script]

    [script]} [/script]

    [script]} [/script]

    [script]} [/script]

    [script]
    [/script]

    [script][/script]

    Nun würde ich gerne im Shelly auslesen, wie viel Leistung ich gerade aus dem Netz ziehe, damit ich ab 70W die Einspeisung aus dem Akku freigeben kann. Seht ihr eine Möglichkeit die API Abfrage per Skript im Shelly einzulesen. Wie muss der Code dafür aussehen. Vor allem, weil es ja eine Token Abfrage gibt?

    Gruß & Danke im vorraus

    Stefan

  • technisch ist das vermutlich machbar, zumindest wenn der Token als GET oder POST-Variable übergeben werden kann.

    Da ein Shelly aber kein GraphQL (sondern nur JSON) beherrscht und das Ergebnis von Tibber deshalb als String verarbeitet werden muss wäre das schon recht komplex und ohne fortgeschrittene Javascript-Kenntnisse nicht realisierbar.

    >100 Shellies, darunter so gut wie alles was der Hersteller produziert hat. ;)
    :!: ich beantworte grundsätzlich keine Fragen per persönlicher Nachricht:!:

  • Meinst du es könnte überhaupt funktionieren? Falls ja, würde ich es probieren wollen. Über den Support von tibber und im Freundeskreis mal rumfragen wegen der Java-Programmierung. Falls die Aussichten eher schlecht sind, wäre meine Frage mit welchen Gerät und/oder welchem Programm wäre die Ansteuerung über ein externes Gerät denkbar. Reicht ein Arduino oder sollte es ein Rasberry sein. Falls letztes, mir welchen programm kann man Daten aus Graphql auswerten und Ausgänge schalten oder webhooks/MQTTs versenden.

    Gruß

  • hab grad mal einen kurzen Blick in die Tibber REST-API geworfen (https://developer.tibber.com/docs/guides/calling-api)

    soweit ich die API verstehe wirft man per GraphQL/JSON eine Abfrage dahin und erhält die Antwort in JSON.

    Meinst du es könnte überhaupt funktionieren?

    ja, mit ziemlicher Sicherheit.

    was man dann von den Shelly Script-Funktionen braucht sind

    Timer, Shelly.Call mit HTTP.Request und headers (da kommt der Bearer-Token rein) sowie das JSON.parse.

    https://shelly-api-docs.shelly.cloud/gen2/Scripts/S…anguageFeatures

    im Freundeskreis mal rumfragen wegen der Java-Programmierung.

    nicht Java sondern Javascript wobei der Shelly nur einen Bruchteil von Javascript/Typescript beherrscht.

    >100 Shellies, darunter so gut wie alles was der Hersteller produziert hat. ;)
    :!: ich beantworte grundsätzlich keine Fragen per persönlicher Nachricht:!:

  • Hallo Stefan,

    Nun würde ich gerne im Shelly auslesen, wie viel Leistung ich gerade aus dem Netz ziehe, damit ich ab 70W die Einspeisung aus dem Akku freigeben kann. Seht ihr eine Möglichkeit die API Abfrage per Skript im Shelly einzulesen. Wie muss der Code dafür aussehen. Vor allem, weil es ja eine Token Abfrage gibt?

    Wir sind seit Anfang des Jahres bei Tibber und können mit dem Puls am Stromzähler den schwankenden Strompreis nutzen. Das machen wir so ähnlich, wie du dir das wünscht: allerdings nicht Shelly-intern sondern mit einem kleinen Raspi. Habe es nicht probiert, aber glaube nicht, dass Shelly allein dazu in der Lage ist.

    Der Raspi checkt folgende Werte bei uns:

    - Verbrauch über einen 3EM im Sicherungskasten

    - Akkustand

    - aktuelle Solarleistung

    - Strompreis

    Der Raspi schaltet je nach Verbrauch und Solarleistung die Leistung des einspeisenden Wechselrichters. Außerdem schaltet er ein Ladegerät, das den Akku aus dem Netz lädt, wenn der Strompreis gerade sehr günstig ist.

    Grüße!

  • Dieses Thema enthält 5 weitere Beiträge, die nur für registrierte Benutzer sichtbar sind.