Neueste Beiträge

#1
FHEM Code changes / Revision 31204: 76_SolarForeca...
Letzter Beitrag von System - 11 Mai 2026, 00:11:09
Revision 31204: 76_SolarForecast: contrib Version 2.6.8

76_SolarForecast: contrib Version 2.6.8

Source: Revision 31204: 76_SolarForecast: contrib Version 2.6.8
#2
FHEM Code changes / Revision 31203: 76_SolarForeca...
Letzter Beitrag von System - 11 Mai 2026, 00:11:09
Revision 31203: 76_SolarForecast: contrib Version 2.6.8

76_SolarForecast: contrib Version 2.6.8

Source: Revision 31203: 76_SolarForecast: contrib Version 2.6.8
#3
Automatisierung / Aw: DBLOG: sqlite Another oper...
Letzter Beitrag von Hadl - 11 Mai 2026, 00:10:15
Hallo Heiko,
ich habe zwei DbRep Devices. Eines macht garnichts, das andere berechnet nur Statistiken. Also keine eigenen Schreibvorgänge.
Ich gehe davon aus das dblog das Einzigste ist, was auf die Datenbank schreibt.

Kann ich irgendwie herausfinden ob die Datenbank selbst blockiert, oder nur etwas in perl/fhem?

Können die doppelten Schreibvorgänge der Caches und die dadurch fehlenden Daten ein Indiz sein wo etwas schief läuft?

Viele Grüße

Hadl
#4
Solaranlagen / Aw: 76_SolarForecast - Informa...
Letzter Beitrag von DS_Starter - 10 Mai 2026, 23:45:37
War ja auch ein bisschen zu perfekt  ;)
Aber vllt. hast du gerade ein paar Ausreißer die der RMSE hochziehen. Der Kennwert ist empfindlich dafür.
Kann morgen tatsächlich anders aussehen.
#5
Solaranlagen / Aw: 76_SolarForecast - Informa...
Letzter Beitrag von 300P - 10 Mai 2026, 23:24:52
Der Traum vom WOW ist wohl vorbei.... :'(


Informationen zum neuronalen Netz der Verbrauchsvorhersage

letztes KI-Training: 09.05.2026 21:38:52 / Laufzeit in Sekunden: 5168
KI Abfragestatus: ok
letzte KI-Ergebnis Generierungsdauer: 58.5 ms
Alpha: 0.8
Verbrauchernummer Wärmepumpe: 08

=== Modellparameter ===

Normierungsgrenzen: PV=10450 Wh, Hausverbrauch: Min=0 Wh / Max=6770 Wh
Trainingsdaten: 12069 Datensätze (Training=9655, Validation=2414)
Architektur: Inputs=98, Hidden Layers=80-40, Outputs=1
Hyperparameter: Learning Rate=0.002, Momentum=0.8, BitFail-Limit=0.28
Aktivierungen: Hidden=ELLIOT_SYMMETRIC, Steepness=1.0, Output=LINEAR
Trainingsalgorithmus: INCREMENTAL, Registry Version=v1_heatpump_active_pv
Zufallsgenerator: Mode=2, Period=20
Modellalter: 24 h

=== Trainingsmetriken ===

bestes Modell bei Epoche: 5706 (max. 15000)
Training MSE: 0.000634
Validation MSE: 0.000073
Validation MSE Average: 0.000094
Validation MSE Standard Deviation: 0.000011
Validation Bit_Fail: 0
Model Bias: -7 Wh
Model Slope: 1.0
Trainingsbewertung: ok

=== Fehlermaße der Prognosen ===

MAE: 44.38 Wh
MedAE: 33.76 Wh
RMSE: 48.59 Wh
RMSE relative: 4 %
RMSE Rating: excellent
MAPE: 3.88 %
MdAPE: 2.41 %
R²: 1.00

=== Rauschen ===

Rauschen Bewertung: low
Empfehlung für Bit_Fail: 0.28 (Einstellung von aiControl->aiConBitFailLimit)

=== Drift-Kennzahlen ===

Drift Score: 19.21
Drift RMSE ratio: 33.88
Drift Slope: 0.705
Drift Bias: 959.88
Drift Bias Live: 953.26
Drift Index: 2.36
Drift Bewertung: recalibration blocked: rmse_anomaly
Slope recalibrated: 1.0
Bias recalibrated: -7
letzte Rekalibrierung: -


Schade ☹️
Ich warte aber mit dem neuen Trainieren bis morgen.....
#6
Solaranlagen / Aw: 76_SolarForecast - Informa...
Letzter Beitrag von DS_Starter - 10 Mai 2026, 23:11:47
@all,

in der V 2.6.8 (contrib) ist ein weiteres Consumer Feature hinzugekommen.

exclgroup    
    Nummer einer optionalen Exclude-Gruppe. Verbraucher, die dieselbe Exclude-Gruppe besitzen, werden beim Start gegeneinander geprüft.
   Wird ein Verbraucher einer Exclude-Gruppe gestartet, werden alle weiteren Verbraucher derselben Gruppe so lange nicht freigegeben, bis der
   aktive Verbraucher seine Ausführung beendet hat (z.B. Status finished).
   Wertebereich: Ganzzahl von 1..X, default: 0 (keine Gruppenzugehörigkeit)

Innerhalb der Gruppe wird die Priorität wiederum durch swprio festgelegt.
Beispiele für den Einsatz dieser Funktion könnte sein:

WP + Heizstab
Das klassischste Szenario. WP und Heizstab heizen dasselbe Medium (Puffer, Warmwasser). Wenn die WP läuft, ist der Heizstab überflüssig und würde nur zusätzlichen Netzstrom ziehen. Beide in Gruppe 1 → Heizstab startet nicht solange WP aktiv.

Mehrere Warmwasserbereiter
Haus mit zwei Wohneinheiten, je ein Boiler. Beide werden solar beheizt aber nie gleichzeitig – der kombinierte Verbrauch würde den Surplus übersteigen und beide würden toggling zeigen. Exclude-Gruppe sorgt für sequenziellen Betrieb.

Geschirrspüler + Waschmaschine
Nicht wegen Überlast, sondern wegen Warmwasser-Konkurrenz wenn beide an eine Frischwasserstation angeschlossen sind. Oder schlicht weil der User bei knappem Surplus lieber eines vollständig durchlaufen lassen will statt beide halbgar.

Post #6038 ist upgedated.
#7
FHEM Code changes / Revision 31202: 76_SolarForeca...
Letzter Beitrag von System - 10 Mai 2026, 23:10:56
Revision 31202: 76_SolarForecast: contrib Version 2.6.8

76_SolarForecast: contrib Version 2.6.8

Source: Revision 31202: 76_SolarForecast: contrib Version 2.6.8
#8
DOIF / Aw: DOIF-Abfall-Status per Tel...
Letzter Beitrag von Damian - 10 Mai 2026, 22:32:02
Funktioniert auch im Dummy:

defmod cell_dummy dummy
attr cell_dummy devStateIcon {ui_Table::get_cell("diAbfall","uiTable",0,0)}
#9
Sonstiges / Aw: log fehler Neustart fhem i...
Letzter Beitrag von dennisk - 10 Mai 2026, 22:14:02
Mit Hilfe von Gemini habe ich mir das mal wieder vorgenommen und mit folgendem kleinen Fix kommt die Warnung nicht mehr. Seiteneffekte habe ich keine festgestellt.
Zeile 2048 wie folgt anpassen:
($packages{Meta}{META}{name} // 'FHEM::Meta') . ' 'Laut Gemini ist der Grund folgender:
ZitatProblembeschreibung:
Beim ersten Laden des Moduls FHEM::Meta (z.B. durch ein use FHEM::Meta in 93_DbLog.pm) wird im Hauptteil des Moduls sofort __GetMetadata für die Datei Meta.pm selbst aufgerufen. Zu diesem Zeitpunkt ist das Modul aber noch nicht vollständig im globalen %packages-Hash registriert.
In Zeile 2048 (innerhalb von __GetMetadata) versucht der Code, den Wert $packages{Meta}{META}{name} für das Feld generated_by zu lesen. Da dieser Key beim allerersten Durchlauf noch nicht existiert (undef), wirft Perl die Warnung:
Use of uninitialized value in concatenation (.) at ./FHEM/Meta.pm line 2048.
Dies ist ein klassisches Bootstrapping-Problem (Henne-Ei), da sich das Modul erst nach dem erfolgreichen Einlesen seiner Metadaten selbst im Hash registriert.

Vorgeschlagener Fix:
Die Verwendung des "Defined-Or" Operators (//), um einen Fallback-Namen zu nutzen, falls das Modul im %packages-Hash noch nicht bekannt ist.

Auswirkung:
Die Warnung beim FHEM-Start bzw. beim Laden des Moduls verschwindet. Bei späteren Aufrufen (wenn das Modul bereits im Speicher ist) wird weiterhin korrekt der Name aus dem Hash verwendet.

Zusatzhinweis:
Ich habe in der Zusammenfassung bewusst 'FHEM::Meta' als Fallback gewählt, da dies der Paketname ist. Das ist sauberer, als nur die Warnung zu unterdrücken, da das Feld generated_by so auch beim ersten Mal einen sinnvollen Inhalt bekommt.
Ich hoffe, es ist in Ordnung, das von Gemini Wiedergegebene hier zu posten. Vielleicht sind das für euch, CoolTux und DS_Starter, hilfreiche Hinweise, um das a) zu prüfen und b) ggf. richtig zu beheben.
#10
DOIF / Aw: DOIF-Abfall-Status per Tel...
Letzter Beitrag von Damian - 10 Mai 2026, 22:07:15
Ich habe da doch was gebastelt.

Die Funktion ui_Table::get_cell(<Tabelle>,<DOIF-Devicename>,Zeile,Spalte)  liefert den HTML-Inhalt einer Tabellenzelle eines DOIF-Devices. Unter Tabelle kann man uiTable oder uiState angeben, je nachdem welches Attribut verwendet wurde, der Rest sollte selbsterklärend sein.

Beispiel:

defmod di_get_cell DOIF ##
attr di_get_cell uiTable {package ui_Table}\
get_cell("diAbfall","uiTable",0,0)\
get_cell("diAbfall","uiTable",0,1)\
get_cell("diAbfall","uiTable",0,2)\
get_cell("diAbfall","uiTable",0,3)\
get_cell("diAbfall","uiTable",0,4)

Nebeneinander (mit Punkt aneinander gehängt) gibt es allerdings einen Versatz, weil die Tabelle als solche fehlt, wo die Elemente in den Zellen sauber voneinander getrennt waren. Die angepasste DOIF-Version ist im Anhang. Kannst du gerne ausprobieren.