Neue Visualisierung - Performanceprobleme

An den Streams kanns nicht liegen. Ich habe keine mehr drinnen.

Ich vermute das es doch mit dem System zusammenhängt, wo kommen die Spitzen her?
Pi4B mit 8 GB RAM (Es wird aber nur alle 10 Sekunden geloggt)

Mein Bauch sagt mit es ist SecureKNX. Aber Ahnung habe ich keine…
So ist es auf jeden Fall nicht zu verwenden, bis auf dem Handy, da gehts gut. Aber das will ich nicht benutzen. Und das liegt Gottseidank immer weit genug von mir weg :slight_smile:

Ist auf dem PI denn nur Symcon oder noch etwas anderes Installiert?

Hab auch einen Pi4b mit 4GB Ram. Kann aber nicht eins deiner Probleme nachvollziehen. Einzig die Abstürze durch Streams waren bei mir vorhanden.
Wobei ich auch kein KNX habe. Vielleicht kannst das Secure mal wieder abschalten, falls das geht?

Habe bei mir ein Lenovo Tab M9 HD, da läuft die Tile Visu flüssig, schalte nur nachts das Display per FKB ab, morgens wieder an.
Die einzigen Abbrüche die ich habe sind beim Symcon Update, sonst seit einigen Versionen gar keine mehr.

Ansonsten am PC+Laptop+Handy auch alles flott. :slight_smile:

Nur um kurz meine Meinung rein zu werfen: Wenn bei dir auf dem Handy alles flüssig ist, dann liegt es nicht an deinem Pi. Es kann ausschließlich an deinem Tablet (=Anzeigegerät) liegen. Nutzt du dort die App? Die sollte wesentlich performanter laufen als die FullyKiosk Variante. Alles Updates drauf? Irgendwo die Hardwarebeschleunigung deaktiviert? Mal eine kleine Visu Probiert mit vielleicht nur 5-10 Kacheln?

paresy

1 „Gefällt mir“

Deine Schlussfolgerungen finde ich widersprüchlich. Wenn’s am Raspi mit IPS liegen würde, warum sollte es dann auf dem Handy gut laufen?

paresy schreibt dass der Client entscheidend ist, und die bessere Performance auf dem Handy spricht dafür. Bedenke bitte dass der RK3399 in deinem „lahmen“ Tablet alte Technik aus 2016 (!) ist.

1 „Gefällt mir“

Es kann doch nicht sein, dass ein PC aus 2019 für die VISU nicht geeignet ist. Die Tablets sind alle von 2021 > und sind für 4K ausgelegt. Da stimmt etwas nicht, wenn diese Visu nur mit den aller neuesten PC´s, Tablets oder Handy funktioniert. @volker auch wenn der RK3399 aus 2016 ist reden wir über 7 Jahre.

Ja, ganz klar. Die App ist bei weitem flüssiger als im Browser oder über FK. Das Handy ist aber das aktuelle Pixel 8 Pro. Und Handy scheidet für die Gebäudesteuerung bei uns aus.

Und was ist mit den ganze Fehlermeldungen? Kommen die alle von der geringen Grafikleistung des Tablets oder PC´s? Verbindung ständig unterbrochen wegen schlechter Grafikleistung?

Wenn ich doch endlich, das neue Tablet mit RK3599 bekommen würde, könnte ich mehr sagen.
Ich kann doch keine VISU nur für Handy oder 10 Zoll Tablets machen.
Wer lässt den 5 Hochleistungsrechner mit TFT im SmartHome laufen?

Aber anscheinend bin ich ja der einzige der da Probleme hat…

Wobei Du zugeben musst, dass 7 Jahre in der IT gefühlt Jahrzehnte sind.

Ich hoffe, dass es bei Dir bald funktioniert

LG

1 „Gefällt mir“

Mhh. Ich möchte aber nicht alle 3 Jahre die Tablets austauschen. Das schon 1-2k €.

Um mal zu sehen wovon ich bei 1 gefühlten Minute (sollen es auch 30 oder 20 Sekunden sein) Bearbeitungszeit vom Verschieben einer Kachel von links nach rechts rede:

Wenn das zuviel für einen Rechner aus 2019 ist. Muss ich mir echt etwas überlegen…

Es läuft tatsächlich nur IPS drauf. Frisch für IPS7 aufgesetzt vor 1 Monat etwa.

Bitte nicht missverstehen - ich will nix an Hardwareanforderungen entschuldigen sondern nur helfen die Fehlersuche zielgerichtet zu gestalten. Wenn’s auf einem modernen Client gut läuft spricht das bzgl. Performanceproblem eindeutig gegen den IPS-Server als Fehlerquelle.

Ich nutze nur Apfelgeräte. Da ist Null Verzögerung. Ich muss das mal auf einem meiner älteren Androidtablets testen.

Wie liest du die CPU Last aus? Dann kann ich das bei mir auch mal mitlaufen lassen.

Wir sollten auf jeden Fall eingrenzen, was hier das Problem ist. Deine Visualisierung sieht jetzt auf den ersten Blick nicht so kompliziert aus, dass sie da Probleme machen sollte. Es wäre daher sehr hilfreich, wenn du das Problem ein bisschen einschränken könntest. Hast du es schonmal wie von @paresy vorgeschlagen mit einer kleineren Visualisierung ausprobiert? Oder kannst du sonst mal das Passwort für die Visualisierung anpassen und mir per PM schicken? Dann schaue ich mal, wie das bei mir so läuft…

Ich bin hier Niemanden böse, im Gegenteil freue ich mich über diese Community und ich liebe IPS.

Aber die Enttäuschung ist natürlich groß, auch wegen dem KNX Secure Problem. Aber da findet ihr hoffentlich auch bald eine Lösung.

@Boui Das wäre fein, wenn du ein „älteres Modell“ hättest, 21 Zoll?

@Dr.Niels Gerne kannst du auf das ganze System zugreifen!

@bgersmann Bitte sehr, hier (CPU Last ist ganz unten):

<?php
 

    $systeminfo = array();
     
    //+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 
    //Systemlaufzeit abfragen
    $uptime = exec("uptime -p");
     
    //Rückgabestring zurechtschneiden
   // $uptime = preg_replace("/[0-9][0-9]:[0-9][0-9]:[0-9][0-9] up/", "", $uptime);
   //  $uptime = preg_replace("/,[ ]*.[ ]user.*/", "", $uptime);
   //  $uptime = ltrim($uptime, " ");
     
    //+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
    //CPU-Temperatur abfragen und auf Zehntel-Grad runden
    exec("cat /sys/class/thermal/thermal_zone0/temp", $cputemp);
    $cputemp = round($cputemp[0] / 1000, 1);
   
    //+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
    //Kernelversion abfragen
    $kernel = exec("uname -r");

    //+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
    //Modell
    $modell = exec("cat /sys/firmware/devicetree/base/model");

    //+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
    // Release
    $release = exec("cat /etc/*release | grep VERSION= ");

    //+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
    //CPU frequ
    $cpu_frequ = exec("cat  /sys/devices/system/cpu/cpu0//cpufreq/scaling_cur_freq") / 1000;     

    //+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
    //CPU Spannung
    $cpu_volt = exec("vcgencmd measure_volts | tr -d 'volt=' | tr -d 'V'");   

    //+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
    //CPU Prozessor
    $cpu_proz = exec("sudo lscpu | grep 'Model name:' -h -m 1");
    $cpu_proz = substr($cpu_proz, 25);

    //+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
    //CPU Prozessor Kerne
    $cpu_prozkern = exec("cat /proc/cpuinfo | grep processor | wc -l");
    
    //+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
    //CPU Prozessor Auslastung
    // $cpu_load = sys_getloadavg(); OLD

    $cpuLoad = getServerLoad();
    
    if (is_null($cpuLoad)) 
    {
        $cpuLoad = 0.0;
    }


    //+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
    //Speichernutzung abfragen

    exec("df / --output=used,size", $spaceinfo);
     
     $usedspace=0;
     $totalspace=0;

    //erstes Element wird übersprungen, da es nur Text enthält
    for($i = 1; $i < sizeOf($spaceinfo); $i++){
        $info = trim($spaceinfo[$i]);
        $info = preg_replace('!\s+!', ' ', $info);
         
        $spacearray = explode(" ", $info);
         
        $usedspace += $spacearray[0]/1024;
        $totalspace += $spacearray[1]/1024;
    }
     
    //Benutzten Speicherplatz in Prozent auf ganze Zahlen runden
    $spaceusagepercent = round(($usedspace / $totalspace)*100);
     
    // Freien Speicherplatz berechnen
    $freespace = ($totalspace - $usedspace);
    

    //++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++    
    //Arbeitsspeicher-Info abfragen
    exec("free", $raminfo);
     
    //RAM-Auslastung aus Ausgabe herauslesen
    $info = trim($raminfo[1]);
    $info = preg_replace('!\s+!', ' ', $info);
    $ramarray = explode(" ", $info);
     
    $totalram = $ramarray[1]/1024;
    $usedram = $ramarray[2]/1024;
     
    $freeram = ($totalram - $usedram);

    //RAM-Auslastung in Prozent auf ganze Zahlen runden
    $ramusage = round(($usedram / $totalram)*100);

    //++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++  
    //Firmwareversion des Betriebssystems abfragen
    //Die Versionsinfo ist ein Array mit 3 Werten: Erscheinungsdatum, Copyright-Hinweis, Versionsnummer
    exec("sudo vcgencmd version", $firmwareversion);
     
    //Ausgegeben wird nur das erste Element mit dem Erscheinungsdatum der Versionsinfo
    $firmwareversion = $firmwareversion[0];
     
    //JSON-Objekt erstellen und zurückgeben
    // return json_encode(array('systeminfo' => $systeminfo));

    // Variablen schreiben
    setvalue(57027, $freeram);
    setvalue(23822, $totalspace);
    setvalue(29842, $usedspace);
    setvalue(57285, $totalram);
    setvalue(39380, $usedram);
    Setvalue(12306,$cputemp);
    Setvalue(43428,$uptime);
    Setvalue(41719,$firmwareversion);
    Setvalue(19566,$ramusage); 
    Setvalue(48666,$spaceusagepercent);
    Setvalue(34566,$freespace);
    Setvalue(11169,$kernel);
    Setvalue(25146,$modell);
    SetValue(32926, $cpu_frequ);
    SetValue(37154, $cpu_volt);
    SetValue(48704, $cpu_proz);
    SetValue(37256, $cpu_prozkern);
    
    SetValue(10466, $cpuLoad);

    SetValue(44301, $release);





    // Funktionen CPU Last

    function _getServerLoadLinuxData()
    {
        if (is_readable("/proc/stat"))
        {
            $stats = @file_get_contents("/proc/stat");

            if ($stats !== false)
            {
                // Remove double spaces to make it easier to extract values with explode()
                $stats = preg_replace("/[[:blank:]]+/", " ", $stats);

                // Separate lines
                $stats = str_replace(array("\r\n", "\n\r", "\r"), "\n", $stats);
                $stats = explode("\n", $stats);

                // Separate values and find line for main CPU load
                foreach ($stats as $statLine)
                {
                    $statLineData = explode(" ", trim($statLine));

                    // Found!
                    if
                    (
                        (count($statLineData) >= 5) &&
                        ($statLineData[0] == "cpu")
                    )
                    {
                        return array(
                            $statLineData[1],
                            $statLineData[2],
                            $statLineData[3],
                            $statLineData[4],
                        );
                    }
                }
            }
        }

        return null;
    }

    // Returns server load in percent (just number, without percent sign)
    function getServerLoad()
    {
        $load = null;

        if (stristr(PHP_OS, "win"))
        {
            $cmd = "wmic cpu get loadpercentage /all";
            @exec($cmd, $output);

            if ($output)
            {
                foreach ($output as $line)
                {
                    if ($line && preg_match("/^[0-9]+\$/", $line))
                    {
                        $load = $line;
                        break;
                    }
                }
            }
        }
        else
        {
            if (is_readable("/proc/stat"))
            {
                // Collect 2 samples - each with 1 second period
                // See: https://de.wikipedia.org/wiki/Load#Der_Load_Average_auf_Unix-Systemen
                $statData1 = _getServerLoadLinuxData();
                sleep(1);
                $statData2 = _getServerLoadLinuxData();

                if
                (
                    (!is_null($statData1)) &&
                    (!is_null($statData2))
                )
                {
                    // Get difference
                    $statData2[0] -= $statData1[0];
                    $statData2[1] -= $statData1[1];
                    $statData2[2] -= $statData1[2];
                    $statData2[3] -= $statData1[3];

                    // Sum up the 4 values for User, Nice, System and Idle and calculate
                    // the percentage of idle time (which is part of the 4 values!)
                    $cpuTime = $statData2[0] + $statData2[1] + $statData2[2] + $statData2[3];

                    // Invert percentage to get CPU time, not idle time
                    $load = 100 - ($statData2[3] * 100 / $cpuTime);
                }
            }
        }

        return $load;
    }
1 „Gefällt mir“

Ergänzung: Niels, das ist aber nur 1 Seite von sehr vielen:

image

Nein, bist Du nicht.
Und auch bei mir verhält sich Visu auf meinem Windows 11 PC mit 3GHz auf 6 Kernen
mit Intel UHD GPU ebenso träge wie auf dem weiter oben erwähnten Display.

Gestern hatte ich auch die roten Warnmeldungen und konnte dann nichts mehr verschieben.
Und wenn ich mal eine neue Instanz hinzu verlinke wird auch mir gelegentlich die ganze View
zerschossen.

Fazit: Du bist nicht allein !!!

Loerdy

1 „Gefällt mir“

Muss meine Aussage auch revidieren, habe gerade noch mal getestet. Auf meine Laptop in Edge habe ich das Problem nun auch.
Das war vor einer weile aber noch nicht…
Ist ein i5-11500H…

Wenn ich da Kacheln hin und her schiebe ruckelt das auch Stark.

1 „Gefällt mir“

Ok, dann spare ich mir den Test. Da scheint es noch eine Baustelle zu geben.

ihr könnt mich jetzt hier steinigen aber ich tippe auf eine holperige Internet-Verbindung da ja alles über ipmagic läuft (siehe screenshot).

1 „Gefällt mir“

Das ist schon länger nicht mehr so. Mittlerweile läuft alles lokal, wenn verfügbar.

paresy

sieh dir mal die Fehlermeldung genau an https://d10a5e

1 „Gefällt mir“