LoxBerry: Statistik Plugin - Diskussion

Einklappen
X
 
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge
  • Prof.Mobilux
    Supermoderator
    • 25.08.2015
    • 4590

    #61
    An alle die Testen wollen:

    Es gibt jetzt viele Änderungen von mir und (hoffentlich :-)) auch von Christian, die ich nicht alle ankündigen möchte. Daher bitte nicht den obigen geposteten Link verwenden sondern am Besten das GIT-Archiv direkt auf den RaspBerry laden (git clone...) und aktuell halten (git pull...) und mit ~/sbin/plugininstall.pl direkt installieren.
    🇺🇦 Hilfe für die Menschen der Ukraine: https://www.loxforum.com/forum/proje...Cr-die-ukraine


    LoxBerry - Beyond the Limits

    Kommentar

    • Gast

      #62
      Nur so eine Idee: Wäre eventuell die Syslog Funktionalität seitens Miniserver nicht auch eine Möglichkeit, die Messwerte (vermutlich recht ressourcenschonend) vom Miniserver aktiv auf den Raspi zu bringen? Dort würde ein entsprechendes Script (im syslog) laufen, welches die erhaltenen Daten in ein Spool-Verzeichnis spielt, wo sie dann von einem weiteren Prozess eingelesen und weiterverarbeitet (z.B. rrd update) werden.
      Das Script für den Syslog-ng könnte ich zur Verfügung stellen.

      Kommentar

      • Christian Fenzl
        Lebende Foren Legende
        • 31.08.2015
        • 11200

        #63
        Prof.Mobilux
        Es gibt irgendwo einen Bug, der die databases.dat truncated (0 Byte). Das ist bei mir jetzt den zweiten Tag hintereinander passiert.
        Mein Änderungsdatum des Files ist heute 18:55 - du der Zeit war ich nicht aktiv am System, aber eventuell noch ein Browserfenster offen mit einem Graphen und/oder der Übersicht.

        Ich glaube, dass es ein Problem mit Collisions der Cron-Jobs ist - da du im Cron-Job die databases.dat mit dem Status aktualisierst, und zwei Cronjobs treffen zusammen, könnte es sein, dass es durch Locking zu diesem bösen Schreiben kommt.
        Ich würde generell das Schreiben in die databases.dat und andere Dateien (Poller-Logs) beim Pollen entfernen (Schreibzugriffe reduzieren). Logfiles eventuell nur in /run/shm schreiben.

        lg, Christian
        Hilfe für die Menschen der Ukraine: https://www.loxforum.com/forum/proje...Cr-die-ukraine

        Kommentar

        • Christian Fenzl
          Lebende Foren Legende
          • 31.08.2015
          • 11200

          #64
          btw, ich bin vom Import jetzt mal soweit, dass ich das xml des LoxPlans soweit geparst habe, dass ich alle Daten habe, die ich für ein UI zur Auswahl benötige. Ein UI selbst gibt's noch nicht.
          Mit diesen Daten in der Hand, ist es wahrscheinlich für den Benutzer doch einfacher, die RRD-Files direkt aus dem Import erstellen zu lassen, bzw. irgendwie das addstat mit Parametern zu triggern.
          Hilfe für die Menschen der Ukraine: https://www.loxforum.com/forum/proje...Cr-die-ukraine

          Kommentar

          • Prof.Mobilux
            Supermoderator
            • 25.08.2015
            • 4590

            #65
            Zitat von Christian Fenzl
            Prof.Mobilux
            Es gibt irgendwo einen Bug, der die databases.dat truncated (0 Byte). Das ist bei mir jetzt den zweiten Tag hintereinander passiert.
            Ich hatte den Code zum Filelocking rausgeschmissen, weil ich dachte, dass das mittlerweile von Perl automatisch gemacht wird. Scheint wohl nicht der Fall zu sein... Ich baue das wieder ein und werden zudem den Status (geht nur um die Ampel) in separate Dateien pro Datenbank auslagern. Das sollte das Problem beheben.

            Bzgl. Logfiles: /run/shm ist flüchtiger Speicher, oder? Das wäre eine gute Option. Man könnte nur wirkliche Fehler (Ampel rot) ins "richtige Logfile" schreiben und/oder alternativ noch eine Mail versenden.

            Generell wäre es gut als LoxBerry-Option (nicht Plugin) alle Logfiles auf einen externen Speicher oder /run/shm schieben zu können (/var/log und /opt/loxberry/log).
            🇺🇦 Hilfe für die Menschen der Ukraine: https://www.loxforum.com/forum/proje...Cr-die-ukraine


            LoxBerry - Beyond the Limits

            Kommentar

            • Prof.Mobilux
              Supermoderator
              • 25.08.2015
              • 4590

              #66
              Zitat von Christian Fenzl
              btw, ich bin vom Import jetzt mal soweit, dass ich das xml des LoxPlans soweit geparst habe, dass ich alle Daten habe, die ich für ein UI zur Auswahl benötige. Ein UI selbst gibt's noch nicht.
              Mit diesen Daten in der Hand, ist es wahrscheinlich für den Benutzer doch einfacher, die RRD-Files direkt aus dem Import erstellen zu lassen, bzw. irgendwie das addstat mit Parametern zu triggern.
              Cool! Ich würde es so gestalten, dass es eine Liste mit den ganzen gefundenen Bausteinen/Ein-/Ausgänge gibt, am Zeilenanfang jeweils eine Checkbox ob importiert werden soll oder nicht. Daneben noch ein Dropdown pro Wert, welche Voreinstellung zum Anlegen der RRDs verwendet werden soll. Ganz unten dann der Importbutton, wo alles der Reihe nach importiert wird. Beim Import würde ich nur das addstat-script triggern, dann brauchen wir den Code nicht zweimal erfinden. Das Skript müsste ich aber vermutlich dann noch entsprechend vorbereiten. Das ist aber schnell erledigt.

              Ich habe Dir für den Import den "Import-Button" in der oberen Menüzeile reserviert :-)
              🇺🇦 Hilfe für die Menschen der Ukraine: https://www.loxforum.com/forum/proje...Cr-die-ukraine


              LoxBerry - Beyond the Limits

              Kommentar

              • Prof.Mobilux
                Supermoderator
                • 25.08.2015
                • 4590

                #67
                Habe gerade auf GIT die Änderungen zum Filelocking hochgeladen: Die Ampel-Stati stehen jetzt in separaten Dateien und zusätzlich verwendet das Plugin flock bei allen Schreibzugriffen.

                Zudem gibt es jetzt die Script-Option bei addstat.cgi. addstat.cgi liest alle Variablen sowohl per POST als auch per GET, mit ?script=1 wird keine Webseite als Ergebnis gezeigt sondern eine Statusmeldung im ASCII-Format:

                +++OK+++Text der Meldung
                oder
                +++ERROR+++Text der Fehlermeldung

                Das ist dann recht einfach zu parsen.
                🇺🇦 Hilfe für die Menschen der Ukraine: https://www.loxforum.com/forum/proje...Cr-die-ukraine


                LoxBerry - Beyond the Limits

                Kommentar

                • Christian Fenzl
                  Lebende Foren Legende
                  • 31.08.2015
                  • 11200

                  #68
                  Prof.Mobilux Das Import-UI hält wirklich auf.... Der Fork wird dir eh schon aufgefallen sein. Mein Code ist aktuell, aber nicht lauffähig (bzw. würde mich wundern). Ich bin ja "Trockenprogrammierer". Erst den kompletten Code in den Editor hineinwerfen, und wenn alles fertig ist, eine Woche Fehler suchen.

                  Den Import habe ich etwas anders konzipiert als du zuletzt zusammengefasst hattest. Geplant habe ich es so, dass das UI nur die Auswahl der Statistiken erlaubt, sowie die Auswahl des Templates von dir.
                  Der Import selbst soll in eine Queue, die von einem Cronjob abgearbeitet wird. Weil ich noch keine Idee habe, wie lange der Import dauert, habe ich Angst vor einer interaktiven Abarbeitung (die dann womöglich wegen Timeout oder Browser schließen abbricht).

                  Jeder Job legt beim Import-Start via addstat.cgi das RRD an. Ich bräuchte bei script=1 als Rückmeldung die ID oder den Dateinamen des RRD.
                  Dann wird die Import-Routine abgearbeitet, und ich lege auch regelmäßig den Status ab, den das Import-UI auch auswertet (und Status anzeigt und die Import-Option deaktiviert).
                  Das hat ein paar Vorteile gegenüber dem sessionbasierten Import. Beispielsweise kann ich nach Reboot resumen, und auf Pi2/3 evt. sogar multi-threaded importieren. Aber mal sehen - wenn's schnell geht, brauch ich das vielleicht auch gar nicht auslagern.

                  So, spät ist's - morgen leg ich mit deinem neuen Code neue Statistiken an :-)
                  Hilfe für die Menschen der Ukraine: https://www.loxforum.com/forum/proje...Cr-die-ukraine

                  Kommentar

                  • Prof.Mobilux
                    Supermoderator
                    • 25.08.2015
                    • 4590

                    #69
                    Christian Fenzl Hoffe du hast gut geschlafen :-) ich programmiere im übrigen genauso - nur mit VIM :-)

                    Du hast sicherlich recht: wenn man nicht nur die Archive anlegt sondern auch noch die Statistiken vom Miniserver holt wird das bei vielen Statistiken vermutlich deutlich zu lange für einen Live-Import dauern. An den XML Import hatte ich gar nicht mehr gedacht...

                    Ich passe das addstat.cgi noch so an, dass dir das angelegte Archiv zurückgegeben wird und du auch per Variable das Template übergeben kannst. Dann brauchst du per GET nicht mehr viel zu übertragen. Das wird den Aufruf deutlich vereinfachen, denke ich.

                    Mist: muss ich mich doch jetzt erst einmal um das addstat.cgi kümmern. Ich spiele doch gerade so schön mit Highcharts herum :-)
                    Zuletzt geändert von Prof.Mobilux; 15.11.2016, 06:59.
                    🇺🇦 Hilfe für die Menschen der Ukraine: https://www.loxforum.com/forum/proje...Cr-die-ukraine


                    LoxBerry - Beyond the Limits

                    Kommentar


                    • svethi
                      svethi kommentierte
                      Kommentar bearbeiten
                      Cool, wo hast Du die denn her?

                    • Prof.Mobilux
                      Prof.Mobilux kommentierte
                      Kommentar bearbeiten
                      Uuuhh, keine Ahnung mehr - Die Tasse ist mindestens 15 Jahre alt. Ich glaube ich hatte sie von Lehmann's Onlinebookshop (damals war Amazon noch nicht so übermachtig :-)) Da habe ich auch meine erste Debian auf 6 CDROMs bestellt :-)

                      Aber es gibt sie noch: https://www.amazon.de/Linux-Onlinesh.../dp/B001691VE8
                      Zuletzt geändert von Prof.Mobilux; 16.11.2016, 08:47.

                    • tholle
                      tholle kommentierte
                      Kommentar bearbeiten
                      'Ich hab sogar eine VIM-Kaffeetasse mit den wichtigsten Kommandos :-) Z. B. %s/pattern1/pattern2/g'

                      die ist bei uns auf nahezu jedem Schreibtisch Pflicht und sieht auch nach Jahren immer noch cool aus. Gibt's u.a. im Linuxhotel.
                  • Prof.Mobilux
                    Supermoderator
                    • 25.08.2015
                    • 4590

                    #70
                    Christian Fenzl Ich habe für die Importfunktion die Script-Schnittstelle von addstat.cgi fertig überarbeitet. Der Aufruf funktioniert wie folgt:

                    Code:
                    /admin/plugins/stats4lox/addstat.cgi?script=1&loxonename=<Name_Baustein_Miniserver>
                    Optional:

                    Code:
                    description=<Beschreibung> : Beschreibung für Stats4Lox Plugin, wenn leer dann gleich zu "loxonename"
                    settings=<nr> : Nr. des Vorgabe-Satzes (siehe ~/config/plugins/stats4lox/dbsettings.dat), wenn leer dann Standardvorgaben
                    miniserver=<nr> : Nr. des Miniservers, wenn leer dann gleich 1
                    Anstelle den Vorgabe-Satz (settings) mitzugeben können auch alle Werte aus dem Formular direkt per GET übergeben werden. Wenn nur einzelne Werte übergeben werden überschreiben diese die Werte aus dem Vorgabesatz (z. B. Min oder Max).

                    Als Rückmeldung gibt das Skript jetzt folgendes aus:

                    +++OK+++Text der Meldung+++<nr der Datenbank>
                    oder
                    +++ERROR+++Text der Fehlermeldung

                    Damit bekommst Du dann bei erfolgreicher Anlage der Datenbank deren Namen mit zurückgegeben. Die Datenbank ist standardmäßig pausiert, sodass noch Werte importiert werden können.

                    Ein Satz mit Vorgaben kann im Moment nur angelegt werden, wenn man manuell eine Datenbank anlegt und beim Speichern mit auswählt, dass die Werte als Vorgabe gespeichert werden sollen. Eine separate Anlage der Vorgaben ohne Anlegen einer Datenbank ist jetzt in Arbeit.
                    Zuletzt geändert von Prof.Mobilux; 26.11.2016, 06:58.
                    🇺🇦 Hilfe für die Menschen der Ukraine: https://www.loxforum.com/forum/proje...Cr-die-ukraine


                    LoxBerry - Beyond the Limits

                    Kommentar

                    • Christian Fenzl
                      Lebende Foren Legende
                      • 31.08.2015
                      • 11200

                      #71
                      Hallo Michael!
                      Coole Sache!

                      Du warst mitten drin, als ich die letzten Tage für die Zukunft unserer Hausinstallationen beschäftigt war. Das wird noch andauern, und hat für mich und alle jetzt Betroffenen und zukünftig Betroffenen höhere Priorität. Daher habe ich die Weiterentwicklung derzeit hintangestellt.
                      Alle, die darauf warten, müssen sich daher bitte gedulden.

                      lg, Christian
                      Hilfe für die Menschen der Ukraine: https://www.loxforum.com/forum/proje...Cr-die-ukraine

                      Kommentar


                      • Gast
                        Gast kommentierte
                        Kommentar bearbeiten
                        Ich bin zwar nicht betroffen, kann mir aber gut vorstellen, was das gerade für einen Rattenschwanz hinter sich her zieht! Ich drücke dir die Daumen und wünsche dir viel Erfolg, dass du das Problem schnell in den Griff bekommst. Nicht wegen dem Plugin, sondern damit bei dir daheim wieder alles so läuft, wie vor dem Update!
                    • Prof.Mobilux
                      Supermoderator
                      • 25.08.2015
                      • 4590

                      #72
                      Christian Fenzl Absolut ok!
                      🇺🇦 Hilfe für die Menschen der Ukraine: https://www.loxforum.com/forum/proje...Cr-die-ukraine


                      LoxBerry - Beyond the Limits

                      Kommentar


                      • Lenardo
                        Lenardo kommentierte
                        Kommentar bearbeiten
                        Obwohl ich sagen muss, das Statistik Plugin ist das Plugin auf das ich mich am meisten freue, nach dem Backup Plugin

                      • Prof.Mobilux
                        Prof.Mobilux kommentierte
                        Kommentar bearbeiten
                        Ja, es wird auch kommen - ein bisschen Geduld noch. Damit Du etwas hast, worauf Du Dich freuen kannst: Das Erfassen der Daten läuft bei mir seit ein paar Wochen sehr stabil. Auf meiner Testversion kann ich mit HighCharts auch schon richtig coole Charts ausgeben lassen :-) Du siehst: Es geht voran!

                      • Gast
                        Gast kommentierte
                        Kommentar bearbeiten
                        Vorfreude ist die schönste Freude! :-) Aber angesichts der Situation mit Loxone gerade, kann ich das mehr als verstehen. Ich hoffe, Gast, dass du dein Problem in den Griff bekommst!
                    • Christian Fenzl
                      Lebende Foren Legende
                      • 31.08.2015
                      • 11200

                      #73
                      Hallo Prof.Mobilux
                      ich hab das Anlegen der Dateien jetzt soweit implementiert und komme auf zwei Probleme:
                      • Ich muss mich bei addstat.cgi authentifizieren - das ist serverseitig problematisch.
                      • Ich brauche mehr Argumente und mehr Felder in der DB
                      Zum ersten Punkt:
                      Ich rufe addstat.cgi derzeit direkt aus dem import.cgi auf mit LWP::UserAgent bzw. HTTP::Request, mit URL http://localhost/....
                      Vielleicht hast du einen Tipp/Trick, wie ich die Authentifizierung (evt. mit irgendeiner lokalen impliziten Art des Aufrufs) umgehen kann.

                      Zum zweiten Punkt:
                      Ich komme ich jetzt folgendermaßen bei dir "herein":
                      PHP-Code:
                      my $statfullurl = $addstat_urlbase . "?
                      script=1&
                      loxonename=$loxonename&
                      description=$description&
                      settings=$settings&
                      miniserver=$stat_ms&
                      minval=$minval&
                      maxval=$maxval&
                      place=$place&
                      category=$category&
                      uid=$loxuid"; 
                      
                      Min und Max sind auch schon im Standardformular. Das bekomme ich direkt aus der Loxone Config und kann ggf. vorm Anlegen/Import in meinem Interface auch bearbeitbar gemacht werden.

                      Place und Category sind auch aus dem Loxplan-File und könnten evt. mal nützlich werden zum Strukturieren der Graphen.
                      Die uid ist die eindeutige ID im Loxplan-File.

                      Mein aktueller Stand ist in meinem Fork: https://github.com/christianTF/LoxBe...ugin-Stats4Lox

                      lg, Christian
                      Hilfe für die Menschen der Ukraine: https://www.loxforum.com/forum/proje...Cr-die-ukraine

                      Kommentar

                      • Prof.Mobilux
                        Supermoderator
                        • 25.08.2015
                        • 4590

                        #74
                        Christian Fenzl Sehr schön :-) Ich bin gerade dabei das Session-Management für addstat.cgi hinzuzufügen. Dabei kann ich dann auch geich die zusätzlichen Felder in der Datenbank hinzufügen. Dazu 2 Fragen:

                        - place und category: Sind das Zahlenwerte oder Text?
                        - Brauchen wir die UID wirklich? Hat die später noch einen "Mehrwert"?

                        Zum Thema Authentifizierung: Das ist wirklich blöd... Man könnte das Script bzw. ein Unterverzeichnis mit dem Script aus dem Schutz herausnehmen, das finde ich aber auch irgendwie nicht sauber. Was hälst Du davon, wenn ich für das addstat.cgi noch einen Kommandozeilen-Modus hinzufüge? Dann könntest Du das Script direkt ohne Umweg über HTTP::Request aufrufen.
                        🇺🇦 Hilfe für die Menschen der Ukraine: https://www.loxforum.com/forum/proje...Cr-die-ukraine


                        LoxBerry - Beyond the Limits

                        Kommentar

                        • Christian Fenzl
                          Lebende Foren Legende
                          • 31.08.2015
                          • 11200

                          #75
                          Bei Place und Cat nehme ich mit den Namen.
                          Die ID hab ich einfach mal mitgenommen. Für den Erstimport brauche ich sie nicht in der Stat-DB, aber wer weiß ob sie mal hilfreich wird.

                          Aufruf per Kommandozeile macht Sinn!
                          Hilfe für die Menschen der Ukraine: https://www.loxforum.com/forum/proje...Cr-die-ukraine

                          Kommentar

                          Lädt...