NEWS
Test PV Forecast Adapter
-
@heimweh kommt die neue Version dann als Update?
-
@heimweh Ist als Beta-Version bereits im Repo (2.4.0)
-
@haus-automatisierung sagte in Test PV Forecast Adapter:
@maxtor62 sagte in Test PV Forecast Adapter:
Wenn ich das richtig verstanden habe, sollten doch die Koordinaten von der Admin-Einstellung übernommen werden, oder?
Die "Admin-Einstellungen" sind ja die globalen
system.config
Einstellungen. Hat erstmal nichts mit dem Admin zu tun - der bietet dafür die Konfigurationsoberfläche an. Aber ja - man sieht auch im Log welche Koordinaten genutzt werden.Wenn da der Standort falsch ist, einfach genauere Koordinaten angeben? Was heißt "6km falsch"?
Die Koordinaten stimmen absolut. In der Admin-Konfigurationsoberfläche sind die Daten korrekt. Der Standort wir auf den Meter genau angezeigt. Die Stecknadel ist genau vor meiner Haustür. Nur der Ort im DP "place" (Standortinformationen) ist 6km entfernt.
-
@maxtor62 sagte in Test PV Forecast Adapter:
Nur der Ort im DP "place" (Standortinformationen) ist 6km entfernt.
Keine Ahnung wie der aufgelöst wird. Da würde ich nicht zu viel drauf geben. Ist bestimmt nur der nächste größere Ort in der Nähe?! Müsste man bei den API-Anbietern mal nachfragen.
-
@haus-automatisierung bei mir leider nicht - ich bekomme keine 2.4.0 angezeigt...
-
github: 2.4.0 latest: 2.4.0 for 3 days stable: 2.3.0 for 5 months
-
@latzi - bei mir sieht das so aus:
-
@heimweh ich hab im Beta Kanal das eingetragen
http://iobroker.live/repo/sources-dist-latest.json
-
@johgre sagte in Test PV Forecast Adapter:
ok - ich trage es mal ein. Hatte gestern extra nochmal geschaut wie der Link zum Beta Repo ist...
-
@heimweh
hier mal aktualisiert?Ich verwende auch
http://iobroker.live/repo/sources-dist-latest.json
im beta -
@latzi das wars - Danke...
-
@theloh said in Test PV Forecast Adapter:
Etwas komplizierter war es einen Datenpunkt zu ereugen, der die richtigen Zeitstempel für die Zukunft schreibt. Also die Werte von Heute 05-21 Uhr und Morgen 05-21Uhr in einem DP in die InfluxDB schreibt.
Könntest du mal kurz erklären wie du das umgesetzt hast?
Ich würde das gern auch so machen.Gruß Holger
-
@icebear Welche Infos benötigst du? Wie ich den Datenpunkt der in Grafana genutzt wird erzeuge?
-
Genau. Wie hast du den DP erzeugt der die Daten dann in die Datenbank schreibt und in Grafana genutzt wird.
-
@icebear Die Datenpunkte mit den einzelnen Zielzeiten brauchst du nicht....
Damit meine ich:
summary.power.hoursToday.05:00:00-21:00:00_TS
summary.power.hoursTomorrow.05:00:00-21:00:00_TS
Es sei denn die möchtest zwei Datwnpunkte für Heute und Morgen getrennt.
Der Datenpunkt den ich im 48h Grafanbild oben habe ist der summary.power.Power_TSDu kannst also jeden zweite Zeile löschen.
VGon({id: [].concat(['0_userdata.0.influxdb.pvforecast.0.Steuerung.Zeitstempel_Skript']), change: "ne"}, async function (obj) { function getDatum(iSTD){ let time = new Date(); time.setHours(iSTD); time.setMinutes(0); time.setSeconds(0); time.setMilliseconds(0); return time.getTime() } sendTo('influxdb.0', 'storeState', {id: 'summary.power.Power_TS', state: {ts: getDatum(5), val: getState("pvforecast.0.summary.power.hoursToday.05:00:00").val, ack: true, from: "javascript.0", q: 0}}); sendTo('influxdb.0', 'storeState', {id: 'summary.power.hoursToday.05:00:00-21:00:00_TS', state: {ts: getDatum(5), val: getState("pvforecast.0.summary.power.hoursToday.05:00:00").val, ack: true, from: "javascript.0", q: 0}}); sendTo('influxdb.0', 'storeState', {id: 'summary.power.Power_TS', state: {ts: getDatum(6), val: getState("pvforecast.0.summary.power.hoursToday.06:00:00").val, ack: true, from: "javascript.0", q: 0}}); sendTo('influxdb.0', 'storeState', {id: 'summary.power.hoursToday.05:00:00-21:00:00_TS', state: {ts: getDatum(6), val: getState("pvforecast.0.summary.power.hoursToday.06:00:00").val, ack: true, from: "javascript.0", q: 0}}); sendTo('influxdb.0', 'storeState', {id: 'summary.power.Power_TS', state: {ts: getDatum(7), val: getState("pvforecast.0.summary.power.hoursToday.07:00:00").val, ack: true, from: "javascript.0", q: 0}}); sendTo('influxdb.0', 'storeState', {id: 'summary.power.hoursToday.05:00:00-21:00:00_TS', state: {ts: getDatum(7), val: getState("pvforecast.0.summary.power.hoursToday.07:00:00").val, ack: true, from: "javascript.0", q: 0}}); sendTo('influxdb.0', 'storeState', {id: 'summary.power.Power_TS', state: {ts: getDatum(8), val: getState("pvforecast.0.summary.power.hoursToday.08:00:00").val, ack: true, from: "javascript.0", q: 0}}); sendTo('influxdb.0', 'storeState', {id: 'summary.power.hoursToday.05:00:00-21:00:00_TS', state: {ts: getDatum(8), val: getState("pvforecast.0.summary.power.hoursToday.08:00:00").val, ack: true, from: "javascript.0", q: 0}}); sendTo('influxdb.0', 'storeState', {id: 'summary.power.Power_TS', state: {ts: getDatum(9), val: getState("pvforecast.0.summary.power.hoursToday.09:00:00").val, ack: true, from: "javascript.0", q: 0}}); sendTo('influxdb.0', 'storeState', {id: 'summary.power.hoursToday.05:00:00-21:00:00_TS', state: {ts: getDatum(9), val: getState("pvforecast.0.summary.power.hoursToday.09:00:00").val, ack: true, from: "javascript.0", q: 0}}); sendTo('influxdb.0', 'storeState', {id: 'summary.power.Power_TS', state: {ts: getDatum(10), val: getState("pvforecast.0.summary.power.hoursToday.10:00:00").val, ack: true, from: "javascript.0", q: 0}}); sendTo('influxdb.0', 'storeState', {id: 'summary.power.hoursToday.05:00:00-21:00:00_TS', state: {ts: getDatum(10), val: getState("pvforecast.0.summary.power.hoursToday.10:00:00").val, ack: true, from: "javascript.0", q: 0}}); sendTo('influxdb.0', 'storeState', {id: 'summary.power.Power_TS', state: {ts: getDatum(11), val: getState("pvforecast.0.summary.power.hoursToday.11:00:00").val, ack: true, from: "javascript.0", q: 0}}); sendTo('influxdb.0', 'storeState', {id: 'summary.power.hoursToday.05:00:00-21:00:00_TS', state: {ts: getDatum(11), val: getState("pvforecast.0.summary.power.hoursToday.11:00:00").val, ack: true, from: "javascript.0", q: 0}}); sendTo('influxdb.0', 'storeState', {id: 'summary.power.Power_TS', state: {ts: getDatum(12), val: getState("pvforecast.0.summary.power.hoursToday.12:00:00").val, ack: true, from: "javascript.0", q: 0}}); sendTo('influxdb.0', 'storeState', {id: 'summary.power.hoursToday.05:00:00-21:00:00_TS', state: {ts: getDatum(12), val: getState("pvforecast.0.summary.power.hoursToday.12:00:00").val, ack: true, from: "javascript.0", q: 0}}); sendTo('influxdb.0', 'storeState', {id: 'summary.power.Power_TS', state: {ts: getDatum(13), val: getState("pvforecast.0.summary.power.hoursToday.13:00:00").val, ack: true, from: "javascript.0", q: 0}}); sendTo('influxdb.0', 'storeState', {id: 'summary.power.hoursToday.05:00:00-21:00:00_TS', state: {ts: getDatum(13), val: getState("pvforecast.0.summary.power.hoursToday.13:00:00").val, ack: true, from: "javascript.0", q: 0}}); sendTo('influxdb.0', 'storeState', {id: 'summary.power.Power_TS', state: {ts: getDatum(14), val: getState("pvforecast.0.summary.power.hoursToday.14:00:00").val, ack: true, from: "javascript.0", q: 0}}); sendTo('influxdb.0', 'storeState', {id: 'summary.power.hoursToday.05:00:00-21:00:00_TS', state: {ts: getDatum(14), val: getState("pvforecast.0.summary.power.hoursToday.14:00:00").val, ack: true, from: "javascript.0", q: 0}}); sendTo('influxdb.0', 'storeState', {id: 'summary.power.Power_TS', state: {ts: getDatum(15), val: getState("pvforecast.0.summary.power.hoursToday.15:00:00").val, ack: true, from: "javascript.0", q: 0}}); sendTo('influxdb.0', 'storeState', {id: 'summary.power.hoursToday.05:00:00-21:00:00_TS', state: {ts: getDatum(15), val: getState("pvforecast.0.summary.power.hoursToday.15:00:00").val, ack: true, from: "javascript.0", q: 0}}); sendTo('influxdb.0', 'storeState', {id: 'summary.power.Power_TS', state: {ts: getDatum(16), val: getState("pvforecast.0.summary.power.hoursToday.16:00:00").val, ack: true, from: "javascript.0", q: 0}}); sendTo('influxdb.0', 'storeState', {id: 'summary.power.hoursToday.05:00:00-21:00:00_TS', state: {ts: getDatum(16), val: getState("pvforecast.0.summary.power.hoursToday.16:00:00").val, ack: true, from: "javascript.0", q: 0}}); sendTo('influxdb.0', 'storeState', {id: 'summary.power.Power_TS', state: {ts: getDatum(17), val: getState("pvforecast.0.summary.power.hoursToday.17:00:00").val, ack: true, from: "javascript.0", q: 0}}); sendTo('influxdb.0', 'storeState', {id: 'summary.power.hoursToday.05:00:00-21:00:00_TS', state: {ts: getDatum(17), val: getState("pvforecast.0.summary.power.hoursToday.17:00:00").val, ack: true, from: "javascript.0", q: 0}}); sendTo('influxdb.0', 'storeState', {id: 'summary.power.Power_TS', state: {ts: getDatum(18), val: getState("pvforecast.0.summary.power.hoursToday.18:00:00").val, ack: true, from: "javascript.0", q: 0}}); sendTo('influxdb.0', 'storeState', {id: 'summary.power.hoursToday.05:00:00-21:00:00_TS', state: {ts: getDatum(18), val: getState("pvforecast.0.summary.power.hoursToday.18:00:00").val, ack: true, from: "javascript.0", q: 0}}); sendTo('influxdb.0', 'storeState', {id: 'summary.power.Power_TS', state: {ts: getDatum(19), val: getState("pvforecast.0.summary.power.hoursToday.19:00:00").val, ack: true, from: "javascript.0", q: 0}}); sendTo('influxdb.0', 'storeState', {id: 'summary.power.hoursToday.05:00:00-21:00:00_TS', state: {ts: getDatum(19), val: getState("pvforecast.0.summary.power.hoursToday.19:00:00").val, ack: true, from: "javascript.0", q: 0}}); sendTo('influxdb.0', 'storeState', {id: 'summary.power.Power_TS', state: {ts: getDatum(20), val: getState("pvforecast.0.summary.power.hoursToday.20:00:00").val, ack: true, from: "javascript.0", q: 0}}); sendTo('influxdb.0', 'storeState', {id: 'summary.power.hoursToday.05:00:00-21:00:00_TS', state: {ts: getDatum(20), val: getState("pvforecast.0.summary.power.hoursToday.20:00:00").val, ack: true, from: "javascript.0", q: 0}}); sendTo('influxdb.0', 'storeState', {id: 'summary.power.Power_TS', state: {ts: getDatum(21), val: getState("pvforecast.0.summary.power.hoursToday.21:00:00").val, ack: true, from: "javascript.0", q: 0}}); sendTo('influxdb.0', 'storeState', {id: 'summary.power.hoursToday.05:00:00-21:00:00_TS', state: {ts: getDatum(21), val: getState("pvforecast.0.summary.power.hoursToday.21:00:00").val, ack: true, from: "javascript.0", q: 0}}); sendTo('influxdb.0', 'storeState', {id: 'summary.power.Power_TS', state: {ts: getDatum(5) + 86400000, val: getState("pvforecast.0.summary.power.hoursTomorrow.05:00:00").val, ack: true, from: "javascript.0", q: 0}}); sendTo('influxdb.0', 'storeState', {id: 'summary.power.hoursTomorrow.05:00:00-21:00:00_TS', state: {ts: getDatum(5) + 86400000, val: getState("pvforecast.0.summary.power.hoursTomorrow.05:00:00").val, ack: true, from: "javascript.0", q: 0}}); sendTo('influxdb.0', 'storeState', {id: 'summary.power.Power_TS', state: {ts: getDatum(6) + 86400000, val: getState("pvforecast.0.summary.power.hoursTomorrow.06:00:00").val, ack: true, from: "javascript.0", q: 0}}); sendTo('influxdb.0', 'storeState', {id: 'summary.power.hoursTomorrow.05:00:00-21:00:00_TS', state: {ts: getDatum(6) + 86400000, val: getState("pvforecast.0.summary.power.hoursTomorrow.06:00:00").val, ack: true, from: "javascript.0", q: 0}}); sendTo('influxdb.0', 'storeState', {id: 'summary.power.Power_TS', state: {ts: getDatum(7) + 86400000, val: getState("pvforecast.0.summary.power.hoursTomorrow.07:00:00").val, ack: true, from: "javascript.0", q: 0}}); sendTo('influxdb.0', 'storeState', {id: 'summary.power.hoursTomorrow.05:00:00-21:00:00_TS', state: {ts: getDatum(7) + 86400000, val: getState("pvforecast.0.summary.power.hoursTomorrow.07:00:00").val, ack: true, from: "javascript.0", q: 0}}); sendTo('influxdb.0', 'storeState', {id: 'summary.power.Power_TS', state: {ts: getDatum(8) + 86400000, val: getState("pvforecast.0.summary.power.hoursTomorrow.08:00:00").val, ack: true, from: "javascript.0", q: 0}}); sendTo('influxdb.0', 'storeState', {id: 'summary.power.hoursTomorrow.05:00:00-21:00:00_TS', state: {ts: getDatum(8) + 86400000, val: getState("pvforecast.0.summary.power.hoursTomorrow.08:00:00").val, ack: true, from: "javascript.0", q: 0}}); sendTo('influxdb.0', 'storeState', {id: 'summary.power.Power_TS', state: {ts: getDatum(9) + 86400000, val: getState("pvforecast.0.summary.power.hoursTomorrow.09:00:00").val, ack: true, from: "javascript.0", q: 0}}); sendTo('influxdb.0', 'storeState', {id: 'summary.power.hoursTomorrow.05:00:00-21:00:00_TS', state: {ts: getDatum(9) + 86400000, val: getState("pvforecast.0.summary.power.hoursTomorrow.09:00:00").val, ack: true, from: "javascript.0", q: 0}}); sendTo('influxdb.0', 'storeState', {id: 'summary.power.Power_TS', state: {ts: getDatum(10) + 86400000, val: getState("pvforecast.0.summary.power.hoursTomorrow.10:00:00").val, ack: true, from: "javascript.0", q: 0}}); sendTo('influxdb.0', 'storeState', {id: 'summary.power.hoursTomorrow.05:00:00-21:00:00_TS', state: {ts: getDatum(10) + 86400000, val: getState("pvforecast.0.summary.power.hoursTomorrow.10:00:00").val, ack: true, from: "javascript.0", q: 0}}); sendTo('influxdb.0', 'storeState', {id: 'summary.power.Power_TS', state: {ts: getDatum(11) + 86400000, val: getState("pvforecast.0.summary.power.hoursTomorrow.11:00:00").val, ack: true, from: "javascript.0", q: 0}}); sendTo('influxdb.0', 'storeState', {id: 'summary.power.hoursTomorrow.05:00:00-21:00:00_TS', state: {ts: getDatum(11) + 86400000, val: getState("pvforecast.0.summary.power.hoursTomorrow.11:00:00").val, ack: true, from: "javascript.0", q: 0}}); sendTo('influxdb.0', 'storeState', {id: 'summary.power.Power_TS', state: {ts: getDatum(12) + 86400000, val: getState("pvforecast.0.summary.power.hoursTomorrow.12:00:00").val, ack: true, from: "javascript.0", q: 0}}); sendTo('influxdb.0', 'storeState', {id: 'summary.power.hoursTomorrow.05:00:00-21:00:00_TS', state: {ts: getDatum(12) + 86400000, val: getState("pvforecast.0.summary.power.hoursTomorrow.12:00:00").val, ack: true, from: "javascript.0", q: 0}}); sendTo('influxdb.0', 'storeState', {id: 'summary.power.Power_TS', state: {ts: getDatum(13) + 86400000, val: getState("pvforecast.0.summary.power.hoursTomorrow.13:00:00").val, ack: true, from: "javascript.0", q: 0}}); sendTo('influxdb.0', 'storeState', {id: 'summary.power.hoursTomorrow.05:00:00-21:00:00_TS', state: {ts: getDatum(13) + 86400000, val: getState("pvforecast.0.summary.power.hoursTomorrow.13:00:00").val, ack: true, from: "javascript.0", q: 0}}); sendTo('influxdb.0', 'storeState', {id: 'summary.power.Power_TS', state: {ts: getDatum(14) + 86400000, val: getState("pvforecast.0.summary.power.hoursTomorrow.14:00:00").val, ack: true, from: "javascript.0", q: 0}}); sendTo('influxdb.0', 'storeState', {id: 'summary.power.hoursTomorrow.05:00:00-21:00:00_TS', state: {ts: getDatum(14) + 86400000, val: getState("pvforecast.0.summary.power.hoursTomorrow.14:00:00").val, ack: true, from: "javascript.0", q: 0}}); sendTo('influxdb.0', 'storeState', {id: 'summary.power.Power_TS', state: {ts: getDatum(15) + 86400000, val: getState("pvforecast.0.summary.power.hoursTomorrow.15:00:00").val, ack: true, from: "javascript.0", q: 0}}); sendTo('influxdb.0', 'storeState', {id: 'summary.power.hoursTomorrow.05:00:00-21:00:00_TS', state: {ts: getDatum(15) + 86400000, val: getState("pvforecast.0.summary.power.hoursTomorrow.15:00:00").val, ack: true, from: "javascript.0", q: 0}}); sendTo('influxdb.0', 'storeState', {id: 'summary.power.Power_TS', state: {ts: getDatum(16) + 86400000, val: getState("pvforecast.0.summary.power.hoursTomorrow.16:00:00").val, ack: true, from: "javascript.0", q: 0}}); sendTo('influxdb.0', 'storeState', {id: 'summary.power.hoursTomorrow.05:00:00-21:00:00_TS', state: {ts: getDatum(16) + 86400000, val: getState("pvforecast.0.summary.power.hoursTomorrow.16:00:00").val, ack: true, from: "javascript.0", q: 0}}); sendTo('influxdb.0', 'storeState', {id: 'summary.power.Power_TS', state: {ts: getDatum(17) + 86400000, val: getState("pvforecast.0.summary.power.hoursTomorrow.17:00:00").val, ack: true, from: "javascript.0", q: 0}}); sendTo('influxdb.0', 'storeState', {id: 'summary.power.hoursTomorrow.05:00:00-21:00:00_TS', state: {ts: getDatum(17) + 86400000, val: getState("pvforecast.0.summary.power.hoursTomorrow.17:00:00").val, ack: true, from: "javascript.0", q: 0}}); sendTo('influxdb.0', 'storeState', {id: 'summary.power.Power_TS', state: {ts: getDatum(18) + 86400000, val: getState("pvforecast.0.summary.power.hoursTomorrow.18:00:00").val, ack: true, from: "javascript.0", q: 0}}); sendTo('influxdb.0', 'storeState', {id: 'summary.power.hoursTomorrow.05:00:00-21:00:00_TS', state: {ts: getDatum(18) + 86400000, val: getState("pvforecast.0.summary.power.hoursTomorrow.18:00:00").val, ack: true, from: "javascript.0", q: 0}}); sendTo('influxdb.0', 'storeState', {id: 'summary.power.Power_TS', state: {ts: getDatum(19) + 86400000, val: getState("pvforecast.0.summary.power.hoursTomorrow.19:00:00").val, ack: true, from: "javascript.0", q: 0}}); sendTo('influxdb.0', 'storeState', {id: 'summary.power.hoursTomorrow.05:00:00-21:00:00_TS', state: {ts: getDatum(19) + 86400000, val: getState("pvforecast.0.summary.power.hoursTomorrow.19:00:00").val, ack: true, from: "javascript.0", q: 0}}); sendTo('influxdb.0', 'storeState', {id: 'summary.power.Power_TS', state: {ts: getDatum(20) + 86400000, val: getState("pvforecast.0.summary.power.hoursTomorrow.20:00:00").val, ack: true, from: "javascript.0", q: 0}}); sendTo('influxdb.0', 'storeState', {id: 'summary.power.hoursTomorrow.05:00:00-21:00:00_TS', state: {ts: getDatum(20) + 86400000, val: getState("pvforecast.0.summary.power.hoursTomorrow.20:00:00").val, ack: true, from: "javascript.0", q: 0}}); sendTo('influxdb.0', 'storeState', {id: 'summary.power.Power_TS', state: {ts: getDatum(21) + 86400000, val: getState("pvforecast.0.summary.power.hoursTomorrow.21:00:00").val, ack: true, from: "javascript.0", q: 0}}); sendTo('influxdb.0', 'storeState', {id: 'summary.power.hoursTomorrow.05:00:00-21:00:00_TS', state: {ts: getDatum(21) + 86400000, val: getState("pvforecast.0.summary.power.hoursTomorrow.21:00:00").val, ack: true, from: "javascript.0", q: 0}}); });
-
-
@haus-automatisierung Vielen Dank für deine Entwicklungs- und Pflegearbeit für den Adapter.
Ich habe ein kleines Feature-Request:
Mir ist die Eigenheit von Solcast bekannt, dass wenn man tagsüber eine Aktualisierung der Vorhersage abrufen würde, die bis dahin schon vergangenen Stunden seit Sonnenaufgang nicht mehr Teil der aktualisierten Prognose sind und deswegen der Adapter die Solcast-Daten nur einmal in der Nacht abruft. Für meinen Anwendungsfall wäre es klasse, wenn ich trotzdem eine Aktualisierung triggern könnte - mein Vorschlag wäre über einen Datenpunkt. Ich arbeite im Moment an der Implementierung einer "echten" prognosebasierten Verbrauchersteuerung über ioBroker auf Basis dieses Adapters. Beispiel: Ich räume um 11 Uhr die Spülmaschine ein, die ungefähre Leistungsaufnahme der Maschine im Betrieb und die Programmdauer sind eingepflegt, der ioBroker startet die Spülmaschine zu dem Zeitpunkt, wenn der höchste PV-Eigenverbrauch zu erwarten ist. Dafür wird die Ertragsprognose für den Rest des Tages frisch aktualisiert. Die Prognosegüte steigt teils erheblich dadurch.Liebe Grüße und allen einen guten Rutsch!
-
Ich sehe gerade, ein Neustart der Instanz tut offenbar genau das...
-
Guten Abend,
ich bin absoluter Neuling was ioBroker, influxDB, Raspberry, usw. angeht, versuche aber aktuell mein Glück mit allem was ich in die Finger bekomme.Soweit funktioniert die Abfrage über ioBroker mit PV-Prognose wunderbar, das einzige was ich aktuell noch vermisse ist die prognostizierte Wattstundensumme je voller Stunde über "forecast". (ist der dritte Responseblock über die Beispiel-API: 'https://api.forecast.solar/estimate/50/10/25/45/13')
Hiermit könnte man beispielsweise, je nach Ausstattung, einen Batteriespeicher bis zu einer Grenze entladen, da man ja im Vorfeld "weiß", wieviel Ertrag in kWh generiert werden sollte.Ist die Implementierung dieser Werte in Zukunft geplant?
Ich traue mir ganz ungern zu das Script zu zerlegen.
Herzlichen Dank für eure enormen Leistungen und viele Grüße!
-
@richarddgn sagte in Test PV Forecast Adapter:
das einzige was ich aktuell noch vermisse ist die prognostizierte Wattstundensumme je voller Stunde über "forecast".
Stimmt, das wird aktuell nur addiert. Wäre aber recht einfach das mit aufzunehmen. Kann ich mir mal anschauen, wenn ich Zeit finde.