Hallo,
ich weiß das Umlaute seit Version 5.7 in Namen für Readings nicht mehr zulässig sind. Hat jemand eine Lösung, wenn der Name des Reading aus einer abgefragten HTML-Seite gebildet wird, wie z.B. im Modul 60_allergy.pm?
Grüße Jörg
per regexp ersetzen
my %umlaute = ("ä" => "ae", "Ä" => "Ae", "ü" => "ue", "Ü" => "Ue", "ö" => "oe", "Ö" => "Oe", "ß" => "ss" );
my $umlautkeys = join ("|", keys(%umlaute));
$string =~ s/($umlautkeys)/$umlaute{$1}/g;
Ich will mich ja nicht über fehlende Warnings bzw. Errors beschweren, aber ich bekomme keine. Update FHEM mindestens einmal die Woche.
Zitat2016.03.30 18:35:17 0: Featurelevel: 5.7
2016.03.30 18:35:17 0: Server started with 63 defined entities (fhem.pl:11144/2016-03-29 perl:5.014002 os:linux user:fhem pid:22749)
Das Modul 70_SMLUSB.pm ist allerdings noch vom 5. Feb. 2014 und da sind noch Umlaute in den Readings.
ZitatInternals:
.lastTimeHT 1459420117.90779
.lastTimeMomentanleistung 1459420117.90779
.lastTimeNT 1459420117.90779
.lastTimeZählerstand-Bezug-Total 1459420117.90779
.lastTimeZählerstand-Tarif-1-Bezug 1459420117.90779
.lastTimeZählerstand-Tarif-2-Bezug 1459420117.90779
.lastTimestatMomentanleistungDayLast 1459375195.01655
.lastTimestatMomentanleistungHourLast 1459418395.01909
.lastTimestatZählerstand-Tarif-1-Bezug 1459420117.93462
.lastTimestatZählerstand-Tarif-1-BezugLast 1459418395.01909
.lastTimestatZählerstand-Tarif-2-Bezug 1459420117.93462
.lastTimestatZählerstand-Tarif-2-BezugLast 1459418395.01909
CHANGED
DEF /dev/ttyUSB1@9600
DeviceName /dev/ttyUSB1@9600
FD 16
NAME zaehler
NR 47
PARTIAL
STATE opened
TYPE SMLUSB
.userReadings:
HASH(0x13d58e8)
HASH(0x1c87f88)
Readings:
2016-03-31 12:29:03 HT 12844.5 kWh
2016-03-31 12:29:03 Momentanleistung 59.20
2016-03-31 12:29:03 NT 48427.0 kWh
2016-03-31 12:29:03 Zählerstand-Bezug-Total 61271493.80
2016-03-31 12:29:03 Zählerstand-Tarif-1-Bezug 48426960.50
2016-03-31 12:29:03 Zählerstand-Tarif-2-Bezug 12844533.30
2016-03-31 12:28:37 statMomentanleistungDay Min: 42.50 Avg: 3352.66 Max: 22549.40
2016-03-30 23:59:55 statMomentanleistungDayLast Min: 42.00 Avg: 2342.91 Max: 24735.60
2016-03-31 12:28:37 statMomentanleistungHour Min: 58.60 Avg: 863.77 Max: 10800.30
2016-03-31 11:59:55 statMomentanleistungHourLast Min: 42.60 Avg: 963.50 Max: 12891.00
2016-03-31 12:28:37 statMomentanleistungMonth Min: 38.90 Avg: 3276.11 Max: 29784.40
2016-02-29 23:59:55 statMomentanleistungMonthLast Min: 41.10 Avg: 3570.73 Max: 33513.40
2016-03-31 12:28:37 statMomentanleistungYear Min: 38.90 Avg: 3404.38 Max: 33513.40
2015-12-31 23:59:55 statMomentanleistungYearLast Min: 30.50 Avg: 2010.04 Max: 33486.90
2014-12-15 15:56:23 statStateDay opened: 15:56:26
2014-12-14 23:59:55 statStateDayLast opened: 23:59:58
2014-12-15 15:56:23 statStateMonth opened: 4d 20:04:29 (since: 2014-12-10_19:51:44)
2016-03-31 12:28:37 statZählerstand-Tarif-1-Bezug Hour: 0.00 Day: 39510.60 Month: 2047784.80 Year: 6432974.40
2016-03-31 11:59:55 statZählerstand-Tarif-1-BezugLast Hour: 0.00 Day: 46764.30 Month: 2136983.60 Year: 14072522.10
2016-03-31 12:28:37 statZählerstand-Tarif-2-Bezug Hour: 367.70 Day: 2462.80 Month: 352777.70 Year: 1046527.00
2016-03-31 11:59:55 statZählerstand-Tarif-2-BezugLast Hour: 981.00 Day: 8463.70 Month: 351356.00 Year: 3398644.00
2016-03-30 18:53:40 state opened
Ich habe das Modul noch nicht "upgedateted", es läuft ja und andere User haben wohl Probleme mit den neueren Versionen.
https://forum.fhem.de/index.php/topic,14117.msg432144.html#msg432144 (https://forum.fhem.de/index.php/topic,14117.msg432144.html#msg432144)
Matthias arbeitet wohl daran, aber mich würde interessieren warum bei mir die Version mit den Umlauten noch klappt. Es könnte ja Probleme geben wenn ich demnächst auf einen neuen Raspi umziehe. ;)
Gruß Friedrich
Nach ist es nur ein Hinweis, siehe Versionsinformationen zu 5.7. In der nächsten offiziellen Fhem-Version führt es dann zu einem Fehler.
Grüße Jörg
Es gibt verschiedene Möglichkeiten, wie ein Modul readings generieren kann. Bei der "sauberen" Methode, in der die dazu vorgesehenen Funktionen verwendet werden, findet eine Prüfung statt, die in einer der Folgeversionen von fhem zu einer Ablehnung solcher Namen führen wird. Bei "unsauberer" Programmierung lässt sich natürlich unter Umgehung aller Prüfungen auch der größte Mist in einen Namen schreiben. Leider gibt es immer noch zu viele solcher Module, die "unsauber" arbeiten und das Problem ist, dass manche Entwickler solche Module als Vorlage für eigene Entwicklungen verwenden, ohne sich darüber bewußt zu sein, dass sie ggf. "unsauber" arbeiten.