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.
LoxBerry: Statistik Plugin - Diskussion
Einklappen
X
-
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
-
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
-
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-ukraineKommentar
-
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-ukraineKommentar
-
Prof.Mobilux
Es gibt irgendwo einen Bug, der die databases.dat truncated (0 Byte). Das ist bei mir jetzt den zweiten Tag hintereinander passiert.
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
-
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.
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
-
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
-
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-ukraineKommentar
-
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
-
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/B001691VE8Zuletzt geändert von Prof.Mobilux; 16.11.2016, 08:47.
-
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>
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
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
-
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, ChristianHilfe für die Menschen der Ukraine: https://www.loxforum.com/forum/proje...Cr-die-ukraineKommentar
-
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!
-
-
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
-
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! -
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!
-
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
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";
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, ChristianHilfe für die Menschen der Ukraine: https://www.loxforum.com/forum/proje...Cr-die-ukraineKommentar
-
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
-
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-ukraineKommentar
Kommentar