[FTUI 3] Werte aktualisieren sich nur sporadisch

Begonnen von dennis_n, 28 Januar 2023, 12:48:23

Vorheriges Thema - Nächstes Thema

dennis_n

Hallo,

ich habe das Problem, dass sich die Werte in der Tablet Ansicht nicht immer sofort aktualisieren.
Beispielsweise zeige ich mir Restlaufzeit meiner Spülmaschine am Tablet an.

In fhem werden die Werte alle 60 Sekunden ausgelesen. Sobald das Reading aktualisiert wurde, wird auch die 1er Version TabletUI  aktualisiert.
Bei der 3er Version allerdings nicht. Da bleibt es unter Umständen minutenlang auf einem Wert stehen, bevor es dann irgendwann mal wieder aktualisiert wird.

Wie kann ich das ändern?

Im <head> habe ich stehen:
<meta name="toast_position" content="topLeft">
  <meta name="toast" content="0">
  <meta name="longpoll" content="1"> <!-- 1=longpoll;0=shortpoll every 30sec -->
  <meta name="longpoll_type" content="websocket">


Gruss
Dennis

dennis_n

Hat denn wirklich niemand einen Tipp, woran das liegen könnte?

Gruss
Dennis

OdfFhem

Zitat von: dennis_n am 28 Januar 2023, 12:48:23

  <meta name="toast_position" content="topLeft">
  <meta name="toast" content="0">
  <meta name="longpoll" content="1"> <!-- 1=longpoll;0=shortpoll every 30sec -->
  <meta name="longpoll_type" content="websocket">


Fürs Aktualisieren der Daten eigentlich uninteressant, jedoch Anmerkung:
- meta-Element toast schaltet mit dem Wert 0 die Anzeige der Pop-Ups aus
- meta-Element toast_position damit eigentlich überflüssig

Fürs Aktualisieren der Daten:
- meta-Element longpoll wird nicht abgefragt
- meta-Element longpoll_type wird nicht abgefragt

Vielleicht zeigst Du mal das von FTUI3 verwendete FHEMWEB-Device ...

dennis_n

Hi,

hier mal die lists:

Internals:
   DEF        ftui3/ ./www/ftui/ Tablet-UI3
   FUUID      639da11b-f33f-8212-527b-9f09726fdbfb9cbc
   NAME       TABLETUI3
   NR         195
   STATE      TABLETUI3
   TYPE       HTTPSRV
   fhem:
     directory  ./www/ftui/
     friendlyname Tablet-UI3
     infix      ftui3/
Attributes:


Und das list von WEBtablet:
Internals:
   BYTES_READ 1564992
   BYTES_WRITTEN 763416895
   CONNECTS   2571
   DEF        8085 global
   FD         7
   FUUID      5ddb9356-f33f-8212-bb84-2b494b7aec227b65
   NAME       WEBtablet
   NR         36
   NTFY_ORDER 50-WEBtablet
   PORT       8085
   STATE      Initialized
   TYPE       FHEMWEB
   READINGS:
     2023-01-24 14:10:25   state           Initialized
Attributes:
   csrfToken  none
   longpoll   1
   stylesheetPrefix dark


Gruss
Dennis

OdfFhem

Ich habe mal mit genau Deinen Einstellungen getestet und erwartungsgemäß funktioniert alles reibungslos.

Im FHEMWEB-Device kannst Du eigentlich auch "longpoll 1" entfernen, da dies die Voreinstellung ist.


Kannst Du ein auf das Wesentliche reduzierte HTML-Beispiel bereitstellen, mit dem "jeder" Dein Problem nachvollziehen könnte ?

dennis_n

#5
Ich habe mal 2 Beispiele aus meiner HTML Datei genommen, bei denen es besonders auffällt.

<html>

<head>
 
  <script src="ftui.js"></script>

  <link href="ftui.css" rel="stylesheet">
  <link href="themes/ftui-theme.css" rel="stylesheet">
  <link href="favicon.ico" rel="icon" type="image/x-icon" />

  <!-- avoid 300ms delay on click-->
 
  <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no" />
  <meta name="mobile-web-app-capable" content="yes">
  <meta name="apple-mobile-web-app-capable" content="yes">
 
   
  <meta name="toast_position" content="topLeft">
  <meta name="toast" content="5">
  <meta name="longpoll" content="1"> <!-- 1=longpoll;0=shortpoll every 30sec -->
  <meta name="longpoll_type" content="websocket">

  <!-- verbose level 0-4 -->
  <meta name="debug" content="0">


  <title>Mein Haus</title>
</head>

<body>


<ftui-tab-view id="View3">

      <ftui-grid-tile row="1" col="2" height="4" width="12">
      <ftui-grid-header color="secondary">Rolläden unten</ftui-grid-header>
      <ftui-row>     
      <ftui-column>     
      <ftui-label size="2">Küche</ftui-label>
      <ftui-button (value)="set ZWave_SWITCH_MULTILEVEL_9 dim 99" direction="vertical" color="current" fill="outline">
      <ftui-icon name="angle-up" class="size-1" height="90%"></ftui-icon>
      </ftui-button>
     
      <ftui-icon [name]="ZWave_SWITCH_MULTILEVEL_9:actual_position | map('0:window-shutter, 100:window-shutter-open')" [color]="ZWave_SWITCH_MULTILEVEL_9:actual_position | map('0:red, 100:mygreen')"  class="size-3">
      </ftui-icon>
     
      <ftui-button (value)="set ZWave_SWITCH_MULTILEVEL_9 dim 0" direction="vertical" color="current" fill="outline">
      <ftui-icon name="angle-down" class="size-1" height="90%"></ftui-icon>
      </ftui-button>
      </ftui-column>
     
      </ftui-row>
      </ftui-grid-tile>

      <ftui-grid-tile row="1" col="2" height="2" width="2">
        <ftui-label size="2">Spülmaschine</ftui-label>
        <ftui-slider [(value)]="SMV6ZCX07E:Fortschritt" min="0" max="100" handle="none" readonly></ftui-slider>
        <ftui-label [text]="SMV6ZCX07E:BSH.Common.Option.ProgramProgress"></ftui-label>
      </ftui-grid-tile>
     
     
    </body>

</html>


Zur Anzeige nutze ich ein altes iPad an der Wand.

Erst wenn ich die Seite neu lade, werden die Werte aktualisiert bei FTUI3.
Wenn ich hingegen die Seite mit dem alten TabletUI öffne, werden die Werte sofort geändert.

Es muss also schon irgendwas mit dem FTUI3 zu tun haben.

Selbst wenn ich die Tablet Ansicht im Browser auf habe, ändern sich die Werte erst, wenn ich die Seite neu lade.

Gruss
Dennis

grossmaggul

ZitatZur Anzeige nutze ich ein altes iPad an der Wand.
Wie alt?
FHEM auf Debian Buster Server, 2 x nanoCUL868, 1xnanoCUL465; Homematic, MAX, MiLight, HUE,  2 x Gosund SP1

dennis_n

Es ist ein iPad Air2

Aber wie gesagt, habe das gleiche Problem ja auch am Rechner.
Dort ändert sich der Wert des Readings erst, wenn ich länger auf der Seite bleibe und sie im Vordergrund ist.

Wenn ich beispielsweise mehrere Tabs im Browser auf habe und der Tab mit dem FTUI3 ist nicht der aktive, ändern sich auch keine Werte.
Wenn ich dann den Tab mit dem FTUI3 aktiv habe, dauert es bis sich die Werte aktualisieren. Aber auch nur einmalig. Wenn ich nämlich in dem Tab bleibe, ändern sich die Werte erstmal nicht, sondern auch wieder erst nach einer gewissen Zeit (zwischen 45 Sekunden und Minute nachdem sich das eigentliche Reading in fhem geändert hat).

Ich kann das Phänomen ganz gut mit der Spülmaschine beobachten. Dort wird mir jede Minute der Fortschritt aktualisiert. Ebenso im Reading bei fhem. Das alte TabletUI aktualisiert sich ebenfalls sofort, wenn das Reading in fhem aktualsiert wurde.
Nur im FTUI3 gibt es die Verzögerung.

Gruss
Dennis

mr_petz

#8
Also ES2020 bzw ES6 sollte da laufen wenn das ios höher 12 ist... (letzte dafür ist iOS15.7.3)
https://kangax.github.io/compat-table/es2016plus/

LG

dennis_n

ok, das betrifft das iPad.
Aber ich habe doch die gleichen Probleme im Browser am Rechner. Windows 10 mit aktuellem Browser Firefox.

Gruss
Dennis

OdfFhem

@dennis_n

Habe mal Dein Beispiel ausprobiert.
Klar, die Geräte bzw. Readings musste ich abändern ... aber anschließend wird jede Wertänderung unmittelbar dargestellt.

Da Dein geschildertes Problem auch im Desktop-Fall auftritt, solltest Du mal "<meta name="debug" content="1">" verwenden und die Konsole der Entwickler-Tools beobachten.
Ändere einen Wert und schaue, ob diese Wertänderung in der Konsole auftaucht.
Wenn nein, dann wird wohl kein Event ausgelöst ...
Wenn ja, dann sollte der neue Wert auch am Schirm dargestellt werden ...

dennis_n

OK, habe ich gemacht.
Im Browser in der Konsole befinden sich zwei Fehler nachdem ich einen Rolladen geöffnet habe, und sich das Icon nicht aktualisiert hat:

Die Verbindung zu ws://192.168.2.42:8083/fhem/?XHR=1&inform=type=status;filter=speakFlur,myAbfall,FWDienstplan,sonnenbatterie,FK_Spielzimmer,FK_Emilie,FK_Duschbad,FK_Schlafzimmer,FK_Elternbad,FK_HWR,FK_Kueche,FK_GaesteWC,FK_Esszimmer,FK_WZlinks,FK_WZrechts,FK_Buero_links,FK_Buero_rechts,FK_Garage,Haustuer_Nuki,ZWave_SWITCH_MULTILEVEL_5,ZWave_SWITCH_MULTILEVEL_9,ZWave_SWITCH_MULTILEVEL_6,ZWave_SWITCH_MULTILEVEL_7,ZWave_SWITCH_MULTILEVEL_8,ZWave_SWITCH_MULTILEVEL_4,ZWave_SWITCH_MULTILEVEL_3,ZWave_SWITCH_MULTILEVEL_13,ZWave_SWITCH_MULTILEVEL_12,ZWave_SWITCH_MULTILEVEL_11,Lichtszene,netatmo_M02_00_00_6b_32_04,netatmo_D70_ee_50_6b_20_46,netatmo_M03_00_00_09_ce_cc,Pooltemperatur,Sonnenstand,SMV6ZCX07E,homestatus,Lang_schlafen,%20state%20Biotonne_days%20Papiertonne2-Rad-Behaelter04-woechentl_days%20t_001_summary%20USOC%20doorsensorState%20actual_position%20STATE%20Biotonne_date%20GelbeTonneGelberSack_date%20Papiertonne2-Rad-Behaelter04-woechentl_date%20temperature%20Wassertemperatur%20co2%20sr_civil%20ss_civil%20BSH.Common.Option.ProgramProgress%20GelbeTonneGelberSack_days%20sceneValue%20Fortschritt;since=1675083104887;fmt=JSON&timestamp=1675083128425 wurde unterbrochen, während die Seite geladen wurde. fhem.service.js:251:39


Und:

1 [websocket] error event
error { target: WebSocket, isTrusted: true, srcElement: WebSocket, eventPhase: 0, bubbles: false, cancelable: false, returnValue: true, defaultPrevented: false, composed: false, timeStamp: 53865, ... }
ftui.helper.js:152:17
    error http://192.168.2.42:8083/fhem/ftui3/modules/ftui/ftui.helper.js:152
    onerror http://192.168.2.42:8083/fhem/ftui3/modules/ftui/fhem.service.js:266

dennis_n

1 [websocket] error event
error { target: WebSocket, isTrusted: true, srcElement: WebSocket, currentTarget: WebSocket, eventPhase: 2, bubbles: false, cancelable: false, returnValue: true, defaultPrevented: false, composed: false, ... }
ftui.helper.js:152:17
    error http://192.168.2.42:8083/fhem/ftui3/modules/ftui/ftui.helper.js:152
    onerror http://192.168.2.42:8083/fhem/ftui3/modules/ftui/fhem.service.js:266
    (Async: EventHandlerNonNull)
    connect http://192.168.2.42:8083/fhem/ftui3/modules/ftui/fhem.service.js:265
    timer http://192.168.2.42:8083/fhem/ftui3/modules/ftui/fhem.service.js:299
    (Async: setTimeout handler)
    reconnect http://192.168.2.42:8083/fhem/ftui3/modules/ftui/fhem.service.js:298
    healthCheck http://192.168.2.42:8083/fhem/ftui3/modules/ftui/fhem.service.js:419
    scheduleHealthCheck http://192.168.2.42:8083/fhem/ftui3/modules/ftui/fhem.service.js:411
    (Async: setTimeout handler)
    scheduleHealthCheck http://192.168.2.42:8083/fhem/ftui3/modules/ftui/fhem.service.js:410
    checkConnection http://192.168.2.42:8083/fhem/ftui3/modules/ftui/ftui.app.js:206
    init http://192.168.2.42:8083/fhem/ftui3/modules/ftui/ftui.app.js:72

OdfFhem

Zitat von: dennis_n am 30 Januar 2023, 13:55:13
Im Browser in der Konsole befinden sich zwei Fehler nachdem ich einen Rolladen geöffnet habe, und sich das Icon nicht aktualisiert hat:
Heißt das jetzt, dass die Fehlermeldungen beim Bedienen des Rolladens ausgelöst werden ... also rauf oder runter oder ??? ...
Hängt es immer nur an diesem Rolladen ... wie sieht der auslösende Eintrag im Event-Monitor aus ?
Im Zweifel einfach mal einen dummy mit irgendeinem Reading als ftui-label integrieren und mit setreading das Aktualisierungsverhalten beobachten ...

Zitat von: dennis_n am 30 Januar 2023, 13:55:13

Die Verbindung zu ws://192.168.2.42:8083 ... wurde unterbrochen, während die Seite geladen wurde. fhem.service.js:251:39

Weiter oben wurde das beteiligte FHEMWEB-Device gezeigt, dort war nicht Port 8083, sondern Port 8085 betroffen ... 8083 also falsch ?
Vielleicht mal den initialen Aufruf zeigen ...

Zitat von: dennis_n am 30 Januar 2023, 14:15:29
1 [websocket] error event
error { target: WebSocket, ... }

Das error-Object ist nicht ganz unwichtig, endet aber mit ...; damit fehlt - sofern tatsächlich vorhanden - die entscheidende Information ...
Bitte mal näher anschauen bzw. zeigen ...

dennis_n

Sorry ich hatte Nachtdienst und bin vorher nicht mehr dazu gekommen hier Antwort zu geben.

Also der Fehler mit Port 8083 oder 8085 war von mir. Habe die Seite im Browser unterscheidlich aufgerufen. Also Port 8085 stimmt fü das Tablet.
Jetzt rufe ich die Seite mit diesem Port im Browser auf und erhalte folgende Fehlermeldungen auf der Konsole:

ie Verbindung zu ws://192.168.2.42:8085/fhem/?XHR=1&inform=type=status;filter=myAbfall,FWDienstplan,sonnenbatterie,netatmo_M02_00_00_6b_32_04,netatmo_D70_ee_50_6b_20_46,netatmo_M03_00_00_09_ce_cc,Pooltemperatur,Sonnenstand,SMV6ZCX07E,speakFlur,homestatus,FK_Spielzimmer,FK_Emilie,FK_Duschbad,FK_Schlafzimmer,FK_Elternbad,FK_HWR,FK_Kueche,FK_GaesteWC,FK_Esszimmer,FK_WZlinks,FK_WZrechts,FK_Buero_links,FK_Buero_rechts,FK_Garage,Haustuer_Nuki,ZWave_SWITCH_MULTILEVEL_5,ZWave_SWITCH_MULTILEVEL_9,ZWave_SWITCH_MULTILEVEL_6,ZWave_SWITCH_MULTILEVEL_7,ZWave_SWITCH_MULTILEVEL_8,ZWave_SWITCH_MULTILEVEL_4,ZWave_SWITCH_MULTILEVEL_3,ZWave_SWITCH_MULTILEVEL_13,ZWave_SWITCH_MULTILEVEL_12,ZWave_SWITCH_MULTILEVEL_11,Lichtszene,Lang_schlafen,%20Biotonne_date%20GelbeTonneGelberSack_date%20Papiertonne2-Rad-Behaelter04-woechentl_date%20t_001_summary%20USOC%20temperature%20Wassertemperatur%20co2%20sr_civil%20ss_civil%20BSH.Common.Option.ProgramProgress%20state%20STATE%20Biotonne_days%20Papiertonne2-Rad-Behaelter04-woechentl_days%20doorsensorState%20actual_position%20GelbeTonneGelberSack_days%20sceneValue%20Fortschritt;since=1675435731604;fmt=JSON&timestamp=1675435731879 wurde unterbrochen, während die Seite geladen wurde.

und:

[websocket] error event
error { target: WebSocket, isTrusted: true, srcElement: WebSocket, currentTarget: WebSocket, eventPhase: 2, bubbles: false, cancelable: false, returnValue: true, defaultPrevented: false, composed: false, ... }
ftui.helper.js:152:17
    error http://192.168.2.42:8085/fhem/ftui3/modules/ftui/ftui.helper.js:152
    onerror http://192.168.2.42:8085/fhem/ftui3/modules/ftui/fhem.service.js:266
    (Async: EventHandlerNonNull)
    connect http://192.168.2.42:8085/fhem/ftui3/modules/ftui/fhem.service.js:265
    timer http://192.168.2.42:8085/fhem/ftui3/modules/ftui/fhem.service.js:299
    (Async: setTimeout handler)
    reconnect http://192.168.2.42:8085/fhem/ftui3/modules/ftui/fhem.service.js:298
    startBinding http://192.168.2.42:8085/fhem/ftui3/modules/ftui/ftui.app.js:165
    initComponents http://192.168.2.42:8085/fhem/ftui3/modules/ftui/ftui.app.js:102
    initPage http://192.168.2.42:8085/fhem/ftui3/modules/ftui/ftui.app.js:81
    init http://192.168.2.42:8085/fhem/ftui3/modules/ftui/ftui.app.js:68
    main http://192.168.2.42:8085/fhem/ftui3/ftui.js:6
    <anonym> http://192.168.2.42:8085/fhem/ftui3/ftui.js:38
    (Async: EventListener.handleEvent)
    <anonym> http://192.168.2.42:8085/fhem/ftui3/ftui.js:35