Neueste Beiträge

#11
Solaranlagen / Aw: 76_SolarForecast - Informa...
Letzter Beitrag von Shadow3561 - 27 Mai 2026, 17:07:50
Bei mir sieht es anders aus
Drift Bewertung: fresh_modelTrainingsbewertung: (roter Punkt) Retrain (Retrain)
Bewertungsüberblick
Trainingsbewertung: Retrain (Retrain)
Lernverhalten: overfit gesundes Lernverhalten (42.4 % Epochenausnutzung)
Einstellhinweise:
Trainingsdaten wurden auswendig gelernt statt allgemeine Muster zu erkennen (Fehler auf unbekannten Testdaten 81.9 % höher als auf Trainingsdaten): Trainings-/Testaufteilung von 80/20 auf 70/30 ändern und/oder Lernrate (aiControl->aiConLearnRate) um Faktor 2 reduzieren damit das Netz langsamer und allgemeiner lernt
Große Datenmenge (8894 Datensätze gesamt): wenn saisonale Effekte die Prognosequalität beeinträchtigen, Training auf die neuesten Datensätze begrenzen (z.B. aiControl->aiConTrainLimit=4400) um das Modell auf aktuelle Verbrauchsmuster zu fokussieren

Rauschen Bewertung: merkliches Rauschen, Interpretation mit Vorsicht (borderline)
Drift Bewertung: -
Empfehlung für Retrain:  keine
#12
Solaranlagen / Aw: 76_SolarForecast - Informa...
Letzter Beitrag von 300P - 27 Mai 2026, 17:01:55
lass erst einmal etwas laufen was dann bei der Bewertung nach 24 Stunden rauskommt:

Beispiel - dachte erst das "wär nix" - jetzt pendelt sich alles ein...

letztes KI-Training: 24.05.2026 23:16:53 / Laufzeit in Sekunden: 515
KI Abfragestatus: ok
letzte KI-Ergebnis Generierungsdauer: 79.79 ms
Alpha: 0.7
Verbrauchernummer Wärmepumpe: 08

Bewertungsüberblick
Trainingsbewertung: Retrain (Retrain)
Lernverhalten: very_early sehr früh konvergiert (0.4 % Epochenausnutzung)
Einstellhinweise:
Lernrate zu hoch: Lernrate (aiControl->aiConLearnRate) um Faktor 5-10 reduzieren (z.B. von 0.01 auf 0.001-0.002)
Architektur prüfen: Netz möglicherweise zu klein für die Datenmenge, Hidden-Layer-Neuronen (aiControl->aiConHiddenLayers) erhöhen (z.B. 50-25 -> 64-32)
Training zu einem anderen Zeitpunkt erneut starten: die zufällige Gewichtsinitialisierung beim Start hat das Ergebnis hier stark dominiert, ein neuer Trainingsstart erzeugt automatisch eine andere Initialisierung und führt meist zu einem deutlich besseren Ergebnis
Architektur möglicherweise zu komplex für die Datenmenge: Verhältnis Trainingsdaten zu Netzparametern beträgt nur 5.7 (Zielwert: 8–20) - das Netz hat mehr Freiheitsgrade als die Daten zuverlässig füllen können; kleinere Architektur wie z.B. 14-8 versuchen (aiControl->aiConHiddenLayers)
Große Datenmenge (9701 Datensätze gesamt): wenn saisonale Effekte die Prognosequalität beeinträchtigen, Training auf die neuesten Datensätze begrenzen (z.B. aiControl->aiConTrainLimit=4800) um das Modell auf aktuelle Verbrauchsmuster zu fokussieren

Rauschen Bewertung: merkliches Rauschen, Interpretation mit Vorsicht (borderline)
Drift Bewertung: low
Empfehlung für Retrain: keine keine


Das ist das wichtigere :

--->>> Drift Bewertung: low
--->>> Empfehlung für Retrain: keine (grüner Punkt) keine
#13
DOIF / Aw: DOIF reagiert verzögert au...
Letzter Beitrag von Per - 27 Mai 2026, 16:58:59
Du musst List kopieren, wenn cmd2 ausgeführt wurde, jetzt zeigt es dir die Variablen und Timer von cmd1 an. Das hilft nicht weiter.
#14
Solaranlagen / Aw: 76_SolarForecast - Informa...
Letzter Beitrag von Shadow3561 - 27 Mai 2026, 16:53:46
Zitat von: DS_Starter am 27 Mai 2026, 16:41:34
Zitat(aiControl->aiConLearnRate) soll ich auch um Faktor 2 reduzieren, dies habe ich schon gemacht.
Bin von 0.01 auf 0.025, bekomme aber immernoch den Hinweis.
0.01 um Faktor 2 reduzieren -> verkleinern auf z.B. 0.005,  0,02 wäre vergrößern
War ein Vertippen oder besser eine vergessene 0 (siehe Codebeispiel Oben).
Der Faktor ist bei 0.0025
#15
DOIF / Aw: DOIF reagiert verzögert au...
Letzter Beitrag von satprofi - 27 Mai 2026, 16:53:31
Ich hab ja nur list gepostet. Da steht dich alles drinn, oder ? Warum klappt es nicht mehr ? Habe nur das Script eingefügt, das die restlichen Lampen abdreht. Seitdem gibt's keine Verzögerung mehr
#16
Solaranlagen / Aw: 76_SolarForecast - Informa...
Letzter Beitrag von DS_Starter - 27 Mai 2026, 16:41:34
Zitat(aiControl->aiConLearnRate) soll ich auch um Faktor 2 reduzieren, dies habe ich schon gemacht.
Bin von 0.01 auf 0.025, bekomme aber immernoch den Hinweis.
0.01 um Faktor 2 reduzieren -> verkleinern auf z.B. 0.005,  0,02 wäre vergrößern
#17
Solaranlagen / Aw: 76_SolarForecast - Informa...
Letzter Beitrag von 300P - 27 Mai 2026, 16:37:32
Zitat von: Shadow3561 am 27 Mai 2026, 16:34:40Wie änder ich die Trainings-/Testaufteilung von 80/20 auf 70/30?

Das ist fest im Programm hinterlegt - geht (z.Z.) leider nicht von deiner Seite her :)

Jetzt hast du "verdoppelt" - 0.01 reduzieren wäre z.B 0.005 / 0.001 oder evtl. noch kleiner bis zu 0.0001:)

Heiko war schneller als ich editieren / schreiben konnte
#18
Solaranlagen / Aw: 76_SolarForecast - Informa...
Letzter Beitrag von Shadow3561 - 27 Mai 2026, 16:34:40
Moin,
Ich habe da mal eine Frage.
Wie änder ich die Trainings-/Testaufteilung von 80/20 auf 70/30?
(aiControl->aiConLearnRate) soll ich auch um Faktor 2 reduzieren, dies habe ich schon gemacht.
Bin von 0.01 auf 0.025, bekomme aber immernoch den Hinweis.
Soll ich weiter reduzieren?

Ein get aiNeuralNetConState ergibt folgendes (Bild)

aiControl Attribut sieht wie folgt aus.
aiConActivate=1 aiConProfile=v1_common_active_pv aiConAlpha=0.7 aiTrainStart=7 aiStorageDuration=3000 aiTreesPV=3 aiConHiddenLayers=14-8 aiConLearnRate=0.0025 aiConTrainStart=1:2 aiConBitFailLimit=0.34
Gruss,
Daniel
#19
Solaranlagen / Aw: [70_ENPHASE.pm] Modul zur ...
Letzter Beitrag von peterboeckmann - 27 Mai 2026, 16:17:23
Hallo zusammen,

ich habe mir durch ein paar perl-Updates heute das Modul 70_Enphase.pm zerschossen.
Da ich es gerade mithilfe von ChatGPT repariert habe, möchte ich die Lösung hier mit Euch teilen.

Leider kann ich nicht mehr sagen, welches Update genau den Fehler verursacht hatte, im Log hatte ich aber folgende Fehlermeldung:
Duplicate keys not allowed, at character offset 3021 (before "": {\n            "d...") at ./FHEM/70_ENPHASE.pm line 858.

2026.05.27 16:09:12 1: DEBUG>{
    "info": "Last available status data shown. Live stream not enabled. Enable using /ivp/livedata/stream/ API",
    "connection": {
        "mqtt_state": "connected",
        "prov_state": "configured",
        "auth_state": "ok",
        "sc_stream": "disabled",
        "sc_debug": "disabled"
    },
    "meters": {
        "last_update": 1779890999,
        "soc": 100,
        "main_relay_state": 1,
        "gen_relay_state": 5,
        "backup_bat_mode": 1,
        "backup_soc": 0,
        "is_split_phase": 0,
        "phase_count": 3,
        "enc_agg_soc": 100,
        "enc_agg_energy": 7000,
        "acb_agg_soc": 0,
        "acb_agg_energy": 0,
        "pv": {
            "agg_p_mw": 5824065,
            "agg_s_mva": 5860684,
            "agg_p_ph_a_mw": 1949668,
            "agg_p_ph_b_mw": 1914553,
            "agg_p_ph_c_mw": 1959844,
            "agg_s_ph_a_mva": 1964327,
            "agg_s_ph_b_mva": 1921832,
            "agg_s_ph_c_mva": 1974524
        },
        "storage": {
            "agg_p_mw": 838000,
            "agg_s_mva": 809747,
            "agg_p_ph_a_mw": 519000,
            "agg_p_ph_b_mw": 319000,
            "agg_p_ph_c_mw": 0,
            "agg_s_ph_a_mva": 507483,
            "agg_s_ph_b_mva": 313427,
            "agg_s_ph_c_mva": -11165
        },
        "grid": {
            "agg_p_mw": 230039,
            "agg_s_mva": 458264,
            "agg_p_ph_a_mw": -238840,
            "agg_p_ph_b_mw": 798732,
            "agg_p_ph_c_mw": -329855,
            "agg_s_ph_a_mva": -325690,
            "agg_s_ph_b_mva": 1179779,
            "agg_s_ph_c_mva": -395826
        },
        "load": {
            "agg_p_mw": 6892104,
            "agg_s_mva": 7128695,
            "agg_p_ph_a_mw": 2229828,
            "agg_p_ph_b_mw": 3032285,
            "agg_p_ph_c_mw": 1629989,
            "agg_s_ph_a_mva": 2146120,
            "agg_s_ph_b_mva": 3415038,
            "agg_s_ph_c_mva": 1567533
        },
        "generator": {
            "agg_p_mw": 0,
            "agg_s_mva": 0,
            "agg_p_ph_a_mw": 0,
            "agg_p_ph_b_mw": 0,
            "agg_p_ph_c_mw": 0,
            "agg_s_ph_a_mva": 0,
            "agg_s_ph_b_mva": 0,
            "agg_s_ph_c_mva": 0
        }
    },
    "tasks": {
        "task_id": 418737689,
        "timestamp": 1779890786
    },
    "counters": {
        "main_CfgLoad": 2,
        "main_CfgChanged": 1,
        "main_taskUpdate": 6215,
        "MqttClient_publish": 900,
        "MqttClient_respond": 12432,
        "MqttClient_msgarrvd": 6216,
        "MqttClient_reconnect": 1,
        "MqttClient_create": 28,
        "MqttClient_setCallbacks": 28,
        "MqttClient_connect": 28,
        "MqttClient_subscribe": 28,
        "SSL_Keys_Create": 28,
        "sc_SendStreamCtrl": 3,
        "rest_Status": 124335
    },
    "dry_contacts": {
        "": {
            "dry_contact_id": "",
            "dry_contact_type": "",
            "dry_contact_load_name": "",
            "dry_contact_status": 0
        },
        "": {
            "dry_contact_id": "",
            "dry_contact_type": "",
            "dry_contact_load_name": "",
            "dry_contact_status": 0
        },
        "": {
            "dry_contact_id": "",
            "dry_contact_type": "",
            "dry_contact_load_name": "",
            "dry_contact_status": 0
        },
        "": {
            "dry_contact_id": "",
            "dry_contact_type": "",
            "dry_contact_load_name": "",
            "dry_contact_status": 0
        }
    }
}

ChatGPT hat mir folgendes geraten:
Ändere in 70_ENPHASE.pm die JSON-Initialisierung an Zeile 858 so, dass doppelte Keys erlaubt werden.

Ersetze:

$decoded_json = JSON->new->utf8->decode($json_bytes);

durch:

my $json = JSON->new->utf8;
$json->allow_dupkeys(1) if $json->can('allow_dupkeys');
$decoded_json = $json->decode($json_bytes);

Dasselbe ggf. auch an Zeile 1161 ändern.

Grund: Dein Enphase liefert unter dry_contacts mehrfach denselben Key "". Das ist eigentlich ungültig bzw. problematisches JSON. Dein Perl/JSON-Update verwendet jetzt offenbar einen strengeren Parser, der das nicht mehr stillschweigend akzeptiert.

Viele Grüße,
Peter
#20
DOIF / Aw: DOIF reagiert verzögert au...
Letzter Beitrag von Damian - 27 Mai 2026, 16:08:00
mit   

wait       0:5,300
willst du cmd2 verzögern

gepostet hast du aber:

2026-05-27 11:25:06   Device          Bewohner
     2026-05-27 10:45:04   cmd             1
     2026-05-27 10:45:04   cmd_event       Bewohner
     2026-05-27 10:45:04   cmd_nr          1
     2026-05-27 11:25:06   e_Bewohner_STATE present
     2026-05-27 11:25:06   e_Quadbox_STATE off
     2026-05-27 10:44:48   mode            enabled
     2026-05-27 10:45:04   state           cmd_1

Will soll man damit ein Fehlverhalten erkennen?