NEWS
IOBroker Anbindung an einen Kostal Plenticore
-
@Diginix said in IOBroker Anbindung an einen Kostal Plenticore:
@solargy Das liest sich so als wüsste dein System keine Geo Koordinaten und kann so keine Zeiten für Sonnen-Auf/Untergang usw. ermitteln. Hast du im Admin Adapter dein Standort konfiguriert und im Javascript den Haken dass er die vom System nutzen soll?
Kannst du in JS oder Blockly dir Astrozeiten für Sonnen-Auf/Untergang ausgeben lassen?Vielen Dank! Es hat sehr gut geklappt. Jetzt wollte ich das Enable power forecast nutzen. Den Adapter fuer weatherunterground habe ich installiert und konfiguriert. Den Adapter fuer daswetter.com auch, weiss aber nicht was da unter Einstellungen eingeben muss. Den Adapter fuer darksky habe ich auch, obwohl dafuer habe ich keine Secret APi eingefuegt, da seit 1. August das darksky seine API Registrierung eingestellt hat. Welche Alternative gibt's den darksky Secret API zu bekommen? Wo finde ich den kachelmannwetter Adapter?
Momentan wenn ich dieses Forecast Modi anmache, dann sieht es so aus in dem Log>plenticore.0 2020-12-25 22:22:02.254 warn (17868) Could not read daswetter.0.NextHours.Location_1.Day_2.Hour_9.clouds_value. It returned null state. plenticore.0 2020-12-25 22:22:02.252 warn (17868) Could not read daswetter.0.NextHours.Location_1.Day_2.Hour_8.clouds_value. It returned null state. plenticore.0 2020-12-25 22:22:02.249 warn (17868) Could not read daswetter.0.NextHours.Location_1.Day_2.Hour_7.clouds_value. It returned null state. plenticore.0 2020-12-25 22:22:02.246 warn (17868) Could not read daswetter.0.NextHours.Location_1.Day_2.Hour_6.clouds_value. It returned null state. plenticore.0 2020-12-25 22:22:02.244 warn (17868) Could not read daswetter.0.NextHours.Location_1.Day_2.Hour_5.clouds_value. It returned null state. plenticore.0 2020-12-25 22:22:02.241 warn (17868) Could not read daswetter.0.NextHours.Location_1.Day_2.Hour_4.clouds_value. It returned null state. plenticore.0 2020-12-25 22:22:02.238 warn (17868) Could not read daswetter.0.NextHours.Location_1.Day_2.Hour_3.clouds_value. It returned null state. plenticore.0 2020-12-25 22:22:02.236 warn (17868) Could not read daswetter.0.NextHours.Location_1.Day_2.Hour_2.clouds_value. It returned null state. plenticore.0 2020-12-25 22:22:02.234 warn (17868) Could not read daswetter.0.NextHours.Location_1.Day_2.Hour_1.clouds_value. It returned null state. plenticore.0 2020-12-25 22:22:02.231 warn (17868) Could not read daswetter.0.NextHours.Location_1.Day_1.Hour_24.clouds_value. It returned null state. plenticore.0 2020-12-25 22:22:02.228 warn (17868) Could not read daswetter.0.NextHours.Location_1.Day_1.Hour_23.clouds_value. It returned null state. plenticore.0 2020-12-25 22:22:02.225 warn (17868) Could not read darksky.0.hourly.48.time. It returned null state. plenticore.0 2020-12-25 22:22:02.222 warn (17868) Could not read darksky.0.hourly.47.time. It returned null state. plenticore.0 2020-12-25 22:22:02.219 warn (17868) Could not read darksky.0.hourly.46.time. It returned null state. plenticore.0 2020-12-25 22:22:02.215 warn (17868) Could not read darksky.0.hourly.45.time. It returned null state. plenticore.0 2020-12-25 22:22:02.213 warn (17868) Could not read darksky.0.hourly.44.time. It returned null state. plenticore.0 2020-12-25 22:22:02.209 warn (17868) Could not read darksky.0.hourly.43.time. It returned null state. plenticore.0 2020-12-25 22:22:02.207 warn (17868) Could not read darksky.0.hourly.42.time. It returned null state. plenticore.0 2020-12-25 22:22:02.203 warn (17868) Could not read darksky.0.hourly.41.time. It returned null state. plenticore.0 2020-12-25 22:22:02.201 warn (17868) Could not read darksky.0.hourly.40.time. It returned null state. plenticore.0 2020-12-25 22:22:02.197 warn (17868) Could not read darksky.0.hourly.39.time. It returned null state. plenticore.0 2020-12-25 22:22:02.195 warn (17868) Could not read darksky.0.hourly.38.time. It returned null state. plenticore.0 2020-12-25 22:22:02.192 warn (17868) Could not read darksky.0.hourly.37.time. It returned null state. plenticore.0 2020-12-25 22:22:02.142 warn (17868) Could not read darksky.0.hourly.36.time. It returned null state. plenticore.0 2020-12-25 22:22:02.140 warn (17868) Could not read darksky.0.hourly.35.time. It returned null state. plenticore.0 2020-12-25 22:22:02.137 warn (17868) Could not read darksky.0.hourly.34.time. It returned null state. plenticore.0 2020-12-25 22:22:02.135 warn (17868) Could not read darksky.0.hourly.33.time. It returned null state. plenticore.0 2020-12-25 22:22:02.132 warn (17868) Could not read darksky.0.hourly.32.time. It returned null state. plenticore.0 2020-12-25 22:22:02.130 warn (17868) Could not read darksky.0.hourly.31.time. It returned null state. plenticore.0 2020-12-25 22:22:02.127 warn (17868) Could not read darksky.0.hourly.30.time. It returned null state. plenticore.0 2020-12-25 22:22:02.125 warn (17868) Could not read darksky.0.hourly.29.time. It returned null state. plenticore.0 2020-12-25 22:22:02.122 warn (17868) Could not read darksky.0.hourly.28.time. It returned null state. plenticore.0 2020-12-25 22:22:02.120 warn (17868) Could not read darksky.0.hourly.27.time. It returned null state. plenticore.0 2020-12-25 22:22:02.117 warn (17868) Could not read darksky.0.hourly.26.time. It returned null state. plenticore.0 2020-12-25 22:22:02.115 warn (17868) Could not read darksky.0.hourly.25.time. It returned null state. plenticore.0 2020-12-25 22:22:02.112 warn (17868) Could not read darksky.0.hourly.24.time. It returned null state. plenticore.0 2020-12-25 22:22:02.109 warn (17868) Could not read darksky.0.hourly.23.time. It returned null state. plenticore.0 2020-12-25 22:22:02.107 warn (17868) Could not read darksky.0.hourly.22.time. It returned null state. plenticore.0 2020-12-25 22:22:02.104 warn (17868) Could not read darksky.0.hourly.21.time. It returned null state. plenticore.0 2020-12-25 22:22:02.102 warn (17868) Could not read darksky.0.hourly.20.time. It returned null state. plenticore.0 2020-12-25 22:22:02.099 warn (17868) Could not read darksky.0.hourly.19.time. It returned null state. plenticore.0 2020-12-25 22:22:02.097 warn (17868) Could not read darksky.0.hourly.18.time. It returned null state. plenticore.0 2020-12-25 22:22:02.094 warn (17868) Could not read darksky.0.hourly.17.time. It returned null state. plenticore.0 2020-12-25 22:22:02.092 warn (17868) Could not read darksky.0.hourly.16.time. It returned null state. plenticore.0 2020-12-25 22:22:02.089 warn (17868) Could not read darksky.0.hourly.15.time. It returned null state. plenticore.0 2020-12-25 22:22:02.087 warn (17868) Could not read darksky.0.hourly.14.time. It returned null state. plenticore.0 2020-12-25 22:22:02.084 warn (17868) Could not read darksky.0.hourly.13.time. It returned null state. plenticore.0 2020-12-25 22:22:02.082 warn (17868) Could not read darksky.0.hourly.12.time. It returned null state. plenticore.0 2020-12-25 22:22:02.079 warn (17868) Could not read darksky.0.hourly.11.time. It returned null state. plenticore.0 2020-12-25 22:22:02.077 warn (17868) Could not read darksky.0.hourly.10.time. It returned null state. plenticore.0 2020-12-25 22:22:02.074 warn (17868) Could not read darksky.0.hourly.9.time. It returned null state. plenticore.0 2020-12-25 22:22:02.071 warn (17868) Could not read darksky.0.hourly.8.time. It returned null state. plenticore.0 2020-12-25 22:22:02.068 warn (17868) Could not read darksky.0.hourly.7.time. It returned null state. plenticore.0 2020-12-25 22:22:02.066 warn (17868) Could not read darksky.0.hourly.6.time. It returned null state. plenticore.0 2020-12-25 22:22:02.063 warn (17868) Could not read darksky.0.hourly.5.time. It returned null state. plenticore.0 2020-12-25 22:22:02.061 warn (17868) Could not read darksky.0.hourly.4.time. It returned null state. plenticore.0 2020-12-25 22:22:02.058 warn (17868) Could not read darksky.0.hourly.3.time. It returned null state. plenticore.0 2020-12-25 22:22:02.056 warn (17868) Could not read darksky.0.hourly.2.time. It returned null state. plenticore.0 2020-12-25 22:22:02.053 warn (17868) Could not read darksky.0.hourly.1.time. It returned null state. plenticore.0 2020-12-25 22:22:02.051 warn (17868) Could not read darksky.0.hourly.0.time. It returned null state. plenticore.0 2020-12-25 22:22:02.049 warn (17868) Could not read darksky.0.hourly.48.precipIntensity. It returned null state.
Vielen Dank!
-
@solargy Ich habe nur daswetter als weiteren Adapter installiert. Alles andere holt sich der plenticore Adapter direkt von den Webservices (Websites) der Anbieter, z.B. Kachelmann. Darksky nutze ich nicht.
Für den daswetter Adapter brauchst du die XML URL(s) für deinen Ort von hier: https://www.daswetter.com/api/#/login
Ich nutze nur Pfad 1 und 3. Glaub plenticore braucht sogar nur einen. Steht aber mWn in der Doku. -
Hi, nur mal als Info:
Kostal hat inzwischen wohl das Handbuch erweitert. In Kapitel 8.1/8.2 ist nun die "neue" externe Batteriesteuerung erklärt.
Interessant dabei zum Beispiel diese Aussage:
Bleiben externe Steuersignale für längere Zeit aus, kehrt
der Speicherwechselrichter zur internen Batteriesteue-
rung zurück. Die Zeitangabe wird dazu im Webserver
eingestellt. Die Vorgaben des externen Anbieters sind
dabei zu beachten.Bedeutet also, wenn man die externe Steuerung aktiviert, muss man sicherstellen, dass man auch regelmäßig Werte via ModBus setzt, sonst deaktiviert sie sich wohl wieder.
-
@Diginix sagte in IOBroker Anbindung an einen Kostal Plenticore:
@solargy Ich habe nur daswetter als weiteren Adapter installiert. Alles andere holt sich der plenticore Adapter direkt von den Webservices (Websites) der Anbieter, z.B. Kachelmann. Darksky nutze ich nicht.
Für den daswetter Adapter brauchst du die XML URL(s) für deinen Ort von hier: https://www.daswetter.com/api/#/login
Ich nutze nur Pfad 1 und 3. Glaub plenticore braucht sogar nur einen. Steht aber mWn in der Doku.Ja, der Adapter nutzt nur einen Wert. DarkSky wird eingestellt (wurde von Apple aufgekauft), daher nehme ich die Unterstützung davon auch in absehbarer Zeit raus.
-
Und ich rege mich gerade mal wieder über Kostal auf. Man kann die automatische Aktivierung des Ruhezustandes (Batterie) ja nicht wirklich verhindern. Die letzten Tage war das Wetter mies, ein paar Tage hatten wir eine dünne Schicht Schnee auf dem Dach, also kamen nur etwa 15-20W. Entsprechend hat der WR die Batterie dann heute Nacht um 0 Uhr in den "Ruhemodus 2" versetzt. Bedeutet: Keine Ladung, keine Entladung, aber vorher Netzladung auf 40%.
Ja, ich weiß, ist zum Schutz der Batterie. ABER: Nur der Installateur kann diesen Zustand manuell wieder entfernen. Als Betreiber muss man warten, bis die interne Steuerung entscheidet, dass die PV Leistung lange genug hoch genug war, diesen Ruhezustand aufzuheben. Und das ist mal wieder ein No-Go!
Wir haben heute immer wieder zwischendurch Sonne. Teilweise ist die PV Leistung bei > 5kW. Und? Alles wird eingespeist, weil die Batterie schön im Ruhezustand vor sich hin schläft. – Und Lastspitzen (Mittagessen z. B.) werden natürlich aus dem Netz geholt.
-
@StrathCole Wo sieht man den "Ruhemodus 2". Bei mir sind seit Tagen nur 3-5 kWh Ertrag. Somit hängt mein Akku auch permanent auf minSoC bzw auch mal darunter.
Mir wird im beta repo v2.1.4 angeboten. Im Changelog sehe ich schon 2.1.5 und auf GIT 2.4.0.
Bisher läuft 2.1.3. Sollte ich schon auf eine davon updaten oder bist du mitten in der Entwicklung? -
@StrathCole sagte in IOBroker Anbindung an einen Kostal Plenticore:
Man kann die automatische Aktivierung des Ruhezustandes (Batterie) ja nicht wirklich verhindern.
Nur mal so eine Idee:
In den Einstellungen beim Kostal kann man den Batterie Typ auswählen, das geht auch als normaler Anwender.
Wenn die Wettervorschau so schlecht ist wie jetzt, kannst Du nicht die Batterie abschalten, d.h. dem Kostal sagen es ist keine batterie verbunden und wenn das Wetter wieder besser wird dann diese wieder zuschalten?
Dann würde man das Thema mit dem Ruhezustandes eventuell umgehen
-
@Diginix sagte in IOBroker Anbindung an einen Kostal Plenticore:
@StrathCole Wo sieht man den "Ruhemodus 2". Bei mir sind seit Tagen nur 3-5 kWh Ertrag. Somit hängt mein Akku auch permanent auf minSoC bzw auch mal darunter.
Mir wird im beta repo v2.1.4 angeboten. Im Changelog sehe ich schon 2.1.5 und auf GIT 2.4.0.
Bisher läuft 2.1.3. Sollte ich schon auf eine davon updaten oder bist du mitten in der Entwicklung?Wenn du das Interface vom Kostal aufrufst und dann bei "Momentanwerte" unten die Batterie anschaust. Da steht "Normalbetrieb" oder "Ruhemodus 1/2".
Die genannten Versionen (2.4 ist nicht die Adapterversion, sondern Test-Library von ioB) sind noch in Entwicklung (aber nur, weil travis nicht funktioniert).
-
@ukl sagte in IOBroker Anbindung an einen Kostal Plenticore:
Wenn die Wettervorschau so schlecht ist wie jetzt, kannst Du nicht die Batterie abschalten, d.h. dem Kostal sagen es ist keine batterie verbunden und wenn das Wetter wieder besser wird dann diese wieder zuschalten?
Ja, theoretisch. Habe ich ein Mal gemacht und nie wieder. Der Kostal scheint sich da manchmal zu verschlucken, sodass beim wiedereinschalten der Batterie die Daten nicht korrekt ankommen. Dann muss man wieder deaktivieren und noch mal aktivieren. Kann mir auch nicht vorstellen, dass das insgesamt so gut für die Geräte ist.
-
@Diginix sagte in IOBroker Anbindung an einen Kostal Plenticore:
@StrathCole Wo sieht man den "Ruhemodus 2". Bei mir sind seit Tagen nur 3-5 kWh Ertrag. Somit hängt mein Akku auch permanent auf minSoC bzw auch mal darunter.
Mein MinSoC steht bei aktuell 20% und die Batterie entläd sich Nachts um 3-5%. Der PV Ertrag reicht aber bisher aus, um die Batterie auf mindestens 20% zu laden. Trotz etwas Schnee auf der Anlage hatte ich bisher immer dafür genug Ertrag. Mal sehen wie es bei stärkerem Schnefall wird. Den Ruhemodus 2 hatte ich bisher in 1 1/2 Jahren noch nie.
@StrathCole Welche FW Version hast Du installiert - Die Neueste 01.17.05075?
Ich bin noch auf der Version 01.16.05025 -
@tom57 sagte in IOBroker Anbindung an einen Kostal Plenticore:
@Diginix sagte in IOBroker Anbindung an einen Kostal Plenticore:
@StrathCole Wo sieht man den "Ruhemodus 2". Bei mir sind seit Tagen nur 3-5 kWh Ertrag. Somit hängt mein Akku auch permanent auf minSoC bzw auch mal darunter.
Mein MinSoC steht bei aktuell 20% und die Batterie entläd sich Nachts um 3-5%. Der PV Ertrag reicht aber bisher aus, um die Batterie auf mindestens 20% zu laden. Trotz etwas Schnee auf der Anlage hatte ich bisher immer dafür genug Ertrag. Mal sehen wie es bei stärkerem Schnefall wird. Den Ruhemodus 2 hatte ich bisher in 1 1/2 Jahren noch nie.
@StrathCole Welche FW Version hast Du installiert - Die Neueste 01.17.05075?
Ich bin noch auf der Version 01.16.05025Ich hatte einige Tage wirklich Null ertrag, irgendwas bei 50-200Wh. Bewölkt und Schnee auf den Modulen.
Ich bin auch noch auf der Vorversion, da ich die externe Batteriesteuerung ggf. testen will und keinen Installateurcode habe.
-
@StrathCole sagte in IOBroker Anbindung an einen Kostal Plenticore:
Ich hatte einige Tage wirklich Null ertrag, irgendwas bei 50-200Wh. Bewölkt und Schnee auf den Modulen.
Sind Deine Module mit geringer Neigung installiert? Ich habe ca. 40% Dachneigung da rutscht der Schnee bisher schnell ab.
Ich bleibe auch erst einmal auf der Vorversion beim Plenticore.Hat jemand schon die neue KSEM Firmware installiert? Gibt es dort Probleme?
-
@tom57 Ja, ich hab nur 30° Neigung.
Die Firmware für KSEM habe ich noch nicht. Bin noch auf 1.2.1, da ich immer erst ein Lan-Kabel anschließen muss für ein Update.
-
ich habe meinen minSOC auf 35 zur Zeit gesetzt.
Wegen der falschen SOC Berechnung beim BYD Speicher hab ich einen schlagartigen SOC Abfall alle 2-3 Tage von >15 in einer Nacht und bei zu geringem minSOC lande ich dann in der Zwangsladung.
Ich hatte deswegen auch lange Diskussionen mit BYD und als "temporäre Lösung" schlagen sie sogar einen minSOC von 50% vor (wegen Schlechtwetter u.ä.) - in der Winterzeit
@StrathCole , wie war Dein SOC Verlauf in den Tagen vor dem Ruhezustand - konstant oder ständiger Abfall? -
@ukl sagte in IOBroker Anbindung an einen Kostal Plenticore:
@StrathCole , wie war Dein SOC Verlauf in den Tagen vor dem Ruhezustand - konstant oder ständiger Abfall?
Das mit dem Abfallen ist normal. Ich habe immer so 1% Abfall pro 3-4 Stunden. Das führt nur manchmal dazu, dass ich morgens in die Zwangsladung von 3% auf 8% rutsche, aber das ist kein Problem. Der Ruhezustand ist wohl nur abhängig von der PV-Leistung.
-
@StrathCole d.h. bei Deinem System funktioniert die SOC Berechnung von BYD. Bei mir ist der SOC über Tage konstant und fällt dann inerhalb von wenigen Stunden um >15% ab. Die BatterieSpannung geht aber ständig linear runter, obwohl geladen wurde. Da funktioniert das gesamte Laden/Entladen/SOC Berechnung gar nicht.
aber das ist ein OFF-topic und nichts für diesen Thread denke ich
-
@StrathCole sagte in IOBroker Anbindung an einen Kostal Plenticore:
Und ich rege mich gerade mal wieder über Kostal auf. Man kann die automatische Aktivierung des Ruhezustandes (Batterie) ja nicht wirklich verhindern. Die letzten Tage war das Wetter mies, ein paar Tage hatten wir eine dünne Schicht Schnee auf dem Dach, also kamen nur etwa 15-20W. Entsprechend hat der WR die Batterie dann heute Nacht um 0 Uhr in den "Ruhemodus 2"
... und ich könnte Kostal in die Tonne kloppen
Ich möchte folgende Erfahrungen mit Euch teilen:Ich hatte gestern Abend irgendwie nichts zu tun und habe das KSEM auf die FW 1.3.0. upgedated.
Heute Morgen hatte ich dann folgendes Bild:
Batteriestatus: Tiefentladeschutz - Spannung 1V - Batterie wurde nicht geladen - ... und PV-Leistung????Neustart der Batterie und des Wechselrichters haben nichts verändert. Die Kommunikation zwischen dem WR und der BYD Batterie war gestört ... durch das Update des KSEM !!! Ein FW-Downgrade des KSEM wurde verhindert - geht also nicht.
Ich habe dann in meiner Verzweiflung den Plenticore auf die FW 01.17.05075 upgedated. Das Resultat war das Gleiche: Kommunikation zwischen WR und BYD gestört. Erst zwei weitere Neustarts des KSEM haben das Problem gelöst.
Folgende Anmerkungen zur FW 01.17.05075 des Plenticore WR:
- Ein FW Downgrade auf 01.16.05025 geht (anders als beim KSEM)
- Der eingestellte Modus der Batteriesteuerung bleibt beim Upgrade erhalten (bei mir: Extern über Modbus TCP)
- Bei der FW 01.16.05025 war der Modus über Modbus Register 1080 (Management Mode) veränderbar, das geht mit der FW 01.17.05075 nicht mehr. Der einmal eingestellte Modus bleibt erhalten. Der initiale "timeout" ist übrigends 180 Sekunden. Manuell eingebbar sind aber nur Werte zwischen 1...60 Sekunden ... warum?
- Laut Handbuch müssen ja innerhalb des Timouts jeweils neue Steuersignale gesendet werden, sonst geht der WR zur internen Batteriesteuerung zurück. Macht ja auch Sinn, falls die externe Steuerung z.B. des Netzbetreibers unterbochen sein sollte. Bei eigener Programmierung sende ich ggfs. jede Minute das Signal neu. Muss ich dann irgendwann mal ausprobieren. Ist im Winter eh egal.
- Ich bleibe erst mal auf der FW FW 01.17.05075 ... solange ein Downgrade möglich ist (also immer alte FW aufheben)
-
Frohes neues Jahr allen zusammen.
@tom57 Du armer.
Ich habe jetzt ein ganz anderes Problem. Unser Dach hat ein Scheefanggitter. Das verhindert aber dummerweise, dass der Schnee von den unteren Modulen rutschen kann. Seit ein paar Tagen ist daher die obere Reihe und die halbe mittlere Reihe schneefrei, die andere Hälfte der Mitte und die untere Reihe sind vollständig mit Schnee bedeckt.
Leistung der kompletten Anlage: Maximal 15W (!)Ich hab es schon versucht, indem ich Schattenmanagement eingeschaltet habe, aber keine Änderung. Keine Ahnung, was das soll
-
@strathcole
Ganz herzlichen Dank für Deinen Adapter. Ich freue mich jeden Tag über den wunderbaren Überblick über die Daten!!Ich habe auch eine Frage... Habe mir den Thread nahezu kompletto durchgelesen
@Alle
Ich würde gerne die Forecast Daten nutzen, um für den Tag morgens vor dem Hausverlassen so Dinge wie Trockner, Spülmaschine oder Waschmaschine zu programmieren.Der Forecast bietet ja einen Überblick, aber den zu visualisieren fällt mir persönlich leider zu schwer.
Ich wünschte mir sowas wie Daten mit der realen Uhrzeit (nicht am Sunrise orientiert).
Also z.B. in eine Systemvariable den erwarteten Stromertrag für die reale Stunde schreiben:
7-8 Uhr: 0,3 kWh
8-9 Uhr 0,7 kWh
...
12-13 Uhr 3 kWh
17-18 Uhr 1 kWh usw.Hat jemand vielleicht ein Skript, wo die Stunden des Forecast / erwartete Strommenge auf reale Stunden umgerechnet werden und dann diese in eine Systemvariable geschrieben werden??
Ich würde daraus gerne dann die Daten in einer Tabelle visualisieren...
Am oberdollsten wäre es, wenn man in der Tabelle nebeneinander stellen könnte: Durchschnittlicher Verbrauch zwischen 8-9 Uhr x kWh (basierend auf den letzten x Tagen), erwarte Produktion y kWh.
Und wenn ich schon beim wünschen bin, wäre es super, wenn jemand eine VIS zur Verfügung stellen könnte, die die Werte von oben (durchschnittlicher Verbrauch zur Stunde x und erwartete Erzeugung zu derselben Stunde) schön anzeigt...
Ich bin leider kein Held beim Blockly bauen ...
Würde mich über jede Hilde sehr freuen!
Danke
Lem -
@lemonbiter Genau so etwas nutze ich
Habe das Ergebnis, also
javascript.0.vis.pv_hours
dann einfach in ein Feld der vis gelegt.if(existsState('javascript.0.vis.pv_hours') === false) { createState('vis.pv_hours', 0, {name: 'HTML-Daten der Stundenvorhersagen', unit: '', type: 'string', role: 'text'}); } schedule('* * * * *', function() { let vishtml = ''; let state_id = 'plenticore.0.forecast.day1.power'; let hour_state_id; let power; let generated; let time; let gen_percentage; for(let h = 1; h <= 24; h++) { hour_state_id = state_id + '.' + h + 'h'; if(!existsState(hour_state_id + '.power')) { //log(hour_state_id + '.power not existing', 'info'); continue; } power = getState(hour_state_id + '.power').val; if(existsState(hour_state_id + '.generated')) { generated = getState(hour_state_id + '.generated').val; } else { generated = 0; } //log('Gen for h ' + h + ' is ' + generated); gen_percentage = Math.round(100 * generated / power); if(existsState(hour_state_id + '.time')) { time = new Date(getState(hour_state_id + '.time').val); //time.toGermanTime(); time = ('0' + time.getHours()).slice(-2) + ':' + ('0' + time.getMinutes()).slice(-2); } else { time = ''; } vishtml += '<div class="fc-hour-entry">'; vishtml += '<div class="fc-hour-time">' + time + '</div>'; vishtml += '<div class="fc-hour-forecast">' + Math.round(power).toLocaleString().replace(',', '.') + ' Wh</div>'; vishtml += '<div class="fc-hour-real"><span class="progress-bar"><span class="progress" style="width:' + (gen_percentage > 100 ? 100 : gen_percentage) + '%"></span></span><span class="progress-label">' + Math.round(generated).toLocaleString().replace(',', '.') + ' Wh (' + gen_percentage + '%)</span></div>'; vishtml += '</div>'; } setState('vis.pv_hours', vishtml, true); });