Als Follow-up zu http://forum.fhem.de/index.php/topic,48615.0.html (http://forum.fhem.de/index.php/topic,48615.0.html), der leider geschlossen wurde:
In FHEMWEB gibt es Code der explizit "<" und ">" im Raum-Namen behandelt, LongPoll bzw devspec funktionieren mit solchen Räumen aber derzeit nicht. Der Patch ist einfach:
--- ../fhem.pl (revision 10744)
+++ ../fhem.pl (working copy)
@@ -1099,7 +1099,7 @@
my @res;
foreach my $dName (split(":FILTER=", $l)) {
my ($n,$op,$re) = ("NAME","=",$dName);
- if($dName =~ m/^([^!<>]*)(=|!=|<=|>=|<|>)(.*)$/) {
+ if($dName =~ m/^([^=!<>]*)(=|!=|<=|>=|<|>)(.*)$/) {
($n,$op,$re) = ($1,$2,$3);
$isAttr = 1; # Compatibility: return "" instead of $name
}
Ohne die Änderung würde "room=Blah<>" in "room=Blah","<",">" aufgedröselt werden statt "room","=","Blah<>".
Und eine Stelle bezüglich Room-Encoding hab ich noch übersehen:
--- 01_FHEMWEB.pm (revision 10744)
+++ 01_FHEMWEB.pm (working copy)
@@ -2715,7 +2715,7 @@
} else {
$room =~ s/,.*//;
}
- $link .= "&room=$room";
+ $link .= "&room=".urlEncode($room);
}
$txt = "<a href=\"$FW_ME$FW_subdir?$link$rf$FW_CSRF\">$txt</a>"
if($link !~ m/ noFhemwebLink\b/);
Cheers, Marcel
Den ersten Bug habe ich mit non-greedy geloest (ist mAn einfacher/zukunftsicherer):
if($dName =~ m/^(.*?)(=|!=|<=|>=|<|>)(.*)$/) {
den zweiten Patch habe ich uebernommen.