NEWS
Blockly Fehlermeldungen bereinigen
-
@paul53 said in Blockly Fehlermeldungen bereinigen:
Es fehlt in dem Skript ein Trigger(schedule).
Wird jeden Tag ein neuer Datenpunkt erstellt? Wenn ja, wird die JSON-Tabelle immer länger.Hallo Paul,
Trigger ist doch vohanden
Übrigens ist der Tagesertrag keine Leistung, sondern ein Energiewert (Wh).
Klar das weiß ich doch. Werde aber dein eleganteren Code nutzen
Danke dir.
Gruß
Antonio -
Hallo Paul,
ich habe deinen Code übernommen, allerdings das createState und setSteate getrennt und wie vorher in 2 Blockly-Javascript Funktionen gepackt.
Wieso? Weil ich den setState alle 10min aktualisieren möchte so habe ich immer die aktuelle Wh des jeweiligen tages. Hätte ich auch komplett in Javascript und einfach ein zusätzliches Schedule hizufügen können.
Eine andere Frage, kann man per JavaScript auch aud die Funktionen der Datenpunkte zugreifen und diese verändern (siehe Bild)?
Gruß
Antonio -
@tedesco1968 sagte: kann man per JavaScript auch aud die Funktionen der Datenpunkte zugreifen und diese verändern (siehe Bild)?
Man kann, aber wozu sollte man sie verändern?
Mit der ID "PV_TT_MM_JJ" wirst Du wegen der Sortierreihenfolge nicht lange Freude haben.
-
Hallo Paul,
@paul53 said in Blockly Fehlermeldungen bereinigen:
Man kann, aber wozu sollte man sie verändern?
Ich wollte automatisch ein PV einfügen, villeicht für später...
Mit der ID "PV_TT_MM_JJ" wirst Du wegen der Sortierreihenfolge nicht lange Freude haben.
OK, gibt es da bestimmte Regeln die man befolgen muß, oder andere Gründe?
Ansonsten ändere ich das, natürlich.Gruß
Antonio -
@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