98_vitoconnect.pm: installationID check at least length 2

git-svn-id: https://svn.fhem.de/fhem/trunk@29627 2b470e98-0d58-463d-a4d8-8e2adae1ed80
This commit is contained in:
stefanru
2025-02-06 20:38:59 +00:00
parent 1b406e5d86
commit ad1a2e169b

View File

@@ -91,6 +91,7 @@ use FHEM::SynoModules::SMUtils qw (
); # Hilfsroutinen Modul ); # Hilfsroutinen Modul
my %vNotesIntern = ( my %vNotesIntern = (
"0.7.0" => "06.02.2025 vitoconnect_installationID checked now for at least length 2, see https://forum.fhem.de/index.php?msg=1333072, error handling when setting attributs automatic introduced",
"0.6.3" => "04.02.2025 Small bug fixes, removed warnings", "0.6.3" => "04.02.2025 Small bug fixes, removed warnings",
"0.6.2" => "28.01.2025 Very small bugfixes ", "0.6.2" => "28.01.2025 Very small bugfixes ",
"0.6.1" => "28.01.2025 Rework of module documentation", "0.6.1" => "28.01.2025 Rework of module documentation",
@@ -2691,15 +2692,15 @@ sub vitoconnect_Attr {
# Zur Zeit kein prüfung, einfacher String # Zur Zeit kein prüfung, einfacher String
if (length($attr_value) != 16) { if (length($attr_value) != 16) {
my $err = "Invalid argument ".$attr_value." to ".$attr_name.". Must be 16 characters long."; my $err = "Invalid argument ".$attr_value." to ".$attr_name.". Must be 16 characters long.";
Log(5,$name.", vitoconnect_Attr: ".$err); Log(1,$name.", vitoconnect_Attr: ".$err);
return $err; return $err;
} }
} }
elsif ($attr_name eq "vitoconnect_installationID") { elsif ($attr_name eq "vitoconnect_installationID") {
# Zur Zeit kein prüfung, einfacher String # Zur Zeit kein prüfung, einfacher String
if (length($attr_value) < 5) { if (length($attr_value) < 2) {
my $err = "Invalid argument ".$attr_value." to ".$attr_name.". Must be at least 5 characters long."; my $err = "Invalid argument ".$attr_value." to ".$attr_name.". Must be at least 2 characters long.";
Log(5,$name.", vitoconnect_Attr: ".$err); Log(1,$name.", vitoconnect_Attr: ".$err);
return $err; return $err;
} }
} }
@@ -3050,12 +3051,22 @@ sub vitoconnect_getGwCallback {
return; return;
} elsif ($num_devices == 1) { } elsif ($num_devices == 1) {
readingsSingleUpdate($hash,"state","Genau ein Gateway/Device gefunden",1); readingsSingleUpdate($hash,"state","Genau ein Gateway/Device gefunden",1);
my ($serial) = keys %devices; my ($serial) = keys %devices;
my $installationId = $devices{$serial}->{installationId}; my $installationId = $devices{$serial}->{installationId};
Log3($name,4,$name." - getGW exactly one Device found set attr: instID: $installationId, serial $serial"); Log3($name,4,$name." - getGW exactly one Device found set attr: instID: $installationId, serial $serial");
CommandAttr (undef, "$name vitoconnect_installationID $installationId"); my $result;
CommandAttr (undef, "$name vitoconnect_serial $serial"); $result = CommandAttr (undef, "$name vitoconnect_installationID $installationId");
if ($result) {
Log3($name, 1, "Error setting vitoconnect_installationID: $result");
return;
}
$result = CommandAttr (undef, "$name vitoconnect_serial $serial");
if ($result) {
Log3($name, 1, "Error setting vitoconnect_serial: $result");
return;
}
Log3($name, 4, "Successfully set vitoconnect_serial and vitoconnect_installationID attributes for $name");
} else { } else {
readingsSingleUpdate($hash,"state","Mehrere Gateways/Devices gefunden, bitte eines auswählen über selectDevice",1); readingsSingleUpdate($hash,"state","Mehrere Gateways/Devices gefunden, bitte eines auswählen über selectDevice",1);
return; return;
@@ -3656,7 +3667,7 @@ sub vitoconnect_action {
} }
else { # Befehl korrekt ausgeführt else { # Befehl korrekt ausgeführt
readingsSingleUpdate($hash,"Aktion_Status","OK: ".$opt." ".$Text,1); # Reading 'Aktion_Status' setzen readingsSingleUpdate($hash,"Aktion_Status","OK: ".$opt." ".$Text,1); # Reading 'Aktion_Status' setzen
# Log3($name,1,$name.",vitoconnect_action: set name:".$name." opt:".$opt." text:".$Text.", korrekt ausgefuehrt: ".$err." :: ".$msg); # TODO: Wieder weg machen $err #Log3($name,1,$name.",vitoconnect_action: set name:".$name." opt:".$opt." text:".$Text.", korrekt ausgefuehrt: ".$err." :: ".$msg); # TODO: Wieder weg machen $err
Log3($name,3,$name.",vitoconnect_action: set name:".$name." opt:".$opt." text:".$Text.", korrekt ausgefuehrt"); Log3($name,3,$name.",vitoconnect_action: set name:".$name." opt:".$opt." text:".$Text.", korrekt ausgefuehrt");
# Spezial Readings update # Spezial Readings update
@@ -3668,7 +3679,7 @@ sub vitoconnect_action {
$Text = "1"; $Text = "1";
} }
readingsSingleUpdate($hash,$opt,$Text,1); # Reading updaten readingsSingleUpdate($hash,$opt,$Text,1); # Reading updaten
# Log3($name,1,$name.",vitoconnect_action: reading upd1 hash:".$hash." opt:".$opt." text:".$Text); # TODO: Wieder weg machen $err #Log3($name,1,$name.",vitoconnect_action: reading upd1 hash:".$hash." opt:".$opt." text:".$Text); # TODO: Wieder weg machen $err
# Spezial Readings update, activate mit temperatur siehe brenner Vitoladens300C # Spezial Readings update, activate mit temperatur siehe brenner Vitoladens300C
if ($feature =~ /(.*)\.deactivate/) { if ($feature =~ /(.*)\.deactivate/) {
@@ -3678,7 +3689,7 @@ sub vitoconnect_action {
$Text = "1"; $Text = "1";
} }
readingsSingleUpdate($hash,$opt,$Text,1); # Reading updaten readingsSingleUpdate($hash,$opt,$Text,1); # Reading updaten
# Log3($name,1,$name.",vitoconnect_action: reading upd2 hash:".$hash." opt:".$opt." text:".$Text); # TODO: Wieder weg machen $err #Log3($name,1,$name.",vitoconnect_action: reading upd2 hash:".$hash." opt:".$opt." text:".$Text); # TODO: Wieder weg machen $err
Log3($name,4,$name.",vitoconnect_action: set feature:".$feature." data:".$data.", korrekt ausgefuehrt"); #4 Log3($name,4,$name.",vitoconnect_action: set feature:".$feature." data:".$data.", korrekt ausgefuehrt"); #4