LoxBerry: Statistik Plugin - Diskussion

Einklappen
X
 
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge
  • Christian Fenzl
    Lebende Foren Legende
    • 31.08.2015
    • 11217

    #91
    PS: Auf Anordnung von der Chefin darf ich heute nur bis 01:00. Wird knapp...
    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
      • 11217

      #92
      Hi eisenkarl
      Du hast ja Erfahrung mit highcharts, und auch schon was gebaut.
      Wenn wir dir einen Sack Daten in die Hand drücken (API gibt's), hast du Lust, bei der Graph-Engine mitzumachen?
      Ich optimiere den Import, und mit Michael um das Rundherum mit Menüführung usw, und du tobst dich aus mit Graphen.

      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
        • 11217

        #93
        Prof.Mobilux Ich hab jetzt gemerged und das Plugin bei mir neu installiert. Klappt alles gut, und mit dem Quickchart (den ich oben fast nicht gesehen hätte :-) kann man beim Import direkt zuschauen.

        Das mit dem "Hineinstarten" des Pollings, da kann es gut sein, dass irgendwann die Datenbank-Datei gesperrt war (z.B. beim jährlichen Zurückkopieren) und es den Job da zerlegt hat.
        Jede Stunde läuft ein Cron der hinterher zusammenräumt, wenn Jobs sterben. Die sollten dann als *.failed in $home/data/plugins/$psubfolder/import liegen, bzw. rot in der Import-Tabelle (wo mir eben aufgefallen ist, dass die bei jedem Refresh anders sortiert ist).


        Beim Start des Imports lese ich vorher immer den letzten Timestamp der DB und importiere nur ab diesem Monat, und nur ab diesem Timestamp. Also selbst wenn man einen Import zu einer laufenden Statistik importiert, dürfte nicht viel passieren (vom Filelocking abgesehen).

        Schaden würd's nicht, wenn ich die DB locken könnte, und auch starten.
        Brauch ich nur das <dbid>.status File ändern, oder ist noch mehr dahinter?

        lg, Christian

        PS: Du brauchst eine Ampel mit vier Lichtern :-)
        Hilfe für die Menschen der Ukraine: https://www.loxforum.com/forum/proje...Cr-die-ukraine

        Kommentar

        • Prof.Mobilux
          Supermoderator
          • 25.08.2015
          • 4626

          #94
          Christian Fenzl Cool! Du hast den Pullrequest aber irgendwie geschlossen. War das ein Versehen? Ansonsten mache ich ihn wieder auf und integriere ihn dann.

          Mit der Ampel lasse ich mir etwas einfallen :-) Du müsstest dann nur das <dbid>.status File ändern. Ich implementiere das Sperren und sage Dir dann auf welchen Status Du es setzen musst,
          🇺🇦 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
            Also morgen ne Stunde geben? Und dann gibt's wieder pulled Pork?? ;-)

          • Christian Fenzl
            Christian Fenzl kommentierte
            Kommentar bearbeiten
            1,5 Stunden, und ich hab schon die Einheit aus dem Loxplan in brauchbarer Form. Alles kein Problem!

          • Prof.Mobilux
            Prof.Mobilux kommentierte
            Kommentar bearbeiten
            Wie immer ganz einfach unter Perl, gell? ;-) hattest aber gelesen, dass ich die Einheit auch automatisch vom Miniserver pulle, wenn ich die Datenbank anlege, oder? Da ich sowieso teste ob der Pull funktioniert, nehme ich die Einheit gleich mit.
        • Christian Fenzl
          Lebende Foren Legende
          • 31.08.2015
          • 11217

          #95
          Prof.Mobilux

          Kurzer Status addstat:
          - addstat prüft noch nicht auf uniqueness des Loxone Namens (ist aber bei mir noch drin)
          - Wenn ich addstat.cgi mit --script und einem nicht existierenden loxonename aufrufe, loopt das Script mit 100% CPU ohne Wiederkehr.
          - Ohne --script und falschem loxonename kommt das befüllte Anlegeformular zurück (was ich sehr geil finde, dass man das Formular selbst auch von anderswo vorbefüllen kann!)
          - Die Unit kommt bei Sonderzeichen nicht richtig in der databases.dat an:

          Ich rufe auf
          Code:
           --unit="°C"
          und in databases.dat steht
          Code:
          |°C|
          (siehe Screenshot)
          Ich kann nicht ausschließen, dass da von mir was Schräges kommt. In /opt/loxberry/log/plugins/stats4lox/import_cgi.log schreibe ich auch die Commandline hinaus.

          Ich pulle mal meinen Zwischenstand nach GitHub:
          - Alle Felder werden jetzt per Commandline-Aufruf befüllt

          Das war's auch schon, bis auf ein paar Kleinigkeiten.

          Schönen Abend!
          Christian
          Hilfe für die Menschen der Ukraine: https://www.loxforum.com/forum/proje...Cr-die-ukraine

          Kommentar

          • Prof.Mobilux
            Supermoderator
            • 25.08.2015
            • 4626

            #96
            Christian Fenzl schaue ich mir an - ich glaube ich behandele die Einheit noch nicht nach UTF8... Die anderen Dinge fange ich noch nicht ab - das baue ich mit ein. Die Überprüfung auf bereits existierende Datenbanken habe ich absichtlich nicht mehr integriert. Beim manuellen Anlegen möchte ich die "Option" nicht verbauen - falls das jemand aus irgendeinem Grund doch mal nutzen möchte. Und du hattest ja geschrieben, dass du das beim Import selbst überprüfst.

            Wenn der Import dann funktioniert werde ich mich an die Grafikengine machen.
            Zuletzt geändert von Prof.Mobilux; 24.01.2017, 06:47.
            🇺🇦 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
              • 11217

              #97
              Bei mir fehlt - bis auf etwaige Bugs - nur noch das Auslesen und Übergeben der Settings.
              Was ich auch noch genauer unter die Lupe nehmen muss, ist die Zeitzone.

              In Import.cgi habe ich ein sub get_databases_by_name, das ich erweitern werde, um alle Daten in einem Hash zurückzubekommen. Ich werde das (fertig ausgebaut) mal testweise in ein Modul LoxBerry::Stats4Lox packen, damit es generisch verwendet werden kann. Dazu dann gleich noch ein get_database_by_name($loxonename) und get_database_by_id($dbid). Und alle benutzten Places, und Categories zurückgeben, und alle Stats eines places oder category zurückgeben. Das wären so Standardsachen, die man z.b. Für einen Baum bräuchte.
              Da könnten alle Stats4Lox-Funktionen hinein, die man immer wieder braucht, z.B. bei unterschiedlichen Grafikengines.

              Wofür steht im UI denn der Menüpunkt "Indexes"?
              Hilfe für die Menschen der Ukraine: https://www.loxforum.com/forum/proje...Cr-die-ukraine

              Kommentar

              • Prof.Mobilux
                Supermoderator
                • 25.08.2015
                • 4626

                #98
                Die Settings lese ich so aus - kannst Du vielleicht gleich so übernehmen - oder noch optimieren ;-)

                Code:
                    open(F,"<$installfolder/config/plugins/$psubfolder/dbsettings.dat");
                        @data = <F>;
                        foreach (@data){
                            s/[\n\r]//g;
                            # Comments
                            if ($_ =~ /^\s*#.*/) {
                                      next;
                                }
                                @fields = split(/\|/);
                            $settingsselectmenu = $settingsselectmenu . "<option value='@fields[0]' ";
                            if ($settings eq @fields[0]) {
                                $settingsselectmenu = $settingsselectmenu . "selected=seleted ";
                            }
                            $settingsselectmenu = $settingsselectmenu . ">" . @fields[1] . "</option>\n";
                          }
                    close (F);
                Bzgl. Indexes:

                Meine Idee ist, dass man später einen Chart direkt per URL aufrufen kann: chart.cgi?id=15&template=dark Über die ID zieht er sich dann die Einstellungen des Charts, die Du vorher eingerichtet hast (also Linie, Säule, Fläche, Farben, Achsenbeschriftungen, Multichart, etc. pp.).

                Damit man in der Visu aber Kategorien bilden kann, möchte ich Index-Seiten erstellen können, die wie eine Art Bildergallerie funktionieren: indexes.cgi?id=15&template=dark Über die ID zieht er sich dann die Charts, die in der Index-Übersicht erscheinen sollen (muss man also auch vorher einrichten). Von der Index-Seite komme ich dann direkt per Link zum Chart. Damit kann man dann z. B. alle Temperaturen zusammenfassen.

                Und dann soll es noch automatische Indexes geben, z. B. indexes.cgi?room=Wohnzimmer&template=dark oder indexes.cgi?category=Sensoren&template=dark
                🇺🇦 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
                  • 11217

                  #99
                  Hi Michael,
                  darf ich in addstat ein paar Debug-Logging Infos einbauen? Bei meinem Rasp1 dauert der Call aus dem Import pro DB rund 20 Sekunden, da möchte ich mal reinschauen, wo die vergehen.
                  Hilfe für die Menschen der Ukraine: https://www.loxforum.com/forum/proje...Cr-die-ukraine

                  Kommentar


                  • Prof.Mobilux
                    Prof.Mobilux kommentierte
                    Kommentar bearbeiten
                    Klar! Ich arbeite m Moment am editsettings.cgi - wir kommen uns also nicht in die Quere....
                • svethi
                  Lebende Foren Legende
                  • 25.08.2015
                  • 6292

                  Christian, ich habe mir Deine Version vorhin gezogen und neu installiert. Bei der Installation Installation quakt sed herum. Ich glaube an nicht vorhandenen Cron-Scripts und die Plugin-Website startet mit Error Loading Page. Ist das klar, oder noch unbekannt?!
                  Miniserver; KNX; Vitogate; EnOcean (EnOceanPi); Loxone Air; Caldav-Kalenderanbindung; RaspberryPi und für keine Frickellösung zu schade :-)

                  Kommentar


                  • svethi
                    svethi kommentierte
                    Kommentar bearbeiten
                    Ja, hatte ich komplett deinstalliert. Werd Michael mal interviewen.
                    Prof.Mobilux, was isses da los?? ;-)

                  • Prof.Mobilux
                    Prof.Mobilux kommentierte
                    Kommentar bearbeiten
                    Keine Ahnung ;-) Muss ich mir ansehen - da habe ich sicherlich aus Versehen irgendeinen Zwischenstand committed. Ich muss nur erst meinen Zwischenstand zu Ende bringen - habe auch keinen reinen Test-Pi mehr :-) Heute Abend hab ich Zeit :-)

                  • svethi
                    svethi kommentierte
                    Kommentar bearbeiten
                    Also ein Syntax-Error gibts in der Index nicht ... das Debugging in so einem Fall finde ich recht mühsam, oder hast Du dazu noch nen Tipp. Bin ja auch nicht so der Perler.
                • Christian Fenzl
                  Lebende Foren Legende
                  • 31.08.2015
                  • 11217

                  /opt/loxberry/log/system/apache2/error.log müsste was ausspucken.
                  Hilfe für die Menschen der Ukraine: https://www.loxforum.com/forum/proje...Cr-die-ukraine

                  Kommentar


                  • svethi
                    svethi kommentierte
                    Kommentar bearbeiten
                    Okay, dieses Mal habe ich noch nicht reingesehen, das letzte Mal stand da dann nur 500 internal Server Error ;-)
                • svethi
                  Lebende Foren Legende
                  • 25.08.2015
                  • 6292

                  Christian, versuche gerade den Import aufzudröseln. Mit der aktuellen Version klappt die Installation und beim Import werden dann auch die Statistiken angelegt, doch nach einer Zeit sind die Zeilen im Import rot. Im Log steht, dass der MiniServer nicht definiert wäre. Wo suche ich am schnellsten?
                  Miniserver; KNX; Vitogate; EnOcean (EnOceanPi); Loxone Air; Caldav-Kalenderanbindung; RaspberryPi und für keine Frickellösung zu schade :-)

                  Kommentar

                  • Christian Fenzl
                    Lebende Foren Legende
                    • 31.08.2015
                    • 11217

                    Schickst mir die Logs (/opt/loxberry/logs/stats4lox/Import.log) und die roten Jobs in Data/Plugins/Stats4lox/Import/*.failed
                    Hilfe für die Menschen der Ukraine: https://www.loxforum.com/forum/proje...Cr-die-ukraine

                    Kommentar


                    • Christian Fenzl
                      Christian Fenzl kommentierte
                      Kommentar bearbeiten
                      Hast du einen Fehler gefunden?

                    • svethi
                      svethi kommentierte
                      Kommentar bearbeiten
                      Ein Problem habe ich gesehen, doch das hat den Erfolg noch nicht gebracht. Konnte auch erst einmal nicht weiter machen, da es mir nicht so pralle geht. Du suchst da irgendwie die IP des MiniServer raus und vergleichst das mit der Loxberry Konfiguration. Leider isses aber so, dass eine Portangabe mit in InAddr steht. Allein dies zu bereinigen hilft nicht. Habe aber auch gelesen, dass Du die IP auch scheinbar mit für die DB benutzt. Wenn dem so ist, steht da ja auch was falsches. Daher habe ich das Plugin nochmal deinstalliert und wollte vor dem ersten Import die Anpassung machen. Bin ich aber nicht mehr zu gekommen.
                      Vielleicht kannste mir ja zur die Zusammenhänge mit der IP U ref etc sagen. Dann brauch ich nicht so lange den Code studieren 😀

                    • svethi
                      svethi kommentierte
                      Kommentar bearbeiten
                      Achso ja, es sieht so aus, dass im import.log der richtige MSName steht. Im Job-File steht bei ms_nr oder so ähnlich nix.
                  • Christian Fenzl
                    Lebende Foren Legende
                    • 31.08.2015
                    • 11217

                    svethi Ok, ich glaub, ich verstehe, was du meinst.

                    Ich hole mir aus dem Loxplan.xml alle Type="LoxLIVE" und von dem Node die IP, z.B. IntAddr="192.168.0.77".
                    Dort steht bei dir ein Port drin? Ich hab alles am Standardport 80.

                    Ich habe mehrere MS und somit mehrere IP's, und muss jetzt jeden LoxLIVE-Eintrag im XML auf die LoxBerry-Config (MS1, MS2 usw.) matchen, damit die Statistik für den richtigen MS angelegt wird.

                    Also wäre aus deinem Setup interessant:
                    - Was steht im LoxPLAN bei IntAddr?
                    - Was steht bei IPADDRESS bei deinem(n) Miniserver(n) in der general.cfg?

                    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
                      • 11217

                      svethi OK, hab's gerade an einem Test-Loxplan probiert - da steht der Port dabei.
                      Wenn dann noch jemand den Hostnamen (statt IP) hineinschreibt, ist es noch blöder. oder es lässt gar jemand leer...
                      Hilfe für die Menschen der Ukraine: https://www.loxforum.com/forum/proje...Cr-die-ukraine

                      Kommentar


                      • svethi
                        svethi kommentierte
                        Kommentar bearbeiten
                        Beim Einlesen der Config hatte ich das ja schon rausgeschnitten, doch das reichte im installierten Plugin nicht.
                        In der general.cfg stehts ja ohne Port. Da gibt's ja ein extra Feld für den Port. Hatte angefangen die Import.pl zu studieren, doch dann musste ich aufhören. Reicht ja vielleicht schon mit meinem Patch und einer Neuinstallation?

                      • Christian Fenzl
                        Christian Fenzl kommentierte
                        Kommentar bearbeiten
                        Neuinstallation könnte helfen . Schick deinen Patch mal durch - schau's mir an und bau's ein.
                        Die import.cgi mit dem Parsen des XMLs ist nicht ganz trivial...

                      • Christian Fenzl
                        Christian Fenzl kommentierte
                        Kommentar bearbeiten
                        Moment, ich bau schon um...
                    Lädt...