diff --git a/fhem/FHEM/23_LUXTRONIK2.pm b/fhem/FHEM/23_LUXTRONIK2.pm
index 4b579d887..81e7f83b2 100644
--- a/fhem/FHEM/23_LUXTRONIK2.pm
+++ b/fhem/FHEM/23_LUXTRONIK2.pm
@@ -1736,7 +1736,7 @@ LUXTRONIK2_doStatisticDeltaSingle ($$$$$$$)
LUXTRONIK2
-
+
Luxtronik 2.0 is a heating controller used in Alpha Innotec, Siemens Novelan (WPR NET) and Wolf Heiztechnik (BWL/BWS) heat pumps.
It has a built-in ethernet port, so it can be directly integrated into a local area network (LAN).
@@ -1854,7 +1854,7 @@ LUXTRONIK2_doStatisticDeltaSingle ($$$$$$$)
LUXTRONIK2
-
+
Die Luxtronik 2.0 ist eine Heizungssteuerung, welche in Wärmepumpen von Alpha Innotec,
Siemens Novelan (WPR NET) und Wolf Heiztechnik (BWL/BWS) verbaut ist.
Sie besitzt einen Ethernet Anschluss, so dass sie direkt in lokale Netzwerke (LAN) integriert werden kann.
diff --git a/fhem/FHEM/36_WMBUS.pm b/fhem/FHEM/36_WMBUS.pm
index 5e481d0d4..3dc22b078 100644
--- a/fhem/FHEM/36_WMBUS.pm
+++ b/fhem/FHEM/36_WMBUS.pm
@@ -470,7 +470,7 @@ WMBUS_Attr(@)
is_encrypted is 1 if the received message is encrypted.
decryption_ok is 1 if a message has either been successfully decrypted or if it is unencrypted.
state contains the state of the meter and may contain error message like battery low. Normally it contains 'no error'.
- battery contains ok or low.
+ battery contains ok or low.
For some well known devices specific readings like the energy consumption in kWh created.
@@ -577,7 +577,7 @@ WMBUS_Attr(@)
is_encrypted ist 1 wenn die empfangene Nachricht verschlüsselt ist.
decryption_ok ist 1 wenn die Nachricht entweder erfolgreich entschlüsselt wurde oder gar nicht verschlüsselt war.
state enthält den Status des Zählers und kann Fehlermeldungen wie 'battery low' enthalten. Normalerweise ist der Wert 'no error'.
- battery enthält ok oder low.
+ battery enthält ok oder low.
Für einige bekannte Gerätetypen werden zusätzliche Readings wie der Energieverbrauch in kWh erzeugt.
diff --git a/fhem/FHEM/70_JSONMETER.pm b/fhem/FHEM/70_JSONMETER.pm
index b77d81c61..a0a424064 100644
--- a/fhem/FHEM/70_JSONMETER.pm
+++ b/fhem/FHEM/70_JSONMETER.pm
@@ -906,7 +906,7 @@ JSONMETER_doStatisticDeltaSingle ($$$$$$)
JSONMETER
-
+
This module reads data from a measurement unit (so called smart meters for electricity, gas or heat)
that provides OBIS compliant data in JSON format on a webserver or on the FHEM file system.
@@ -1030,7 +1030,7 @@ JSONMETER_doStatisticDeltaSingle ($$$$$$)
JSONMETER
-
+
Dieses Modul liest Daten von Messgeräten (z.B. Stromzähler, Gaszähler oder Wärmezähler, so genannte Smartmeter),
welche OBIS kompatible Daten im JSON-Format auf einem Webserver oder auf dem FHEM-Dateisystem zur Verfügung stellen.
diff --git a/fhem/FHEM/98_statistics.pm b/fhem/FHEM/98_statistics.pm
index d09ceecdc..137028f3b 100644
--- a/fhem/FHEM/98_statistics.pm
+++ b/fhem/FHEM/98_statistics.pm
@@ -1019,7 +1019,7 @@ statistics_UpdateDevReading($$$$)
statistics
-
+
This modul calculates for certain readings of given devices statistical values and adds them to the devices.
Until now statistics for the following readings are automatically built:
@@ -1137,7 +1137,7 @@ statistics_UpdateDevReading($$$$)
statistics
-
+
Dieses Modul wertet von den angegebenen Geräten (als regulärer Ausdruck) bestimmte Werte statistisch aus und fügt das Ergebnis den jeweiligen Geräten als neue Werte hinzu.
@@ -1257,4 +1257,4 @@ statistics_UpdateDevReading($$$$)
=end html_DE
-=cut
\ No newline at end of file
+=cut
diff --git a/fhem/contrib/commandref_join.pl b/fhem/contrib/commandref_join.pl
index 976c25d0b..3505f5ac4 100755
--- a/fhem/contrib/commandref_join.pl
+++ b/fhem/contrib/commandref_join.pl
@@ -91,11 +91,9 @@ foreach my $lang (@lang) {
$docCount++;
$hasLink = ($l =~ m//gi);
$tagcount{$tag} -=()= ($l =~ /<\/$tag>/gi);
- $llwct{$tag} = $line if(!$llwct{$tag} || ($ot && !$tagcount{$tag}));
- #print "$mod $line $tag $tagcount{$tag}\n" if($tagcount{$tag} ne $ot);
+ $llwct{$tag} = $line if(!$tagcount{$tag});
}
}
}
diff --git a/fhem/contrib/pre-commit b/fhem/contrib/pre-commit
new file mode 100755
index 000000000..e3dca9fd6
--- /dev/null
+++ b/fhem/contrib/pre-commit
@@ -0,0 +1,94 @@
+#!/usr/bin/perl
+# $Id: commandref_join.pl 5361 2014-03-29 06:24:20Z rudolfkoenig $
+
+use strict;
+use warnings;
+sub err($$);
+
+my $svnlook='/usr/bin/svnlook';
+my $repos=$ARGV[0];
+my $txn=$ARGV[1];
+my $arg="-t $txn";
+#my $arg="-r $txn"; # local testing
+my @lang = ("EN", "DE");
+my $exitCode = 0;
+use constant TAGS => qw{ul li code b};
+
+
+my $log = `$svnlook log $arg $repos`;
+if($log !~ m/^.*:.*$/s) {
+ print << 'EOF';
+A FHEM SVN comment must have the following format
+ module: text-describing-the-change
+or
+ module: text-describing-the-change (Forum #)
+EOF
+ exit(1);
+}
+
+my $fList = `$svnlook changed $arg $repos`;
+foreach my $row (split("\n", $fList)) {
+ chomp($row);
+ my ($type, $fName) = split(" ", $row);
+ next if(!$fName || $fName !~ m+FHEM/\d\d_(.*).pm$+);
+ my $modName = $1;
+
+ foreach my $lang (@lang) {
+ my $suffix = ($lang eq "EN" ? "" : "_$lang");
+ my $tag;
+ my %tagcount= ();
+ my %llwct = (); # Last line with closed tag
+ open(MOD, "$svnlook $arg cat $repos $fName|") ||
+ die("Cant svnlook cat $fName:$!\n");
+ my $skip = 1;
+ my $line = 0;
+ my $docCount = 0;
+ my $hasLink = 0;
+ while(my $l = ) {
+ $line++;
+
+ err $fName, "DOS line encoding is not supported."
+ if($l =~ m/^=begin html$suffix.*\r/);
+
+ if($l =~ m/^=begin html$suffix$/) {
+ $l = ; # skip one line, to be able to repeat join+split
+ err($fName, "$lang: nonempty line after =begin html.")
+ if($l =~ m/^...*$/);
+ $skip = 0; $line++;
+
+ } elsif($l =~ m/^=end html$suffix$/) {
+ $skip = 1;
+
+ } elsif(!$skip) {
+ $docCount++;
+ $hasLink = ($l =~ m//gi);
+ $tagcount{$tag} -=()= ($l =~ /<\/$tag>/gi);
+ $llwct{$tag} = $line if(!$llwct{$tag} || ($ot && !$tagcount{$tag}));
+ }
+ }
+ }
+ close(MOD);
+
+ err $fName, "$lang: No document text found"
+ if(!$suffix && !$docCount);
+ err $fName, "$lang: No link"
+ if(!$suffix && $docCount && !$hasLink);
+ foreach $tag (TAGS) {
+ err $fName, "$lang: Unbalanced $tag ($tagcount{$tag}, last line ok: $llwct{$tag})"
+ if($tagcount{$tag});
+ }
+ }
+}
+
+exit($exitCode);
+
+sub
+err($$)
+{
+ my ($fName, $txt) = @_;
+ print "*** $fName: $txt\n";
+ $exitCode = 1;
+}