Aktualisierung der Lampensymbole für HM Devices

Begonnen von tobi73, 09 Januar 2013, 11:56:36

Vorheriges Thema - Nächstes Thema

tobi73

Hallo zusammen,
in der "alten" Google Mailingliste wurde kürzlich ein Problem diskutiert, dass im Webfrontend die Lampensymbole für HM Devices nach Anklicken nicht mehr umschalten, sondern stattdessen ,,set_on" bzw ,,set_off" angezeigt wird. Erst nach Refresh des Browserfensters wird das Symbol wieder angezeigt. Liegt wohl daran, dass der Refresh der Webseite vor einem Ack des Devices kommt. Siehe Beitrag:

http://forum.fhem.de/index.php?t=msg&goto=54785&rid=494&srch=Gl%C3%BChbirne#msg_54785

Das Thema wurde scheinbar nicht fertig diskutiert bzw. gelöst. Zumindest habe ich nichts gefunden. Falls doch, sorry! Da ich seit dem letzen Update auf 5.3 (fhem.pl  Vers.2442) dieses Problem nun auch habe, hier die Frage, ob es inzwischen eine Lösung dazu gibt.

Das Verhalten  ist bei mir reproduzierbar und tritt bei der Benutzung unterschiedlicher Browser (Google, IE, Android) auf verschiedenen Systemen (Windows 7, Ubuntu, Android) auf. Das Einschalten von "longpoll" hat nicht geholfen, den Workaround, "refresh" zu nutzen finde ich nicht wirklich praktikabel. Insbesondere da ich plane, mir im Haus Bedienkonsolen mittels Billig-Tablets und pgm2-Frontend zu basteln, wäre es wichtig, dass das Ändern eines Schaltzustandes auch direkt und zuverlässig angezeigt wird, ohne manuell die Seite zu refreshen.

Danke für Eure Unterstützung!
Gruß Tobias

rudolfkoenig

Longpoll sollte das unterstuetzen.
Kannst Du bitte ein "inform timer" oder "Event Monitor" Protokoll des Einschaltens hier posten?

tobi73

Hi Rudi,
ich versuche die Fehlerbeschreibung etwas zu präzisieren, auch wenn das schwierig ist, da sich das Verhalten leider nicht 100%ig reproduzieren lässt (wie es bei Timing-Problem halt manchmal so ist...). Also:
  •  Longpoll ist eingeschaltet (1)
  • Beim Klick auf das Lampensymbol im FHEMWEB zum Toggeln funktioniert der refresh (meist), die Lampe wird nach dem Schalten im korrekten Status angezeigt, allerdings nicht von allen Systemen aus. Mit Firefox 13 bzw. 11 unter Windows und Ubuntu klappt es, mit Android nicht immer.
  • Beim Klick auf on bzw. off (also nicht auf das Symbol) im FEHMWEB wird nach dem Schalten immer set_on bzw. set_off angezeigt, das korrekte Lampensymbol erscheint erst nach manuellem Seitenrefresh.
Wenn ich richtig gelesen habe, haben andere User diese Verhalten (Funktion bei Klick auf die Lampe - Fehlfunktion bei Klick auf on oder off) auch beobachtet.
  • Im FLOORPLAN ist das Verhalten am wenigsten reproduzierbar: Manchmal funktioniert es einwandfrei, manchmal wird ,,set_on" bzw ,,set_off" angezeigt, manchmal bleibt das ursprüngliche Symbol unverändert. Strange.
Die Logs aus dem Inform timer sind unten, aber m.E. unspektakulär... Was aber ggf. hilft, sind die Einträge des Logfiles auch unten. Ich interpretiere das so, dass im ,,Gutfall", also beim Klick auf das Lampensymbol, nur das Lampensymbol neu geladen wird (ist doch auch der Sinn von longpoll, oder?). Im ,,Schlechtfall", also beim Klick auf ,,on" bzw ,,off" werden alle Symbole geholt. Greift hier longpoll vielleicht nicht!?! Habe definitiv zu wenig Ahnung davon, vielleicht ist es absoluter Blödsinn was ich schreibe, aber Du kannst mit den Logs sicher was anfangen ;-)

Danke schon mal für die Unterstützung und Gruß
Tobias

Klick auf das Lampensymbol (an  und dann aus - Symbol wird direkt aktualisiert):

2013-01-09 21:24:28 CUL_HM WZ_SD1 deviceMsg: on (to HMLAN1)
2013-01-09 21:24:28 CUL_HM WZ_SD1 on
2013-01-09 21:24:30 CUL_HM WZ_SD1 deviceMsg: off (to HMLAN1)
2013-01-09 21:24:30 CUL_HM WZ_SD1 off

Klick auf "on" und dann auf "off" (Symbol wird nicht aktualisiert):
2013-01-09 21:25:28 CUL_HM WZ_SD1 deviceMsg: on (to HMLAN1)
2013-01-09 21:25:28 CUL_HM WZ_SD1 on
2013-01-09 21:25:33 CUL_HM WZ_SD1 deviceMsg: off (to HMLAN1)
2013-01-09 21:25:33 CUL_HM WZ_SD1 off

Klick auf das Lampensymbol im FLOORPLAN (3x, nach dem ersten mal wurde kein Symbol mehr angezeigt, daher wurde der Schalter nach dem ersten mal angeschaltet und bekam dann zwei weitere male on-Befehle
2013-01-09 21:27:56 CUL_HM WZ_SD1 deviceMsg: on (to HMLAN1)
2013-01-09 21:27:56 CUL_HM WZ_SD1 on
2013-01-09 21:28:00 CUL_HM WZ_SD1 deviceMsg: on (to HMLAN1)
2013-01-09 21:28:00 CUL_HM WZ_SD1 on
2013-01-09 21:28:32 CUL_HM WZ_SD1 deviceMsg: on (to HMLAN1)
2013-01-09 21:28:32 CUL_HM WZ_SD1 on

Logfile: Ausschalten der Lampe durch Klick auf "off" (kein Refresh)
2013.01.09 21:34:12 4: Connection closed for FHEMWEB:192.168.1.72:49842
2013.01.09 21:34:12 4: HTTP FHEMWEB:192.168.1.72:49846 GET /fhem?cmd.WZ_SD1=set%20WZ_SD1%20off&room=01_Wohnzimmer
2013.01.09 21:34:12 2: CUL_HM set WZ_SD1 off rxt:1
2013.01.09 21:34:12 4: SND L:0E N:5F F:A0 CMD:11 SRC:7DE3B7 DST:WZ_SD1 0201000000 (SET CHANNEL:0x01 VALUE:0x00 RAMPTIME:0x0000) (,BIDI,RPTEN)
2013.01.09 21:34:12 4: HTTP FHEMWEB:192.168.1.72:49846 GET /fhem?room=01_Wohnzimmer
2013.01.09 21:34:12 4: /fhem?room=01_Wohnzimmer / RL: 1265 / text/html; charset=UTF-8 / Content-Encoding: gzip
 /
2013.01.09 21:34:12 4: HTTP FHEMWEB:192.168.1.72:49846 GET /fhem/css/style.css
2013.01.09 21:34:12 4: HTTP FHEMWEB:192.168.1.72:49847 GET /fhem/js/svg.js
2013.01.09 21:34:12 4: HTTP FHEMWEB:192.168.1.72:49851 GET /fhem/js/fhemweb.js
2013.01.09 21:34:12 4: HTTP FHEMWEB:192.168.1.72:49846 GET /fhem/icons/darklogo
2013.01.09 21:34:12 4: HTTP FHEMWEB:192.168.1.72:49849 GET /fhem/icons/icoEverything
2013.01.09 21:34:12 4: HTTP FHEMWEB:192.168.1.72:49847 GET /fhem/icons/WZ_ALW1.OK
2013.01.09 21:34:12 4: RCV L:0E N:5F F:80 CMD:02 SRC:WZ_SD1 DST:7DE3B7 010100001F (ACK_STATUS CHANNEL:0x01 STATUS:0x00 UP:0x00 DOWN:0x00 LOWBAT:0x00 RSSI:0x1F) (,RPTEN)
2013.01.09 21:34:13 4: HTTP FHEMWEB:192.168.1.72:49846 GET /fhem?room=01_Wohnzimmer&XHR=1&inform=1
2013.01.09 21:34:19 4: HTTP FHEMWEB:192.168.1.72:49851 GET /fhem?cmd=logwrapper%20Logfile%20text%20fhem-2013-01.log

Logfile: Ausschalten der Lampe durch Klick auf das Lampensymbol (refresh funktioniert)

2013.01.09 21:36:47 4: HTTP FHEMWEB:192.168.1.72:49862 GET /fhem?XHR=1&cmd.WZ_SD1=set%20WZ_SD1%20off&room=01_Wohnzimmer
2013.01.09 21:36:47 2: CUL_HM set WZ_SD1 off rxt:1
2013.01.09 21:36:47 4: SND L:0E N:61 F:A0 CMD:11 SRC:7DE3B7 DST:WZ_SD1 0201000000 (SET CHANNEL:0x01 VALUE:0x00 RAMPTIME:0x0000) (,BIDI,RPTEN)
2013.01.09 21:36:47 4: /fhem?XHR=1&cmd.WZ_SD1=set%20WZ_SD1%20off&room=01_Wohnzimmer / RL: 20 / text/plain; charset=UTF-8 / Content-Encoding: gzip
 /
2013.01.09 21:36:47 4: RCV L:0E N:61 F:80 CMD:02 SRC:WZ_SD1 DST:7DE3B7 0101000020 (ACK_STATUS CHANNEL:0x01 STATUS:0x00 UP:0x00 DOWN:0x00 LOWBAT:0x00 RSSI:0x20) (,RPTEN)
2013.01.09 21:36:48 4: HTTP FHEMWEB:192.168.1.72:49862 GET /fhem/icons/off[/b
2013.01.09 21:36:59 4: HTTP FHEMWEB:192.168.1.72:49862 GET /fhem?cmd=logwrapper%20Logfile%20text%20fhem-2013-01.log


rudolfkoenig

Habs gefixed.

Das Problem kommt daher, dass Martin die HM Stati von meinem optimistischen Version mit "on + evtl. MISSING ACK" auf dem pessimistischen "set_on -> on oder MISSING ACK" umgestellt hat, und longpoll Statusaenderungen erst eine Sekunde nach dem Aufruf der Seite bekommen hat. In diesem Zusammenhang fiel mir gerade auch auf, dass der Status set_on gar nicht als Event existiert, finde ich auch komisch.

Meine Aenderungen:
- das JavaScript-Codestueck fuer longpoll bekommt ab jetzt von FHEMWEB initial alle Stati im Raum nochmal. Das koennte in einem schlechten Browser zu flimmern fuehren, aktuelle Browser sind aber nicht schlecht.
- den Timeout von 1 Sekunde auf 0.1 runtergesetzt. Wer damit Probleme hat, soll sich melden.
- set_on und set_off icons eingefuehrt (entspricht on/off mit einem roten ! in der mitte), damit flimmert es weniger.

Nach dem restart ist auch im Browser ein reload notwendig, damit das javascript neu geladen wird.

tobi73

Hi Rudi!
Habe gerade die vier betreffenden Files aus dem svn gezogen und eingespielt. Funktioniert perfekt - in Foorplan habe ich sporadisch die neuen Lampen mit "Ausrufezeichen", aber auch nicht mehr häufig, hast Du da auch was geändert?
Mit dem Tablet gab's noch Probleme, aber das lag am Browser. Firefox aufgespielt und dann wars dort auch OK. Wie Du schreibst, es gibt halt "gute" und "schlechte" Browser...

Mal wieder großes Lob für die schnelle Reaktion!
Gruß Tobias


tobi73

Hallo zusammen!

Ich will nicht kleinlich sein oder nerven, muss das Thema aber nochmals aufmachen. Die Änderungen, die Rudi durchgeführt haben, haben das Problem im  fhemweb gelöst. Das funktioniert prima. Leider ist die Funktion in floorplan aber noch nicht ganz stabil:

Es gibt Fälle, in denen beim ,,Mouseover" über ein Lampensymbol der Mauszeiger unverändert bleibt. Dann funktioniert das Schalten einwandfrei und der Status des Lampensymbols geändert. In diesem Fall wird die js Funktion ,,FW_delayedStart()" von floorplan.pm scheinbar nicht aufgerufen.

In anderen Fällen ändert sich  beim ,,Mouseover" über ein Lampensymbol der Cursor in das Handsymbol. Jetzt besteht wieder das Problem, dass der Aktor schaltet, aber das ,,set_on" (bzw. set_off) Symbol mit dem Ausrufezeichen angezeigt  wird. Dabei bleibt's dann, man muss  die Seite aktualisieren um den ,,richtigen" Status zu bekommen. Hier wird wohl ,,FW_delayedStart()" aufgerufen.

Wann beim Mouseover ein Pfeil angezeigt wird, wann eine Hand, konnte ich beim Besten willen nicht nachvollziehen, schien fast zufällig

Ist es möglich eine ähnliche Korrektur, wie sie Rudi für fhemweb gemacht hat, auch in floorplan zu implementieren? Die Logs bei verbose 4 oder 5 werden absolut unübersichtlich, daher hab ich unten mal die Logs aus der Web-Konsole des FF angehängt. Falls zur Fehlereingrenzung  weiteres notwendig sein sollte, bitte einfach melden.

Viele Dank für Eure Hilfe! Gruss
Tobias

Floorplan "Gutfall" (FF Log: Klick auf Lampe im Floorplan, Cursor=Pfeil)

[21:47:58.119] GET https://192.168.1.71:8083/fhem?XHR=1&cmd.WZ_SD1=set%20WZ_SD1%20off&room=01_Wohnzimmer [HTTP/1.1 200 OK 32ms]
[21:47:58.448] GET https://192.168.1.71:8083/fhem/icons/off [HTTP/1.1 304 Not Modified 0ms]


"Floorplan "Schlechtfall" (FF Log: Klick auf Lampe im Floorplan, Cursor=Hand)"

[21:48:47.181] GET https://192.168.1.71:8083/fhem/floorplan/UG?cmd.WZ_SD1=set%20WZ_SD1%20off&room=01_Wohnzimmer [HTTP/1.1 302 Found 16ms]
[21:48:47.182] GET https://192.168.1.71:8083/fhem/floorplan/UG [HTTP/1.1 200 OK 93ms]
[21:48:47.314] GET https://192.168.1.71:8083/fhem/css/darkfloorplanstyle.css [HTTP/1.1 304 Not Modified 16ms]
[21:48:47.315] GET https://192.168.1.71:8083/fhem/js/svg.js [HTTP/1.1 304 Not Modified 16ms]
[21:48:47.316] GET https://192.168.1.71:8083/fhem/js/fhemweb.js [HTTP/1.1 304 Not Modified 31ms]
[21:48:47.275] Unbekannte Eigenschaft '-moz-border-radius'.  Deklaration ignoriert. @ https://192.168.1.71:8083/fhem/css/darkfloorplanstyle.css:6
[21:48:47.275] Unbekannte Eigenschaft 'backround'.  Deklaration ignoriert. @ https://192.168.1.71:8083/fhem/css/darkfloorplanstyle.css:25
[21:48:47.319] GET https://192.168.1.71:8083/fhem/icons/darklogo [HTTP/1.1 304 Not Modified 16ms]
[21:48:47.320] GET https://192.168.1.71:8083/fhem/icons/fp_UG [HTTP/1.1 304 Not Modified 110ms]
[21:48:47.321] GET https://192.168.1.71:8083/fhem/icons/on [HTTP/1.1 304 Not Modified 94ms]
[21:48:47.322] GET https://192.168.1.71:8083/fhem/icons/off [HTTP/1.1 304 Not Modified 78ms]
[21:48:47.322] GET https://192.168.1.71:8083/fhem/icons/WR_WS1_Anz.OK [HTTP/1.1 304 Not Modified 94ms]
[21:48:47.323] GET https://192.168.1.71:8083/fhem/icons/set_off [HTTP/1.1 304 Not Modified 110ms]
[21:48:47.324] GET https://192.168.1.71:8083/fhem/icons/WZ_WS1_Anz.OK [HTTP/1.1 304 Not Modified 94ms]

UliM

Moin,
der Effekt ist mir bekannt, die Ursache leider nicht.
V.A. ist mir nicht klar, ob die Ursache infloorplan.pm oder in fhemweb.js liegt.

Ich hoffe, dass Rudi oder Matthias hier unterstützen können. Ich fürchte nur, dass zuerst jemand ein Szenario posten muss, mit dem man das Verhalten reproduzieren kann, sonst wird die Suche doch sehr aufwändig...

LG, Uli
RPi4/Raspbian, CUL V3 (ca. 30 HomeMatic-devices), LAN (HarmonyHub, alexa etc.).  Fördermitglied des FHEM e.V.

tobi73

Hi Uli,
danke erst mal für Dein Feedback.
ZitatIch fürchte nur, dass zuerst jemand ein Szenario posten muss, mit dem man das Verhalten reproduzieren kann, sonst wird die Suche doch sehr aufwändig...
OK, ich bin dran und bau gerade mal eine Minimalkonfiguration auf und beschreibe dann noch so detailliert wie möglich die Beobachtungen inkl. Logs und Konfigfiles.
Dauert noch etwas - bis spätestens, wenn heute Abend die Kinder im Bett sind (und ein Bier vor mir steht)... Jetzt muss ich erst mal zum Schlittenfahren, sonst sinkt der WAF erheblich ;-)

Bis dahin Gruß
Tobias

tobi73

Hallo zusammen,

So, bin soweit  sorry ist ein etwas längerer Post, aber die Situation ist ja auch nicht ganz trivial...

Die Minimalkonfiguration, mit der ich getestet habe, besteht aus dem FHEM Server auf einer Synology USB Station, einem HMLAN, einer schaltbaren HM Steckdose (Zwischenstecker HM-LC-SW1-PL) und einem Floorplan (fhem.cfg s. unten). Zugriff auf das Frontend erfolgt im selben LAN mit Firefox 18.0 unter Windows. Folgende Tests habe ich in dieser Reihenfolge durchgeführt. (Logs dazu unten unter der jeweiligen [id]):
  • Den Floorplan "TestFP" vom Web GUI aus aufgerufen (nach Serverstart) [1]
    -> Die Lampe ist ausgeschalten und beim Mouseover über die Lampe wird der Cursor als ,,Hand" angezeigt

  • Anklicken des Lampensymbols (Cursor = Hand) [2]
    -> Der Steckdosenschalter schaltet ein, die Lampe wird mit dem Symbol ,,an mit Ausrufezeichen" angezeigt -  (d.h. Status ,,set_on"). Beim Mouseover wird weiterhin die Hand angezeigt.

  • Der Schalter wird
manuell (also durch Druck auf den Taster am Stecker direkt!) ausgeschalten [3]
-> im Web GUI wird die Lampe nach kurzer Zeit ,,ausgeschaltet" angezeigt (ohne Ausrufezeichen) und beim Mouseover erscheint keine(!) Hand mehr, sondern der Cursor bleibt unverändert als Pfeil.

  • Anklicken des Lampensymbols (Cursor = Pfeil) [4]
    -> Der Schalter schaltet ein und im Web GUI wird die Lampe angeschaltet (ohne Ausrufezeichen) angezeigt, beim Mouseover keine Hand, sondern Pfeil. Also jetzt das ,,korrekte" Verhalten.[/list]
    In diesem Status kann der Schalter durch Anklicken des Lampensymbols beliebig oft an- und ausgeschaltet werden. Funktioniert dann einwandfrei und stabil (Cursor=Pfeil). BIS: irgendwann die Browserseite neu geladen wird (z.B. manuell). Dann werden die Symbole wieder angezeigt mit einem Mouseover=Hand. Beim Schalten führt dann das wieder zu dem unter [1] beschriebenen Verhalten. BIS irgendwann das Device aktiv seinen Status meldet. Etc. etc.

    Meine Interpretation der Beobachtungen und der Logs:
    • Das Anklicken der Schaltsymbole wenn Cursor=Hand führt zu einem neu laden der ganzen Seite.
    • Der Schaltbefehl wird zwar ausgeführt. Allerdings geht der von ,,off" über ,,Set_on" auf ,,on". Die letzte Statusänderung von ,,set_on" auf ,,on" wird nicht registriert - ein Timingproblem? Hier hilft übrigens auch nicht, den Verzögerungstimer in der Funktion ,,delayedStart" in fehmweb.js, den Rudi vom 1000 auf 100 gesetzt hat, testweise auf ,,0" zu stellen!
    • Sendet ein Gerät aktiv eine Statusänderung und wird die Website darüber informiert (longpoll Funktionalität), so wird nicht die komplette Seite neu geladen sondern nur das Symbol (Stimmt das???) Das Schaltsymbol wird dann anders dargestellt, (Mouseover = Pfeil).
    • Das Anklicken des Symboles, wenn Cursor=Pfeil, führt nicht zum neu laden der ganzen Seite, sondern nur des Symbols.
    Ich hoffe, das ist so reproduzierbar. Wenn ich irgendwie weitere Logs oder Traces machen kann, die weiterhelfen, oder sonstige Infos benötigt werden, melde Euch bitte. Ich helfe gerne, das Problem zu finden schließlich bin ich ja auch an einer Lösung interessiert ;-) Aber mit meinen inzwischen recht eingerosteten Programmierkentnissen und keiner Ahnung von Webprogrammierung bin ich trotz einiger nächtlicher Stunden am Code untersuchen und loggen nicht weitergekommen ...

    Danke schon mal und Gruß
    Tobias



    Fhem.cfg
    attr global autoload_undefined_devices 1
    attr global logfile /opt/fhem/log/fhemTest-%Y-%m.log
    attr global modpath /opt/fhem
    attr global motd none
    attr global statefile /opt/fhem/log/fhemTest.save
    attr global userattr devStateIcon fp_TestFP icon structexclude webCmd
    attr global verbose 5

    define WEB FHEMWEB 8083 global
    attr WEB longpoll 1
    attr WEB stylesheetPrefix dark

    define Logfile FileLog /opt/fhem/log/fhemTest-%Y-%m.log fakelog

    define autocreate autocreate
    attr autocreate autosave 1
    attr autocreate device_room %TYPE
    attr autocreate filelog /opt/fhem/log/%NAME-%Y.log
    attr autocreate weblink 1
    attr autocreate weblink_room Plots

    define TestFP FLOORPLAN

    define telnetPort telnet 7072 global

    define HMLAN1 HMLAN 192.168.1.88
    attr HMLAN1 hmId 7DE3B7
    attr HMLAN1 hmProtocolEvents 1

    define SD1 CUL_HM 1A33B1
    attr SD1 devInfo 010100
    attr SD1 firmware 1.9
    attr SD1 fp_TestFP 400,500,0,
    attr SD1 hmClass receiver
    attr SD1 model HM-LC-SW1-PL
    attr SD1 room Testraum
    attr SD1 serialNr JEQ0036741
    attr SD1 subType switch
    define FileLog_SD1 FileLog /opt/fhem/log/SD1-%Y.log SD1
    attr FileLog_SD1 logtype text



    [1] Nach Server Start den Floorplan im Web GUI aufgerufen

    Fhem Log

    2013.01.19 15:12:50 4: HTTP FHEMWEB:192.168.1.80:50499 GET /fhem/floorplan/TestFP
    2013.01.19 15:12:50 4: /fhem/floorplan/TestFP / RL: 652 / text/html; charset=UTF-8 / Content-Encoding: gzip
     /
    2013.01.19 15:12:50 4: HTTP FHEMWEB:192.168.1.80:50497 GET /fhem/css/darkfloorplanstyle.css
    2013.01.19 15:12:50 4: HTTP FHEMWEB:192.168.1.80:50500 GET /fhem/icons/fp_TestFP
    2013.01.19 15:12:50 4: HTTP FHEMWEB:192.168.1.80:50499 GET /fhem/js/svg.js
    2013.01.19 15:12:50 4: HTTP FHEMWEB:192.168.1.80:50498 GET /fhem/icons/off
    2013.01.19 15:12:50 4: HTTP FHEMWEB:192.168.1.80:50497 GET /fhem/icons/darklogo
    2013.01.19 15:12:50 4: HTTP FHEMWEB:192.168.1.80:50499 GET /fhem/floorplan/TestFP?room=all&XHR=1&inform=1


    Browser-Log
    [15:12:42.692] GET http://192.168.1.71:8083/fhem/floorplan/TestFP [HTTP/1.1 200 OK 31ms]
    [15:12:42.770] GET http://192.168.1.71:8083/fhem/css/darkfloorplanstyle.css [HTTP/1.1 304 Not Modified 16ms]
    [15:12:42.771] GET http://192.168.1.71:8083/fhem/js/svg.js [HTTP/1.1 304 Not Modified 16ms]
    [15:12:42.772] GET http://192.168.1.71:8083/fhem/icons/fp_TestFP [HTTP/1.1 304 Not Modified 16ms]
    [15:12:42.774] GET http://192.168.1.71:8083/fhem/icons/off [HTTP/1.1 304 Not Modified 32ms]
    [15:12:42.725] Unbekannte Eigenschaft '-moz-border-radius'.  Deklaration ignoriert. @ http://192.168.1.71:8083/fhem/css/darkfloorplanstyle.css:6
    [15:12:42.725] Unbekannte Eigenschaft 'backround'.  Deklaration ignoriert. @ http://192.168.1.71:8083/fhem/css/darkfloorplanstyle.css:25
    [15:12:42.918] GET http://192.168.1.71:8083/fhem/icons/darklogo [HTTP/1.1 304 Not Modified 0ms]
    [15:12:42.996] GET http://192.168.1.71:8083/fhem/floorplan/TestFP?room=all&XHR=1&inform=1 [HTTP/1.1 200 OK]



    [2] Anklicken des Lampensymbols (Cursor = Hand)

    Fhem Log

    2013.01.19 15:14:00 4: Connection closed for FHEMWEB:192.168.1.80:50499
    2013.01.19 15:14:00 4: HTTP FHEMWEB:192.168.1.80:50497 GET /fhem/floorplan/TestFP?cmd.SD1=set%20SD1%20on&room=Testraum
    2013.01.19 15:14:00 5: Cmd: >set SD1 on<
    2013.01.19 15:14:00 2: CUL_HM set SD1 on rxt:1
    2013.01.19 15:14:00 5: HMLAN_Send:  +1A33B1,00,00,
    2013.01.19 15:14:00 5: HMLAN_Send:  S5328AFDE,00,00000000,01,5328AFDE,01A0117DE3B71A33B10201C80000
    2013.01.19 15:14:00 4: SND L:0E N:01 F:A0 CMD:11 SRC:7DE3B7 DST:SD1 0201C80000 (SET CHANNEL:0x01 VALUE:0xC8 RAMPTIME:0x0000) (,BIDI,RPTEN)
    2013.01.19 15:14:00 4: HTTP FHEMWEB:192.168.1.80:50497 GET /fhem/floorplan/TestFP
    2013.01.19 15:14:00 4: /fhem/floorplan/TestFP / RL: 656 / text/html; charset=UTF-8 / Content-Encoding: gzip
     /
    2013.01.19 15:14:00 4: HTTP FHEMWEB:192.168.1.80:50497 GET /fhem/css/darkfloorplanstyle.css
    2013.01.19 15:14:00 4: HTTP FHEMWEB:192.168.1.80:50500 GET /fhem/js/svg.js
    2013.01.19 15:14:00 4: HTTP FHEMWEB:192.168.1.80:50498 GET /fhem/icons/set_on
    2013.01.19 15:14:00 4: HTTP FHEMWEB:192.168.1.80:50497 GET /fhem/icons/darklogo
    2013.01.19 15:14:00 4: HTTP FHEMWEB:192.168.1.80:50500 GET /fhem/icons/fp_TestFP
    2013.01.19 15:14:00 5: HMLAN/RAW: /R5328AFDE,0001,132FAE8D,FF,FFBE,0180021A33B17DE3B70101000045

    2013.01.19 15:14:00 5: HMLAN_Parse: HMLAN1 S:R5328AFDE stat:0001 t:132FAE8D d:FF r:FFBE m:0180021A33B17DE3B70101000045
    2013.01.19 15:14:00 5: HMLAN1 dispatch A0E0180021A33B17DE3B70101000045
    2013.01.19 15:14:00 4: RCV L:0E N:01 F:80 CMD:02 SRC:SD1 DST:7DE3B7 0101000045 (ACK_STATUS CHANNEL:0x01 STATUS:0x00 UP:0x00 DOWN:0x00 LOWBAT:0x00 RSSI:0x45) (,RPTEN)
    2013.01.19 15:14:00 5: Triggering SD1 (2 changes)
    2013.01.19 15:14:00 5: Notify loop for SD1 deviceMsg: off (to HMLAN1)
    2013.01.19 15:14:00 4: HTTP FHEMWEB:192.168.1.80:50497 GET /fhem/floorplan/TestFP?room=all&XHR=1&inform=1


    Browser-Log
    [15:13:52.809] GET http://192.168.1.71:8083/fhem/floorplan/TestFP?cmd.SD1=set%20SD1%20on&room=Testraum [HTTP/1.1 302 Found 16ms]
    [15:13:52.811] GET http://192.168.1.71:8083/fhem/floorplan/TestFP [HTTP/1.1 200 OK 31ms]
    [15:13:52.911] GET http://192.168.1.71:8083/fhem/css/darkfloorplanstyle.css [HTTP/1.1 304 Not Modified 15ms]
    [15:13:52.912] GET http://192.168.1.71:8083/fhem/js/svg.js [HTTP/1.1 304 Not Modified 15ms]
    [15:13:52.914] GET http://192.168.1.71:8083/fhem/icons/set_on [HTTP/1.1 304 Not Modified 15ms]
    [15:13:52.860] Unbekannte Eigenschaft '-moz-border-radius'.  Deklaration ignoriert. @ http://192.168.1.71:8083/fhem/css/darkfloorplanstyle.css:6
    [15:13:52.860] Unbekannte Eigenschaft 'backround'.  Deklaration ignoriert. @ http://192.168.1.71:8083/fhem/css/darkfloorplanstyle.css:25
    [15:13:52.919] GET http://192.168.1.71:8083/fhem/icons/darklogo [HTTP/1.1 304 Not Modified 0ms]
    [15:13:52.920] GET http://192.168.1.71:8083/fhem/icons/fp_TestFP [HTTP/1.1 304 Not Modified 16ms]
    [15:13:53.100] GET http://192.168.1.71:8083/fhem/floorplan/TestFP?room=all&XHR=1&inform=1 [HTTP/1.1 200 OK]



    [3] Manuelles ausschalten


    Fhem Log
    2013.01.19 15:17:24 5: HMLAN/RAW: /E1A33B1,0000,1332CA13,FF,FFBF,0484101A33B100000006010000

    2013.01.19 15:17:24 5: HMLAN_Parse: HMLAN1 S:E1A33B1   stat:0000 t:1332CA13 d:FF r:FFBF m:0484101A33B100000006010000
    2013.01.19 15:17:24 5: HMLAN1 dispatch A0D0484101A33B100000006010000
    2013.01.19 15:17:24 4: RCV L:0D N:04 F:84 CMD:10 SRC:SD1 DST:broadcast 06010000 (INFO_ACTUATOR_STATUS) (,CFG,RPTEN)
    2013.01.19 15:17:24 5: Triggering SD1 (2 changes)
    2013.01.19 15:17:24 5: Notify loop for SD1 deviceMsg: off (to broadcast)
    2013.01.19 15:17:24 4: Connection accepted from FHEMWEB:192.168.1.80:50506
    2013.01.19 15:17:24 4: HTTP FHEMWEB:192.168.1.80:50506 GET /fhem/icons/off


    Browser-Log
    [15:17:16.765] GET http://192.168.1.71:8083/fhem/icons/off [HTTP/1.1 304 Not Modified 16ms]


    [4] Anklicken des Lampensymbols (Cursor = Pfeil)

    Fhem Log
    2013.01.19 15:19:50 4: Connection accepted from FHEMWEB:192.168.1.80:50508
    2013.01.19 15:19:50 4: HTTP FHEMWEB:192.168.1.80:50508 GET /fhem?XHR=1&cmd.SD1=set%20SD1%20on&room=Testraum
    2013.01.19 15:19:50 5: Cmd: >set SD1 on<
    2013.01.19 15:19:50 2: CUL_HM set SD1 on rxt:1
    2013.01.19 15:19:50 5: HMLAN_Send:  S532E0652,00,00000000,01,532E0652,03A0117DE3B71A33B10201C80000
    2013.01.19 15:19:50 4: SND L:0E N:03 F:A0 CMD:11 SRC:7DE3B7 DST:SD1 0201C80000 (SET CHANNEL:0x01 VALUE:0xC8 RAMPTIME:0x0000) (,BIDI,RPTEN)
    2013.01.19 15:19:50 4: /fhem?XHR=1&cmd.SD1=set%20SD1%20on&room=Testraum / RL: 20 / text/plain; charset=UTF-8 / Content-Encoding: gzip
     /
    2013.01.19 15:19:50 5: HMLAN/RAW: /R532E0652,0001,1335052E,FF,FFBC,0380021A33B17DE3B70101C80048

    2013.01.19 15:19:50 5: HMLAN_Parse: HMLAN1 S:R532E0652 stat:0001 t:1335052E d:FF r:FFBC m:0380021A33B17DE3B70101C80048
    2013.01.19 15:19:50 5: HMLAN1 dispatch A0E0380021A33B17DE3B70101C80048
    2013.01.19 15:19:50 4: RCV L:0E N:03 F:80 CMD:02 SRC:SD1 DST:7DE3B7 0101C80048 (ACK_STATUS CHANNEL:0x01 STATUS:0xC8 UP:0x00 DOWN:0x00 LOWBAT:0x00 RSSI:0x48) (,RPTEN)
    2013.01.19 15:19:50 5: Triggering SD1 (2 changes)
    2013.01.19 15:19:50 5: Notify loop for SD1 deviceMsg: on (to HMLAN1)
    2013.01.19 15:19:50 4: HTTP FHEMWEB:192.168.1.80:50508 GET /fhem/icons/on


    Browser-Log
    [15:19:42.648] GET http://192.168.1.71:8083/fhem?XHR=1&cmd.SD1=set%20SD1%20on&room=Testraum [HTTP/1.1 200 OK 31ms]
    [15:19:42.952] GET http://192.168.1.71:8083/fhem/icons/on [HTTP/1.1 304 Not Modified 0ms]


    Matthias Gehre

    Ein bisschen Background:
    Ein aktualisieren eines Symbols über Longpoll führt einerseits zum Austausch der Grafik, und andererseits
    wird der Link von
    <a href="/fhem/floorplan/Grundriss?cmd.IkeaLampe=set IkeaLampe on">
    auf
    <a onClick=\"FW_cmd('$FW_ME$FW_subdir?XHR=1&$link')\">
    geändert.
    Erster Linktype führt zum Neuladen der gesamten Seite, zweiter Linktyp nicht.
    Es wäre natürlich konsistenter, wenn FHEMWEB gleich den zweiten Linktyp schicken würde, wenn der Longpoll Modus aktiviert ist.

    tobi73

    Hi Matthias,

    danke für dein Feedback.
    ZitatEs wäre natürlich konsistenter, wenn FHEMWEB gleich den zweiten Linktyp schicken würde, wenn der Longpoll Modus aktiviert ist.
    ... ja, genau da bin ich nach einigem Debuggen und Ausgraben längst eingerosteter html Kenntnisse auch angelangt. Evtl. kann ich auch eine potentielle Lösung anbieten:

    In floorplan.pm ruft die Funktion FP_show() die Funktion FW_devState aus fhemweb.pm auf. Die globale Variable FW_longpoll steht dort auf 0 (ich hab mich jetzt ehrlich gesagt nicht mit den Gültigkeitsregeln globaler Variablen in perl befassen wollen, ein Log 1 auf die FW_longpoll zeigt das aber)

    -> Ergo wird von FW_devState statt des ,,onClick="- Link (wäre Zeile 2589) der ,,href="-Link zurückgegeben (Zeile 2595).
    Potentielle Lösung: Beim Funktionsstart von FW_devState das Attribut longpoll lesen und analog zu Zeile 553 die globale Variable FW_longpoll setzten (wobe ich nicht sicher bin ob der Code nach dem && nötig ist...).

    Also Einfügen nach Zeile 2534:
    $FW_longpoll = (AttrVal($FW_wname, "longpoll", undef) && (($FW_room && !$FW_detail) || ($FW_subdir ne "")));
    Rudi, kannst Du mal prüfen ob das so Sinn macht und ggf. ändern? Ich hab's mit FF18 unter Windows und Android getestet und funktioniert. Im IE klappt es nicht (war aber auch vorher so, sind evtl. Sicherheitseinstellungen. Ich nutze den IE eigentlich nie.)

    Das löst zumindest das ,,Problem", dass beim Anklicken eines Schaltsymbols immer die komplette Seite neu geladen wird und der Statuswechsel von HM Devices von ,,set_on" auf ,,on" (bzw. andersrum) ,,verschluckt" wird.  Ob es andere (negative) Effekte hat, weiß ich nicht, da ist die Einschätzung der Experten gefragt...

    Danke und Gruß
    Tobias

    rudolfkoenig

    Kannst Du bitte in beiden Modulen die Zeile

    my $FW_longpoll;

    gegen

    use vars qw($FW_longpoll);

    tauschen, unt testen, ob es damit tut? wenn ja, dann sollten wir auch die anderen gemeinsam verwendeten Variablen so aendern.

    Matthias Gehre

    Warum so umständlich (=fehleranfällig)? Warum nicht überall
    $FW_longpoll durch AttrVal($FW_wname, "longpoll", undef) ersetzen?
    Oder in eine Funktion isLongpoll() auslagern?

    Mit den Variablen muss man immer schauen,
    ob die schon korrekt gesetzt sind, da sich die Werte je nach FHEMWEB Instanz/aktuellem Request
    ändern. Dabei ist in AttrVal der Wert immer aktuell.

    Und warum muss man (($FW_room && !$FW_detail) || ($FW_subdir ne "")))  testen?
    Kann longpoll nicht auch auf FW_detail eingesetzt werden? Spricht m.E. nichts dagegen.

    rudolfkoenig

    Wieso nicht: hab den Vorschlag angenommen und mit FHEMWEB getestet: es funktioniert. Obe es mit FLOORPLAN tut, kann ich es nicht sagen. Hab die Aenderungen aber eingecheckt.

    UliM

    @Tobi: magst Du das nach einem update mal testen? Evtl reicht ja schon die Änderung in fhemweb.
    Falls nein, ziehe ich floorplan gerne nach.
    Grüßle,
    Uli
    RPi4/Raspbian, CUL V3 (ca. 30 HomeMatic-devices), LAN (HarmonyHub, alexa etc.).  Fördermitglied des FHEM e.V.

    tobi73

    Hallo Jungs,
    Vielen Dank erst mal für Eure Aktivitäten und sorry dass ich mich erst jetzt  melde, bin erst jetzt wieder zu Hause, nachdem am Flughafen in MUC heut ziemliches Chaos war ...

    Zu den Tests
    ZitatKannst Du bitte in beiden Modulen die Zeile

    my $FW_longpoll;

    gegen

    use vars qw($FW_longpoll);
    ... hab ich kurz geändert und ausprobiert (<>"getestet") und es scheint zu funktionieren. Nachdem Rudi in fhemweb.pm es aber nun doch anders gelöst hat, hab ich nicht weitergetestet.


    Mit den  aktuellen Versionen von fhemweb (2546) und floorplan (2547) wurden dann etwas detaillierter die Funktion geprüft (aber sicher auch noch nicht 100% im Detail getestet) > Sieht aber auch sehr gut aus! Falls mir noch was auffällt in den kommenden Tagen beim Testen, melde ich mich.

    Eines versteh ich aber nicht ganz:
    Uli hat ja auch die Floorplan.pm geändert. Einerseits wg. Update von dropdowns und readings durch longpoll. OK, verstanden, sonst passt die Anzahl der Parameter der FW_select nicht zu fhemweb.pm. Es wurde aber auch die globale Variablendefinition  
    use vars qw($FW_longpoll)
    eingefügt. Rudi hatte aber im fhemweb.pm  diese globale Variable doch rausgenommen, da immer direkt die Attribute geprüft werden. Solltet Ihr Euch vielleicht nochmals ansehen, evtl.  versteh ich es auch nicht richtig.


    Gruss und danke (!) nochmal
    Tobi