NEWS
[gelöst] wie mit sendTo History.0 Werte im Voraus übergeben?
-
@homoran
Besser geeignet ist Beispiel 2 mit Übergabe eines Arrays, das in einer Schleife gefüllt wird:// 2. sendTo('history.0', 'storeState', { id: 'mbus.0.counter.xxx', state: [ { ts: 1589458809352, val: 123, ack: false, from: 'system.adapter.whatever.0' }, { ts: 1589458809353, val: 123, ack: false, from: 'system.adapter.whatever.0' } ] }, result => console.log('added'));
-
-
@paul53 vielen lieben Dank Paul!
@paul53 sagte in wie mit sendTo History.0 Werte im Voraus übergeben?:
Besser geeignet ist Beispiel 2
so in der Art hätte ich mir mein Endergebnis vorgestellt und um 05:15 einmalig gestartet
Dazu einige Fragen:
ich muss natürlich entsprechend viele Stunden Forecast im Adapter freischalten, wie im Sommer die Sonne scheinen wird.
Ist die Anzahli
diese Anzahl existierender Datenpunke?
ist <10 die Anzahl der Sonnenstunden? EDIT: Das sind die führenden 0 bei einstelligen Namen!Werde ich so umsetzen!
DANKE! -
@homoran sagte: Ist die Anzahl idiese Anzahl existierender Datenpunke?
Ich habe angenommen, dass die ID die Stunde der Uhrzeit enthält? Deshalb i von 3 bis 22.
-
@paul53 sagte in wie mit sendTo History.0 Werte im Voraus übergeben?:
dass die ID die Stunde der Uhrzeit enthält?
leider nein.
die wird kontinuierlich geändert:
0 = aktuelle Stunde
1 = nächste Stunde
usw...wenn ich das Skript um 05:15 laufen lasse, ist 00, die Stunde 05:00-05:59
in dem jeweiligen Verzeichnis gibt es einen DP Timestamp.
-
@homoran sagte: ist 00, die Stunde 05:00-05:59
Dann lass i von 0 bis 16 laufen. Oder ist die Anzahl der Datenpunkte abhängig von der Jahreszeit?
-
@paul53 sagte in wie mit sendTo History.0 Werte im Voraus übergeben?:
Oder ist die Anzahl der Datenpunkte abhängig von der Jahreszeit?
nein! die würde ich entsprechend dem maximal im Sommer benötigtem konfigurieren
@paul53 sagte in wie mit sendTo History.0 Werte im Voraus übergeben?:
lass i von 0 bis 16
das wäre 5:00-21:59 Uhr.
das sollte passen
-
@paul53 so, dann warte ich mal auf morgen!
Die Variableid
lag noch rum, da hab ich sie recycelt
hourly 0...16 existieren -
@homoran das konnte ja nicht funktionieren!
ich hatte doch das array für weitere Bearbeitung gesichert, da steht jetzt
[{"val":"brightsky.0.hourly.00.solar_estimate","ts":"brightsky.0.hourly.00.timestamp","ack":true},{"val":"brightsky.0.hourly.01.solar_estimate","ts":"brightsky.0.hourly.01.timestamp","ack":true},{"val":"brightsky.0.hourly.02.solar_estimate","ts":"brightsky.0.hourly.02.timestamp","ack":true},{"val":"brightsky.0.hourly.03.solar_estimate","ts":"brightsky.0.hourly.03.timestamp","ack":true},{"val":"brightsky.0.hourly.04.solar_estimate","ts":"brightsky.0.hourly.04.timestamp","ack":true},{"val":"brightsky.0.hourly.05.solar_estimate","ts":"brightsky.0.hourly.05.timestamp","ack":true},{"val":"brightsky.0.hourly.06.solar_estimate","ts":"brightsky.0.hourly.06.timestamp","ack":true},{"val":"brightsky.0.hourly.07.solar_estimate","ts":"brightsky.0.hourly.07.timestamp","ack":true},{"val":"brightsky.0.hourly.08.solar_estimate","ts":"brightsky.0.hourly.08.timestamp","ack":true},{"val":"brightsky.0.hourly.09.solar_estimate","ts":"brightsky.0.hourly.09.timestamp","ack":true},{"val":"brightsky.0.hourly.10.solar_estimate","ts":"brightsky.0.hourly.10.timestamp","ack":true},{"val":"brightsky.0.hourly.11.solar_estimate","ts":"brightsky.0.hourly.11.timestamp","ack":true},{"val":"brightsky.0.hourly.12.solar_estimate","ts":"brightsky.0.hourly.12.timestamp","ack":true},{"val":"brightsky.0.hourly.13.solar_estimate","ts":"brightsky.0.hourly.13.timestamp","ack":true},{"val":"brightsky.0.hourly.14.solar_estimate","ts":"brightsky.0.hourly.14.timestamp","ack":true},{"val":"brightsky.0.hourly.15.solar_estimate","ts":"brightsky.0.hourly.15.timestamp","ack":true},{"val":"brightsky.0.hourly.16.solar_estimate","ts":"brightsky.0.hourly.16.timestamp","ack":true}]
Da hab ich auch ganz schnell meinen Fehler gefunden.
Schnell geändert:
Also noch bis morgen wartenEDIT:
Wird auch nicht klappen.
der Timestamp muss noch konvertiert werden[{"val":0.527,"ts":"2025-09-20T07:00:00+00:00","ack":true},{"val":1.211,"ts":"2025-09-20T08:00:00+00:00","ack":true},{"val":1.993,"ts":"2025-09-20T09:00:00+00:00","ack":true},{"val":2.449,"ts":"2025-09-20T10:00:00+00:00","ack":true},{"val":2.532,"ts":"2025-09-20T11:00:00+00:00","ack":true},{"val":2.293,"ts":"2025-09-20T12:00:00+00:00","ack":true},{"val":1.823,"ts":"2025-09-20T13:00:00+00:00","ack":true},{"val":1.276,"ts":"2025-09-20T14:00:00+00:00","ack":true},{"val":0.78,"ts":"2025-09-20T15:00:00+00:00","ack":true},{"val":0.506,"ts":"2025-09-20T16:00:00+00:00","ack":true},{"val":0.178,"ts":"2025-09-20T17:00:00+00:00","ack":true},{"val":0,"ts":"2025-09-20T18:00:00+00:00","ack":true},{"val":0,"ts":"2025-09-20T19:00:00+00:00","ack":true}]
da steht jetzt verständlicherweise
NaN
-
Hab noch einiges geändert
obwohl das Array jetzt so aussieht
[{"val":527,"ts":1758351600000,"ack":true},{"val":1211,"ts":1758355200000,"ack":true},{"val":1993,"ts":1758358800000,"ack":true},{"val":2449,"ts":1758362400000,"ack":true},{"val":2532,"ts":1758366000000,"ack":true},{"val":2293,"ts":1758369600000,"ack":true},{"val":1823,"ts":1758373200000,"ack":true},{"val":1276,"ts":1758376800000,"ack":true},{"val":780,"ts":1758380400000,"ack":true},{"val":506,"ts":1758384000000,"ack":true},{"val":178,"ts":1758387600000,"ack":true},{"val":0,"ts":1758391200000,"ack":true},{"val":0,"ts":1758394800000,"ack":true}]
wird jetzt nur noch der 9 Uhr Wert eingetragen.
den max. - Wert hab ich schon von 100 auf 10000 hochgesetzt
{ "common": { "name": "clearSkyHourly", "desc": "Manuell erzeugt", "role": "state", "type": "number", "read": true, "write": true, "def": 0, "custom": { "history.0": { "enabled": true, "aliasId": "", "debounceTime": 0, "blockTime": 0, "changesOnly": true, "changesRelogInterval": 0, "changesMinDelta": "0", "ignoreBelowNumber": "", "disableSkippedValueLogging": false, "retention": "0", "customRetentionDuration": 365, "maxLength": "10", "enableDebugLogs": false, "debounce": "1000" } }, "min": 0, "max": 10000 }, "type": "state", "native": {}, "_id": "Messwerte.0.Solaranlage.Prognosen.clearSkyHourly", "acl": { "object": 1636, "state": 1636, "owner": "system.user.admin", "ownerGroup": "system.group.administrator" }, "from": "system.adapter.admin.0", "user": "system.user.admin", "ts": 1758353664668 }
EDIT:
beim nächsten Start nach 10:00 wird wieder der erste Wert, also für 10:00 in die history eingetragen.Ein neuer Testdatenpunkt, um auszuschließen dass es Probleme mit dem History.json gibt, wird genauso behandelt.
-
@homoran sagte: Start nach 10:00 wird wieder der erste Wert, also für 10:00 in die history eingetragen.
Hats du die Schleife entsprechend auf 0 bis <= 11 verkürzt?
@homoran sagte in wie mit sendTo History.0 Werte im Voraus übergeben?:
Wert hab ich schon von 100 auf 10000 hochgesetzt
Der Datenpunkt wird hoffentlich nicht geschrieben? Die History wird mit sendTo() gefüllt.
Alternativ zu sendTo() kannst du es mal mit setState() versuchen, der um 5:15 Uhr 17 mal hintereinander den Datenpunkt schreibt:
-
@paul53 sagte in wie mit sendTo History.0 Werte im Voraus übergeben?:
Hats du die Schleife entsprechend auf 0 bis <= 11 verkürzt?
ja!
@paul53 sagte in wie mit sendTo History.0 Werte im Voraus übergeben?:
Der Datenpunkt wird hoffentlich nicht geschrieben?
richtig!
hab ihn sogar gelöscht, neu angelegt. Da steht noch die initiale gelbe 0@paul53 sagte in wie mit sendTo History.0 Werte im Voraus übergeben?:
Alternativ
wäre eine Möglichkeit.
Aber im Moment verstehe ich folgendes nicht:
gemäß der Historykonfiguration des Datenpunktes, Verlaufsdatenzuerst wurde gar nichts geschrieben... ist klar, keine Zahlen
Anschließend (ohne timestamp-Konvertierung) standen alle Werte drin, mit Timestamp: Datum Uhrzeit .NaN für Millisekunden.
jetzt passt der Timestamp, aber nur der erste Wert wird in der History angezeigt!ist seltsam
Achtung, es wird noch seltsamer
gerade sehe ich nochmal nach, da stehen alle Daten der vergangenen und der aktuellen Stunde drin, aber keine in der Zukunft!Als ob das Array erst "zeitgerecht" abgearbeitet wird....
-
@homoran sagte: da stehen alle Daten der vergangenen und der aktuellen Stunde drin
Die vergangenen Stunden stehen noch drin, oder hast du die History inzwischen gelöscht?
@homoran sagte in wie mit sendTo History.0 Werte im Voraus übergeben?:
keine in der Zukunft!
Die Liste ist aber korrekt? Vielleicht lässt History mit sendTo() keine zukünftigen Daten zu?
-
@paul53 sagte in wie mit sendTo History.0 Werte im Voraus übergeben?:
Die vergangenen Stunden stehen noch drin, oder hast du die History inzwischen gelöscht?
als ich das letzte mal teingesehen hatte standen nur 0900 und 1000 drin.
jetzt sind ohne weitere Aktivitäten meinerseits (war zwischenzeitlich Fliesen abschlagen) die Werte von 1100 und 1200 aufgetaucht
-
@paul53 sagte in wie mit sendTo History.0 Werte im Voraus übergeben?:
Die Liste ist aber korrekt?
die um 10:07:59 geschriebene und gesendete Liste
[{"val":1253,"ts":1758355200000,"ack":true},{"val":1920,"ts":1758358800000,"ack":true},{"val":2368,"ts":1758362400000,"ack":true},{"val":2515,"ts":1758366000000,"ack":true},{"val":2293,"ts":1758369600000,"ack":true},{"val":1823,"ts":1758373200000,"ack":true},{"val":1299,"ts":1758376800000,"ack":true},{"val":790,"ts":1758380400000,"ack":true},{"val":513,"ts":1758384000000,"ack":true},{"val":185,"ts":1758387600000,"ack":true},{"val":0,"ts":1758391200000,"ack":true},{"val":0,"ts":1758394800000,"ack":true}]
@paul53 sagte in wie mit sendTo History.0 Werte im Voraus übergeben?:
Vielleicht lässt History mit sendTo() keine zukünftigen Daten zu?
@klassisch kann es aber
mit js
EDIT:
das gleiche in dem einmalig testweise beschriebenen Datenpunkt
EDIT2:
damit liegen aber zumindest in flot die zukünftigen Daten vor
Möglicherweise ist doch das heutige json vom Original-DP durch diese Spielereien "verbrannt"
hab aber keine Lust mir das rauszusuchen und zu analysieren -
@homoran sagte: das gleiche in dem einmalig testweise beschriebenen Datenpunkt
Schau dir mal die Endzeit an: Die zukünftigen Werte werden nur nicht angezeigt, sind aber in der .json-Datei enthalten?
-
@paul53 siehe edit2 bitte!
-
@homoran sagte: @klassisch kann es aber mit js
Das ist die Version mit "steuere" ohne sendTo().
-
@paul53 DANKE!
ich warte mal ab, ob es morgen woeder klappt, sonst stell ich erstmalnauf den Test-DP um, und wenn das auch nicht stabil läuft mach ich das mit einzelnen Einträgen. -
@homoran sagte in wie mit sendTo History.0 Werte im Voraus übergeben?:
ich warte mal ab, ob es morgen wieder klappt
Tut es!
nochmals Danke @paul53