ZitatDer 028N arbeitet (typisch für solche Regler) mit Triac/Phasenanschnitt oder einer ähnlichen Halbleiterschaltung. Beim schnellen Hochdrehen kann das zu sehr steilen Stromanstiegen und hohen Stromspitzen führen, auch wenn die mittlere Leistung nur ~5,7 A ist. Genau diese Spitzen können den magnetischen Schnellauslöser eines B16 triggern.Kann das sein oder ist das Halluzination?
ZitatTest ohne Messgerät: nicht ,,in 1 s auf voll", sondern langsam in 10–20 s hochdrehen. Wenn dann nichts fliegt, ist es fast sicher Spitzenstrom/Schaltform.
Zitat von: TheTrumpeter am 26 Januar 2026, 06:44:54Seit dem letzten Update (das mit den fhemweb-Fehlermeldungen, bzw. die Korrektur danach) ist meine Verbrauchsprognose deutlich schlechter geworden.Auch heute sehe ich wieder diese "Geisterverbräuche" ab ca. 15 ode 16 Uhr. Insbesondere der Nachtverbrauch ist äußerst fragwürdig; die Wärmepumpe ist selbst in der (vergangenen) Kälteperiode nicht länger als bis 22:00 gelaufen. Von 22:00 bis 6:00 fällt nur eine gewisse Grundlast in Höhe von 200-250 Wh an.
Informationen zum neuronalen Netz der Verbrauchsvorhersage
letztes KI-Training: 27.01.2026 09:57:18 / Laufzeit in Sekunden: 11365
KI Abfragestatus: ok
letzte KI-Ergebnis Generierungsdauer: 82.58 ms
Verbrauchernummer Wärmepumpe: 03
=== Modellparameter ===
Normierungsgrenzen: PV=18612 Wh, Hausverbrauch: Min=0 Wh / Max=6400 Wh
Trainingsdaten: 8375 Datensätze (Training=6700, Validation=1675)
Architektur: Inputs=98, Hidden Layers=80-40-20, Outputs=1
Hyperparameter: Learning Rate=0.005, Momentum=0.4, BitFail-Limit=0.34
Aktivierungen: Hidden=SIGMOID, Steepness=1.2, Output=LINEAR
Trainingsalgorithmus: INCREMENTAL, Registry Version=v1_heatpump_active_pv
Zufallsgenerator: Mode=2, Period=10
=== Trainingsmetriken ===
bestes Modell bei Epoche: 3119 (max. 15000)
Training MSE: 0.000913
Validation MSE: 0.002237
Validation MSE Average: 0.002260
Validation MSE Standard Deviation: 0.000031
Validation Bit_Fail: 0
Model Bias: 21 Wh
Model Slope: 1.0
Trainingsbewertung: Retrain
=== Fehlermaße der Prognosen ===
MAE: 152.88 Wh
MedAE: 47.69 Wh
RMSE: 209.81 Wh
RMSE relative: 63 %
RMSE Rating: acceptable
MAPE: 17.58 %
MdAPE: 10.21 %
R²: 0.91
=== Rauschen ===
Rauschen Bewertung: borderline
Empfehlung für Bit_Fail: 0.34 (Einstellung von aiControl->aiConBitFailLimit)
=== Drift-Kennzahlen ===
Drift Score: 1.72
Drift RMSE ratio: 2.30
Drift Slope: 0.088
Drift Bias: 0.84
Drift Bewertung: none --- a/98_BOSEST.pm 2023-05-20 08:02:26.000000000 +0200
+++ b/98_BOSEST.pm 2026-01-28 23:30:18.795102399 +0100
@@ -7,10 +7,13 @@
# FHEM module to communicate with BOSE SoundTouch system
# API as defined in BOSE SoundTouchAPI_WebServices_v1.0.1.pdf
#
-# Version: 2.2.1
+# Version: 2.2.2
#
#############################################################
#
+# v2.2.2 - 20260125
+# - CHANGE: Add PRODUCT TV and HDMI_1 to source for ST300
+#
# v2.2.1 - 20181127
# - CHANGE: add staticIPs documentation in commandref
#
@@ -341,7 +344,7 @@
$hash->{helper}{supportedBassCmds} = "";
if (int(@a) < 3) {
- Log3 $hash, 3, "BOSEST: BOSE SoundTouch v2.2.1";
+ Log3 $hash, 3, "BOSEST: BOSE SoundTouch v2.2.2";
#start discovery process 30s delayed
InternalTimer(gettimeofday()+30, "BOSEST_startDiscoveryProcess", $hash, 0);
@@ -374,9 +377,10 @@
return undef;
}
-sub BOSEST_Set($@) {
- my ($hash, $name, @params) = @_;
- my $workType = shift(@params);
+sub BOSEST_Set
+{
+ my ($hash, $name, $workType, @params) = @_;
+ Log3 $hash, 3, "BOSEST: BOSEST_Set: $name, $workType\n".Dumper(\@params) if ($workType ne "?");
#get quoted text from params
my $blankParams = join(" ", @params);
@@ -884,7 +888,23 @@
$hash->{helper}{switchSource} = uc $source;
- if($hash->{helper}{switchSource} eq "") {
+ #FIXME: switchSource has volume num value via fhem webif
+ if($hash->{helper}{switchSource} eq "" || looks_like_number($hash->{helper}{switchSource})) {
+ return undef;
+ }
+
+ if($hash->{helper}{switchSource} eq "TV" || $hash->{helper}{switchSource} eq "HDMI1") {
+ my $sourceAccount = $hash->{helper}{switchSource} eq "TV" ? "TV" : "HDMI_1";
+ my $postXml = "<ContentItem source=\"".
+ "PRODUCT".
+ "\" sourceAccount=\"".
+ $sourceAccount.
+ "\" isPresetable=\"true\">".
+ "</ContentItem>";
+
+ if(BOSEST_HTTPPOST($hash, "/select", $postXml)) {
+ #ok
+ }
return undef;
}
@@ -2137,6 +2157,8 @@
$deviceHash->{helper}{bluetoothSupport} = 0;
$deviceHash->{helper}{auxSupport} = 0;
$deviceHash->{helper}{airplaySupport} = 0;
+ $deviceHash->{helper}{productTvSupport} = 0;
+ $deviceHash->{helper}{productHdmi1Support} = 0;
$deviceHash->{helper}{supportedSourcesCmds} = "";
foreach my $source (@params) {
if($source eq "BLUETOOTH") {
@@ -2148,7 +2170,14 @@
} elsif($source eq "AIRPLAY") {
$deviceHash->{helper}{airplaySupport} = 1;
$deviceHash->{helper}{supportedSourcesCmds} .= "airplay,";
- }
+ } elsif($source eq "PRODUCT") {
+ #quick hack, we also need sourceAccount value for PRODUCT
+ if($deviceHash->{helper}{productTvSupport} == 0 && $deviceHash->{helper}{productHdmi1Support} == 0) {
+ $deviceHash->{helper}{productTvSupport} = 1;
+ $deviceHash->{helper}{productHdmi1Support} = 1;
+ $deviceHash->{helper}{supportedSourcesCmds} .= "tv,hdmi1,";
+ }
+ }
}
$deviceHash->{helper}{supportedSourcesCmds} = substr($deviceHash->{helper}{supportedSourcesCmds}, 0, length($deviceHash->{helper}{supportedSourcesCmds})-1);
} elsif($command eq "capabilities") {
@@ -2577,7 +2606,7 @@
<li><code><b>repeat</b> all|one|off</code> - control repeat mode</li>
<li><code><b>bass</b> 0...10</code> - set the bass level</li>
<li><code><b>recent</b> 0...15</code> - set number of names in the recent list in readings</li>
- <li><code><b>source</b> bluetooth,bt-discover,aux mode, airplay</code> - select a local source</li><br>
+ <li><code><b>source</b> bluetooth,bt-discover,aux mode,airplay,tv,hdmi1</code> - select a local source</li><br>
<li><code><b>addDLNAServer</b> Name1 [Name2] [Namex]</code> - add DLNA servers Name1 (and Name2 to Namex) to the BOSE library</li>
<li><code><b>removeDLNAServer</b> Name1 [Name2] [Namex]</code> - remove DLNA servers Name1 (and Name2 to Namex) to the BOSE library</li>
</ul><br>