LoxBerry: Statistik Plugin - Diskussion

Einklappen
X
 
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Christian Fenzl
    antwortet
    Prof.Mobilux
    Das mit der roten Ampel könnte nur ein CSS-Problem sein (Screenshot). Die Daten in der Info sind aktuell, der Poller scheint zu laufen.
    In der databases.dat in Column 7 steht aber trotzdem überall 0 (Error).

    Irgendwas mit rrdcached passt bei mir nicht, beim quickchart bekomme ich im apache-log nur ein "ERROR: Unable to connect to rrdcached: No such file or directory".
    Das dürfte daran liegen, dass du ihn mit dem Socket unix:/var/run/rrdcached.sock startest, aber im quickchart mit unix:/tmp/rrdd.sock ansprichst. Wenn ich's im quickchart ausbessere, kommt ein permission denied.

    lg, Christian
    Angehängte Dateien
    Zuletzt geändert von Christian Fenzl; 07.11.2016, 21:58.

    Einen Kommentar schreiben:


  • Christian Fenzl
    antwortet
    quickchart line 51:
    our §output;
    sollte $output; sein

    Einen Kommentar schreiben:


  • Christian Fenzl
    antwortet
    Hallo Michael,

    Das databases-Verzeichnis existiert nicht, das müsstest du im Setup anlegen - da kommt beim Anlegen des RRDs ein Fehler.
    Wenn ein Fehler beim Anlegen kommt, wird das wahrscheinlich trotzdem in die DB geschrieben und er macht beim 2. Versuch gleich ein 0002.rrd

    Ich würde die Intervalleinstellung (1, 3, 5 usw.) noch nach oben vor die Experteneinstellungen holen (ich weiß, dafür braucht es dann pro Pollerintervall ein Standardsetting) und umbenennen in "Abfrageintervall".
    Die Experteneinstellungen finde ich ehrlich gesagt zu kompliziert (sogar mir). Für meinen Teil würde ich die Auswahl MIN/MAX/AVG/LAST weglassen und MIN/MAX/AVG immer implizit anlegen.
    Du erlaubst außerdem die "human-readable" Eingabe nicht (step: 10m, rows: 90d), und dann wird es wirklich kompliziert, wenn man selbst zum Rechnen anfangen muss.

    Wenn ich im Expertenmodus einen Fehler gemacht habe ("Du musst einen Start angeben") und ich gehe mit "Zurück" zurück, dann sind - bis auf die erste - meine RRA-Definitionen weg (das ist natürlich besonders bitter!). Vielleicht den Speichern-Button deaktivieren, wenn die Pflichtfelder nicht passen (Start = 0 wäre grundsätzlich legitim)
    Füge ich nach Zurück wieder welche hinzu, zählt er weiter bei der nächsten Nummer nach jener, die ich zuvor angelegt hatte (und nicht mehr angezeigt werden).

    Er vergisst jedenfalls die Anzahl der Zeilen nicht, und wenn ich dann alles richtig hab, meckert er eine nicht mehr sichtbare Zeile an ;-) Wenn der Counter richtig gestellt ist, dürfte sich das von alleine lösen.

    Beim Starten sind alle Ampeln auf Grün gegangen, und unter Info sehe ich auch realistische Werte, es gingen dann aber hintereinander alle Ampeln auf Rot (Fehler).
    Ich hab dann fetch.pl so wie im cron manuell aufgerufen, und bekomme
    Can't call method "param" on an undefined value at fetch.pl line 50.
    Das ist die Sprache - ich glaub (weiß nicht), dass er das $home nicht bekommt - zumindest nicht wenn ich's manuell aufrufe.

    So ist es recht cool, was du in der Kürze rausgehauen hast! Und weil ich mich damit so viel spiele, hab ich noch gar nichts für den Import... :-(

    lg, Christian
    Angehängte Dateien

    Einen Kommentar schreiben:


  • Prof.Mobilux
    antwortet
    Hi,

    ja, das habe ich vergessen... Kannst Du mit

    Code:
    sudo apt-get install libstring-escape-perl
    nachinstallieren. Im GIT ist es bereits aktualisiert.

    Einen Kommentar schreiben:


  • Christian Fenzl
    antwortet
    Hallo Michael,
    Installation läuft sauber durch. Neustart gemacht, und index.cgi lädt.
    Beim Statistik hinzufügen bekomme ich einen Error loading page:
    Code:
    [Sun Oct 30 22:17:12 2016] addstat.cgi: Can't locate String/Escape.pm in @INC (you may need to install the Str
    ing::Escape module) (@INC contains: /etc/perl /usr/local/lib/arm-linux-gnueabihf/perl/5.20.2 /usr/local/share/
    perl/5.20.2 /usr/lib/arm-linux-gnueabihf/perl5/5.20 /usr/share/perl5 /usr/lib/arm-linux-gnueabihf/perl/5.20 /u
    sr/share/perl/5.20 /usr/local/lib/site_perl .) at /opt/loxberry/webfrontend/cgi/plugins/stats4lox/addstat.cgi
    line 25.
    [Sun Oct 30 22:17:12 2016] addstat.cgi: BEGIN failed--compilation aborted at /opt/loxberry/webfrontend/cgi/plu
    gins/stats4lox/addstat.cgi line 25.
    Zeile 25 ist use String::Escape qw( unquotemeta );
    Da fehlt ein Perl-Modul?
    lg, Christian
    Zuletzt geändert von Christian Fenzl; 06.11.2016, 22:57.

    Einen Kommentar schreiben:


  • Prof.Mobilux
    antwortet
    Nochmal ein kurzes Update: Habe noch eine "Quickchart"-Funktion in der Statistik-Übersicht hinzugefügt (baut einen Graphen mit RRDTool zur schnellen Kontrolle) sowie die RRDInfo-Funktionalität (ebenfalls aus der Übersicht heraus).

    Das macht das Bugfixen in der jetzigen Alpha wesentlich einfacher.

    Download direkt aus GIT: https://github.com/mschlenstedt/LoxB...ive/master.zip

    Einen Kommentar schreiben:


  • Prof.Mobilux
    kommentierte 's Antwort
    Ok, stimmt ;-)

  • Christian Fenzl
    antwortet
    Ja, aber RRD interpoliert "falsch":
    Ein Digitalwert kommt im Loxone-XML als 1, und ist solange 1, bis im XML 0 kommt (in der Zeit sind keine Datensätze im XML)
    RRD würde die 1 mit der nächsten 0 verbinden, was falsch ist.
    Gleiches gilt bei Analogwerten, wenn die Statistik mit "jeder Änderung" angelegt ist.
    Zuletzt geändert von Christian Fenzl; 06.11.2016, 17:04.

    Einen Kommentar schreiben:


  • Prof.Mobilux
    kommentierte 's Antwort
    Macht das nicht auch RRD? Ich hatte es so verstanden, dass er automatisch interpoliert solange der Wert noch innerhalb des Heartbeats liegt?

  • Prof.Mobilux
    kommentierte 's Antwort
    Ich filtere nur die Pulls, weil Loxone auch die Einheiten unter "value" im XML mitschickt.

  • Christian Fenzl
    antwortet
    Bezüglich Import werde ich doch auf das XML vom Miniserver zurückgreifen. Ich hab damit getestet und es geht überraschend schnell. Dann bin ich auch sorgenfreier, wenn Loxone was am internen Format ändert.
    Dummerweise muss ich für die Loxone-Daten noch eine Serialisierung bauen, weil die bei Digital- und tw. Analogdaten nur die Änderungen aufzeichnen. Ich hab aber schon einen Plan.

    Einen Kommentar schreiben:


  • Christian Fenzl
    antwortet
    Ich bin nächste Woche in München im Hotel, da werde ich viel Zeit haben für das Testen und meinen Loxone-Import :-)

    Einen Kommentar schreiben:


  • Christian Fenzl
    antwortet
    Hallo Michael,
    d.h. du pullst alles und filterst, was in die DB kommt? Oder filterst du die Pulls?
    Weil ersteres hätte keinen Vorteil, das könntest auch an RRD schicken - das bildet dann selbst den Mittelwert für das Step-Intervall.

    Einen Kommentar schreiben:


  • Prof.Mobilux
    antwortet
    Hallo zusammen,

    eine erste Alpha ist über Git verfügbar: https://github.com/mschlenstedt/LoxB...ive/master.zip

    Die Version ist nur für Interessierte/Entwickler/Tester, produktiv kann sie noch nicht eingesetzt werden.

    Implementiert ist:
    • Neue Statistik (= RRDTool-Datenbank) anlegen
    • Expertenmodus mit (fast) allen Einstellungen die RRDTool beim Anlegen einer DB bietet (Compute habe ich nicht integriert) sowie Standardmodus (vorgeschlagene Voreinstellungen von Christian Fenzl)
    • Holen der Daten Starten / Pausieren für jede Datenbank einstellbar
    • Pullen der Daten vom Miniserver und in die Datenbank schreiben
    • rrdcached ist voll integriert. Schreiben des Cache alle 60 Min -> Entlastung der SD-Karte
    Die geschriebenen Daten können aktuell nur per "rrdtool fetch" bzw "graph" manuell geholt werden. Die Datenbanken liegen unter ~/data/plugins/stats4lox/databases

    Wer testen möchte: Schaut bitte mal ob die Installationsroutine sauber durchläuft und ob Daten zu unterschiedlichen Zeiten (60s, 180s etc.) geholt werden. Gut wäre auch das Testen unterschiedlicher Werte mit unterschiedlichen Einheiten (diese werden nach dem Pullen automatisch gefiltert - ich hoffe mein Regex passt da ;-)). Ich habe mir dazu testweise Virt. Statusbausteine angelegt und diese in der Visu ausgeblendet. Diese hole ich dann per Stats4Lox.


    Klicke auf die Grafik für eine vergrößerte Ansicht

Name: 06-11-2016 15-13-54.png
Ansichten: 636
Größe: 55,9 KB
ID: 63376
    Zuletzt geändert von Prof.Mobilux; 06.11.2016, 14:14.

    Einen Kommentar schreiben:


  • Hannes Schellnast
    kommentierte 's Antwort
    Da muss ich dir recht geben. Loxone unterstützt bei den virtuellen Ausgängen keine "Range gesteuerte Ausgabe". D.h. bei analogen virtuellen Ausgängen wird der Wert bei jeder Änderung des Analogwertes geschickt. Das bewirkt in der Praxis, dass hier bei floatenden Analogsignalen (=Realität), der Wert sehr oft gesendet wird, und damit der Miniserver durch den entstehenden Traffic stark belastet wird. Hier wäre es von Vorteil wenn es eine Option gibt, welche es zulässt dass die Werte erst ab einer bestimmten Änderung übertragen werden. Eine solche Funktion stellt Loxone ja schon bei den virtuellen analogen Eingängen zur Verfügung.

    Grundsätzlich bin ich ein Freund des "Daten pushen" anstatt die Daten über http abzuholen. Man darf nicht vergessen, dass der Miniserver von einem 400MHz ARM-Prozessor angetrieben wird, dessen Hauptaufgabe es ist, mit seinem Realtimesystem auf Events mit entsprechender Logik in "Realtime" zu reagieren. Jede zusätzliche Belastung, wie sie z.B. http Pull-Kommandos zum Auslesen diverser Werte wären, stressen den Miniserver unnötig. Vielleicht kann man hier auf Loxone konstruktiv einwirken, um das Feature der schwellengesteuerten virtuellen analogen Ausgänge zu implementieren. Der Nutzen wäre ja nicht nur beim User, sondern vor allem bei Loxone, da sie dadurch Rechenpower sparen könnten.

    MfG
    Hannes
Lädt...