Seite 1 von 2
[V4.5 IP3] Suche Customlogik für Zerlegung von Datensatz mit pos./neg. Werten in zwei pos. Datensätze
Verfasst: So Apr 27, 2025 8:48 am
von cheater
Hallo zusammen,
ich bin gerade vor eine kleine Aufgabe gestellt, da ich meinen Tibber Lesekopf durch einen Hitchi Lesekopf ersetze.
Der Tibber Lesekopf gibt mir die Leistung für Bezug und Einspeisung getrennt mit positiven Werten aus (über Ndoe Red).
Der Hitchi Lesekopf hat nur einen Datensatz für die Leistung --> Positiv = Bezug und Negativ = Einspeisung.
Jetzt ist der Tibber Lesekopf schon mit verschiedenen Zeitserien und Logiken verknüpft.
Gibt es hier schon eine Customlogik, die mir den ankommenden Datensatz mit pos. und neg. Werten in zwei Datensätze mit nur pos. Werten zerlegt?
Wenn nicht könnte sich das bitte jemand mal ansehen.
Grüße, Dominic
Re: [V4.5 IP3] Suche Customlogik für Zerlegung von Datensatz mit pos./neg. Werten in zwei pos. Datensätze
Verfasst: So Apr 27, 2025 9:04 am
von gbglace
Na das schaffst doch auch selber ganz ohne Customlogik.
Es geht ja um die Momentanleistungswerte.
Dafür je Richtung eine Logik freie Formel. Beide bekommen den +/- Wert in W als Eingang und die eine Formel mach mit der IF Funktion eine Prüfung ob das kleiner 0 ist und rechnet dann -1*Eingang sonst 0.
Die andere Logik prüft auf positiv und rechnet dann 1*Eingang sonst 0.
Beide Logiken am Ausgang per C oder CT.
Beispiele für Freie Formeln mit Logik sind im Wiki zu dem Logikmodule gut beschrieben.
Ich bin hier jetzt nur am Handy sonst hätte ich das direkt rausgesucht. 100% freihändig habe ich die Formelsyntax nicht im Kopf, aber schon einige davon in meinem Wolf.
Re: [V4.5 IP3] Suche Customlogik für Zerlegung von Datensatz mit pos./neg. Werten in zwei pos. Datensätze
Verfasst: So Apr 27, 2025 9:10 am
von gbglace
PS: wenn Du das am Laufen hast kannst diese beiden auch in eine Customlogik packen.
Eine Eingangsvariable definieren, zwei Module freie Formel siehe oben. Und zwei Ausgangsvariablen definieren. Dann hast das auch alles in einer Logik.
Ein gutes einfach Übungsobjekt denke ich.
Re: [V4.5 IP3] Suche Customlogik für Zerlegung von Datensatz mit pos./neg. Werten in zwei pos. Datensätze
Verfasst: So Apr 27, 2025 9:49 am
von cheater
Servus Göran,
mit Chat GPT hab ich es schon mal geschafft die freien Formeln für die beiden Standardbausteine zu erstellen:
bei positivem Eingang:
bei negativem Eingang:
Wenn jetzt jemand noch Lust hätte dies in einer Customlogik zusammenzufassen wäre das richtig cool.Ich habe es probiert, aber das übersteigt meine Fähigkeiten leider.
Re: [V4.5 IP3] Suche Customlogik für Zerlegung von Datensatz mit pos./neg. Werten in zwei pos. Datensätze
Verfasst: So Apr 27, 2025 4:17 pm
von Franky
mal gucken, ob
mein unser Frankenstein aus
Nutzung von KI (LLM) für Dokumentation und Custom-Logiken das hinbekommt. Ich habe dem Prompt einfach die Forendiskussion aus dem Browser ins Chatfenster kopiert. By the way: Gemini 2.5 Pro (
https://aistudio.google.com/)
KOSTENFREI, nicht ChatGPT. Google hat momentan nicht nur die Nase, sondern einen ganzen Intercity-Zug Vorsprung.
Nach Eingabe von Ja:
Code: Alles auswählen
{
"Module": [
// Version: v1.00 (2025-04-27) - Leistungsaufteilung (Bezug/Einspeisung)
// --- START: Berechnung Bezug (Positiv) ---
// Formel: (X1 > 0) ? X1 : 0
["CalcFormula", ["$in_LeistungGesamt"], "$out_LeistungBezug", "$Const_Formula_Bezug"],
// --- END: Berechnung Bezug (Positiv) ---
// --- START: Berechnung Einspeisung (Negativ -> Positiv) ---
// Formel: (X1 > 0) ? 0 : -X1
["CalcFormula", ["$in_LeistungGesamt"], "$out_LeistungEinspeisung", "$Const_Formula_Einspeisung"]
// --- END: Berechnung Einspeisung (Negativ -> Positiv) ---
],
"Level": [
// Konstanten
["$ConstTrue", "bool", true],
["$ConstFalse", "bool", false],
// Die Formeln werden als Konstanten definiert, um die Lesbarkeit im Module-Array zu verbessern.
["$Const_Formula_Bezug", "string", "(X1 > 0) ? X1 : 0"],
["$Const_Formula_Einspeisung", "string", "(X1 > 0) ? 0 : -X1"],
// Input
// Beispielwert: 1500 W Bezug
["$in_LeistungGesamt", "float", 1500.0],
// Outputs (werden durch CalcFormula initialisiert)
["$out_LeistungBezug", "float", 0.0],
["$out_LeistungEinspeisung", "float", 0.0]
],
"Input": [
["Leistung Gesamt", "Leistung vom Zähler (Positiv=Bezug, Negativ=Einspeisung) [W]", "$in_LeistungGesamt", "c"]
],
"Output": [
["Leistung Bezug", "Leistung Bezug (nur positive Werte) [W]", "$out_LeistungBezug", "c"],
["Leistung Einspeisung", "Leistung Einspeisung (nur positive Werte) [W]", "$out_LeistungEinspeisung", "c"]
// --- Lizenz ---
// Der Schöpfer dieser Custom-Logik überträgt die Nutzungsrechte gemäß der TOLL ("Timberwolf Open Logikblock License") die unter https://wrgt.news/TOLL zum Download zur Verfügung steht.
]
}
Funzt das? (hab jetzt nur die Syntax überprüfen lassen). Wenn das stimmt hätten wir den ersten Pass des Prompts für eine neue Custom-Logik und könnten in der Doku zum Experimentieren mit dem Prompt einladen. Erkenntnisse der User würde ich gerne in die Optimierung des Prompts stecken.
Wenn es nicht stimmt, habe ich wieder was zu optimieren.
Sorry für being faul und not testing
Franky
Re: [V4.5 IP3] Suche Customlogik für Zerlegung von Datensatz mit pos./neg. Werten in zwei pos. Datensätze
Verfasst: Mo Apr 28, 2025 9:44 am
von gbglace
Die Reihenfolge der groben Struktur verwirrt mich. Ich würde immer erst level dann input / output definieren und als letztes den Part der Module, weil dass das doing der Logik ist.
Die Versionierungskommentare kommen nicht in den Module Block. Und die Konstanten true/false braucht es auch nicht in diesem fall hier.
Re: [V4.5 IP3] Suche Customlogik für Zerlegung von Datensatz mit pos./neg. Werten in zwei pos. Datensätze
Verfasst: Mo Apr 28, 2025 11:50 am
von Franky
super, danke für die Info, muss ich noch mal überlegen.
Die Reihenfolge der Blöcke ist aber bewusst so gewählt: Level ist recht fix. Ein Betrachter oder Editierer wird schnell Modulblock annavigieren/ändern wollen. Variablennamen fordere ich sprechend ein, somit kein Bedarf erstmal Leven zu durchforsten / wegzuscrollen / dort Kommentare zu lesen.
Und Kommentare (Versionshinweis) sind (json-konformität) angeblich erst innerhalb eines Blocks erlaubt, deshalb im Modulblock. Das stimmt aber vielleicht nicht, da müsste ich nochmal googlen.
LGruß
Frankly
Re: [V4.5 IP3] Suche Customlogik für Zerlegung von Datensatz mit pos./neg. Werten in zwei pos. Datensätze
Verfasst: Mo Apr 28, 2025 7:24 pm
von Robert_Mini
Hy!
Ich würde das im übrigen mittels Comperator und Multiplexer lösen. Ob Custom oder 2 einzelne sei dann dem einzelnen überlassen.
Lg Robert
Re: [V4.5 IP3] Suche Customlogik für Zerlegung von Datensatz mit pos./neg. Werten in zwei pos. Datensätze
Verfasst: Di Apr 29, 2025 5:11 am
von Franky
Hallo Robert,
meinst Du Comparator, um zu prüfen, ob der Eingangswert größer als 0 ist?
aber was ist mit Einspeisung? Dann mit Polynomial mal -1 rechnen, um das Vorzeichen zu ändern?
["Comparator", "$Leistung_In", "$IstPositiv", 0]
["Multiplexer", [0, "$Leistung_In"], "$Leistung_Bezug", "$IstPositiv"]
["Polynomial", "$Leistung_In", "$Leistung_Neg_Positiv", [0, -1]] (Berechnet 0 + (-1) * $Leistung_In)
["Multiplexer", ["$Leistung_Neg_Positiv", 0], "$Leistung_Einspeisung", "$IstPositiv"]
Gruß
Franky
(dieser Text enthält Spuren von LLM-Nutzung)
Re: [V4.5 IP3] Suche Customlogik für Zerlegung von Datensatz mit pos./neg. Werten in zwei pos. Datensätze
Verfasst: Di Apr 29, 2025 7:54 am
von Robert_Mini
Ich glaube du kannst einfach -$Leistung_In verwenden.