From d8fcd702843aa16c2b8d5a6dec50c1cf9c221d0a Mon Sep 17 00:00:00 2001 From: rudolfkoenig <> Date: Fri, 10 Jan 2014 14:33:50 +0000 Subject: [PATCH] FHEMWEB: longpoll for all & unsorted, dont call FW_devState for atEnd devices git-svn-id: https://svn.fhem.de/fhem/trunk@4605 2b470e98-0d58-463d-a4d8-8e2adae1ed80 --- fhem/FHEM/01_FHEMWEB.pm | 10 +++++++--- fhem/www/pgm2/fhemweb.js | 5 ++++- fhem/www/pgm2/fhemweb_svg.js | 5 ++--- 3 files changed, 13 insertions(+), 7 deletions(-) diff --git a/fhem/FHEM/01_FHEMWEB.pm b/fhem/FHEM/01_FHEMWEB.pm index 28a1737c3..33f61384d 100755 --- a/fhem/FHEM/01_FHEMWEB.pm +++ b/fhem/FHEM/01_FHEMWEB.pm @@ -481,7 +481,11 @@ FW_answerCall($) $me->{inform}{type} = ($FW_room ? "status" : "raw"); $me->{inform}{filter} = ($FW_room ? $FW_room : ".*"); } - my %h = map { $_ => 1 } devspec2array($me->{inform}{filter}); + my $filter = $me->{inform}{filter}; + $filter = "NAME=.*" if($filter eq "room=all"); + $filter = "room!=.*" if($filter eq "room=Unsorted"); + + my %h = map { $_ => 1 } devspec2array($filter); $me->{inform}{devices} = \%h; # NTFY_ORDER is larger than the normal order (50-) @@ -704,7 +708,6 @@ FW_digestCgi($) $cmd.=" $arg{$c}" if(defined($arg{$c}) && ($arg{$c} ne "state" || $cmd !~ m/^set/)); $cmd.=" $val{$c}" if(defined($val{$c})); -#Log3 $FW_wname, 1, "GOT:$arg -> CMD:$cmd"; return ($cmd, $c); } @@ -860,7 +863,6 @@ FW_doDetail($) { my ($d) = @_; - my $h = $defs{$d}; my $t = $h->{TYPE}; $t = "MISSING" if(!defined($t)); @@ -1989,6 +1991,8 @@ FW_roomStatesForInform($) my @data; foreach my $dn (keys %{$me->{inform}{devices}}) { next if(!defined($defs{$dn})); + my $t = $defs{$dn}{TYPE}; + next if(!$t || $modules{$t}{FW_atPageEnd}); my ($allSet, $cmdlist, $txt) = FW_devState($dn, "", \%extPage); if($defs{$dn} && $defs{$dn}{STATE} && $defs{$dn}{TYPE} ne "weblink") { push @data, "$dn<<$defs{$dn}{STATE}<<$txt"; diff --git a/fhem/www/pgm2/fhemweb.js b/fhem/www/pgm2/fhemweb.js index 3377850c5..36a2b3829 100644 --- a/fhem/www/pgm2/fhemweb.js +++ b/fhem/www/pgm2/fhemweb.js @@ -87,7 +87,10 @@ FW_longpoll() var filter="", embArr = document.getElementsByTagName("embed"); for(var i = 0; i < embArr.length; i++) { var svg = embArr[i].getSVGDocument(); - if(svg != null && svg.firstChild.nextSibling.getAttribute("flog")) + if(svg && + svg.firstChild && + svg.firstChild.nextSibling && + svg.firstChild.nextSibling.getAttribute("flog")) filter=".*"; } if(filter == "") { diff --git a/fhem/www/pgm2/fhemweb_svg.js b/fhem/www/pgm2/fhemweb_svg.js index 93b0fa35c..b13210144 100644 --- a/fhem/www/pgm2/fhemweb_svg.js +++ b/fhem/www/pgm2/fhemweb_svg.js @@ -5,10 +5,9 @@ FW_svgUpdateDevs(devs) var embArr = document.getElementsByTagName("embed"); for(var i = 0; i < embArr.length; i++) { var svg = embArr[i].getSVGDocument(); - if(svg == null) // too many events sometimes. + if(!svg || !svg.firstChild || !svg.firstChild.nextSibling) continue; - svg = svg.firstChild.nextSibling; - var flog = svg.getAttribute("flog"); + var flog = svg.firstChild.nextSibling.getAttribute("flog"); for(var j=0; j < devs.length; j++) { if(flog !== null && flog.match(" "+devs[j]+" ")) { var e = embArr[i];