Anzeigeproblem bei eigenen Icons im Floorplan

Begonnen von RoqueNublo, 10 März 2013, 19:08:08

Vorheriges Thema - Nächstes Thema

RoqueNublo

Hallo Zusammen,

ich habe ein Problem mit der Anzeige von eigenen Icons im Floorplan. Meinen Floorplan habe ich mit einem speziellen Icon, wie im Floorplan.pdf beschrieben ausgestattet. In FHEMWEB sollen weiterhin die default Einstellungen erhalten bleiben, was auch funktioniert.

Allerdings gibt es folgendes Problem:
Wenn ich meinen Floorplan ,,Erdgschoss" aufrufe zeigt sich myIcon ,,fenster.{state}.png" wie es sein sollte mit aktuellen  Status. Wenn ich dann den Status per MausClick ändere, erscheint ab diesem Zeitpunkt das default Icon aus dem FHEMWEB Modus. Erst nach einem Refresh (F5) erscheint myIcon ,,fenster.{state}.png" dann wieder im aktuellen  Status.

Hier meine Konfiguration:

attr global userattr devStateIcon fp_Erdgeschoss fp_Erdgeschoss.image icon webCmd

define WEB FHEMWEB 8083 global
attr WEB longpoll 1

define TFKAnkleide FS20 61cb 10
attr TFKAnkleide fp_Erdgeschoss 115,1020,0
attr TFKAnkleide fp_Erdgeschoss.image fenster.{state}.png
attr TFKAnkleide group Geräte
attr TFKAnkleide room FS20

Firebug: Floorplan ,,Erdgeschoss" nach Aufruf oder F5 mit TFK-Status (fenster.on.png / fenster.off.png)

<div id="floorplan" class="screen">
  <div id="logo"></div>
  <div id="div-TFKAnkleide" style="position:absolute; top:115px; left:1020px;">
   <form autocomplete="off" action="/fhem/floorplan/Erdgeschoss/TFKAnkleide" method="get">
     <table id="table-TFKAnkleide" class="FS20 fp_Erdgeschoss" align="center">
      <tbody>
        <tr id="TFKAnkleide" class="devicestate fp_Erdgeschoss">
         <td colspan="2">
           <a onclick="FW_cmd('/fhem/floorplan/Erdgeschoss?XHR=1&cmd.TFKAnkleide=set
              TFKAnkleide on&room=FS20')">
             <div id="TFKAnkleide" class="col2" align="center">
               <img src="/fhem/icons/fenster.off.png">
             </div>
           </a>
         </td>
        </tr>
       </tbody>
     </table>
   </form>
  </div>
</div>

 Firebug: nach MausClick auf Floorplan ,,Erdgeschoss" myIcon erscheint default Icon

<div id="floorplan" class="screen">
  <div id="logo"></div>
  <div id="div-TFKAnkleide" style="position:absolute; top:115px; left:1020px;">
    <form autocomplete="off" action="/fhem/floorplan/Erdgeschoss/TFKAnkleide" method="get">
      <table id="table-TFKAnkleide" class="FS20 fp_Erdgeschoss" align="center">
        <tbody>
          <tr id="TFKAnkleide" class="devicestate fp_Erdgeschoss">
            <a onclick="FW_cmd('/fhem?XHR=1&cmd.TFKAnkleide=set TFKAnkleide off&room=FS20')">
             <div id="TFKAnkleide" class="col2" align="center">
               <img title="on" alt="on" src="/fhem/icons/FS20.on">
             </div>
            </a>
          </tr>
        </tbody>
      </table>
    </form>
  </div>
</div>


Was habe ich übersehen???

Beste Grüße von der Insel
Hanns

UliM

Hi,
longpoll ersetzt den html-Inhalt. Bei diesem Ersetzen zieht das fp-spezifische icon nicht.
Es sollte also (wieder) gehen, wenn Du longpoll ausschaltest.
Gruß, Uli
RPi4/Raspbian, CUL V3 (ca. 30 HomeMatic-devices), LAN (HarmonyHub, alexa etc.).  Fördermitglied des FHEM e.V.

RoqueNublo

Hallo Uli,

Super vielen Dank, klappt hervorragend! Übrigens wenn es Dich interessiert, unter ,,User stellen sich vor" findest Du weitere Infos zu meiner Person und meinem Projekt.

Gruß Hanns

----------------

Hallo Uli,

ich habe mich zu früh gefreut. Das Problem mit der Anzeige von eigenen Icons im Floorplan dem Du doch relativ schnell auf die Spur gekommen bist, zeigt sich nunmehr auf andere Art.

Bei ausgeschaltetem longpool

- Im FHEMWEB wird das default Icon sofort bei Signalempfang im aktuellen Status angezeigt.
- Im FLOORPLAN wird das eigene Icon erst nach einem Refresh (F5) im aktuellen Status angezeigt.

Bei eingeschaltetem longpool

- Im FHEMWEB wird das default Icon sofort bei Signalempfang im aktuellen Status angezeigt.
- Im FLOORPLAN wird das default Icon sofort bei Signalempfang im aktuellen Status angezeigt und
  erst nach einem Refresh (F5) wird dann das eigene Icon aktualisiert angezeigt.

Was mach ich falsch???

Gruß Hanns

UliM

Zitat von: RoqueNublo schrieb am Mo, 11 März 2013 12:31Bei ausgeschaltetem longpool
- Im FHEMWEB wird das default Icon sofort bei Signalempfang im aktuellen Status angezeigt.
- Im FLOORPLAN wird das eigene Icon erst nach einem Refresh (F5) im aktuellen Status angezeigt.
Hi,
Ersteres würde mich wundern. Die Aktualisierung eines icons ohne refresh (oder sonstigem Klick im browser) ist die Eigenschaft von longpoll.  Ist dieses ausgeschaltet, kann eine automatische Aktualisierung eigtl. auch in FHEMWEB nicht funzen. Evtl. müsstest Du nach Aktivierung/Deaktivierung longpoll ein F5 (refresh) im browser ausführen, um das zugehörige Javascript zu starten oder zu stoppen.

Zitat von: RoqueNublo schrieb am Mo, 11 März 2013 12:31Bei eingeschaltetem longpool
- Im FHEMWEB wird das default Icon sofort bei Signalempfang im aktuellen Status angezeigt.
- Im FLOORPLAN wird das default Icon sofort bei Signalempfang im aktuellen Status angezeigt und
  erst nach einem Refresh (F5) wird dann das eigene Icon aktualisiert angezeigt.
Das ist der oben beschriebene Effekt. Das Umsetzen default-icon zu fp-spezifischem icon passiert nur beim ersten Bildschirmaufbau (also Aufruf floorplan über das Menü oder durch refresh). Eine icon-Aktualisierung durch longpoll ersetzt immer mit dem default-icon.

fp-spezifisches icon mit longpoll geht leider nicht.

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

fiedel

Zitat von: UliM schrieb am Mi, 13 März 2013 20:42
Zitat von: RoqueNublo schrieb am Mo, 11 März 2013 12:31Bei ausgeschaltetem longpool
- Im FHEMWEB wird das default Icon sofort bei Signalempfang im aktuellen Status angezeigt.
- Im FLOORPLAN wird das eigene Icon erst nach einem Refresh (F5) im aktuellen Status angezeigt.
Hi,
Ersteres würde mich wundern. Die Aktualisierung eines icons ohne refresh (oder sonstigem Klick im browser) ist die Eigenschaft von longpoll.  Ist dieses ausgeschaltet, kann eine automatische Aktualisierung eigtl. auch in FHEMWEB nicht funzen. Evtl. müsstest Du nach Aktivierung/Deaktivierung longpoll ein F5 (refresh) im browser ausführen, um das zugehörige Javascript zu starten oder zu stoppen.


Hi,

wenn man für FHEMWEB und Floorplan zwei unterschiedliche WEB- Instanzen benutzt und eine davon (FHENWEB) mit Longpoll betreibt, geht es sogar wirklich so.

Bei mir ist wegen der speziellen Icons in der Floorplan- Instanz nur noch das "refresh"- Attribut gesetzt, ich glaub auf 60 Sek. Jetzt wäre es ja clever, wenn man bei einem Event oder einem Zustandswechsel eines Floorplan- Icons immer ein "refresh" auslösen könnte. Dann hätte man wieder den Longpoll- Effekt und könnte den festen "refresh"- Zyklus deutlich vergrößern, oder ganz weglassen. Ist so ne halbgare Idee, aber da sie hier hin passt...

Gruß

Frank
FeatureLevel: 6.1 auf Wyse N03D ; Deb. 11 ; Perl: v5.14.2 ; IO: HM-MOD-RPI-PCB + VCCU|CUL 868 V 1.66|LinkUSBi |TEK603
HM: SEC-SCO|SCI-3-FM|LC-SW4-PCB|ES-PMSW1-PL|RC-4-2|SEN-MDIR-O|SEC-WDS-2
CUL: HMS100TF|FS20 S4A-2 ; OWDevice: DS18S20|DS2401|DS2406|DS2423

RoqueNublo

Hallo Uli,
hallo Frank,

es ist so wie ich es beschrieben habe. Wenn es dem Problem hilfreich wäre, könnte ich Dir einen Zugang auf meinen Raspberry ermöglichen. Wir müßten uns dann nur noch austauschen wann ich hier vor Ort die Sendebefehle (Fenster auf / zu) auslöse.

Gruß Hanns

fiedel

Hi Hanns,

ich denke mal Fernwartung brauchen wir gar nicht machen:

Ersetze doch mal:

define WEB FHEMWEB 8083 global
attr WEB longpoll 1

durch:

define WEB FHEMWEB 8083 global
attr WEB refresh 10

Dann wird alle 10 Sek. die Webseite aktualisiert.
Das ist zum testen erst mal besser so, damit du die Wirkung besser siehst. Später kannst du den Wert z.B. auf 120 setzen. Das reicht völlig. So wäre es erst mal "Stand der Technik" bei Floorplan.

Falls mir noch was zu meiner "halbgaren Idee" einfällt, schreibe ich es hier noch rein. Vielleicht hatte aber Uli schon die selbe Idee und herausgefunden, dass es nicht so einfach geht.?

Gruß

Frank
FeatureLevel: 6.1 auf Wyse N03D ; Deb. 11 ; Perl: v5.14.2 ; IO: HM-MOD-RPI-PCB + VCCU|CUL 868 V 1.66|LinkUSBi |TEK603
HM: SEC-SCO|SCI-3-FM|LC-SW4-PCB|ES-PMSW1-PL|RC-4-2|SEN-MDIR-O|SEC-WDS-2
CUL: HMS100TF|FS20 S4A-2 ; OWDevice: DS18S20|DS2401|DS2406|DS2423

RoqueNublo

Hallo Frank,

klappt hervorragend vielen Dank für Deine/Eure Hilfe.

Gruß auch an Uli
Hanns

UliM

Hi,
Vll noch zur Erklärung des Mechanismus:
Floorplan.pm ermittelt den State des device.
Floorplan.pm ersetzt den State durch das FP-spezifische icon

Wenn longpoll aktiviert ist, wird fhemweb.js aktiviert, das bei State-Änderung im html den State des icons ersetzt.
In fhemweb.js ist jedoch das Ersetzen auf das FP-spezifische Icon nicht enthalten.

Deshalb funktioniert FP-spezifisches Icon nur beim ersten Bildsxhirmaufbau, bei longpoll-Aktialisierung erscheint aber immer das Default-icon.


Refresh nutzt nicht fhemweb.js, sondern ruft das originäre Frontend-Programm quasi erneut auf, die Icon-Ersetzung findet also ggf erneut statt.

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

RoqueNublo

Hallo Uli,

danke für die Erläuterung. Ich denke ich werde noch einige Hürden nehmen müssen bevor ich im Thema stehe, aber das Aufzeigen der Zusammenhänge ist doch immer wieder hilfreich auf diesem Weg. Danke!

Gruß auch an Frank
Hanns

Stefan 69

Hallo,

ich hoffe mal dass ich mit meiner Frage auf dieses Thema "aufbauen" kann.

Nutze unter anderem zwei S300TH und habe für die Darstellung im Floorplan den Stil 4 eingestellt.
Die Darstellung hat bis her auch soweit funktioniert, bis zur Aktivierung von Longpoll.

Nun wird die Temp und Luftfeuchte immer klein und schwarz (als ob kein Stil aktiviert ist) dargestellt.

Habe nun zusätzlich den refresh-Befehl mit eingebunden, somit wird regelmäßig die "Stil 4-Ansicht" generiert.
Dies jedoch nur so lange, wie der nächste Wert übertragen wird, dann greift wieder longpoll.


Und noch was seit Longpoll:

Meine eigenen devStateIcons der Rollläden (HM Aktoren) werden korrekt angezeigt, jedoch verrutschen diese durch longpoll bei einer Statusänderung nach links. Durch den automatischen refresh "hüpfen" diese dann jedoch wieder auf ihren eigentlichen Platz. Die devicecommands (auf stop zu) bleiben davon jedoch unberührt und auf ihrem Platz.

Mit der Icon-geschichte kann man ja leben, jedoch die Fehler bei der Darstellung der S300TH-Werte würde ich gern beheben.

Gruß Stefan

fiedel

Hi Stefan

Floorplan "kann" kein Longpoll. Nimm es in dieser Instanz raus, lasse nur das Refresh drin und du wirst ein glückliches Osterfest haben. ;o)

Gruß

Frank
FeatureLevel: 6.1 auf Wyse N03D ; Deb. 11 ; Perl: v5.14.2 ; IO: HM-MOD-RPI-PCB + VCCU|CUL 868 V 1.66|LinkUSBi |TEK603
HM: SEC-SCO|SCI-3-FM|LC-SW4-PCB|ES-PMSW1-PL|RC-4-2|SEN-MDIR-O|SEC-WDS-2
CUL: HMS100TF|FS20 S4A-2 ; OWDevice: DS18S20|DS2401|DS2406|DS2423

Stefan 69

Hallo Frank,

das ist genau dass was ich eigentlich nicht lesen wollte. Aber ich habs schon fast befürchtet :-(

Dacht halt, dass es evtl. doch irgendwie geht, da ich ja mit der Anzeige der eigenen Icons soweit kein Problem habe.
Nun gut, dann wird ich mich eben vom longpoll verabschieden obwohl es schon schick ausschaut, wenn sich das Icon vom Rollladen "bewegt".

Übrigens. Habe noch zu viele Baustellen hier bei fhem, obs da was mit dem glücklichen Osterfest wird ;o)

Danke, Gruß Stefan

UliM

Floorplan kann sehr wohl longpoll.
Zu S300TH-Aktualisierung gibt's ne Lösung mittels userreading, bitte mal sufu benutzen.
Gruß Uli
RPi4/Raspbian, CUL V3 (ca. 30 HomeMatic-devices), LAN (HarmonyHub, alexa etc.).  Fördermitglied des FHEM e.V.

fiedel

Ei der Daus, man lernt nie aus! ;o)

Link

Vielen Dank dafür auch von mir!
FeatureLevel: 6.1 auf Wyse N03D ; Deb. 11 ; Perl: v5.14.2 ; IO: HM-MOD-RPI-PCB + VCCU|CUL 868 V 1.66|LinkUSBi |TEK603
HM: SEC-SCO|SCI-3-FM|LC-SW4-PCB|ES-PMSW1-PL|RC-4-2|SEN-MDIR-O|SEC-WDS-2
CUL: HMS100TF|FS20 S4A-2 ; OWDevice: DS18S20|DS2401|DS2406|DS2423