From 3a2da95a69540bacd8697e1ae25d53b619f41ab9 Mon Sep 17 00:00:00 2001 From: rudolfkoenig Date: Fri, 11 Jan 2013 09:33:46 +0000 Subject: [PATCH] HM support: set_on fix + icons git-svn-id: svn://svn.code.sf.net/p/fhem/code/trunk@2475 2b470e98-0d58-463d-a4d8-8e2adae1ed80 --- fhem/CHANGED | 1 + fhem/FHEM/01_FHEMWEB.pm | 23 ++++++++++++++++++++--- fhem/www/images/default/set_off.png | Bin 0 -> 2140 bytes fhem/www/images/default/set_on.png | Bin 0 -> 1939 bytes fhem/www/pgm2/fhemweb.js | 4 ++-- 5 files changed, 23 insertions(+), 5 deletions(-) create mode 100644 fhem/www/images/default/set_off.png create mode 100644 fhem/www/images/default/set_on.png diff --git a/fhem/CHANGED b/fhem/CHANGED index 6500c8157..5e7d732e6 100644 --- a/fhem/CHANGED +++ b/fhem/CHANGED @@ -49,6 +49,7 @@ - feature: stateFormat (readingsFn modules) and showInternalValues attributes - feature: new readingsFn modules: FS20 CUL_WS HMS CUL_EM CUL_TX EnOcean ZWave - feature: telnet client mode + - bugfix: FHEMWEB longpoll misses initial state change (HM: set_on vs. on) - 2012-10-28 (5.3) - feature: added functions trim, ltrim, rtrim, UntoggleDirect, diff --git a/fhem/FHEM/01_FHEMWEB.pm b/fhem/FHEM/01_FHEMWEB.pm index 8e2e30ca3..e62f1482c 100755 --- a/fhem/FHEM/01_FHEMWEB.pm +++ b/fhem/FHEM/01_FHEMWEB.pm @@ -486,7 +486,8 @@ FW_answerCall($) my $c = $me->{CD}; print $c "HTTP/1.1 200 OK\r\n", $FW_headercors, - "Content-Type: application/octet-stream; charset=$FW_encoding\r\n\r\n"; + "Content-Type: application/octet-stream; charset=$FW_encoding\r\n\r\n", + FW_roomStatesForInform($FW_room); return -1; } @@ -1090,7 +1091,7 @@ FW_showRoom() FW_pO "\n
$g
"; FW_pO ""; - FW_pO ""; + FW_pO "
"; foreach my $d (sort { lc(AttrVal($a,"alias",$a)) cmp lc(AttrVal($b,"alias",$b)) } keys %{$group{$g}}) { @@ -2448,6 +2449,21 @@ FW_dumpFileLog($$$) return $row; } +sub +FW_roomStatesForInform($) +{ + my ($room) = @_; + return "" if(!$room); + + my $data = ""; + my @rl = devspec2array("room=$room"); + foreach my $dn (@rl) { + my ($allSet, $cmdlist, $txt) = FW_devState($dn, ""); + $data .= "$dn<<$defs{$dn}{STATE}<<$txt\r\n"; + } + return $data; +} + sub FW_Notify($$) { @@ -2462,6 +2478,7 @@ FW_Notify($$) my $rn = AttrVal($dn, "room", ""); if($filter eq "all" || $rn =~ m/\b$filter\b/) { + # Why is saving this stuff needed? FLOORPLAN? my @old = ($FW_wname, $FW_ME, $FW_longpoll, $FW_ss, $FW_tp, $FW_subdir); $FW_wname = $ntfy->{SNAME}; $FW_ME = "/" . AttrVal($FW_wname, "webname", "fhem"); @@ -2471,7 +2488,7 @@ FW_Notify($$) $FW_tp = AttrVal($FW_wname, "touchpad", $FW_ss); my ($allSet, $cmdlist, $txt) = FW_devState($dn, ""); ($FW_wname, $FW_ME, $FW_longpoll, $FW_ss, $FW_tp, $FW_subdir) = @old; - $data = "$dn;$dev->{STATE};$txt\n"; + $data = "$dn<<$dev->{STATE}<<$txt\n"; } elsif($filter eq "console") { if($dev->{CHANGED}) { # It gets deleted sometimes (?) diff --git a/fhem/www/images/default/set_off.png b/fhem/www/images/default/set_off.png new file mode 100644 index 0000000000000000000000000000000000000000..e4e349b06e9ae9eb4e659f073fb29f46de242052 GIT binary patch literal 2140 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 Z{Q*YW^3R&`?U4Wg002ovPDHLkV1gHMoFxDN literal 0 HcmV?d00001 diff --git a/fhem/www/pgm2/fhemweb.js b/fhem/www/pgm2/fhemweb.js index b7601f903..be86c5143 100644 --- a/fhem/www/pgm2/fhemweb.js +++ b/fhem/www/pgm2/fhemweb.js @@ -30,7 +30,7 @@ FW_doUpdate() //We wait until it is complete, i.e. terminated by "\n" lines.pop(); for(var i=FW_curLine; i < lines.length; i++) { - var d = lines[i].split(";", 3); // Complete arg + var d = lines[i].split("<<", 3); // Complete arg if(d.length != 3) continue; var el = document.getElementById(d[0]); @@ -66,7 +66,7 @@ FW_longpoll() function FW_delayedStart() { - setTimeout("FW_longpoll()", 1000); + setTimeout("FW_longpoll()", 100); } /*************** LONGPOLL END **************/