Hauptmenü

Neueste Beiträge

#1
Solaranlagen / Aw: 76_SolarForecast - Informa...
Letzter Beitrag von DS_Starter - 19 Januar 2026, 20:19:41
Nabend zusammen,

das ist ja eine rege Diskussion ...  :)

ZitatNun ist es so, dass für die Berechnung der Heizkurve (d.h. Abweichung SOLL zu IST) eben diese Durchschnittstemperatur verwendet wird, für die Wärmeleistung, die die Wärmepumpe gerade liefern kann, ist aber die tatsächliche Außentemperatur relevant.

Was macht für die KI nun Sinn "bekanntzumachen"?
Ihr lasst am Besten nur die gemessene Temperatur mitteilen. Diese Werte werden für jede Stunde in den Rohdaten gespeichert. Daraus werden dann aber 1h / 3h Deltas oder bei Bedarf und Feature-Implementierung rollierende 3h / 6h oder 12h Durchschnitte der KI zur Verfügung gestellt. Das passiert aber alles bei der Semantik/Feature-Implementierung die ich gemeinsam mit euch baue und testen... Schritt für Schritt.

ZitatWas ist künftig mit der Kühlung über die Wärmepumpe? Auch die habe ich in einem separaten Gerät abgebildet. Zum Einen, weil die Leistungsaufnahme im Kühlbetrieb höher ist, und zum Anderen um der Prognose die Chance zu geben die Abhängigkeiten richtig zu lernen.
Allerdings - und das ist der große Unterschied zum Heizen - ist der Kühlbetrieb da auch "ein", wenn der Verdichter nicht läuft:
Im Kühlbetrieb wird permanent das Wasser durch die Kühlkreise gepumpt, der Verdichter schaltet zyklisch ein, um es abzukühlen. Ein/Aus über "swstate" zu erkennen, wäre dann eher kontraproduktiv, weil das die Info zum Stromverbrauch ad absurdum führt. Hierfür wäre dann doch die Schwelle des Energiebedarfs sinnvoll, von mir aus auch eine Kombination aus beidem?
Ja, genau eine Kombination. Auch wenn der heatpump-Consumer ein paar Besonderheiten hat, gelten die grundsätzlichen Schlüssel-Möglichkeiten. Also hier speziell der pcurr-Schlüssel, den man mit einem <Schwellenwert> (W) angeben kann, ab dem der Verbraucher als aktiv gewertet wird. Über swstate bekommt das Modul mit dass der Consumer "physisch" on/off ist und über den optionalen Schwellenwert ob er logisch! on/off ist.

Für die WP bedeutet es mit Schwellenwert:

- swstate = on -> Schwellenwert überschritten ? Ja -> WP ist "on" , ? Nein -> WP ist "off"
- swstate = off -> WP ist "off"

Für die KI bitte nicht zwei getrennte Heiz- und Kühl-Consumer anlegen, sondern einfach nur eine WP. In den Lerndatensätzen gibt es dann Verknüpfungen von Temperaturen im Vergleich mit der Komforttemperatur sowie jahrezeitliche Zusammenhänge und mehr.

ZitatFür mich ist noch nicht klar, wie die realen Werte der Energie in den KI-Algorithmus eingehen. Stellt die aktuelle Gesamtleistung die Berechnungsgrundlage dar oder fließen die einzelnen Verbraucher - also nicht nur type=heatpump - mit ihren jeweils aktuell anstehenden Leistungen getrennt ein?
Das ist generell ein schwieriges Thema. Grundsätzlich kann man dem neuronalen Netz nur Verknüpfungen/Sematiken bereitstellen, die das Verhandensein eines bestimmten Energieverbrauchs erklären. Das sind zum Beispiel:

- Tageszeiten
- Anwesenheiten
- Batterieladezustände
- Temperaturen
- PV Ertrag
- PV Prognose
- Jahreszeiten
- Feiertage, Arbeitstage, Wochenende
- Vorhandensein von WP, EV
- Sonnenstände
- ....

Aus diesen Dingen implementiere ich noch zusätzliche Signale wie diese:

# --------------------------------------------------------
# Semantik: Menschlicher Tagesrhythmus (PV-unabhängig)
# --------------------------------------------------------
semantics_human_rhythm => sub {
    my ($f) = @_;
    return [
        # --- MORGEN ---
        softplus($f->{delta1_norm_pos} * $f->{hour_class_morning}),             # Aufstehen / Geräte an

        # --- MITTAG ---
        softplus($f->{delta1_norm_pos} * $f->{hour_class_noon}),                # Kochen / Haushalt

        # --- ABEND ---
        softplus($f->{delta1_norm_pos} * $f->{hour_class_evening}),             # Kochen / Abendaktivität

        # --- SPÄTER ABEND ---
        softplus($f->{delta1_norm_neg} * $f->{hour_class_lateevening}),         # Geräte gehen aus
    ];
},

Das sind keine Berechnungsvorschriften, aber sie sagen beispielsweise es sind gerade Morgenstunden (hour_class_morning) und es gibt ein Ansteigen des stündlichen Energieverbrauchs in den Trainingsdaten (delta1_norm_pos) dann stehen die Bewohner typischerweise auf und machen sich Kaffee und Toastbrot. Das ist nur ein Signal im Normierungsbereich 0...1 oder -1 ... 1 je nach verwendeter Aktivierungsfunktion (mit oder ohne SYMMETRIC).
Ob die KI diesen "Hinweis" von mir Beachtung schenkt und daraus etwas lernt und welche Gewichtung sie dieser Information beimisst kann ich weder beeinflussen noch wissen. Nur durch Einbau, Testtraining und Auswertung der Kennzahlen erkennt man ob die Maschine lernt.

Wie schon mehrfach erwähnt sind Waschmaschine und Trockner echte Störenfriede weil ich einfach kein semantisches Zusatzsignal generieren kann. Es gibt weder Temperatur noch Tages/Jahreszeitabhängigkeiten. Das passiert einfach und die KI kann es nicht vorhersehen. Abhilfe wäre z.B. ein "Füllsensor" der Schmutzwäsche. Ab x% wird der Wama Betrieb wahrscheinlich ....
Aktuell wird duch die Trendfolge-Logik ein Ausgleich geschaffen.

ZitatBei getrennter Erfassung könnte die Auswertung von EIN/AUS-Signalen auch anderer großer Verbraucher durch die eindeutige Zuordnung der Verbräuche die Mustererkennung und damit die Treffsicherheit der Prognose für die Wärmepumpe aber auch insgesamt u U. weiter verbessern.

Absolut. Allerdings bräuchte man dann wieder Zusammenhänge wann diese anderen Großverbraucher üblicherweise in Betrieb gehen, siehe Wama und Trockner.


Genau solche Zusatzinformationen versuche ich jetzt für EV zusammenzustellen und einzubauen um dann daraus Profile wie oben zu sehen zu gestalten. Dazu gehören noch Anwesenheiten, Feiertagskalender und solche Dinge.
Es ist ein sehr weites Feld. Dagegen ist die PV Vorhersage mit KI relativ einfach weil von relativ wenigen Größen der Wetterdienste und Geometrien abhängig.
#2
Anfängerfragen / Aw: Update bricht mit Fehler a...
Letzter Beitrag von Beta-User - 19 Januar 2026, 20:17:01
Die Quelle scheint es eben nicht zu geben, das ist alles...
Oder kannst du die Seite mit dem Browser sehen?

Mit "help update" kannst du dir anzeigen lassen, wie du diese Quelle raus bekommst, vielleicht vorher noch checken, was du darüber installiert hast und das dann gesondert weg speichern.
#3
Codeschnipsel / Aw: DB Log Daten aggregieren (...
Letzter Beitrag von birdy - 19 Januar 2026, 20:08:49
Ja, wenn du nach dem Reduzieren mit einem Wert pro Tag zufrieden bist.
Ich sehe Du hast dieses Problem gar nicht, oder aber nicht verstanden.
Bei einer Vielzahl von Werten macht die Aggregation auf nur einen Wert pro Tag keinen Sinn. Ich selbst kenne keinen Sensoren bei dem es Sinn macht die Daten für die Lanzeitspeicherung auf einen einzigen Wert pro Tag zu reduzieren....??
Bei mir sind es die Powerwerte von Netzbezug, Solar usw.
Die brauche ich nicht über Jahre im 5 Sekundentakt. Aber einen Verlauf über den Tage möchte durchaus sehen.
#4
Anfängerfragen / Update bricht mit Fehler ab
Letzter Beitrag von qlaus - 19 Januar 2026, 20:08:27
Hallo,

sowohl update als auch update check beenden sich mit der folgenden Fehlermeldung
Downloading https://rm.byterazor.de/upd-fhem-ntfy/controls_byterazor-fhem-ntfy.txt
byterazor-fhem-ntfy
https://rm.byterazor.de/upd-fhem-ntfy/controls_byterazor-fhem-ntfy.txt: Can't connect(1) to https://rm.byterazor.de:443: IO::Socket::INET: Bad hostname 'rm.byterazor.de:443'

Fehlt mir da was, bisher hatte ich keine Probleme beim update?
#5
Sonstige Systeme / Aw: TX3-TH mit LaCrosseGateway...
Letzter Beitrag von ergerd - 19 Januar 2026, 19:52:50
Ich habe z.B. eine Nodemcu 8266 + CC1101 - mit SMA-Antenne -Transceiver- für 433 MHz
Auf dem Nodemcu läuft OpenMQTTGateway
#6
Codeschnipsel / Aw: DB Log Daten aggregieren (...
Letzter Beitrag von betateilchen - 19 Januar 2026, 19:43:48
Zitat von: birdy am 19 Januar 2026, 19:29:51Es geht darum das Log zu aggregieren bzw. zu verkleinern. Also viele einzelne Einträge aus der DB zu entfernen

Auch das geht mit DbRep, ich mache sowas jeden Monatsletzten um 23:59 Uhr, um bestimmte Kurswerte, die ich alle 10 Minuten erhalte, aus dem vorletzten Monat auf einen Mittelwert pro Tag zu reduzieren.

defmod at_reduceLog2 at *{at_ultimo} set dbrep_2 reduceLog average=day

defmod dbrep_2 DbRep logDb2
attr dbrep_2 comment used for reducelog on ultimo
attr dbrep_2 timestamp_begin previous_month_begin
attr dbrep_2 timestamp_end previous_month_end

Anstatt Mittelwert kann man selbstverständlich auch andere Werte verwenden.
#7
Codeschnipsel / Aw: DB Log Daten aggregieren (...
Letzter Beitrag von birdy - 19 Januar 2026, 19:29:51
Möglicherweise hast du da etwas falsch verstanden.
Es geht nicht darum irgendwelche Summen/Mittelwerte zu bilden.
Es geht darum das Log zu aggregieren bzw. zu verkleinern. Also viele einzelne Einträge aus der DB zu entfernen und durch einen / wenige aggregierte Einträge zu ersetzen. Also reduzieren der Anzahl der Datenpunkte für die Langzeitaufbewarung.
Entsprich von der Idee, dieser Funktion.
  • reduce the amount of datasets in database (reduceLog)
#8
Homematic / Aw: Bestehende FHEM Installati...
Letzter Beitrag von roland-l - 19 Januar 2026, 19:23:06
Hallo,
mußte man nicht in Raspberymatic eine Regel für die Aktoren erstellen?
Ich meine die mußte auch nicht wirklich etwas ausführen und konnte später wieder gelöscht werden.

#9
FHEM Code changes / Revision 30754: - added some d...
Letzter Beitrag von System - 19 Januar 2026, 18:51:02
Revision 30754: - added some devices (P20/83/130/132) | example: remotes for HA-HX2, ...

- added some devices (P20/83/130/132) | example: remotes for HA-HX2, DC-1961-TG, CREATE 6601L ...

Source: Revision 30754: - added some devices (P20/83/130/132) | example: remotes for HA-HX2, ...
#10
SVG / Plots / logProxy / Aw: Merkwürdiges Verhalten bei...
Letzter Beitrag von alkazaa - 19 Januar 2026, 18:37:36
Zitat von: rudolfkoenig am 18 Januar 2026, 12:06:10Das Verhalten von steps habe ich geaendert, siehe https://forum.fhem.de/index.php?topic=143203, insb. der Beitrag von xenos1984
Ja, aber mit der Änderung (die in der HEAD-revision des SVN steht) wird die letzte Linie nach links (in die Vergangenheit) gezogen, wenn man Daten darstellt, die zukünftig zur Ploterzeugung sind.
Es wäre schön, wenn die Zeile
$ret .= sprintf(" %d,%d %d,%d", $lx,$ly, $x+$nx,$ly);geändert würde zu
$ret .= sprintf(" %d,%d %d,%d", $lx,$ly, $x+$nx,$ly) if ($lx < $x+$nx);Wenn die zu plottenden Werte aufsteigend nach x geordnet sind, dürfte das keine Nebenwirkungen haben.