Hauptmenü

Neueste Beiträge

#11
Sonstige Systeme / Aw: FHEM-Integration von Tapo ...
Letzter Beitrag von Prof. Dr. Peter Henning - 19 März 2026, 17:06:22
Zitat von: DeeSPe am 19 März 2026, 16:03:35Exception: Temporary Suspension: Try again in 1800 seconds
Tja, hatte ich auch schon mal ...

Nochmal, es gibt m.e. 2 Möglichkeiten

a.) Username und passwort des _in der kamera_ eingerichteten kontos
b.) admin und cloud-passwort für das Tapo-System

LG

pah
#12
Solaranlagen / Aw: 76_SolarForecast - Informa...
Letzter Beitrag von 300P - 19 März 2026, 17:03:13
Rückfrage zum Thema NN:

Ab wann wurde noch eine Driftbedingte Rekalibrierung (evtl.) vorgenommen?
24 h / 48 h oder >= 48 h nach dem Contrain ?

Ich habe jetzt 48 h nach dem letzten Training und bekomme keine Rekalibrierungswerte in der Anzeige.

Informationen zum neuronalen Netz der Verbrauchsvorhersage

letztes KI-Training: 17.03.2026 15:43:59 / Laufzeit in Sekunden: 853
KI Abfragestatus: ok
letzte KI-Ergebnis Generierungsdauer: 80.8 ms
Verbrauchernummer Wärmepumpe: 08

=== Modellparameter ===

Normierungsgrenzen: PV=10450 Wh, Hausverbrauch: Min=0 Wh / Max=7598 Wh
Trainingsdaten: 8095 Datensätze (Training=6476, Validation=1619)
Architektur: Inputs=98, Hidden Layers=80-40, Outputs=1
Hyperparameter: Learning Rate=0.001, Momentum=0.6, BitFail-Limit=0.25
Aktivierungen: Hidden=GAUSSIAN_SYMMETRIC, Steepness=1.0, Output=LINEAR
Trainingsalgorithmus: INCREMENTAL, Registry Version=v1_heatpump_active_pv
Zufallsgenerator: Mode=1, Period=20
Modellalter: 48 h

=== Trainingsmetriken ===

bestes Modell bei Epoche: 560 (max. 15000)
Training MSE: 0.002994
Validation MSE: 0.004155
Validation MSE Average: 0.006353
Validation MSE Standard Deviation: 0.000276
Validation Bit_Fail: 2
Model Bias: -134 Wh
Model Slope: 1.0
Trainingsbewertung: ok

=== Fehlermaße der Prognosen ===

MAE: 381.76 Wh
MedAE: 309.07 Wh
RMSE: 432.36 Wh
RMSE relative: 20 %
RMSE Rating: good
MAPE: 19.75 %
MdAPE: 14.74 %
R²: 0.67

=== Rauschen ===

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

=== Drift-Kennzahlen ===

Drift Score: 2.01
Drift RMSE ratio: 3.15
Drift Slope: 0.385
Drift Bias: 600.37
Drift Bewertung: mild
Slope recalibrated: -
Bias recalibrated: -
letzte Rekalibrierung: -

2026.03.19 17:00:17 1: Forecast DEBUG> AI raw data saved into file: ./FHEM/FhemUtils/AIraw_SolarForecast_Forecast
2026.03.19 17:00:18 1: Forecast DEBUG> DRIFT [con]: Flag=mild | Block=0 | SlopeLive=0.371 | DriftSlope=0.383 | BiasLive=469.47 | DriftBias=603.31 | RMSErelLive=63.3 | RMSErelRatio=3.16 | BiasVarNorm=0.24 |DriftScore=1.97 | Zone3Hours=1 | Hist=[mild,mild,mild,mild,mild,mild,mild,mild,mild,mild,mild,mild,mild,mild,mild,mild,mild,mild,mild,mild]
2026.03.19 17:00:18 1: Forecast DEBUG> AI FANN drift data type 'con' successfully written to file: ./FHEM/FhemUtils/NeuralNet_SolarForecast_Forecast

Screenshot -> aktuelles Bild von =>> ConForecast (rot) und realerVerbrauch (gelb)
#13
FRITZ!Box / Aw: 72_FRITZBOX.pm wird zu 72_...
Letzter Beitrag von bertl - 19 März 2026, 16:40:28
Hallo Jörg,

hier der stacktrace:

2026.03.19 16:36:11 1: PERL WARNING: Use of uninitialized value $sub in string eq at ./FHEM/72_FritzSmart.pm line 1082.
2026.03.19 16:36:11 1: stacktrace:
2026.03.19 16:36:11 1:     main::__ANON__                      called by ./FHEM/72_FritzSmart.pm (1082)
2026.03.19 16:36:11 1:     Fritz::Fritz_Log                    called by ./FHEM/72_FritzSmart.pm (6956)
2026.03.19 16:36:11 1:     (eval)                              called by ./FHEM/72_FritzSmart.pm (6954)
2026.03.19 16:36:11 1:     Fritz::Fritz_Readout_Run_Web_LuaData called by ./FHEM/72_FritzSmart.pm (5353)
2026.03.19 16:36:11 1:     Fritz::Fritz_Readout_Run_Web        called by FHEM/Blocking.pm (194)
2026.03.19 16:36:11 1:     main::BlockingStart                 called by FHEM/Blocking.pm (107)
2026.03.19 16:36:11 1:     main::BlockingCall                  called by ./FHEM/72_FritzSmart.pm (5305)
2026.03.19 16:36:11 1:     Fritz::Fritz_Readout_Start          called by fhem.pl (3527)
2026.03.19 16:36:11 1:     main::HandleTimeout                 called by fhem.pl (710)
2026.03.19 16:36:11 1: PERL WARNING: Use of uninitialized value $sub in string eq at ./FHEM/72_FritzSmart.pm line 1082.
2026.03.19 16:36:11 1: stacktrace:
2026.03.19 16:36:11 1:     main::__ANON__                      called by ./FHEM/72_FritzSmart.pm (1082)
2026.03.19 16:36:11 1:     Fritz::Fritz_Log                    called by ./FHEM/72_FritzSmart.pm (6956)
2026.03.19 16:36:11 1:     (eval)                              called by ./FHEM/72_FritzSmart.pm (6954)
2026.03.19 16:36:11 1:     Fritz::Fritz_Readout_Run_Web_LuaData called by ./FHEM/72_FritzSmart.pm (5353)
2026.03.19 16:36:11 1:     Fritz::Fritz_Readout_Run_Web        called by FHEM/Blocking.pm (194)
2026.03.19 16:36:11 1:     main::BlockingStart                 called by FHEM/Blocking.pm (107)
2026.03.19 16:36:11 1:     main::BlockingCall                  called by ./FHEM/72_FritzSmart.pm (5305)
2026.03.19 16:36:11 1:     Fritz::Fritz_Readout_Start          called by fhem.pl (3527)
2026.03.19 16:36:11 1:     main::HandleTimeout                 called by fhem.pl (710)
2026.03.19 16:36:11 1: PERL WARNING: Use of uninitialized value $sub in string eq at ./FHEM/72_FritzSmart.pm line 1082.
2026.03.19 16:36:11 1: stacktrace:
2026.03.19 16:36:11 1:     main::__ANON__                      called by ./FHEM/72_FritzSmart.pm (1082)
2026.03.19 16:36:11 1:     Fritz::Fritz_Log                    called by ./FHEM/72_FritzSmart.pm (6956)
2026.03.19 16:36:11 1:     (eval)                              called by ./FHEM/72_FritzSmart.pm (6954)
2026.03.19 16:36:11 1:     Fritz::Fritz_Readout_Run_Web_LuaData called by ./FHEM/72_FritzSmart.pm (5353)
2026.03.19 16:36:11 1:     Fritz::Fritz_Readout_Run_Web        called by FHEM/Blocking.pm (194)
2026.03.19 16:36:11 1:     main::BlockingStart                 called by FHEM/Blocking.pm (107)
2026.03.19 16:36:11 1:     main::BlockingCall                  called by ./FHEM/72_FritzSmart.pm (5305)
2026.03.19 16:36:11 1:     Fritz::Fritz_Readout_Start          called by fhem.pl (3527)
2026.03.19 16:36:11 1:     main::HandleTimeout                 called by fhem.pl (710)
2026.03.19 16:36:11 1: PERL WARNING: Use of uninitialized value $sub in string eq at ./FHEM/72_FritzSmart.pm line 1082.
2026.03.19 16:36:11 1: stacktrace:
2026.03.19 16:36:11 1:     main::__ANON__                      called by ./FHEM/72_FritzSmart.pm (1082)
2026.03.19 16:36:11 1:     Fritz::Fritz_Log                    called by ./FHEM/72_FritzSmart.pm (6956)
2026.03.19 16:36:11 1:     (eval)                              called by ./FHEM/72_FritzSmart.pm (6954)
2026.03.19 16:36:11 1:     Fritz::Fritz_Readout_Run_Web_LuaData called by ./FHEM/72_FritzSmart.pm (5353)
2026.03.19 16:36:11 1:     Fritz::Fritz_Readout_Run_Web        called by FHEM/Blocking.pm (194)
2026.03.19 16:36:11 1:     main::BlockingStart                 called by FHEM/Blocking.pm (107)
2026.03.19 16:36:11 1:     main::BlockingCall                  called by ./FHEM/72_FritzSmart.pm (5305)
2026.03.19 16:36:11 1:     Fritz::Fritz_Readout_Start          called by fhem.pl (3527)
2026.03.19 16:36:11 1:     main::HandleTimeout                 called by fhem.pl (710)
#14
FRITZ!Box / Aw: 72_FRITZBOX.pm wird zu 72_...
Letzter Beitrag von JoWiemann - 19 März 2026, 16:29:48
Hallo Gisbert,

ich habe in dem Bereich nichts verändert. Bist Du sicher, dass es vorher kontinuierlich aktualisiert wurde oder war es einfach nur da?

Grüße Jörg
#15
FRITZ!Box / Aw: 72_FRITZBOX.pm wird zu 72_...
Letzter Beitrag von JoWiemann - 19 März 2026, 16:27:45
Hallo Robert,

kannst Du die Änderung einmal rückgängig machen und stacktrace einschalten. Würde mich interessieren welcher Aufruf dafür verantwortlich ist. Danke Dir.

Grüße Jörg
#16
FHEMWEB / Aw: Style ios12 übermittelt fa...
Letzter Beitrag von FlatTV - 19 März 2026, 16:25:31
Anderer Ansatz;

Das neue DIV hinten anstellen, wäre das eine Lösung?
@rudolfkoenig, was denkst du?

var mobiletoggle = function () {
        if ($('body').hasClass("colortoggle")) {} else {
                var counter = 0;
                $(".colorpicker_widget, .slider_widget").each(function () {
                        var $newToggleDiv = $('<div id="toggle_colorpicker' + counter + '" onclick="togglecolorpicker(' + counter + ')" style="display: table-cell;vertical-align: middle;"><svg class="icon control_plus" data-txt="control_plus" id="colorplus' + counter + '" version="1.0" xmlns="http://www.w3.org/2000/svg" width="468pt" height="474pt" viewBox="0 0 468 474" preserveAspectRatio="xMidYMid meet"> <metadata> Created by potrace 1.8, written by Peter Selinger 2001-2007 </metadata> <g transform="translate(0,474) scale(0.200000,-0.200000)" stroke="none"> <path d="M1002 2354 c-18 -9 -43 -31 -55 -48 -22 -31 -22 -35 -25 -458 l-3 -428 -397 0 c-444 0 -443 0 -490 -70 -22 -33 -23 -42 -20 -177 l3 -143 38 -37 37 -38 415 -3 415 -3 0 -422 c0 -403 1 -423 20 -455 37 -61 70 -72 210 -72 150 0 182 12 218 80 22 44 22 49 22 457 l0 413 424 0 c422 0 423 0 456 23 57 39 70 76 70 206 0 143 -19 192 -84 222 -38 17 -73 19 -453 19 l-413 0 0 418 c0 459 0 460 -63 506 -25 18 -45 21 -160 24 -107 2 -138 -1 -165 -14z m258 -599 l0 -475 470 0 470 0 0 -100 0 -100 -475 0 -475 0 0 -475 0 -476 -97 3 -98 3 0 473 0 472 -457 0 -458 0 0 100 0 100 457 2 458 3 -4 473 -3 472 106 0 106 0 0 -475z"></path> </g> </svg><svg class="icon control_minus" id="colorminus' + counter + '" data-txt="control_minus" version="1.0" xmlns="http://www.w3.org/2000/svg" width="468pt" height="95pt" viewBox="0 0 468 95" preserveAspectRatio="xMidYMid meet"> <metadata> Created by potrace 1.8, written by Peter Selinger 2001-2007 </metadata> <g transform="translate(0,95) scale(0.196639,-0.196639)" stroke="none"> <path d="M85 460 c-11 -4 -33 -22 -50 -40 -30 -31 -30 -31 -33 -168 -3 -163 7 -193 79 -230 l44 -22 1077 2 1077 3 28 21 c57 43 68 76 68 214 0 141 -11 176 -68 210 -31 19 -58 20 -1117 19 -597 0 -1094 -4 -1105 -9z m2155 -220 l0 -100 -1055 0 -1055 0 0 93 c0 52 3 97 7 100 3 4 478 7 1055 7 l1048 0 0 -100z"></path> </g> </svg></div>');
                        $(this).after($newToggleDiv);
                        $(this).parent().css("white-space", "nowrap");
                        $(this).parent().css("display", "table");
                        $(this).attr('id', 'colorpicker' + counter);
                        $(this).hide();
                        $('#colorminus' + counter).hide();
                        counter++;
                });
                $('body').addClass("colortoggle");
        }
};

//Edit
Ach Mist, dann ist das "+" in ReadingsGroup nicht mehr sichtbar.

Browser Cache gelöscht und dann gehts
#17
Solaranlagen / Aw: 76_SolarForecast - Informa...
Letzter Beitrag von DS_Starter - 19 März 2026, 16:14:00
@tomcat.x,
ZitatJa, ich habe schon gesehen, dass der SoC dann teilweise mit unter 10 % vorhergesagt wird, was die Batterie aber gar nicht macht. Also dann Werte eintragen, aber stepSoC=0?
stepSoC=0 deaktiviert das SoC-Management für diese Batterie. Die Prognose für den SoC wird weiterhin funktionieren, wobei dann bestimmte Grenzen nicht aktiv sind, aber vermutlich durchaus brauchbar.
Es ist für temporäre Deaktivierungen gedacht wenn man das Attribut nicht löschen möchte weil man es später wieder aktivieren möchte.

ZitatDa der Verbrauch vermutlich auf Basis von Readings bestimmt wird, deren Werte streng monoton wachsend sein sollten, müsste sich in SF doch eigentlich eine automatische Löschung über ein Median-Filter auf einbauen lassen.
Ein automatischer! Median-Filter ist dafür leider nicht geeignet, denn ich möchte ja die realen Zahlen haben. Wenn der User Besuch hat und 2 EV geladen werden kann der Verbrauch schonmal ungewöhnlich hoch sein, ist aber dann kein Fehler.
Auch ein rein empirische obere Grenze ist dafür m.M. nach ungeeignet.
Auf der anderen Seite bekommt man nur so eventuelle Probleme im eigenen FHEM Universum überhaupt mit und kann gezielt gegensteuern. SF bügelt vieles weg, aber es gibt Situationen wo man auf Modulautoren einwirken sollte damit
an der Quelle schon Einfluß genommen wird. Das fördert allgemein die Datenqualität auch für SVG's und andere Anbhängigkeiten.

@peterboeckmann,

ZitatGibt es einen technischen Grund für diese Begrenzung oder ließe sich die Grenze auch auf 30 erhöhen?
Nein, nur einmal die Problematik in der Flußdarstellung und weiterhin entsprechend viele Attribute in der Attributliste.
Natürlich werden die gasammelten Daten und Ausdrucke in den Datenspeichern ebenfalls mehr.
Aber sonst fällt mir eigentlich nichts weiter ein.




 
#18
Sonstige Systeme / Aw: FHEM-Integration von Tapo ...
Letzter Beitrag von DeeSPe - 19 März 2026, 16:03:35
Zitat von: Prof. Dr. Peter Henning am 19 März 2026, 15:29:45Ich hoffe mal, dass Du als Username "admin" und als Passwort Dein Cloudpasswort angegeben hast. Es könnte sein, dass Du eine ältere Firmware hast. In dem Fall musst Du als Username den angeben, den Du bei der Einrichtung des Kamerakontos auf der Kamera verwendet hast, sowie das zugehörige Passwort.

Ich habe es mit "admin" und jetzt auch mit meiner Mailadresse, die zur Anmeldung verwendet wurde, versucht. Es klappt mit keinem von beiden.
Jetzt kommt erst einmal:
Exception: Temporary Suspension: Try again in 1800 seconds
Gruß
Dan

P.S. Firmware is the latest.
#19
Sonstige Systeme / Aw: FHEM-Integration von Tapo ...
Letzter Beitrag von Prof. Dr. Peter Henning - 19 März 2026, 15:29:45
Zitat von: Gisbert am 19 März 2026, 14:37:26Hallo pah,

kann man Bilder und ggf. Videos bei Alarmierung/Personen-/Bewegungserkennung im lokalen Netzwerk speichern?

Viele Grüße Gisbert

Bilder und Videos kannst Du natürlich im lokalen Netz abspeichern. "Erkennung" ist noch offen, weil ich noch nicht ganz durchblicke, wie ich die AKTIVE Signalisierung der Kamera an FHEM hinbekomme. Es sollte aber möglich sein, bei Bewegungserkennung eine Aufnahme zu starten, diese auf der SD-Karte in der Kamera abzulegen und später herunterzuladen.

Zitat von: DeeSPe am 19 März 2026, 15:20:17Bei mir kommt leider ein Authentifikationsproblem:
Ich hoffe mal, dass Du als Username "admin" und als Passwort Dein Cloudpasswort angegeben hast. Es könnte sein, dass Du eine ältere Firmware hast. In dem Fall musst Du als Username den angeben, den Du bei der Einrichtung des Kamerakontos auf der Kamera verwendet hast, sowie das zugehörige Passwort.

LG

pah
#20
Sonstige Systeme / Aw: FHEM-Integration von Tapo ...
Letzter Beitrag von DeeSPe - 19 März 2026, 15:20:17
Zitat von: Prof. Dr. Peter Henning am 18 März 2026, 15:11:07@DeeSPee: Würde mich interessieren, was die Ausgabe des tapo_testmethod bei der C222 ergibt.
Bei mir kommt leider ein Authentifikationsproblem:
root@fhem-test:/opt/fhem/tapo# ./tapo_testmethod.py
Traceback (most recent call last):
  File "/opt/fhem/tapo/./tapo_testmethod.py", line 4, in <module>
    tapo = Tapo("192.168.107.78", "name", "password")
  File "/opt/fhem/tapo/.venv/lib/python3.13/site-packages/pytapo/__init__.py", line 108, in __init__
    self.basicInfo = self.getBasicInfo()
                     ~~~~~~~~~~~~~~~~~^^
  File "/opt/fhem/tapo/.venv/lib/python3.13/site-packages/pytapo/__init__.py", line 1161, in getBasicInfo
    return self.executeFunction(
           ~~~~~~~~~~~~~~~~~~~~^
        "getDeviceInfo", {"device_info": {"name": ["basic_info"]}}
        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    )
    ^
  File "/opt/fhem/tapo/.venv/lib/python3.13/site-packages/pytapo/__init__.py", line 171, in executeFunction
    data = self.performRequest(
           ~~~~~~~~~~~~~~~~~~~^
        {
        ^
    ...<2 lines>...
        }
        ^
    )["result"]["responses"][0]
    ^
  File "/opt/fhem/tapo/.venv/lib/python3.13/site-packages/pytapo/__init__.py", line 214, in performRequest
    self.asyncHandler.executeAsyncExecutorJob(self.transport.authenticate)
    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/opt/fhem/tapo/.venv/lib/python3.13/site-packages/pytapo/asyncHandler.py", line 21, in executeAsyncExecutorJob
    return self._loop.run_until_complete(job(*args))
           ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^
  File "/usr/lib/python3.13/asyncio/base_events.py", line 725, in run_until_complete
    return future.result()
           ~~~~~~~~~~~~~^^
  File "/opt/fhem/tapo/.venv/lib/python3.13/site-packages/pytapo/transport/transport.py", line 43, in authenticate
    return await self.transport.authenticate(self, retry)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/opt/fhem/tapo/.venv/lib/python3.13/site-packages/pytapo/transport/pytapo/pytapo.py", line 185, in authenticate
    await self._run_blocking(self._refreshStok)
  File "/opt/fhem/tapo/.venv/lib/python3.13/site-packages/pytapo/transport/pytapo/pytapo.py", line 176, in _run_blocking
    return func(*args, **kwargs)
  File "/opt/fhem/tapo/.venv/lib/python3.13/site-packages/pytapo/transport/pytapo/pytapo.py", line 710, in _refreshStok
    return self._refreshStok(loginRetryCount)
           ~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^
  File "/opt/fhem/tapo/.venv/lib/python3.13/site-packages/pytapo/transport/pytapo/pytapo.py", line 715, in _refreshStok
    raise Exception("Invalid authentication data")
Exception: Invalid authentication data

Ansonsten klappt es aber mit takePhoto bereits.

Gruß
Dan