[FLOORPLAN] longpollfilter auf Devices des Floorplans einschränken

Begonnen von nesges, 31 Januar 2015, 01:36:21

Vorheriges Thema - Nächstes Thema

nesges

In http://forum.fhem.de/index.php/topic,33035.msg254331.html#msg254331 haben wir in 95_FLOORPLAN.pm eine Änderung am longpollfilter vorgenommen, durch die Events von Devices, die nicht im Floorplan enthalten sind, effektiv ausgeschlossen werden. Da bereits ein Filter dafür in fhemweb.js vorgesehen war - der mE aber nicht wie erwartet funktioniert (Events aller Devices sind in der JS-Console sichtbar) - bin ich nicht sicher ob der vorhandene Filter fehlerhaft ist, oder wir etwas entscheidendes übersehen haben.

Der Filter, der für den Floorplan "LCARS_R_WOHNZIMMER_LICHT" durch fhemweb.js gesetzt wird: .*;iconPath=LCARS_R_WOHNZIMMER_LICHT
Der neue Filter: fp_LCARS_R_WOHNZIMMER_LICHT=.+

Vorgeschlagene Änderung an 95_FLOORPLAN.pm:

428c428,431
<   FW_pO "</head>\n<body name=\"$title\" $gen $lp $csrf>";
---
>   # FW_pO "</head>\n<body name=\"$title\" $gen $lp $csrf>";
>   my $FP_name_uri=$FP_name;
>   $FP_name_uri =~ s/:/%3/g;
>   FW_pO "</head>\n<body name=\"$title\" longpollfilter=\"fp_$FP_name_uri=.%2B\" $gen $lp $csrf>";

UliM

Hi,
ja fein :)
Ich habs mal folgendermaßen eingebaut:
  my $lpf = 'fp_'.$FP_name; #longpollfilter - only devices that exist on this floorplan shall be notified
  $lpf =~ s/:/%3/g;
  $lpf = 'longpollfilter="'.$lpf.'=.%2B"';
  FW_pO "</head>\n<body name=\"$title\" $lpf $gen $lp $csrf>";


Scheint auch zu funktionieren, könnte ich also einchecken.
Nur - genau was ist der Nutzen ? (außer dass weniger msg in der js-Konsole kommen, in die eh kein user schaut)

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

nesges

Danke!

Die übersichtlichere JS-Console ist mir schon ein Anliegen. Ich binde mehrere Floorplans in Iframes auf einer externen Seite ein, da ist dann schon einiges los gewesen. Als Nebeneffekt wird der Netzwerktraffic verringert. Das hatte jetzt weniger Impact als ich erhofft hätte, aber jedes bisschen hilft ja bekanntlich :-)


UliM

Hi,
aha.
Dann könnte ich ein Attribute spendieren, mit dem man den Filter (de)aktivieren kann.
Oder ist das performanceneutral?
=8-)
RPi4/Raspbian, CUL V3 (ca. 30 HomeMatic-devices), LAN (HarmonyHub, alexa etc.).  Fördermitglied des FHEM e.V.

justme1968

den filter zu deaktivieren ist nicht sinnvoll. ich glaube dann wird als fallbacks sogar extra ein filter der auf alles matched gesetzt.

gruß
  andre
hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

https://github.com/sponsors/justme-1968

nesges

Wenn kein Filter aus dem Modul gesetzt wird, wird einer in fhemweb.js gesetzt. Das wäre der in http://forum.fhem.de/index.php/topic,33035.msg254157.html#msg254157 beschriebene "Standard"-Fall .*;iconPath=FLOORPLANDEVICE, der augenscheinlich nicht (mehr) funktioniert. Ohne Wissen was dieser Filter bewirkt/bewirken sollte, fällt's mir schwer einzuschätzen ob man zu diesem Filter zurück kehren möchten können wollte.

UliM

Zitat von: justme1968 am 31 Januar 2015, 10:21:44
den filter zu deaktivieren ist nicht sinnvoll. ich glaube dann wird als fallbacks sogar extra ein filter der auf alles matched gesetzt.
ok, dann halt dauerhaft, ohne Attribut.
Ist das Setzen des Filters schadlos, wenn longpoll 0 ist?
Und aus dem urspr. Filter ist ja offenbar 'iconPath=FLOORPLANDEVICE' rausgefallen - weiss jemand, was es damit auf sich hatte?
=8-)
RPi4/Raspbian, CUL V3 (ca. 30 HomeMatic-devices), LAN (HarmonyHub, alexa etc.).  Fördermitglied des FHEM e.V.

justme1968

mir ist gerade nicht klar was iconPath überhaupt mit dem filter zu tun hat bzw. was iconPath auf der js seite tun sollte.

gruss
  andre
hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

https://github.com/sponsors/justme-1968

nesges

Zitat von: justme1968 am 31 Januar 2015, 11:48:11
mir ist gerade nicht klar was iconPath überhaupt mit dem filter zu tun hat bzw. was iconPath auf der js seite tun sollte

Evtl.  hats mit longpoll für Icons, wie unter http://www.fhemwiki.de/wiki/Grundriss_mit_fhem-buttons#Hinzuf.C3.BCgen_der_fhem-Schalt-Links beschrieben zu tun. Werd ich noch testen, bin aber grade wieder unterwegs.

justme1968

wenn dann hat es nicht direkt mit dem filter zu tun sondern um den in dieser verbindung verwendeten iconPath temporär zu ändern.

es sind also zwei unterschiedliche dinge. das eine ist der filter der angibt welche devices auf dieser connection events erzeugen. das andere welche icons verwendet werden sollen.

ich habe gerade geschaut ob es das gegenstück (also das auswerten den iconPath in fhemweb) gibt aber auf die schnelle nicht gefunden.

hat der paramtere überhaupt noch einen einfluss? wenn ja sollte er natürlich drin bleiben. wenn nein ist die frage warum es aus fhemweb verschwunden ist. eventuell aus versehen.

gruss
  andre
hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

https://github.com/sponsors/justme-1968

nesges

Zitat von: nesges am 31 Januar 2015, 12:16:37
Evtl.  hats mit longpoll für Icons, wie unter http://www.fhemwiki.de/wiki/Grundriss_mit_fhem-buttons#Hinzuf.C3.BCgen_der_fhem-Schalt-Links beschrieben zu tun.

Das Beispiel aus dem Wiki bekomme ich weder mit, noch ohne Änderung zum laufen. Kann mir ehrlich gesagt auch nicht vorstellen, wie das jemals funktioniert hat. Da ist keine aktive Komponente drin; es wird kein fhemweb.js eingebunden, sondern einfach nur "flaches" HTML ohne jeglichen refresh. Von der Seite her sollte kein Ärger drohen.

Der vorsichtige Ansatz wäre die Änderung mit einem Opt-In-Schalter einzubauen. Den könnte man ja ggf. später in Opt-Out wandeln und noch später ganz entfernen, wenn keine Fehlermeldungen auflaufen.

UliM

Hi,
mir kam noch der Gedanke mit dem floorplan-spezifischen icon-folder. Aber das kann ja mit iconPath=FLOORPLANDEVICE nix zu tun haben.
Ich lass das mal raus. Wir sehen ja in den nächsten Tagen, ob sich jemand über verlorengegangene Funktionalität beschwert :)

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

justme1968

hallo uli,

hast du schon eine idee wann du das einchecken kannst?

die variante mit ..* scheint mir am lesbarsten zu sein und funktioniert bei mir ohne probleme.

FW_pO "</head>\n<body name=\"$title\" longpollfilter=\"fp_$FP_name=..*\" $gen $lp $csrf>";

gruss
  andre
hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

https://github.com/sponsors/justme-1968

UliM

Hi,
ich warte auf Markus' d&d-Abschluss.
Die letzte floorplan.pm-Version aus dem d&d-Fred enthãlt auch den Filter, mit dem bei mir alles funzt. Hast Du due dortige Version mal getestet? Weiß jetzt aus dem Kopf gar nicht was da als Filter drin ist..
Gruß Uli
RPi4/Raspbian, CUL V3 (ca. 30 HomeMatic-devices), LAN (HarmonyHub, alexa etc.).  Fördermitglied des FHEM e.V.