NEWS
Verbesserung erfahren Blockly/Javascript/KI/AI
-
@Negalein mit perplevity habe ich nicht so gute Code Erfahrung
Claude bei Javascript und gemini bei HTML Seiten nutze ich gerne
@liv-in-sky sagte in Verbesserung erfahren Blockly/Javascript/KI/AI:
Claude bei Javascript und gemini bei HTML Seiten nutze ich gerne
Hier wären noch die Modelle wie Claude Sonnet 4.5, Opus 4.5, usw. interessant da sich die Modelle teilweise doch sehr Stark Unterscheiden in der Qualität für die Jeweilige Aufgabe.
-
@Negalein mit perplevity habe ich nicht so gute Code Erfahrung
Claude bei Javascript und gemini bei HTML Seiten nutze ich gerne
@liv-in-sky sagte in Verbesserung erfahren Blockly/Javascript/KI/AI:
Claude bei Javascript und gemini
Ist doch mit inbegriffen und kann ausgewählt werden
-
Nun gut.. gebe ich mal meine Meinung zu dem Skript ab, ohne das der OP kommentiert hat was es machen soll:
es ist Ressourcenverschwendung im grossen Stil und birgt das Risiko von Fehlberechnungen:
- Es läuft ein Heartbeat alle 10 Sekunden auf Daten die sich wahrscheinlich deutlich seltener Ändern.
- Der Heartbeat beinhaltet eine race-condition zum Trigger der Hardware-Werte, sprich je häufiger sich diese Ändern desdo öfter kann es da klemmen.
- Die Ergebnisse dieses Heartbeats werden in eine DB geschrieben, damit diese die dann zur Darstellung 'Aggregieren' muss (Schon die Darstellung von nur 3 Stunden führt zu einem Graph der im Zweifelsfall mehr Datenpunkte hat als das zur Darstellung benutzte Gerät Pixel bereitstellt (3 Stunden = 180 minuten = 1800 Datenpunkte)
- Es wird ein Multi-Trigger genutzt auf DP's die sich (wahrscheinlich - hier fehlt die Aussage des OP) quasi-Synchron ändern. In diesem werden die Werte aller beteiligten Einzel-DPs extra aus der Datenbank geholt (Risiko: Fehlberechnung wegen
race-condition) - Es werden Dinge berechnet die nicht genutzt werden - in jedem Trigger-Durchlauf
- Daten die besser im Skript in Variablen gehalten würden werden trotzdem immer über getState/setState gezogen.
- Auch Konstante oder semi-Konstante Werte werden bei jeder Berechnung neu gezogen.
- Es gibt eine mögliche
race conditionzwischen demsetState(PATH + 'Hausverbrauch', hausverbrauch, true);aus dem Trigger und demconst haus = getState(PATH + 'Hausverbrauch').val || 0;aus dem intervall. Wenn die Zeitlich ungünstig zusammen fallen dann wird der 'alte' Verbrauch gelesen, weil das setState nicht abgeschlossen ist.
Es ist aus meiner Sicht ein wunderbares Beispiel dafür wie die KI etwas liefert was prinzipiell geht, aber wenn man genau hinschaut doch klemmt.
A.
Nachtrag:
Ja, das ist ein relativ hartes Urteil. Ich halte das Skript für nicht gut. Und nein, dafür kann der OP nichts. Ohne weitergehendes Programmierwissen sind diese Probleme nicht ohne weiteres zu erkennen.@Asgothian sagte in Verbesserung erfahren Blockly/Javascript/KI/AI:
Nun gut.. gebe ich mal meine Meinung zu dem Skript ab, ohne das der OP kommentiert hat was es machen soll:
Vielen Dank,
ich habe die KI mit deiner Kritik "gefüttert" und sie hat geantwortet:"Autsch, das hat gesessen! Aber – und das sage ich als dein KI-Kollege ganz offen – der Programmierer hat in fast allen Punkten fachlich absolut recht. Das Skript ist ein klassisches Beispiel für „Hauptsache, es funktioniert irgendwie“, ohne auf die interne Mechanik von ioBroker zu achten.
Besonders der Punkt mit der Race Condition (Wettlauf der Daten) und dem massiven getState-Spam ist kritisch für die Stabilität deines Systems."
Als Ergebnis wurde dieses Skript generiert:
Wäre schön, wenn du die Zeit findest nochmal drüberzuschauen.
Die Erklärung der KI:
Was wurde verbessert?
-
Bye-bye Heartbeat & Race Condition: Der 10-Sekunden-Intervall wurde komplett entfernt. Stattdessen berechnet das Skript den Energieanteil (Wh) direkt bei jedem Trigger basierend auf der echten Zeitdifferenz (durationHours) zwischen den Meldungen. Das ist hochpräzise und verhindert, dass der Intervall alte Werte liest.
-
RAM statt Datenbank: Die Hardware-Werte werden in lokalen Variablen (pvPower, etc.) gehalten. getState wird im Rechenprozess fast gar nicht mehr benötigt.
-
Konstanten-Management: Die Speichereigenschaft wird nur noch einmalig beim Skriptstart gelesen, nicht mehr 1000-mal am Tag.
-
Daten-Hygiene: Der on-Trigger reagiert jetzt auf change: "ne" (neuer Wert), statt auf any. Das reduziert unnötige Rechenlast bei identischen Werten massiv.
-
Präzision: Durch die Integration über die Zeit (Delta-t) ist der Tagesverbrauch nun mathematisch korrekt, egal ob die Werte alle 2 Sekunden oder alle 2 Minuten kommen.
-
Das Skript ist jetzt „sauber“ und wird deinen ioBroker spürbar entlasten."
-
Entschuldigt, ein unwissender schreibt, korrigiert mich, wenn ich falsch liege.
Hab´t ihr eigentlich den Beitrag von Asgothian gelesen?
Die Ki hat für Meister Propper eine Script geschrieben und jetzt soll ein anderer Mensch, und das zum zweiten mal das Script kontrollieren. Was macht das für einen Sinn? -
Entschuldigt, ein unwissender schreibt, korrigiert mich, wenn ich falsch liege.
Hab´t ihr eigentlich den Beitrag von Asgothian gelesen?
Die Ki hat für Meister Propper eine Script geschrieben und jetzt soll ein anderer Mensch, und das zum zweiten mal das Script kontrollieren. Was macht das für einen Sinn?@Kalle-Blomquist sagte in Verbesserung erfahren Blockly/Javascript/KI/AI:
Was macht das für einen Sinn?
Zum Beispiel den das User die wenig oder keine Ahnung von Programmierung haben, verstehen lernen worauf man achten muss wenn man mit KI Code erzeugt.
-
Wäre es nicht besser einen Kursus zu belegen, um zu verstehen. Anstatt die Kontrolle auf einen Anderen zu verlagern. Und habe alle einen Anderen? Machen alle das?
-
Wäre es nicht besser einen Kursus zu belegen, um zu verstehen. Anstatt die Kontrolle auf einen Anderen zu verlagern. Und habe alle einen Anderen? Machen alle das?
@Kalle-Blomquist sagte in Verbesserung erfahren Blockly/Javascript/KI/AI:
Anstatt die Kontrolle auf einen Anderen zu verlagern
???
Was pssiert denn hier täglich zigmal?
Hier werden Hilfeschreie "mein Skipt läuft nicht" ständig durch Kontrolle und Korrektur beantwortet -
Eben! und lernen wäre besser und nicht einfach abgeben
-
Eben! und lernen wäre besser und nicht einfach abgeben
@Kalle-Blomquist sagte in Verbesserung erfahren Blockly/Javascript/KI/AI:
Eben! und lernen wäre besser.
Dass dieser Thread dazu dient solche User zu sensibilisieren dass die KI keine perfekten Ergebnisse liefert, und man diese überprüfen können müssze, ist dir schon klar??
-
ja, deswegen muss man auch dem Xten User zum xten mal sagen, bitte melde dich nicht als root an, du kannst dir dein ganzes System zerschießen.
Meine Argumentation war: Solange ich nicht selber von A-Z verstehe,was mir die Ki da schreibt, lasse ich die Finger weg!
Ich warte nur auf die ersten Rechner, die die Kontrolle abgegeben haben, weil der User OpenClaw ohne ausreichende Kenntnis verwendet hat.
Aber ich bin jetzt raus aus der Diskussion. -
ja, deswegen muss man auch dem Xten User zum xten mal sagen, bitte melde dich nicht als root an, du kannst dir dein ganzes System zerschießen.
Meine Argumentation war: Solange ich nicht selber von A-Z verstehe,was mir die Ki da schreibt, lasse ich die Finger weg!
Ich warte nur auf die ersten Rechner, die die Kontrolle abgegeben haben, weil der User OpenClaw ohne ausreichende Kenntnis verwendet hat.
Aber ich bin jetzt raus aus der Diskussion.@Kalle-Blomquist sagte in Verbesserung erfahren Blockly/Javascript/KI/AI:
Meine Argumentation war: Solange ich nicht selber von A-Z verstehe,was mir die Ki da schreibt, lasse ich die Finger weg!
das sehe ich genauso, aber leider kam das so klar und deutlich bei mir nicht an!
-
@liv-in-sky sagte in Verbesserung erfahren Blockly/Javascript/KI/AI:
wer dan strafrechtlich belangt wird
der User!
wenn du ein Messer gratis bekommst und damit wen tötest, wirst auch du bestraft und nicht der Schenker.@Negalein sagte in Verbesserung erfahren Blockly/Javascript/KI/AI:
der User!
wenn du ein Messer gratis bekommst und damit wen tötest, wirst auch du bestraft und nicht der Schenker.Es sei denn, der Schenker gibt einen deutlichen Hinweis, was mit diesem Messer geschehen soll (Stichwort Anstiftung 😉).
-
Eben! und lernen wäre besser und nicht einfach abgeben
@Kalle-Blomquist sagte in Verbesserung erfahren Blockly/Javascript/KI/AI:
Eben! und lernen wäre besser und nicht einfach abgeben
Wozu ist denn deiner Meinung nach ein Forum da, für mich ist es:
- Gemeinschaft mit Gleichgesinnten weltweit
- Wissens- und Erfahrungsaustausch
- Gegenseitige emotionale Unterstützung
- Anonyme, niedrigschwellige Teilnahme
- Zeitunabhängige Kommunikation
- Kostenloser Zugang zu Fachwissen
- Dauerhafte Archivierung von Beiträgen
-
Mittlerweile ist die KI/AI Bemühung in meinem Fall vorangeschritten und ich habe jetzt dieses Ergebnis am Laufen (sehr wahrscheinlich ist dies noch immer nicht das Ziel, aber es lüppt):
-
Mittlerweile ist die KI/AI Bemühung in meinem Fall vorangeschritten und ich habe jetzt dieses Ergebnis am Laufen (sehr wahrscheinlich ist dies noch immer nicht das Ziel, aber es lüppt):
@Meister-Mopper und weils interessant ist, was die verschiedenen KI´s so ausspucken
Fehleranalyse & Ressourcen-Check
Dein Script hat 1 kritischen Fehler und 3 Performance-Probleme, ist aber grundsätzlich solide aufgebaut.Kritische Fehler
❌ createState() fehlt komplett
States wie Tagesverbrauch, Netzbezug etc. existieren beim ersten Start nicht → Script crasht mit "State not found". ioBroker erstellt States NICHT automatisch bei setState().Ressourcenverschwendung
Problem Impact Fix getState() in Schleife Blockiert 10-50ms bei jedem Trigger (4x/Sekunde = 200ms CPU-Last!) Cache in Variable speicherMax statisch Änderungen der Speichergröße erst nach Script-Neustart Trigger hinzufügen Tagesverbrauch ohne Cache Liest State bei jedem Update (360x/Stunde) Global cachen 7 setState() pro Trigger ~420 DB-Writes/Stunde bei 10s-Updates Akzeptabel, aber debounce möglich Formel-Validierung
javascript
hausverbrauch = pvPower + netPower - batPower
Korrekt NUR WENN Victron-Konvention: batPower = +Laden (Energie geht rein), -Entladen (Energie kommt raus). Teste mit log("Bat: " + batPower) beim Laden/Entladen!