From 5ce9906139c5b724c146085029a56b69f3727e21 Mon Sep 17 00:00:00 2001 From: jowiemann <> Date: Fri, 17 Mar 2023 14:42:39 +0000 Subject: [PATCH] 72_FRITZBOX.pm: Pruefung define um URL erweitert git-svn-id: https://svn.fhem.de/fhem/trunk@27334 2b470e98-0d58-463d-a4d8-8e2adae1ed80 --- fhem/FHEM/72_FRITZBOX.pm | 36 +++++++++++++++++++----------------- 1 file changed, 19 insertions(+), 17 deletions(-) diff --git a/fhem/FHEM/72_FRITZBOX.pm b/fhem/FHEM/72_FRITZBOX.pm index 939fdd512..f134be412 100644 --- a/fhem/FHEM/72_FRITZBOX.pm +++ b/fhem/FHEM/72_FRITZBOX.pm @@ -235,9 +235,11 @@ sub FRITZBOX_Define($$) my ($hash, $def) = @_; my @args = split("[ \t][ \t]*", $def); + my $URL_MATCH = FRITZBOX_Url_Regex(); + return "Usage: define FRITZBOX [IP address]" if(@args <2 || @args >3); - return "Error: no valid IPv4 Address: $args[2]" if defined $args[2] && $args[2] !~ m/^(\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3})$/; + return "Error: no valid IPv4 Address: $args[2]" if defined $args[2] && $args[2] !~ m=$URL_MATCH=i; my $name = $args[0]; @@ -245,7 +247,7 @@ sub FRITZBOX_Define($$) $hash->{VERSION} = $ModulVersion; $hash->{HOST} = "undefined"; - $hash->{HOST} = $args[2] if defined $args[2] && $args[2] =~ m/^(\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3})$/; + $hash->{HOST} = $args[2] if defined $args[2] && $args[2] =~ m=$URL_MATCH=i; $hash->{fhem}{definedHost} = $hash->{HOST}; # to cope with old attribute definitions my $msg; @@ -349,17 +351,17 @@ sub FRITZBOX_Rename($$) } ############################################################################### -# Expression régulière pour valider une URL en Perl # +# Expression régulière pour valider une URL en Perl # # Regular expression for URL validation in Perl # # # -# La sous-routine url_regex fournit l'expression régulière pour valider une # +# La sous-routine url_regex fournit l'expression régulière pour valider une # # URL. Ne sont pas reconnus les noms de domaine en punycode et les addresses # # IPv6. # # The url_regex subroutine returns the regular expression used to validate an # # URL. Domain names in punycode and IPv6 adresses are not recognized. # # # -# La liste de tests est celle publiée à l'adresse suivante, excepté deux # -# cas qui sont donnés comme faux, alors qu'ils sont justes. # +# La liste de tests est celle publiée à l'adresse suivante, excepté deux # +# cas qui sont donnés comme faux, alors qu'ils sont justes. # # The test list is the one published at the following adress, except for two # # cases given as false, although they are correct. # # # @@ -370,14 +372,14 @@ sub FRITZBOX_Rename($$) # # # Auteur // Author : Guillaume Lestringant # # # -# L'expression régulière est très largement basée sur celle publiée par # +# L'expression régulière est très largement basée sur celle publiée par # # Diego Perini sous licence MIT (https://gist.github.com/dperini/729294). # # Voir plus loin le texte de ladite licence (en anglais seulement). # # The regular expression is very largely based on the one published by # # Diego Perini under MIT license (https://gist.github.com/dperini/729294). # # See further for the text of sayed license. # # # -# Le présent code est placé sous licence CeCIll-B, dont le texte se trouve à # +# Le présent code est placé sous licence CeCIll-B, dont le texte se trouve à # # l'adresse http://cecill.info/licences/Licence_CeCILL-B_V1-fr.html # # This actual code is released under CeCIll-B license, whose text can be # # found at the adress http://cecill.info/licences/Licence_CeCILL-B_V1-en.html # @@ -4362,13 +4364,13 @@ sub FRITZBOX_SendMail_Shell($@) chop $field{body}; $field{body} =~ s/"/\\"/g; # change none ASCII chars in octal code for ISO-8859-1 (acc. http://www.pjb.com.au/comp/diacritics.html) - $field{body} =~ s/Ä|Ä/\\304/g; - $field{body} =~ s/Ö|Ö/\\326/g; - $field{body} =~ s/Ãœ|Ãœ/\\334/g; - $field{body} =~ s/ß|ß/\\337/g; - $field{body} =~ s/ä|ä/\\344/g; - $field{body} =~ s/ö|ö/\\366/g; - $field{body} =~ s/ü|ü/\\374/g; + $field{body} =~ s/Ä|Ä/\\304/g; + $field{body} =~ s/Ö|Ö/\\326/g; + $field{body} =~ s/Ü|Ãœ/\\334/g; + $field{body} =~ s/ß|ß/\\337/g; + $field{body} =~ s/ä|ä/\\344/g; + $field{body} =~ s/ö|ö/\\366/g; + $field{body} =~ s/ü|ü/\\374/g; push @cmdArray, '/bin/echo -e "'.$field{body}.'" >/var/tmp/fhem_nachricht.txt'; $cmd .= " -i '/var/tmp/fhem_nachricht.txt'"; @@ -6545,8 +6547,8 @@ sub FRITZBOX_fritztris($) Aktiviert / Deaktiviert die Klingelsperre für das DECT-Telefon mit der ID dect für Zeiträume:
<hh:mm-hh:mm> = Uhrzeit_von bis Uhrzeit_bis
<days> = wd für Werktags, ed für Jeden Tag, we für Wochenende
- lmode:on|off = lmode definiert die Sperre. Bei off ist sie aus, außer für den angegebenen Zeitraum.
- Bei on ist die Sperre an, außer für den angegebenen Zeitraum
+ lmode:on|off = lmode definiert die Sperre. Bei off ist sie aus, außer für den angegebenen Zeitraum.
+ Bei on ist die Sperre an, außer für den angegebenen Zeitraum
emode:on|off = emode schaltet Events bei gesetzter Klingelsperre ein/aus. Siehe hierzu die FRITZ!BOX Dokumentation
Benötigt FRITZ!OS 7.21 oder höher.