Zitat von: DS_Starter am 19 Januar 2026, 20:19:41Wie 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.Wenn die Consumer bei SF bekannt sind und deren Steuerung durch SF erfolgt, sollte das aber klappen, oder?
Bin froh dass es nun bei dir geht.defmod Nuki_SN MQTT2_DEVICE Nuki_SN
attr Nuki_SN alias FLU_Tuerschloss
attr Nuki_SN devStateIcon \
geschlossen:smartlock_locked@green \
offen:smartlock_unlocked@red \
öffnet:smartlock_unlocked@blue \
schließt:smartlock_locked@blue \
falle_geöffnet:smartlock_unlocked@red \
blockiert:general_warning@yellow \
undefiniert:general_question@grey
attr Nuki_SN event-min-interval battery:3600
attr Nuki_SN event-on-change-reading .*
attr Nuki_SN genericDeviceType lock
attr Nuki_SN icon nuki_lockjavascript:void(0);
attr Nuki_SN room 01_Wohnraum->Flur,Homekit
Nuki_SN:nuki/SN/connected:.* connected
Nuki_SN:nuki/SN/timestamp:.* timestamp
Nuki_SN:nuki/SN/deviceType:.* deviceType
Nuki_SN:nuki/SN/name:.* name
Nuki_SN:nuki/SN/firmware:.* firmware
Nuki_SN:nuki/SN/batteryChargeState:.* batteryChargeState
Nuki_SN:nuki/SN/batteryCritical:.* batteryCritical
Nuki_SN:nuki/SN/batteryCharging:.* batteryCharging
Nuki_SN:nuki/SN/keypadBatteryCritical:.* keypadBatteryCritical
Nuki_SN:nuki/SN/doorsensorBatteryCritical:.* doorsensorBatteryCritical
Nuki_SN:nuki/SN/state:.* state
Nuki_SN:nuki/SN/mode:.* mode
Nuki_SN:nuki/SN/serverConnected:.* serverConnected
Nuki_SN:nuki/SN/lockActionEvent:.* lockActionEvent
Nuki_SN:nuki/SN/commandResponse:.* commandResponse
{
my %map = (
# numerische Nuki-States
0 => "unkalibriert",
1 => "geschlossen",
2 => "öffnet",
3 => "offen",
4 => "falle_geöffnet",
5 => "falle_geöffnet",
7 => "schließt",
254 => "blockiert",
255 => "undefiniert",
# string-basierte Nuki-States
"lock" => "geschlossen",
"locking" => "schließt",
"unlock" => "öffnet",
"unlocking" => "öffnet",
"unlatch" => "falle_geöffnet",
"unlatching" => "falle_geöffnet",
"motorblocked" => "blockiert",
"undefined" => "undefiniert"
);
my $v = ReadingsVal($name, "state", "255");
return $map{$v} // $v;
}
clear
LockCurrentState=state,values=1:SECURED;2:SECURED;3:UNSECURED;4:UNSECURED;5:UNSECURED;7:SECURED;254:JAMMED;255:UNKNOWN;lock:SECURED;locking:SECURED;unlock:UNSECURED;unlocking:UNSECURED;unlatch:UNSECURED;unlatching:UNSECURED;motorblocked:JAMMED;undefined:UNKNOWN
LockTargetState=state,values=1:SECURED;3:UNSECURED;4:UNSECURED;2:UNSECURED;7:UNSECURED;lock:SECURED;unlock:UNSECURED;unlatch:UNSECURED,cmds=SECURED:lock;UNSECURED:unlatch
2026.01.19 21:49:29 1: PERL WARNING: Use of uninitialized value $comp in concatenation (.) or string at ./FHEM/36_Shelly.pm line 4940.
2026.01.19 21:49:29 1: stacktrace:
2026.01.19 21:49:29 1: main::__ANON__ called by ./FHEM/36_Shelly.pm (4940)
2026.01.19 21:49:29 1: main::Shelly_status2G called by ./FHEM/36_Shelly.pm (7615)
2026.01.19 21:49:29 1: main::Shelly_HttpResponse called by FHEM/HttpUtils.pm (756)
2026.01.19 21:49:29 1: main::__ANON__ called by fhem.pl (786)
2026.01.19 21:49:29 1: PERL WARNING: Use of uninitialized value $comp in string eq at ./FHEM/36_Shelly.pm line 4941.
2026.01.19 21:49:29 1: stacktrace:
2026.01.19 21:49:29 1: main::__ANON__ called by ./FHEM/36_Shelly.pm (4941)
2026.01.19 21:49:29 1: main::Shelly_status2G called by ./FHEM/36_Shelly.pm (7615)
2026.01.19 21:49:29 1: main::Shelly_HttpResponse called by FHEM/HttpUtils.pm (756)
2026.01.19 21:49:29 1: main::__ANON__ called by fhem.pl (786)
2026.01.19 21:49:29 1: PERL WARNING: Use of uninitialized value $comp in string eq at ./FHEM/36_Shelly.pm line 4958.
2026.01.19 21:49:29 1: stacktrace:
2026.01.19 21:49:29 1: main::__ANON__ called by ./FHEM/36_Shelly.pm (4941)
2026.01.19 21:49:29 1: main::Shelly_status2G called by ./FHEM/36_Shelly.pm (7615)
2026.01.19 21:49:29 1: main::Shelly_HttpResponse called by FHEM/HttpUtils.pm (756)
2026.01.19 21:49:29 1: main::__ANON__ called by fhem.pl (786)
Zitat von: DS_Starter am 19 Januar 2026, 21:51:10Edit: Oder meinst du dass man mehrere Versionen sichern kann?

ZitatKannst du evtl. die Datei des Traininglaufes in deine Backuproutine operatingMemory dort noch mit einbauen ?Das ist schon passiert denn die KI Daten müssen ja einen FHEM Restart überleben.
update delete https://rm.byterazor.de/upd-fhem-ntfy/controls_byterazor-fhem-ntfy.txt