NEWS
Blockly Fehlermeldungen bereinigen
-
@tedesco1968 sagte: gibt es da bestimmte Regeln die man befolgen muß
Der Selektor sortiert nach ID-String. Damit die Reihenfolge stimmt, muss der höherwertige Teil (Jahr) vor dem niederwertigen stehen: "PV_JJ_MM_TT".
-
@paul53 said in Blockly Fehlermeldungen bereinigen:
@tedesco1968 sagte: gibt es da bestimmte Regeln die man befolgen muß
Der Selektor sortiert nach ID-String. Damit die Reihenfolge stimmt, muss der höherwertige Teil (Jahr) vor dem niederwertigen stehen: "PV_JJ_MM_TT".
OK, dann baue ich das um, wie du vorgeschlagen hast
Gruß
Antonio -
Hallo Paul,
erledigt sieht so aus in VIS:
bekomme es leider nicht schöner Visualisiert.
So sieht das Json Objekt aus:
Gruß
Antonio -
@tedesco1968 sagte: bekomme es leider nicht schöner Visualisiert.
Weshalb vergibst Du den DP keinen "schönen" Namen "TT.MM.JJ" wie hier unten gezeigt?
Damit vereinfacht sich die Funktion "PV_Daten(id)":return {Tag: getObject(id).common.name, Wh: getState(id).val};
-
@paul53 said in Blockly Fehlermeldungen bereinigen:
@tedesco1968 sagte: bekomme es leider nicht schöner Visualisiert.
Weshalb vergibst Du den DP keinen "schönen" Namen "TT.MM.JJ" wie hier unten gezeigt?
Damit vereinfacht sich die Funktion "PV_Daten(id)":return {Tag: getObject(id).common.name, Wh: getState(id).val};
Hallo Paul,
meinst du das mit dem formatDate?
//Datenpunkt-Erstellung const idPvHeute = 'javascript.0.Ph-Leistungsberechnung.Ph-Leistung_Gesamt_Heute'; const daten = "0_userdata.0.PV_Leistung_Tage.PV_"; const datenpunkt = daten + formatDate(new Date(), 'JJ_MM_TT'); //createState(datenpunkt, 0, {type: "number", unit: "Wh"}); createState(datenpunkt, 0, {type: "number", unit: "Wh", name: formatDate(new Date(), 'TT.MM.JJ')});
habe ich gerade probiert, erzeugt dieses:
-
Der erzeugte Datenpunkt sieht so aus:
-
@tedesco1968 sagte: meinst du das mit dem formatDate?
Ja.
Die geänderte JS-Funktion mit Ergebnis PV_Daten(id)return {Tag: getObject(id).common.name, Wh: getState(id).val};
sollte dann folgenden Eintrag im JSON erzeugen:
[ { "Tag": "30.12.22", "Wh": 6579 } ]
@tedesco1968 sagte in Blockly Fehlermeldungen bereinigen:
Der erzeugte Datenpunkt sieht so aus:
Leider ist der Name nicht vollständig zu erkennen.
-
@paul53 said in Blockly Fehlermeldungen bereinigen:
Leider ist der Name nicht vollständig zu erkennen
30.12.22 der wird schon richtig erzeugt, leider lassen sich die Spalten in Iobroker nicht mehr ziehen wie früher.
die funktion habe ich geändert:
return {Tag: getObject(id).common.name.substring(33, 41), Wh: getState(id).val};
allerdings übernimmt es leider den namen nicht (in PV_Tag):
C:\Users\tedesco\Documents\iobroker\blockly\2022-12-30 13_17_24-javascript - raspberrypi.png
-
-
@tedesco1968 sagte: die funktion habe ich geändert:
Ohne .substring(33, 41) !!
return {Tag: getObject(id).common.name, Wh: getState(id).val};
@tedesco1968 sagte in Blockly Fehlermeldungen bereinigen:
leider lassen sich die Spalten in Iobroker nicht mehr ziehen wie früher.
Die gepunktete Linie oben links neben "Name" nach links ziehen.
EDIT: Eine Liste mit Objekten kann man nicht numerisch sortieren.
-
@paul53 said in Blockly Fehlermeldungen bereinigen:
Die gepunktete Linie oben links neben "Name" nach links ziehen.
ich sehe die gepunktete Linie, lässt sich aber nicht ziehen, mit zwei verschiedene Browser probiert!
EDIT: Eine Liste mit Objekten kann man nicht numerisch sortieren.
OK, habe ich wieder entfernt!
Substring entfernt, jetzt macht es was es soll :).Super, bist halt ein Profi.
Gruß
Antonio -
Hallo Paul,
könntest du mir erklären wie ich die generierten Werte der Datenpunkte automatisch addieren lassen kann? So das die summe in ein MonatsDatenpunkt geschrieben wird.
Gruß
Antonio -
@tedesco1968 sagte: automatisch addieren lassen kann? So das die summe in ein MonatsDatenpunkt geschrieben wird.
Jeden Tag den Tageswert aufsummieren und am Monatsende die Summe in einen Monatsdatenpunkt schreiben und die Summe wieder bei 0 beginnen.
-
@paul53 said in Blockly Fehlermeldungen bereinigen:
@tedesco1968 sagte: automatisch addieren lassen kann? So das die summe in ein MonatsDatenpunkt geschrieben wird.
Jeden Tag den Tageswert aufsummieren und am Monatsende die Summe in einen Monatsdatenpunkt schreiben und die Summe wieder bei 0 beginnen.
Hallo Paul,
vielen Dank, hab es gleich umgesetzt.
Gruß
Antonio -
@tedesco1968 sagte: hab es gleich umgesetzt.
Beachte, dass das Erstellen der Datenpunkte "0_userdata.0.PV_Ertrag_Monate.PV_JJ_MM" nicht enthalten ist!
-
@paul53 said in Blockly Fehlermeldungen bereinigen:
0_userdata.0.PV_Ertrag_Monate.PV_JJ_MM
Hallo Paul,
ist ja ersichtlich, hab es manuell generiert.
Danke dir
Gruß
Antonio -
-
@paul53 said in Blockly Fehlermeldungen bereinigen:
@tedesco1968 sagte: hab es manuell generiert.
Die Monatssumme nicht besser in kWh?
Hallo Paul,
doch das mache ich natürlich.
Gruß
Antonio -
@paul53 said in Blockly Fehlermeldungen bereinigen:
@tedesco1968 sagte: automatisch addieren lassen kann? So das die summe in ein MonatsDatenpunkt geschrieben wird.
Jeden Tag den Tageswert aufsummieren und am Monatsende die Summe in einen Monatsdatenpunkt schreiben und die Summe wieder bei 0 beginnen.
Hallo Paul,
habe schon lange nicht mehr die Datenpunkte seit Erstellung des Blockly geschaut. Gestern Abend habe ich gesehen das es nicht so funktioniert wie gewollt, bzw. keine Daten ausspuckt :-).
Habe mir das Skript genauer angeschaut und gemerkt das es so nicht ganz funktionieren kann, korrigiere mich wenn ich falsch liege.
Es wird zuerst ein bestimmter Wert vom "PV Monatssumme Datenpunkt" in die Variable "summe" geschrieben, um 23:59 wird der Script gestartet und in die Variable "ID" der vorhandene Datenpunkt "Leistung Tage PV" geschrieben und in die Variable "summe", dessen Wert.
Dann wird die Variable "morgen" mit dem aktuellen Zeit-Objekt + 2min, beschrieben, würde bedeuten 00:01 (also der nächste Tag).
Die "falls-mache" Schleife soll auf "morgen" überprüfen, um dann das von mir manuell generierte Datenpunkt "Ertrag Monate PV" mit der Variable "Summe" also den Wert zu beschreiben.
Danach wird die Variable "summe" wieder genullt und am Schluss noch den Datenpunkt "PV Summe aktuell" den gleichen Wert von "summe" also 0 zu geben.Ich hoffe ich habe das so richtig verstanden.
- Der Zeitplan Trigger wird also um 23:59 gestartet, wie kann aber die "falls-mache" Schleife was machen wenn die "falls" Bedingung zu dieser Zeit gar nicht erfüllt ist?
- Dann habe ich gemerkt das der Wert vom Objekt ID der Variable "ID" nicht übergeben wird, somit die Variable "summe" sich nie erhöht.
Gruß
Antonio -
@tedesco1968 sagte: wie kann aber die "falls-mache" Schleife was machen wenn die "falls" Bedingung zu dieser Zeit gar nicht erfüllt ist?
Die Aktionen im mache-Zweig sollen nur zum Monatsende ausgeführt werden.
@tedesco1968 sagte in Blockly Fehlermeldungen bereinigen:
Dann habe ich gemerkt das der Wert vom Objekt ID der Variable "ID" nicht übergeben wird, somit die Variable "summe" sich nie erhöht.
Der richtige Datenpunkt ist zugewiesen? Die Variable
summe
erhöht sich jeden Tag um 23:59 Uhr um den Wert des DP "0_userdata.0.PV_Leistung_Tage.PV_JJ_MM_TT". Ist dieser DP vielleicht zum Zeitpunkt 23:59 Uhr noch nicht aktualisiert?