fronthem/ smartVISU plot erhängt fhem

Begonnen von Johann.S, 13 August 2023, 18:55:09

Vorheriges Thema - Nächstes Thema

Johann.S

Hallo,

ich verwende die Plot- Funktion in fronthem!
In diesem Thread https://forum.fhem.de/index.php?msg=1192880 haben wvhn und alkazaa die Plotfunktion erweitert!
Leider habe ich jetzt das Problem, das fhem volkommen hängt wenn ich alle Plots, die ich verwenden möchte, aktiviere!
Die Ursache sind die Plots, die alle bedient werden obwohl sie auf der aktuellen Seite nicht vorhanden sind!
Kann man das in fronthem so ändern, das nur aktive Plots aktualisiert werden?
Bei den Items ist es ja auch so!

Gruss
Johann
Raspi 3, Sduino 433MHz und 868MHz beide CC1101, Wetterstation TFA Dostmann 35.1119 (WH1080), intertechno PAR1000/PA1500
NOBILY Standard-Minifunkrolladenmotor PR4 13/147-40 ID-98, Homematic CCU3 (homematic-raspi), HmIP-eTRV-2, HmIP-SWDO, HmIP-STH, HmIP-WTH-2, Eigenbau sonoff für Gartenbewässerung

alkazaa

Hallo Johann,
Du schriebst:
Zitat von: Johann.S am 13 August 2023, 18:55:09Leider habe ich jetzt das Problem, das fhem volkommen hängt wenn ich alle Plots, die ich verwenden möchte, aktiviere!
Die Ursache sind die Plots, die alle bedient werden obwohl sie auf der aktuellen Seite nicht vorhanden sind!
Hier verstehe ich zwei Dinge nicht: Was heißt 'aktivieren'? Und was heißt 'auf der aktuellen Seite nicht vorhanden'?

Zitat von: Johann.S am 13 August 2023, 18:55:09Kann man das in fronthem so ändern, das nur aktive Plots aktualisiert werden?
Bei den Items ist es ja auch so!

Auf der FHEM Seite sieht der fronthem item editor ja so aus:
Du darfst diesen Dateianhang nicht ansehen.
D.h. alles ist ein item, und für jedes item kann man als 'mode' wählen: item, plot oder log. (Der Begriff 'item' kommt also zweimal vor, oben in der Überschrift ('item' wie von SV benannt und 'device' wie in FHEM gemeint) und unten für das konkret selektierte item (im Bild 'Licht_Poller.sw ), wo man als mode für dieses SV-item wählen kann zwischen item, plot und log. Wo sieht man denn, dass ein Plot aktiv ist, und wo sieht man es für ein item? Ich bin verwirrt.

-Franz

wvhn

#2
Hallo Johann,

passiert dies gleich nach Neustart von fhem / fronthem, oder erst, wenn Du mehrere Seiten mit Plots aufgerufen hast?
Die Frage dahinter: ruft fronthem grundsätzlich alle im item editor konfigurierten Plots sofort ab, oder nur diejenigen, welche von der Visu auf der aktuell angezeigten Seite über den Websocket angefordert werden?

Wenn letzteres der Fall ist, können wir vielleicht eine Möglichkeit schaffen, die nicht mehr benötigten Plots beim Seitenwechsel abzubestellen. Diese Funktion nutzt smartVISU schon in Verbindung mit anderen Backends und ich könnte dies im fhem-Treiber schnell umsetzen. Allerdings muss das jemand in fronthem implementieren. 

Gruß
Wolfram

alkazaa

Mit ist jetzt beim näheren Hinschauen aufgefallen, dass immer alle Elmente von rooms_menu.html bei fronthem abgefragt werden, egal auf welche andere Seite "rooms_xyz.html" ich im browser wechsle. Da ich auf rooms_menu.html bereits den wichtigsten Plot (mit Graphen für Raumtemp. und -feuchte) anzeige, wird dieser Plot IMMER erneut übertragen, wenn ich auf eine andere Seite wechsle oder diese aktualisiere. Und wenn das ein Ressourcen-Fresser-Plot ist (z.B. averaging mit sehr vielen Daten), ist FHEM natürlich schnell am Ende.

Keine Ahnung, ob das so gewollt ist.

Das ist meine index.html:
{% extends "base.html" %}

{% block sidebar %}

{% import "lib.html" as lib %}

{{ lib.updatecheck() }}

{% include "infoblock.html" %}

{% endblock %}

{% block content %}
{% include 'rooms_menu.html' %}
{% endblock %}
meine rooms.html:
{% extends "base.html" %}

{% block sidebar %}
{% include 'rooms_menu.html' %}
{% endblock %}

{% block content %}

Rooms

{% endblock %}
und meine rooms_menu.html:
<ul data-role="listview" data-dividertheme="c">

<!--li data-role="list-divider">Unten</li-->

<p>Außen:{{ basic.print('', 'T-Aussen', '') }} °C {{ basic.symbol('', 'Tecalor_Heizen', ', Heizbetrieb','',1) }}/** , E-H-N: {{ basic.print('', ['Diesel_EPT','Diesel_HEM','Diesel_Nordoel'], '') }} €</p>*/
<p>ESP1: {{ basic.print('', 'ESP1_T', '°C') }}, {{ basic.print('', 'ESP1_p', 'hPa') }}, {{ basic.print('', 'ESP1_rF', ' %') }}/**, {{ basic.print('', 'ESP1_CO2', 'ppm CO2') }}, {{ basic.print('', 'Wind', 'km/h') }}*/</p>

Lüfterstufe:
{{ basic.select('', 'Luefter_Tag', 'mini', [0,1,2,3]) }} &emsp;
Verreist:
{{ basic.flip('verreist', 'verreist', 'Ja', 'Nein','ja','nein') }} &emsp;
Gäste:
{{ basic.flip('gaeste', 'Gaeste', 'Ja', 'Nein', 'true', 'false') }}</p>

HzgBad:
{{ basic.stateswitch('', 'HzgBad', 'mini', [1,0], [icon.heating('','', 'HzgBad', 0, 1, 'red'), icon.heating('','', 'HzgBad', 1, 0, '#33f')]) }}

       {{ plot.period('', ['ESP1_rFplot','ESP1_Tplot','T_externplot'], 'raw', '6h','',['20','25','0'],['25','55','5'],'10',['Feuchte','T-WZ','T-Carport'],['#060','#d00','#880'],'',['Zeit', '°C', '%','°C'],'',[2,1,3],[1,0,0])}}

<li data-icon="false">
<a href="index.php?page=room_empty">
<img class="icon"' src='{{ icon0 }}scene_sleeping_alternat.svg'/><h3>Leer</h3>
<div class="ui-li-aside"></div>
</a>
</li>
<li data-icon="false">
<a href="index.php?page=room_licht">
<img class="icon"' src='{{ icon0 }}scene_sleeping_alternat.svg'/><h3>Licht</h3>
<div class="ui-li-aside"></div>
</a>
</li>
<li data-icon="false">
<a href="index.php?page=room_jalousien">
<img class="icon"' src='{{ icon0 }}scene_sleeping_alternat.svg'/><h3>Jalousien</h3>
<div class="ui-li-aside"></div>
</a>
</li>
<li data-icon="false">
<a href="index.php?page=room_HWR">
<img class="icon"' src='{{ icon0 }}scene_sleeping_alternat.svg'/><h3>HWR</h3>
<div class="ui-li-aside"></div>
</a>
</li>
<li data-icon="false">
<a href="index.php?page=room_Cams">
<img class="icon"' src='{{ icon0 }}scene_sleeping_alternat.svg'/><h3>Kameras</h3>
<div class="ui-li-aside"></div>
</a>
</li>

</ul>

Johann.S

Ob ein Item aktiv ist oder nicht sieht man im Editor!
Du darfst diesen Dateianhang nicht ansehen.
Aber eben nur bei Item-Item bei Item-Plot ist da keine Kennzeichnung!

Egal auf welcher Page der Plot ist, sobald fronthemdevice connectet werden alle Plots übertragen.
Man muss nicht einmal einen Page mit einem Plot aufrufen, das connect reicht.
Start von fhem hat damit nichts zu tun!
Ich habe mal einen Auszug aus dem Log (verbos 5) angehängt!
Du darfst diesen Dateianhang nicht ansehen.
Man sieht hier auch, das nur das Update durchgeführt wird, aber bei vielen Plots bremst das ganz schön!
Und auf der Startpage ist bei mir kein plot vorhanden!

index.html
/**
* -----------------------------------------------------------------------------
* @package     smartVISU
* @author      Johann Schierl
* @copyright   2019
* @license     GPL [http://www.gnu.de]
* -----------------------------------------------------------------------------
*/


{% extends "base.html" %}

{% block sidebar %}

{% include 'navigation.html' %}

{% endblock %}

{% if asset_exists('wetterstation.html') %} {% import 'wetterstation.html' as wetterstation %} {% endif %}

{% block content %}

{{ lib.updatecheck() }}

<table align="center" cellpadding="0" width="100%">
<tr>
<td width="33%" float="left">
{{ calendar.waste( 'calendarwaste', '', 'abfall', 5) }}
</td>
<td>
{{ clock.digiclock('clock', 'zip=2540,AT') }}
<div class="center">
{{ clock.miniclock('', lang('format','longer') ) }}
</div>
</td>
<td>
<table align="center" valign="top" cellpadding="0" width="100%">
<tr>
<td>
{{ weather.forecastweek('weather_forecast', 'zip=2540,AT') }}
</td>
</tr>
<tr>
<td class="center">
<div style="font-size:0.8em">
<br>
Wohnzimmerrollos auf {{ basic.print('', 'Rollo_WZ_beide_auf', 'time') }} / zu {{ basic.print('', 'Rollo_WZ_beide_zu', 'time') }}
<br>
</div>
</td>
</tr>
</table>
</td>
</tr>
</table>

<div class="block" style="width: 25%">
{{ wetterstation.ws(id~'ws', 'ws.temperatur', 'ws.humidity', 'ws.winddegree', 'ws.windtext', 'ws.windspeed', 'ws.windguest', 'ws.rain_1h', 'ws.rain_6h', 'ws.rain_24h', 'ws.rain_48h', 'ws.battery', 'sb.temp', 'ws.time') }}
</div>

<div class="block" style="width: 50%">
{{ calendar.list( '', '', 6, '', '', '', 'l' ) }}
/**
* ['persönlich','feiertage','div. geburtstage','geburtstage von kontakten']
* 'persönlich,feiertage,div. geburtstage,geburtstage von kontakten'
*/
</div>

<div class="block" style="width: 25%">
<table align="center" cellpadding="0">
<tr>
<td>
<div style="font-size:0.8em">
{{ basic.symbol('', '', 'Wohnzimmer links') }}
</div>
</td>
</tr>
<tr>
<td>
<div data-role="controlgroup" data-type="horizontal" >
{{ basic.stateswitch('', 'WZ_l_sh.auf', 'micro',value_bottom|default('255') < value_top|default('0') ? 1 : 0, 'carat-u', '', '', 'blink' ) }}
{{ basic.stateswitch('', 'WZ_l_sh.stop', 'micro', 1, 'delete') }}
{{ basic.stateswitch('', 'WZ_l_sh.auf', 'micro',value_bottom|default('255') < value_top|default('0') ? 0 : 1, 'carat-d', '', '', 'blink' ) }}
</div>
</td>
<td>
{{ basic.symbol (id~'WZ_l_sh.pos', 'WZ_l_sh.pos', '', icon.shutter(id~'WZ_l_sh.shutter', '', 'WZ_l_sh.pos', '1', '100'), [ 2, 99], '>', ['icon1','#ffdb00','#25ea4e']) }}
</td>
</tr>
<tr>
<td>
<div style="font-size:0.8em">
{{ basic.symbol('', '', 'Wohnzimmer rechts') }}
</div>
</td>
</tr>
<tr>
<td>
<div data-role="controlgroup" data-type="horizontal">
{{ basic.stateswitch('', 'WZ_r_sh.auf', 'micro',value_bottom|default('255') < value_top|default('0') ? 1 : 0, 'carat-u', '', '', 'blink' ) }}
{{ basic.stateswitch('', 'WZ_r_sh.stop', 'micro', 1, 'delete') }}
{{ basic.stateswitch('', 'WZ_r_sh.auf', 'micro',value_bottom|default('255') < value_top|default('0') ? 0 : 1, 'carat-d', '', '', 'blink' ) }}
</div>
</td>
<td>
{{ basic.symbol (id~'WZ_r_sh.pos', 'WZ_r_sh.pos', '', icon.shutter(id~'WZ_r_sh.shutter', '', 'WZ_r_sh.pos', '1', '100'), [ 2, 99], '>', ['icon1','#ffdb00','#25ea4e']) }}
</td>
</tr>
<tr>
<td>
<div style="font-size:0.8em">
{{ basic.symbol('', '', 'Schlafzimmer 1') }}
</div>
</td>
</tr>
<tr>
<td>
<div data-role="controlgroup" data-type="horizontal">
{{ basic.stateswitch('', 'SZ1_sh.auf', 'micro',value_bottom|default('255') < value_top|default('0') ? 1 : 0, 'carat-u', '', '', 'blink' ) }}
{{ basic.stateswitch('', 'SZ1_sh.stop', 'micro', 1, 'delete') }}
{{ basic.stateswitch('', 'SZ1_sh.auf', 'micro',value_bottom|default('255') < value_top|default('0') ? 0 : 1, 'carat-d', '', '', 'blink' ) }}
</div>
</td>
<td>
{{ basic.symbol (id~'SZ1_sh.pos', 'SZ1_sh.pos', '', icon.shutter(id~'SZ1_sh.shutter', '', 'SZ1_sh.pos', '1', '100'), [ 2, 99], '>', ['icon1','#ffdb00','#25ea4e']) }}
</td>
</tr>
<tr>
<td>
<div style="font-size:0.8em">
{{ basic.symbol('', '', 'Eugen Schlafzimmer') }}
</div>
</td>
</tr>
<tr>
<td>
<div data-role="controlgroup" data-type="horizontal">
{{ basic.stateswitch('', 'EugenSZ_sh.auf', 'micro',value_bottom|default('255') < value_top|default('0') ? 1 : 0, 'carat-u', '', '', 'blink' ) }}
{{ basic.stateswitch('', 'EugenSZ_sh.stop', 'micro', 1, 'delete') }}
{{ basic.stateswitch('', 'EugenSZ_sh.auf', 'micro',value_bottom|default('255') < value_top|default('0') ? 0 : 1, 'carat-d', '', '', 'blink' ) }}
</div>
</td>
<td>
{{ basic.symbol (id~'EugenSZ_sh.pos', 'EugenSZ_sh.pos', '', icon.shutter(id~'EugenSZ_sh.shutter', '', 'EugenSZ_sh.pos', '1', '100'), [ 2, 99], '>', ['icon1','#ffdb00','#25ea4e']) }}
</td>
</tr>
</table>
</div>

{% endblock %}

Meine rooms.html
/**
* -----------------------------------------------------------------------------
* @package     smartVISU
* @author      Martin Gleiß
* @copyright   2012 - 2015
* @license     GPL [http://www.gnu.de]
* -----------------------------------------------------------------------------
*/


{% extends "base.html" %}

{% block sidebar %}

{% include 'navigation.html' %}

{% endblock %}

{% block content %}
   
    Rooms

{% endblock %}
navigation.html
/**
* -----------------------------------------------------------------------------
* @package     smartVISU
* @author      Johann Schierl
* @copyright   2019
* @license     GPL [http://www.gnu.de]
* -----------------------------------------------------------------------------
*/

<div data-role="collapsible-set" style="margin-top: -15px;" data-inset="false" data-mini="true" data-content-theme="a">

<div data-role="collapsible"{{ pagepath == 'Obergeschoss' ? ' data-collapsed="false"' }} data-theme="c" data-content-theme="a">
<h3>Obergeschoss</h3>

<ul data-role="listview" data-dividertheme="c">
<li data-icon="false">
<a href="index.php?page=Obergeschoss/Eugen">
<img class="icon" src="{{ icon0 }}scene_childs_room.svg" />

<h3>Eugen</h3>

<div class="ui-li-aside">
{{  basic.print( '', 'Eugen_th.act.temp', '%2,1f°C / ') }}
{{  basic.print( '', 'Eugen_th.humidity', ' %') }}
<div style="font-size:0.8em">
{{  basic.print( '', 'Eugen_th.set.temp', '%2,1f°C') }}
</div>
</div>
</a>
</li>
<li data-icon="false">
<a href="index.php?page=Obergeschoss/Schlafzimmer_1">
<img class="icon" src="{{ icon0 }}scene_sleeping_alternat.svg" />

<h3>Schlafzimmer 1</h3>

<div class="ui-li-aside">
{{  basic.print( SZ1_t, 'SZ1_th.act.temp', '%2,1f°C / ') }}
{{  basic.print( SZ1_h, 'SZ1_th.humidity', ' %') }}
<div style="font-size:0.8em">
{{  basic.print( '', 'SZ1_th.set.temp', '%2,1f°C') }}
</div>
</div>
</a>
</li>
<li data-icon="false">
<a href="index.php?page=Obergeschoss/Eugen_Schlafzimmer">
<img class="icon" src="{{ icon0 }}scene_sleeping_alternat.svg" />

<h3>Eugen Schlafzimmer</h3>

<div class="ui-li-aside">
{{  basic.print( EugenSZ_t, 'EugenSZ_th.act.temp', '%2,1f°C / ') }}
{{  basic.print( EugenSZ_h, 'EugenSZ_th.humidity', ' %') }}
<div style="font-size:0.8em">
{{  basic.print( '', 'EugenSZ_th.set.temp', '%2,1f°C') }}
</div>
</div>
</a>
</li>
<li data-icon="false">
<a href="index.php?page=Obergeschoss/OG_Bad">
<img class="icon" src="{{ icon0 }}scene_shower.svg" />

<h3>Bad</h3>

<div class="ui-li-aside">
{{  basic.print( OG_Bad_t, 'OG_Bad_th.act.temp', '%2,1f°C / ') }}
{{  basic.print( OG_Bad_h, 'OG_Bad_th.humidity', ' %') }}
<div style="font-size:0.8em">
{{  basic.print( '', 'OG_Bad_th.set.temp', '%2,1f°C') }}
</div>
</div>
</a>
</li>
</ul>
</div>

<div data-role="collapsible"{{ pagepath not in ['Aussen','Obergeschoss','Keller','Uebersicht'] ? ' data-collapsed="false"' }} data-theme="c" data-content-theme="a">
<h3>Erdgeschoss</h3>

<ul data-role="listview" data-dividertheme="c">
<li data-icon="false">
<a href="index.php?page=Erdgeschoss/Eingang">
<img class="icon" src="{{ icon0 }}scene_corridor.svg" />

<h3>Eingang</h3>

<div class="ui-li-aside">
{{  basic.print( Eingang_t, 'Eingang_th.act.temp', '%2,1f°C / ') }}
{{  basic.print( Eingang_h, 'Eingang_th.humidity', ' %') }}
<div style="font-size:0.8em">
{{  basic.print( '', 'Eingang_th.set.temp', '%2,1f°C') }}
</div>
</div>
</a>
</li>
<li data-icon="false">
<a href="index.php?page=Erdgeschoss/Buero">
<img class="icon icon0" src="{{ icon0 }}scene_office.svg" / >

<h3>Büro</h3>

<div class="ui-li-aside">
{{  basic.print( b_t, 'Buero_th.act.temp', '%2,1f°C / ') }}
{{  basic.print( b_h, 'Buero_th.humidity', ' %') }}
<div style="font-size:0.8em">
{{  basic.print( '', 'Buero_th.set.temp', '%2,1f°C') }}
</div>
</div>
</a>
</li>
<li data-icon="false">
<a href="index.php?page=Erdgeschoss/Wohnzimmer">
<img class="icon" src="{{ icon0 }}scene_livingroom.svg"  />

<h3>Wohnzimmer</h3>

<div class="ui-li-aside">
{{  basic.print( WZ_t, 'WZ_th.act.temp', '%2,1f°C / ') }}
{{  basic.print( WZ_h, 'WZ_th.humidity', ' %') }}
<div style="font-size:0.8em">
{{  basic.print( '', 'WZ_th.set.temp', '%2,1f°C') }}
</div>
</div>
</a>
</li>
<li data-icon="false">
<a href="index.php?page=Erdgeschoss/EG_Bad">
<img class="icon" src="{{ icon0 }}scene_shower.svg" />

<h3>Bad</h3>

<div class="ui-li-aside">
{{  basic.print( EG_Bad_t, 'EG_Bad_th.act.temp', '%2,1f°C / ') }}
{{  basic.print( EG_Bad_h, 'EG_Bad_th.humidity', ' %') }}
<div style="font-size:0.8em">
{{  basic.print( '', 'EG_Bad_th.set.temp', '%2,1f°C') }}
</div>
</div>
</a>
</li>
<li data-icon="false">
<a href="index.php?page=Erdgeschoss/Stiegenhaus">
<img class="icon" src="{{ icon0 }}scene_stairs.svg" />

<h3>Stiegenhaus</h3>

<div class="ui-li-aside">
{{  basic.print( SHO_t, 'SHO_etrv.act.temp', '%2,1f°C ') }}
({{  basic.print( '', 'SHO_etrv.set.temp', '%2,1f°C') }})<br>
{{  basic.print( SHU_t, 'SHU_etrv.act.temp', '%2,1f°C ') }}
({{  basic.print( '', 'SHU_etrv.set.temp', '%2,1f°C') }})
</div>
</a>
</li>
</ul>
</div>

<div data-role="collapsible"{{ pagepath == 'Keller' ? ' data-collapsed="false"' }} data-theme="c" data-content-theme="a">
<h3>Keller</h3>

<ul data-role="listview" data-dividertheme="c">
<li data-icon="false">
<a href="index.php?page=Keller/Selin_Schlafzimmer">
<img class="icon" src="{{ icon0 }}scene_sleeping_alternat.svg" />

<h3>Selin Schlafzimmer</h3>

<div class="ui-li-aside">
{{  basic.print( SSZ_t, 'SSZ_th.act.temp', '%2,1f°C / ') }}
{{  basic.print( SSZ_h, 'SSZ_th.humidity', ' %') }}
<div style="font-size:0.8em">
{{  basic.print( '', 'SSZ_th.set.temp', '%2,1f°C') }}
</div>
</div>
</a>
</li>
<li data-icon="false">
<a href="index.php?page=Keller/Selin_Wohnzimmer">
<img class="icon" src="{{ icon0 }}scene_living.svg" />

<h3>Selin Wohnzimmer</h3>

<div class="ui-li-aside">
{{  basic.print( SWZ_t, 'SWZ_th.act.temp', '%2,1f°C / ') }}
{{  basic.print( SWZ_h, 'SWZ_th.humidity', ' %') }}
<div style="font-size:0.8em">
{{  basic.print( '', 'SWZ_th.set.temp', '%2,1f°C') }}
</div>
</div>
</a>
</li>
<li data-icon="false">
<a href="index.php?page=Keller/Werkstatt">
<img class="icon" src="{{ icon0 }}scene_workshop.svg" />

<h3>Werkstatt</h3>

<div class="ui-li-aside">
{{  basic.print( Werkstatt_t, 'Werkstatt_th.act.temp', '%2,1f°C / ') }}
{{  basic.print( Werkstatt_h, 'Werkstatt_th.humidity', ' %') }}
<div style="font-size:0.8em">
{{  basic.print( '', 'Werkstatt_th.set.temp', '%2,1f°C') }}
</div>
</div>
</a>
</li>
<li data-icon="false">
<a href="index.php?page=Keller/Heizkeller">
<img class="icon" src="{{ icon0 }}sani_cogeneration.svg" />
<h3>Heizkeller</h3>

<div class="ui-li-aside">
{{  basic.print( Keller_t, 'Heizkeller.act.temp', '%2,1f°C / ') }}
{{  basic.print( Keller_h, 'Heizkeller.humidity', ' %') }}
<br>
{{  basic.print( Keller_h, 'Heizung.vorlauf', 'VL: %2,1f°C ') }}
<br>
{{  basic.print( Keller_h, 'Heizung.ruecklauf', 'RL: %2,1f°C') }}
</div>
</a>
</li>
</ul>
</div>

<div data-role="collapsible"{{ pagepath == 'Aussen' ? ' data-collapsed="false"' }} data-theme="c" data-content-theme="a">
<h3>Aussen</h3>

<ul data-role="listview" data-dividertheme="c">
<li data-icon="false">
<a href="index.php?page=Aussen/Garten">
<img class="icon" src="{{ icon0 }}control_building_outside.svg" />

<h3>Garten</h3>

<div class="ui-li-aside">
{{  basic.print( ws_t, 'ws.temperatur', '%2,1f°C / ') }}
{{  basic.print( ws_h, 'ws.humidity', ' %') }}
</div>
</a>
</li>
</ul>
</div>

<div data-role="collapsible"{{ pagepath == 'Uebersicht' ? ' data-collapsed="false"' }} data-theme="c" data-content-theme="a">
<h3>Übersicht</h3>

<ul data-role="listview" data-dividertheme="c">
<li data-icon="false">
<a href="index.php?page=Uebersicht/Batterien">
<img class="icon" src="{{ icon0 }}measure_battery_100.svg" />

<h3>Batterien</h3>

<div class="ui-li-aside">
</div>
</a>
</li>
<li data-icon="false">
<a href="index.php?page=Uebersicht/Ventile">
<img class="icon" src="{{ icon0 }}sani_heating_temp.svg" />

<h3>Ventile</h3>

<div class="ui-li-aside">
</div>
</a>
</li>
<li data-icon="false">
<a href="index.php?page=Uebersicht/Kurven">
<img class="icon" src="{{ icon0 }}measure_current.svg" />

<h3>Kurven</h3>

<div class="ui-li-aside">
</div>
</a>
</li>

<li data-icon="false">
<a href="index.php?page=Uebersicht/Test">
<img class="icon" src="{{ icon0 }}jquery_alert.svg" />

<h3>Test</h3>

<div class="ui-li-aside">
</div>
</a>
</li>

</ul>
</div>

</div>
Raspi 3, Sduino 433MHz und 868MHz beide CC1101, Wetterstation TFA Dostmann 35.1119 (WH1080), intertechno PAR1000/PA1500
NOBILY Standard-Minifunkrolladenmotor PR4 13/147-40 ID-98, Homematic CCU3 (homematic-raspi), HmIP-eTRV-2, HmIP-SWDO, HmIP-STH, HmIP-WTH-2, Eigenbau sonoff für Gartenbewässerung

alkazaa

OK, ich hatte diese kleinen dunklen Markierungen auf dem dunklen Hintergrund des FHEM-f18 styles gar nicht wahrgenommen. Dass sie bei item:plot im Gegensatz zu item:item nicht angezeigt werden liegt vermutlich nur daran, dass vergessen wurde, es zu implementieren als raman die Plot-Funktionalität hinzufügte.

Und dass bei mir einige items immer aktiv sind liegt daran, dass sie auf der sidebar leiste immer da sind. Hatte ich nicht gemerkt, da ich bei meinem letzten post nur mit smartphone getestet hatte, bei dem die sidebar nicht angezeigt wurde.

Es bleibt aber dabei, dass bei mir ansonsten nur die Plots übertragen werden, die auf der jeweiligen Seite vorkommen, nicht ALLE plots.

Johann.S

#6
Ich habe mein fronthem und fronthemdevice auf verbos 5 gestellt und im Eventmonitor den Filter auf "ipc fronthem.*"!
Etwas warten und es kommen bei mir die Einträge wie du sie im Log siehst!
Sollte das bei dir nicht so sein hätte ich es auch gern so ;)

Edit: Es beginnt erst mit dem ersten Plot und Filter diesmal "ipc fronthem.*plot"
Raspi 3, Sduino 433MHz und 868MHz beide CC1101, Wetterstation TFA Dostmann 35.1119 (WH1080), intertechno PAR1000/PA1500
NOBILY Standard-Minifunkrolladenmotor PR4 13/147-40 ID-98, Homematic CCU3 (homematic-raspi), HmIP-eTRV-2, HmIP-SWDO, HmIP-STH, HmIP-WTH-2, Eigenbau sonoff für Gartenbewässerung

alkazaa

Bei mir heißt der event filter "ipc meinfronthem.*"
Auf meiner Titelseite gibt es einen Plot mit 3 graphen. Dazu gehört Datei "Titelseite.log".

Leider liefert schon verbose=4 die ganzen Plotdaten mit, daher ist die Datei schwer zu lesen. Am besten in notepad++ ohne word wrap anschauen. Mit Suchfunktion in notepad++ werden 3 Treffer angezeigt, wenn ich nach "plot" suche.

Eine andere aufgerufene Seite mit einem plot mit 2 graphen liefert Datei "andereSeite.log". Da zählt man 5 Treffer für "plot", das sind die 3 Graphen der Titelseite, die in der sidebar sind, plus die 2 neuen.

Um auszuschließen, dass es daran liegt, hier die benutzten Versionen:
Für fronthem verwende ich den develop branch aus https://github.com/wvhn/fronthem.git.
Bei smartvisu bin ich auf Version 3.30



wvhn

Moin Franz,

was passiert, wenn Du nach der zweiten Seite auf eine andere Seite ohne Plots wechselst (also nur mit den 3 Plots in der Sidebar)? Werden dann nur die 3 Plots geladen? Und für welche Plots bekommst Du noch kontinuierlich Updates, wenn Du diese Seite länger stehen lässt?

Kann es sein, dass fronthem bei fhem alle konfigurierten Plots anfragt, aber immer nur die gerade auf der Visu-Seite benötigten Daten an smartVISU weitergibt? Das könnte eine Erklärung dafür sein, dass fhem bei vielen konfigurierten Plots in die Knie geht.

Gruß
Wolfram

alkazaa

Zitat von: wvhn am 14 August 2023, 21:45:37was passiert, wenn Du nach der zweiten Seite auf eine andere Seite ohne Plots wechselst (also nur mit den 3 Plots in der Sidebar)? Werden dann nur die 3 Plots geladen? Und für welche Plots bekommst Du noch kontinuierlich Updates, wenn Du diese Seite länger stehen lässt?

Kann es sein, dass fronthem bei fhem alle konfigurierten Plots anfragt, aber immer nur die gerade auf der Visu-Seite benötigten Daten an smartVISU weitergibt? Das könnte eine Erklärung dafür sein, dass fhem bei vielen konfigurierten Plots in die Knie geht.
Bei einer Seite ohne Plots werden nur die der sidebar aktualisiert. Andere Plots erscheinen auch bei längerem Warten (10 min) nicht.

War jetzt aber alles nur mit Smartphone. Ich teste morgen Abend nochmal weiter...

Johann.S

#10
Ich verwende smartVISU 3.31 und nur den smartVISU github!

smartVISU_Update.sh
#!/bin/bash
# -----------------------------------------------------------------------------
# @package     smartVISU - Update
# @author      Johann Schierl
# @copyright   2019
# @license     GPL [http://www.gnu.de]
# -----------------------------------------------------------------------------

echo apache2 restart
systemctl restart apache2

echo alte .old löschen
rm -R /var/www/html/smartVISU.old

echo Original in .old umbenenen
mv /var/www/html/smartVISU /var/www/html/smartVISU.old

echo neues smartVISU erstellen
mkdir /var/www/html/smartVISU
cd /var/www/html/smartVISU/
chmod -R g+rws /var/www/html/smartVISU

echo Update beginn
# git pull origin develop
git clone https://github.com/Martin-Gleiss/smartvisu.git .

echo meine Dateien hinzufügen
cp -R /var/www/html/smartVISU.old/config.ini /var/www/html/smartVISU/config.ini
cp -R /var/www/html/smartVISU.old/dropins /var/www/html/smartVISU/
cp -R /var/www/html/smartVISU.old/pages/Haus /var/www/html/smartVISU/pages/

echo Rechte setzen
chown -R www-data:www-data /var/www/html/smartVISU/
chmod -R g+rw /var/www/html/smartVISU

echo apache2 restart
systemctl restart apache2

Sollte ich den Developer-Branch auch hinzufügen oder ist der schon im Standardt drin?

Edit: Es werden nur Plots aktualisiert, wo sich ein Wert ändert, z.B. Wetterdaten, Raumtemperatur - luftfeuchte, div. Homematic-Sensoren usw.
        egal ob sie schon mal aufgerufen wurden oder nicht!
Raspi 3, Sduino 433MHz und 868MHz beide CC1101, Wetterstation TFA Dostmann 35.1119 (WH1080), intertechno PAR1000/PA1500
NOBILY Standard-Minifunkrolladenmotor PR4 13/147-40 ID-98, Homematic CCU3 (homematic-raspi), HmIP-eTRV-2, HmIP-SWDO, HmIP-STH, HmIP-WTH-2, Eigenbau sonoff für Gartenbewässerung

alkazaa

Zitat von: Johann.S am 15 August 2023, 10:23:47Sollte ich den Developer-Branch auch hinzufügen oder ist der schon im Standardt drin?
Mit developer branch meinte ich den von fronthem.git

Johann.S

#12
Um sicher zu gehen das wir alle den gleichen Stand haben, habe ich den develop Branch zuerst kopiert und dann erst den Test durchgeführt!

Alle Instanzen von smartVISU sind geschlossen.
Aufruf der Startseite http://.../index.php.
Du darfst diesen Dateianhang nicht ansehen.

das Zugehörige log mit verbose 4
2023.08.15 22:39:53 4: ipc fronthem:127.0.0.1:42510 (ws): ws send to client{"cmd":"item","items":["SWP.Pumpe","0"]}
2023.08.15 22:39:53 4: ipc fronthem:127.0.0.1:42510 (ws): ws send to client{"cmd":"item","items":["Giesen.Pumpe","0"]}
2023.08.15 22:39:53 4: ipc fronthem:127.0.0.1:42510 (ws): ws send to client{"cmd":"item","items":["Solarpumpe.Pumpe","0"]}
2023.08.15 22:39:53 4: ipc fronthem:127.0.0.1:42510 (ws): ws send to client{"items":["Rollo_WZ_beide_auf","2023-08-16 05:54:15"],"cmd":"item"}
2023.08.15 22:39:53 4: ipc fronthem:127.0.0.1:42510 (ws): ws send to client{"items":["Rollo_WZ_beide_zu","2023-08-16 20:19:43"],"cmd":"item"}
2023.08.15 22:39:53 4: ipc fronthem:127.0.0.1:42510 (ws): ws send to client{"cmd":"item","items":["ws.temperatur","21.3"]}
2023.08.15 22:39:53 4: ipc fronthem:127.0.0.1:42510 (ws): ws send to client{"cmd":"item","items":["ws.battery","low"]}
2023.08.15 22:39:53 4: ipc fronthem:127.0.0.1:42510 (ws): ws send to client{"cmd":"item","items":["ws.humidity","75"]}
2023.08.15 22:39:53 4: ipc fronthem:127.0.0.1:42510 (ws): ws send to client{"items":["sb.temp","24.6"],"cmd":"item"}
2023.08.15 22:39:53 4: ipc fronthem:127.0.0.1:42510 (ws): ws send to client{"items":["ws.winddegree","135"],"cmd":"item"}
2023.08.15 22:39:53 4: ipc fronthem:127.0.0.1:42510 (ws): ws send to client{"cmd":"item","items":["ws.windtext","SE"]}
2023.08.15 22:39:53 4: ipc fronthem:127.0.0.1:42510 (ws): ws send to client{"items":["ws.windspeed","0.0"],"cmd":"item"}
2023.08.15 22:39:53 4: ipc fronthem:127.0.0.1:42510 (ws): ws send to client{"items":["ws.windguest","0.0"],"cmd":"item"}
2023.08.15 22:39:53 4: ipc fronthem:127.0.0.1:42510 (ws): ws send to client{"cmd":"item","items":["ws.rain_1h","0.0"]}
2023.08.15 22:39:53 4: ipc fronthem:127.0.0.1:42510 (ws): ws send to client{"items":["ws.rain_6h","0.0"],"cmd":"item"}
2023.08.15 22:39:53 4: ipc fronthem:127.0.0.1:42510 (ws): ws send to client{"cmd":"item","items":["ws.rain_24h","0.0"]}
2023.08.15 22:39:53 4: ipc fronthem:127.0.0.1:42510 (ws): ws send to client{"cmd":"item","items":["ws.rain_48h","0.0"]}
2023.08.15 22:39:53 4: ipc fronthem:127.0.0.1:42510 (ws): ws send to client{"items":["ws.time","2023-08-15 22:39:42"],"cmd":"item"}
2023.08.15 22:39:53 4: ipc fronthem:127.0.0.1:42510 (ws): ws send to client{"items":["WZ_l_sh.auf","1"],"cmd":"item"}
2023.08.15 22:39:53 4: ipc fronthem:127.0.0.1:42510 (ws): ws send to client{"cmd":"item","items":["WZ_l_sh.stop","1"]}
2023.08.15 22:39:53 4: ipc fronthem:127.0.0.1:42510 (ws): ws send to client{"items":["WZ_l_sh.pos","200"],"cmd":"item"}
2023.08.15 22:39:53 4: ipc fronthem:127.0.0.1:42510 (ws): ws send to client{"cmd":"item","items":["WZ_r_sh.auf","1"]}
2023.08.15 22:39:53 4: ipc fronthem:127.0.0.1:42510 (ws): ws send to client{"items":["WZ_r_sh.stop","1"],"cmd":"item"}
2023.08.15 22:39:53 4: ipc fronthem:127.0.0.1:42510 (ws): ws send to client{"items":["WZ_r_sh.pos","200"],"cmd":"item"}
2023.08.15 22:39:53 4: ipc fronthem:127.0.0.1:42510 (ws): ws send to client{"cmd":"item","items":["SZ1_sh.auf","1"]}
2023.08.15 22:39:53 4: ipc fronthem:127.0.0.1:42510 (ws): ws send to client{"cmd":"item","items":["SZ1_sh.stop","1"]}
2023.08.15 22:39:53 4: ipc fronthem:127.0.0.1:42510 (ws): ws send to client{"cmd":"item","items":["SZ1_sh.pos","0"]}
2023.08.15 22:39:53 4: ipc fronthem:127.0.0.1:42510 (ws): ws send to client{"items":["EugenSZ_sh.auf","1"],"cmd":"item"}
2023.08.15 22:39:53 4: ipc fronthem:127.0.0.1:42510 (ws): ws send to client{"items":["EugenSZ_sh.stop","1"],"cmd":"item"}
2023.08.15 22:39:53 4: ipc fronthem:127.0.0.1:42510 (ws): ws send to client{"cmd":"item","items":["EugenSZ_sh.pos","0"]}
2023.08.15 22:39:53 4: ipc fronthem:127.0.0.1:42510 (ws): ws send to client{"cmd":"item","items":["Eugen_th.act.temp","28.2"]}
2023.08.15 22:39:53 4: ipc fronthem:127.0.0.1:42510 (ws): ws send to client{"cmd":"item","items":["Eugen_th.humidity","50"]}
2023.08.15 22:39:53 4: ipc fronthem:127.0.0.1:42510 (ws): ws send to client{"cmd":"item","items":["Eugen_th.set.temp","12.0"]}
2023.08.15 22:39:53 4: ipc fronthem:127.0.0.1:42510 (ws): ws send to client{"items":["SZ1_th.act.temp","26.8"],"cmd":"item"}
2023.08.15 22:39:53 4: ipc fronthem:127.0.0.1:42510 (ws): ws send to client{"items":["SZ1_th.humidity","55"],"cmd":"item"}
2023.08.15 22:39:53 4: ipc fronthem:127.0.0.1:42510 (ws): ws send to client{"items":["SZ1_th.set.temp","17.0"],"cmd":"item"}
2023.08.15 22:39:53 4: ipc fronthem:127.0.0.1:42510 (ws): ws send to client{"cmd":"item","items":["EugenSZ_th.act.temp","26.1"]}
2023.08.15 22:39:53 4: ipc fronthem:127.0.0.1:42510 (ws): ws send to client{"items":["EugenSZ_th.humidity","56"],"cmd":"item"}
2023.08.15 22:39:53 4: ipc fronthem:127.0.0.1:42510 (ws): ws send to client{"cmd":"item","items":["EugenSZ_th.set.temp","19.0"]}
2023.08.15 22:39:53 4: ipc fronthem:127.0.0.1:42510 (ws): ws send to client{"items":["OG_Bad_th.act.temp","27.1"],"cmd":"item"}
2023.08.15 22:39:53 4: ipc fronthem:127.0.0.1:42510 (ws): ws send to client{"cmd":"item","items":["OG_Bad_th.humidity","54"]}
2023.08.15 22:39:53 4: ipc fronthem:127.0.0.1:42510 (ws): ws send to client{"cmd":"item","items":["OG_Bad_th.set.temp","19.0"]}
2023.08.15 22:39:53 4: ipc fronthem:127.0.0.1:42510 (ws): ws send to client{"cmd":"item","items":["Eingang_th.act.temp","26.1"]}
2023.08.15 22:39:53 4: ipc fronthem:127.0.0.1:42510 (ws): ws send to client{"items":["Eingang_th.humidity","57"],"cmd":"item"}
2023.08.15 22:39:53 4: ipc fronthem:127.0.0.1:42510 (ws): ws send to client{"items":["Eingang_th.set.temp","20.0"],"cmd":"item"}
2023.08.15 22:39:53 4: ipc fronthem:127.0.0.1:42510 (ws): ws send to client{"items":["Buero_th.act.temp","25.8"],"cmd":"item"}
2023.08.15 22:39:53 4: ipc fronthem:127.0.0.1:42510 (ws): ws send to client{"items":["Buero_th.humidity","58"],"cmd":"item"}
2023.08.15 22:39:53 4: ipc fronthem:127.0.0.1:42510 (ws): ws send to client{"items":["Buero_th.set.temp","12.0"],"cmd":"item"}
2023.08.15 22:39:53 4: ipc fronthem:127.0.0.1:42510 (ws): ws send to client{"cmd":"item","items":["WZ_th.act.temp","25.4"]}
2023.08.15 22:39:53 4: ipc fronthem:127.0.0.1:42510 (ws): ws send to client{"cmd":"item","items":["WZ_th.humidity","61"]}
2023.08.15 22:39:53 4: ipc fronthem:127.0.0.1:42510 (ws): ws send to client{"items":["WZ_th.set.temp","19.0"],"cmd":"item"}
2023.08.15 22:39:53 4: ipc fronthem:127.0.0.1:42510 (ws): ws send to client{"items":["EG_Bad_th.act.temp","25.1"],"cmd":"item"}
2023.08.15 22:39:53 4: ipc fronthem:127.0.0.1:42510 (ws): ws send to client{"items":["EG_Bad_th.humidity","63"],"cmd":"item"}
2023.08.15 22:39:53 4: ipc fronthem:127.0.0.1:42510 (ws): ws send to client{"items":["EG_Bad_th.set.temp","12.0"],"cmd":"item"}
2023.08.15 22:39:53 4: ipc fronthem:127.0.0.1:42510 (ws): ws send to client{"items":["SHO_etrv.act.temp","25.9"],"cmd":"item"}
2023.08.15 22:39:53 4: ipc fronthem:127.0.0.1:42510 (ws): ws send to client{"items":["SHO_etrv.set.temp","19"],"cmd":"item"}
2023.08.15 22:39:53 4: ipc fronthem:127.0.0.1:42510 (ws): ws send to client{"cmd":"item","items":["SHU_etrv.act.temp","22.8"]}
2023.08.15 22:39:53 4: ipc fronthem:127.0.0.1:42510 (ws): ws send to client{"items":["SHU_etrv.set.temp","19"],"cmd":"item"}
2023.08.15 22:39:53 4: ipc fronthem:127.0.0.1:42510 (ws): ws send to client{"cmd":"item","items":["SSZ_th.act.temp","22.6"]}
2023.08.15 22:39:53 4: ipc fronthem:127.0.0.1:42510 (ws): ws send to client{"cmd":"item","items":["SSZ_th.humidity","70"]}
2023.08.15 22:39:53 4: ipc fronthem:127.0.0.1:42510 (ws): ws send to client{"cmd":"item","items":["SSZ_th.set.temp","19.0"]}
2023.08.15 22:39:53 4: ipc fronthem:127.0.0.1:42510 (ws): ws send to client{"items":["SWZ_th.act.temp","21.5"],"cmd":"item"}
2023.08.15 22:39:53 4: ipc fronthem:127.0.0.1:42510 (ws): ws send to client{"cmd":"item","items":["SWZ_th.humidity","74"]}
2023.08.15 22:39:53 4: ipc fronthem:127.0.0.1:42510 (ws): ws send to client{"items":["SWZ_th.set.temp","19.0"],"cmd":"item"}
2023.08.15 22:39:53 4: ipc fronthem:127.0.0.1:42510 (ws): ws send to client{"cmd":"item","items":["Werkstatt_th.act.temp","21.9"]}
2023.08.15 22:39:53 4: ipc fronthem:127.0.0.1:42510 (ws): ws send to client{"cmd":"item","items":["Werkstatt_th.humidity","69"]}
2023.08.15 22:39:53 4: ipc fronthem:127.0.0.1:42510 (ws): ws send to client{"cmd":"item","items":["Werkstatt_th.set.temp","12.0"]}
2023.08.15 22:39:53 4: ipc fronthem:127.0.0.1:42510 (ws): ws send to client{"items":["Heizkeller.act.temp","25.4"],"cmd":"item"}
2023.08.15 22:39:53 4: ipc fronthem:127.0.0.1:42510 (ws): ws send to client{"items":["Heizkeller.humidity","62"],"cmd":"item"}
2023.08.15 22:39:53 4: ipc fronthem:127.0.0.1:42510 (ws): ws send to client{"items":["Heizung.vorlauf","28.3"],"cmd":"item"}
2023.08.15 22:39:53 4: ipc fronthem:127.0.0.1:42510 (ws): ws send to client{"items":["Heizung.ruecklauf","34.2"],"cmd":"item"}
2023.08.15 22:40:04 4: ipc fronthem:127.0.0.1:42510 (ws): ws send to client{"cmd":"plot","items":[{"item":"Heizung.ruecklauf.plot.avg.1m.now.","plotdata":[],"updatemode":"point"}]}
2023.08.15 22:40:04 4: ipc fronthem:127.0.0.1:42510 (ws): ws send to client{"cmd":"item","items":["Heizung.ruecklauf","34.1"]}
2023.08.15 22:40:04 4: ipc fronthem:127.0.0.1:42510 (ws): ws send to client{"cmd":"plot","items":[{"item":"Heizung.ruecklauf.plot.avg.1m.now.","updatemode":"point","plotdata":[]}]}
2023.08.15 22:40:04 4: ipc fronthem:127.0.0.1:42510 (ws): ws send to client{"items":["Heizung.ruecklauf","34.1"],"cmd":"item"}
2023.08.15 22:41:04 4: ipc fronthem:127.0.0.1:42510 (ws): ws send to client{"cmd":"plot","items":[{"plotdata":[],"updatemode":"point","item":"Heizung.ruecklauf.plot.avg.1m.now."}]}
2023.08.15 22:41:04 4: ipc fronthem:127.0.0.1:42510 (ws): ws send to client{"cmd":"item","items":["Heizung.ruecklauf","34"]}
2023.08.15 22:41:04 4: ipc fronthem:127.0.0.1:42510 (ws): ws send to client{"items":[{"item":"Heizung.ruecklauf.plot.avg.1m.now.","updatemode":"point","plotdata":[]}],"cmd":"plot"}
2023.08.15 22:41:04 4: ipc fronthem:127.0.0.1:42510 (ws): ws send to client{"items":["Heizung.ruecklauf","34"],"cmd":"item"}
Es werden in der Navigation sehr viele Werte angezeigt!

Der interessante Part aus dem Log
2023.08.15 22:39:53 4: ipc fronthem:127.0.0.1:42510 (ws): ws send to client{"items":["Heizung.ruecklauf","34.2"],"cmd":"item"}
2023.08.15 22:40:04 4: ipc fronthem:127.0.0.1:42510 (ws): ws send to client{"cmd":"plot","items":[{"item":"Heizung.ruecklauf.plot.avg.1m.now.","plotdata":[],"updatemode":"point"}]}
2023.08.15 22:40:04 4: ipc fronthem:127.0.0.1:42510 (ws): ws send to client{"cmd":"item","items":["Heizung.ruecklauf","34.1"]}
2023.08.15 22:40:04 4: ipc fronthem:127.0.0.1:42510 (ws): ws send to client{"cmd":"plot","items":[{"item":"Heizung.ruecklauf.plot.avg.1m.now.","updatemode":"point","plotdata":[]}]}
2023.08.15 22:40:04 4: ipc fronthem:127.0.0.1:42510 (ws): ws send to client{"items":["Heizung.ruecklauf","34.1"],"cmd":"item"}
2023.08.15 22:41:04 4: ipc fronthem:127.0.0.1:42510 (ws): ws send to client{"cmd":"plot","items":[{"plotdata":[],"updatemode":"point","item":"Heizung.ruecklauf.plot.avg.1m.now."}]}
2023.08.15 22:41:04 4: ipc fronthem:127.0.0.1:42510 (ws): ws send to client{"cmd":"item","items":["Heizung.ruecklauf","34"]}
2023.08.15 22:41:04 4: ipc fronthem:127.0.0.1:42510 (ws): ws send to client{"items":[{"item":"Heizung.ruecklauf.plot.avg.1m.now.","updatemode":"point","plotdata":[]}],"cmd":"plot"}
2023.08.15 22:41:04 4: ipc fronthem:127.0.0.1:42510 (ws): ws send to client{"items":["Heizung.ruecklauf","34"],"cmd":"item"}

Es wird bis zu dem Punkt kein Plot aufgerufen. Heizung.ruecklauf wird in der Navigation angezeigt.
Du darfst diesen Dateianhang nicht ansehen.
Wenn sich der Wert in Heizung.ruecklauf verändert, wird an Heizung.ruecklauf.plot ein Update gesendet!
Und so ist es mit allen Werten die in irgend einem Plot verwendet werden,
auch ohne das ein Plot jemals aufgerufen wurde!

Wenn ich die Page Heizkeller aufrufe sind dann einige Plots enthalten!
Du darfst diesen Dateianhang nicht ansehen.
Du darfst diesen Dateianhang nicht ansehen.

Und so sehen fast alle meine Räume aus. Es sind auf jeder Page mindestens 2 Plots für Heizkörper und Thermostat enthalten!
Raspi 3, Sduino 433MHz und 868MHz beide CC1101, Wetterstation TFA Dostmann 35.1119 (WH1080), intertechno PAR1000/PA1500
NOBILY Standard-Minifunkrolladenmotor PR4 13/147-40 ID-98, Homematic CCU3 (homematic-raspi), HmIP-eTRV-2, HmIP-SWDO, HmIP-STH, HmIP-WTH-2, Eigenbau sonoff für Gartenbewässerung

alkazaa

Kannst Du mal, mit vorher geleertem SV-cache, nur die SV-Frontseite aufrufen und nur die Zeilen des verbose-5-FHEM-logs schicken, die den string  "connection" enthalten?
Bei meinem Seitenaufbau kommt da Folgendes:
2023.08.15 07:02:22 5: ipc meinfronthem:127.0.0.1:52896 (ws): receive {"connection":"conn-VE4iayXo","sender":"192.168.188.20","identity":"unknown","message":{"cmd":"connect"}}
2023.08.15 07:02:22 5: ipc meinfronthem:127.0.0.1:52896 (ws): receive {"connection":"conn-VE4iayXo","sender":"192.168.188.20","identity":"unknown","message":{"cmd":"handshake"}}
2023.08.15 07:02:22 5: ipc meinfronthem:127.0.0.1:52896 (ws): receive {"connection":"conn-VE4iayXo","sender":"192.168.188.20","identity":"unknown", "message":{"cmd":"proto","ver":"0.1"}}
2023.08.15 07:02:22 5: ipc meinfronthem:127.0.0.1:52896 (ws): receive {"connection":"conn-VE4iayXo","sender":"192.168.188.20","identity":"unknown", "message":{"cmd":"monitor","items":["T-Aussen","Tecalor_Heizen","ESP1_T","ESP1_p","ESP1_rF","Luefter_Tag","verreist","Gaeste","HzgBad"]}}
2023.08.15 07:02:22 5: ipc meinfronthem:127.0.0.1:52896 (ws): receive {"connection":"conn-VE4iayXo","sender":"192.168.188.20","identity":"unknown", "message":{"cmd":"plot","items":[{"item":"ESP1_rFplot","mode":"raw","start":"6h","end":"now","count":"10","interval":"OnChange","updatemode":"additional"},{"item":"ESP1_Tplot","mode":"raw","start":"6h","end":"now","count":"10","interval":"OnChange","updatemode":"additional"},{"item":"T_externplot","mode":"raw","start":"6h","end":"now","count":"10","interval":"OnChange","updatemode":"additional"}]}}
Die beiden letzten Zeilen enthalten die normalen Item.items Objekte ("cmd":"monitor","items": usw.) und die Item:plot Objekte ( "cmd":"plot","items": usw.). 

Tauchen da bei Dir schon alle irgendwo vorhandenen plots auf?
 

Johann.S

Alle Instanzen von SV beendet, SV- und Browsercache geleert.

Die ersten Zeilen mit connection:
2023.08.16 09:01:42 5: ipc fronthem:127.0.0.1:42510 (ws): receive {"connection":"conn-rERV970t","sender":"192.168.178.2","identity":"unknown","message":{"cmd":"connect"}}
2023.08.16 09:01:42 5: ipc fronthem:127.0.0.1:42510 (ws): receive {"connection":"conn-rERV970t","sender":"192.168.178.2","identity":"unknown","message":{"cmd":"handshake"}}
2023.08.16 09:01:42 5: ipc fronthem:127.0.0.1:42510 (ws): receive {"connection":"conn-rERV970t","sender":"192.168.178.2","identity":"unknown", "message":{"cmd":"proto","ver":"0.1"}}
2023.08.16 09:01:42 5: ipc fronthem:127.0.0.1:42510 (ws): receive {"connection":"conn-rERV970t","sender":"192.168.178.2","identity":"unknown", "message":{"cmd":"monitor","items":["SWP.Pumpe","Giesen.Pumpe","Solarpumpe.Pumpe","Rollo_WZ_beide_auf","Rollo_WZ_beide_zu","ws.temperatur","ws.battery","ws.humidity","sb.temp","ws.winddegree","ws.windtext","ws.windspeed","ws.windguest","ws.rain_1h","ws.rain_6h","ws.rain_24h","ws.rain_48h","ws.time","WZ_l_sh.auf","WZ_l_sh.stop","WZ_l_sh.pos","WZ_r_sh.auf","WZ_r_sh.stop","WZ_r_sh.pos","SZ1_sh.auf","SZ1_sh.stop","SZ1_sh.pos","EugenSZ_sh.auf","EugenSZ_sh.stop","EugenSZ_sh.pos","Eugen_th.act.temp","Eugen_th.humidity","Eugen_th.set.temp","SZ1_th.act.temp","SZ1_th.humidity","SZ1_th.set.temp","EugenSZ_th.act.temp","EugenSZ_th.humidity","EugenSZ_th.set.temp","OG_Bad_th.act.temp","OG_Bad_th.humidity","OG_Bad_th.set.temp","Eingang_th.act.temp","Eingang_th.humidity","Eingang_th.set.temp","Buero_th.act.temp","Buero_th.humidity","Buero_th.set.temp","WZ_th.act.temp","WZ_th.humidity","WZ_th.set.temp","EG_Bad_th.act.temp","EG_Bad_th.humidity","EG_Bad_th.set.temp","SHO_etrv.act.temp","SHO_etrv.set.temp","SHU_etrv.act.temp","SHU_etrv.set.temp","SSZ_th.act.temp","SSZ_th.humidity","SSZ_th.set.temp","SWZ_th.act.temp","SWZ_th.humidity","SWZ_th.set.temp","Werkstatt_th.act.temp","Werkstatt_th.humidity","Werkstatt_th.set.temp","Heizkeller.act.temp","Heizkeller.humidity","Heizung.vorlauf","Heizung.ruecklauf"]}}

Gewartet

Erste Zeilen mit plot plus die vorhergehende Erstinitialisierung des itme:item
2023.08.16 09:01:42 5: ipc fronthem:127.0.0.1:42510 (ws): receive {"log":{"text":"ws send to client{\"cmd\":\"item\",\"items\":[\"Heizung.ruecklauf\",\"22.4\"]}","level":4,"cmd":"log"}}
2023.08.16 09:01:42 4: ipc fronthem:127.0.0.1:42510 (ws): ws send to client{"cmd":"item","items":["Heizung.ruecklauf","22.4"]}

2023.08.16 09:02:55 5: ipc fronthem:127.0.0.1:42510 (ws): receive {"log":{"cmd":"log","text":"ws send to client{\"items\":[{\"item\":\"ws.temp.plot.avg.2d.now.2880\",\"updatemode\":\"point\",\"plotdata\":[]}],\"cmd\":\"plot\"}","level":4}}
2023.08.16 09:02:55 4: ipc fronthem:127.0.0.1:42510 (ws): ws send to client{"items":[{"item":"ws.temp.plot.avg.2d.now.2880","updatemode":"point","plotdata":[]}],"cmd":"plot"}

Ich hänge das komplette Log an, vielleicht siehst du da mehr!
Raspi 3, Sduino 433MHz und 868MHz beide CC1101, Wetterstation TFA Dostmann 35.1119 (WH1080), intertechno PAR1000/PA1500
NOBILY Standard-Minifunkrolladenmotor PR4 13/147-40 ID-98, Homematic CCU3 (homematic-raspi), HmIP-eTRV-2, HmIP-SWDO, HmIP-STH, HmIP-WTH-2, Eigenbau sonoff für Gartenbewässerung

alkazaa

OK, hab's jetzt auch bei mir gesehen. Hatte nie lang genug gewartet auf ein Update der nicht sichtbaren Plots. Und da ich keine der zeitfressenden averragings mache wars mir auch zuvor nicht aufgefallen.

wvhn

Wie kommen wir jetzt hier weiter? Die Ausgangsfrage war doch, dass fhem in die Knie geht, wenn viele Plots (auf unterschiedlichen Visu-Seiten) angelegt sind. Für mich ist noch nicht beantwortet, ob dies von Anfang an geschieht, oder erst, nachdem viele Seiten mit Plots aufgerufen wurden.

Erste Maßnahme ist die Prüfung im item-Editor von fronthem, ob noch überflüssige items aus der Probierphase angelegt sind. Fronthem merkt sich ja jedes einmal angefragte item, was insbesondere bei plot-items schnell in Dutzende geht, wenn man mit durations, modes und Anzahl Punkten spielt. Hier müssen alle nicht mehr zu den aktuellen Plots gehörenden items gelöscht werden.

Gruß
Wolfram

Johann.S

Es geschiet von Anfang an.
In fronthem werden von mir, alle item:item und item:plot sofort gelöscht, wenn sie nicht mehr gebrauch werden!
Man muss keinen Plot aufrufen, sobald ein update bei einem item:item durchgeführt wird und es gibt dazu Plot's,
werden auch die Plot's aktualisiert obwohl sie gar nicht vorhanden sind.

Meines erachtens bräuchten wir zwei Dinge:
  • daß man im Editor sieht welche item:plot aktiv sind (so wie die item:item)
  • ein Update nur dann durchführen, wenn die Plots aktiv sind (auch wie bei den item:item)

Hoffe ich habe es verständlich erklährt?
Franz bist du mit der Darstellung so einverstanden?

Gruß
Johann
Raspi 3, Sduino 433MHz und 868MHz beide CC1101, Wetterstation TFA Dostmann 35.1119 (WH1080), intertechno PAR1000/PA1500
NOBILY Standard-Minifunkrolladenmotor PR4 13/147-40 ID-98, Homematic CCU3 (homematic-raspi), HmIP-eTRV-2, HmIP-SWDO, HmIP-STH, HmIP-WTH-2, Eigenbau sonoff für Gartenbewässerung

alkazaa

Zitat von: Johann.S am 17 August 2023, 17:01:44Man muss keinen Plot aufrufen, sobald ein update bei einem item:item durchgeführt wird und es gibt dazu Plot's,
werden auch die Plot's aktualisiert obwohl sie gar nicht vorhanden sind.
Ist bei mir auch so. Allerdings werden für item:plot keine Daten zu smartvisu geschickt, wenn der zugehörige plot im browser nicht dargestellt wird. In der plot-subroutine aus 99_fronthemUtils.pm wird daher auch nicht die u.U. zeitaufwendige Berechnung der Plotdaten durchgeführt.

Die hatte ich zunächst im Verdacht, die Ursache für das Hängen von FHEM zu sein (siehe die Diskussion in dem Forums-thread, den Du im Anfangsbeitrag des hier vorliegenden threads erwähnt hast). Langwierige average Berechnungen liegen hier anscheinend nicht vor, sodass das Hängen von FHEM für mich mysteriös bleibt.

Außer es liegt an extrem vielen Items im FHEM fronthem Editor. Keine Ahnung, was dabei 'extrem' ist. Ich habe 52. Wieviele sind es bei Dir?

ZitatMeines erachtens bräuchten wir zwei Dinge:
  • daß man im Editor sieht welche item:plot aktiv sind (so wie die item:item)
  • ein Update nur dann durchführen, wenn die Plots aktiv sind (auch wie bei den item:item)
Stimme zu. Aber da können wohl nur herrmanj oder raman helfen. Ich hab zwar versucht, die Logik der 01_fronthem.pm, 31_fronthemDevice.pm und fronthemeditor.js zu verstehen, komme aber mangels Perl Kenntnissen nicht sehr weit.

Beste Grüße
Franz

wvhn

Hallo zusammen,

im aktuellen develop branch von smartVISU (v3.4.a) sind zwei Änderungen umgesetzt, welche die Darstellung von Plots auf dem Client deutlich beschleunigen. Bei großen Serien über 5000 Datenpunkte erfordert das sehr viel weniger Zeit für das Rendern der Highcharts-Grafiken. Das sollte auch die Zuverlässigkeit der Websocket-Kommunikation verbessern, da der Client entlastet wird.

Vielleicht reicht dies schon als Lösung für das hier geschilderte Problem, auch wenn eine Klärung der genauen Zusammenhänge in fronthem wünschenswert wäre.

Für Tests wäre ich dankbar.

Gruß
Wolfram