LoxBerry: Statistik Plugin - Diskussion

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

  • svethi
    antwortet
    Hmm ... hab die Version mal getestet. File lässt sich hochladen und auch die Importliste wird angezeigt. Habe Typ 5 und Typ 6 Statistiken. Allerdings tut sich nichts nach Auswahl und Speichern. Da sollte ja direkt danach in der der Übersicht die Statistiken angezeigt werden und der Import dann später beginnen, doch ist jetzt schon eine 1/2 Stunde her und da passiert rein gar nichts.
    Konnte noch nicht in die Logs gucken, da ich nebenbei am Fritz.Lox schraube.

    Einen Kommentar schreiben:


  • Prof.Mobilux
    antwortet
    Habe heute Abend am Plugin noch ein wenig ergänzt:

    - Habe mir erlaubt eine "Über..." Seite mit den Mitwirkenden zu ergänzen. Auch in der Pluginverwaltung ist der Autor nun das "Stats4Lox Project Team" :-)
    - Die RRDFlot Engine von Christian Fenzl habe ich fest als Quickchart-Übersicht eingebaut. Ist wesentlich besser als die Grafikengine vom RRDTool finde ich. Die einzelnen Quickcharts bei den Statistiken sollten wir auch noch umstellen.
    - Beim manuellen Anlegen einer Statistik kann man jetzt auch Raum und Kategorie mit angeben.

    Einen Kommentar schreiben:


  • Prof.Mobilux
    kommentierte 's Antwort
    Nein, ich habe nur Spalten ergänzt. Reihenfolge und Trennzeichen sind gleich geblieben.

  • Christian Fenzl
    antwortet
    Cool!

    Zu maxval/minval: Die hat's bei dir noch nicht gegeben, wie ich das geschrieben hab :-)

    Zu Datenbank-Format: Hast du die Spalten nur erweitert, oder auch umgedreht oder Trennzeichen geändert? Da drin lese ich auch.

    Das mit dem Scheduler muss ich mir andchauen.

    lg, Christian

    Einen Kommentar schreiben:


  • Prof.Mobilux
    antwortet
    Christian Fenzl und svethi

    Ich habe eine neue Version auf GIT hochgeladen. Bitte kein Upgrade durchführen sondern Neuinstallation, da sich das Datenbankformat geändert hat. Könnte sein , dass auch ein Upgrade geht - bin mir aber nicht sicher.

    Änderungen:
    1. LoxPlan Upload beim Import gefixt
    2. /all anstelle /astate beim Pullen
    3. addstat.cgi hat jetzt Session Management, damit ausgefüllte Formulare bei einem Fehler erhalten bleiben
    4. Neue Datenbank-Felder: Place, Category, UID, Block, Unit
    5. Wird keine Einheit beim Anlegen einer neuen Datenbank an addstat.cgi übergeben, ermittelt addstat.cgi die Einheit per Pull
    6. Commandline-Modus für addstat.cgi. Der Aufruf erfolgt wie folgt:
    Code:
    ./addstat.cgi --script --loxonename "Akt Luftfeuchtigkeit" --description "Luftfeuchtigkeit 289c2d05a8-8602-11e3-89cfb70a5529d684" --settings 1 --miniserver 1 --min U --max 100 --uid "289c2d05a8-8602-11e3-89cfb70a5529d684" --place "Wohnzimmer" --category "Klima" --block "Virtual Status" --unit "%"
    Wie oben geschrieben kann "--unit" weggelassen werden und wird dann per Pull ermittelt.

    Christian Fenzl Ich habe den Import bei mir testweise laufen lassen - funktionierte sehr gut und selbst mein RaspPi1 ist nicht aus der Puste gekommen! Folgendes ist mir aufgefallen:
    • Du nutzt als Parameter "maxval" und "minval", es muss aber "max" und "min" sein
    • Ich hatte aus Versehen während des Imports die Datenaufzeichnung der Datenbank gestartet ("Play"-Button). Kann es sein, dass der Scheduler dann abstürzt bzw. "unendlich hängen bleibt"? Vielleicht sollten wir noch überlegen, ob man die Datenbank irgendwie sperrt während der Import läuft?
    • Du könntest jetzt auf Commandline umstellen
    Happy testing
    Zuletzt geändert von Prof.Mobilux; 15.01.2017, 21:34.

    Einen Kommentar schreiben:


  • svethi
    antwortet
    I have my eyes on you und wenn Ihr gar nicht weiter kommt, schalte ich nicht ein bg.

    Einen Kommentar schreiben:


  • Prof.Mobilux
    antwortet
    Ich habe das bei mir schon mal testweise auf /all umgestellt und konnte erst einmal nichts Negatives feststellen. Ich baue das also um :-) Ich hatte auch erst kurzzeitig überlegt die anderen Werte auch gleich zu importieren - aber das würde im Moment das ganze Konzept (nur ein Wert pro Datenbank) zerschiessen. Ich habe mich daher erst einmal dagegen entschieden, um nicht noch mehr Baustellen aufzumachen ;-) Ich denke man kann später dann auch zu jedem Baustein eine Doku ins Wiki stellen, was genau importiert wird. Wer weitere Daten haben möchte hängt halt einen Status-Baustein dran, der nicht in Loxone visualisiert wird aber zum Importieren der Statistik dienen kann. Nicht sooo elegant/einfach/smart, aber geht prinzipiell einwandfrei.

    Ich habe gerade ins GIT eine reparierte Upload-Routine gepusht. Das geht jetzt. Ich wollte dann auch gleich mal einen Testimport machen, musste aber feststellen, dass ich das addstat im GIT jetzt irgendwie zerschossen habe :-( Da mache ich jetzt erst einmal weiter.

    Einen Kommentar schreiben:


  • Christian Fenzl
    antwortet
    Ich hatte svethi gefragt, ob der mal einen Testimport macht, und da kam wieder auf, dass das Pullen beim Verbrauchszähler nicht geht, da hab ich nochmal Loxone's API-Dokument durchgeackert und alles ausprobiert :-)

    Nachdem der Vorschlag mit /all ja von mir gekommen ist, bin ich natürlich dafür - weil es damit dann wirklich bei allen Bausteinen geht.
    In den Raum werfe ich noch, ob du nicht gleich eine Subroutine machst, die ggf. auch die <output>-values erfassen kann (wenn du schon dabei bist).

    Das erschließt neue Möglichkeiten beim Erfassen, bzw. vereinfacht das Erfassen erheblich, soweit sich Loxone über alle Bausteine ans eigene Format hält (Automatikjalousie liefert mit /all ganz einen anderen Datensatz).

    lg, Christian

    Einen Kommentar schreiben:


  • Prof.Mobilux
    antwortet
    Aktuell pulle ich die URL /dev/sps/io/bausteinname/astate, das funktioniert aber z. B. beim Verbrauchszähler nicht. Dort bekommt man den Status vom Tr-Eingang zurück. Ich überlege generell auf /dev/sps/io/bausteinname/all umzustellen. Das scheint bei den meisten Bausteinen zu funktionieren. So gibt da der Verbrauchszähler folgendes zurück

    Code:
    <LL control="dev/sps/io/Strom Allgemein/all" value="14625.0 kWh" Code="200">
    <output name="AQ" nr="1" value="14625.012"/>
    <output name="AQp" nr="2" value="0.000"/>
    <output name="AQa" nr="3" value="0.000"/>
    <output name="AQ1" nr="4" value="0.000"/>
    <output name="AQ2" nr="5" value="0.000"/>
    <output name="AQ3" nr="6" value="0.000"/>
    <output name="AQ4" nr="7" value="0.000"/>
    <output name="AQ5" nr="8" value="9.696"/>
    <output name="AQ6" nr="9" value="32.087"/>
    <output name="AQ7" nr="10" value="14592.925"/>
    <output name="AQ8" nr="11" value="32.087"/>
    <output name="AQ9" nr="12" value="14592.925"/>
    </LL>
    Ich lese generell nur "value" aus und ignoriere den Rest. Damit würd eman hier den Zählerstand bekommen. Was denkt ihr?

    Einen Kommentar schreiben:


  • Christian Fenzl
    kommentierte 's Antwort
    Michael, mach bitte noch zwei zusätzliche Felder in die DB:
    - Einheit (z.B. Grad C), und
    - Baustein
    Das kann definitiv noch sinnvoll werden für die Grafik.
    Lg, Christian

  • Prof.Mobilux
    kommentierte 's Antwort
    Ja, es ist der letzte lauffähige Stand. Bin dabei das addstat so wie wir es besprochen haben anzupassen. Funktioniert aber noch nicht.

  • Christian Fenzl
    antwortet
    Prof.Mobilux Hi Michael,
    ist dein Stand bei Github dein letzter Stand?

    Einen Kommentar schreiben:


  • Christian Fenzl
    antwortet
    Diese Nacht habe ich meinen ersten Datenimport einer Statistik (Temperatur Puffer Zone 1) durchgeführt.
    In Loxone ist "Mittelwert pro Minute" definiert, d.h. pro Monat wurden zwischen 43.000 bis 44.000 Datenpunkte geliefert.
    Die 44.000 Datenpunkte eines Monats werden auf einem Raspberry Pi 1 durchschnittlich in ca. 90 Sekunden importiert.

    Ich habe gestern mehrfach den Code umgeschrieben, weil dem Rasp1 der RAM ausging. rrdcached habe ich wegen des RAMs schlussendlich für den Import auch abgedreht. Durch das Halten des XMLs eines Monats im Speicher braucht der Perl-Import-Prozess knapp 100MB RAM. Da ich für die Interpolation der XML-Daten das XML modifizieren muss, habe ich kein "billiges" Text-Parsen durchgeführt, sondern verwende mit LibXML einen vollwertigen XML-Parser.

    Es gibt noch keine fertige Grafikengine, deswegen habe ich zum Testen erstmal http://javascriptrrd.sourceforge.net/ verwendet (das Tool lädt das ganze RRD-File herunter und erstellt dynamische Grafiken). Das schaut dann so aus.

    Zuletzt geändert von Christian Fenzl; 07.01.2017, 13:18.

    Einen Kommentar schreiben:


  • Christian Fenzl
    antwortet
    Wir machen mit dem schlechten Gewissen Schlagabtausch :-)
    Aber ich war bei der Kommunikation von dir mit Oliver fürs Sonos-Plugin mit drauf (ich hab dich hineingeritten! *g*), drum weiß ich, dass du gut beschäftigt warst!

    Das kommt aktuell zurück:
    Code:
    +++OK+++Text der Meldung+++<nr der Datenbank>
    +++ERROR+++Text der Fehlermeldung
    Wenn ich derzeit eine bereits vorhandene Bezeichnung nochmal anlege, bekomme ich OK und eine neue ID.

    Optimal wäre beim Versuch einer Dublette:
    Code:
    +++OK+++Text der Meldung+++<bestehende ID>
    oder beispielsweise
    Code:
    +++DUPLICATE+++Text der Meldung+++<bestehende ID>
    Im Prinzip ist es mir egal, ob ich OK oder DUPLICATE bekomme (bei mir ändert sich nichts, ich würde bei DUPLICATE nur einen zusätzlichen Log-Eintrag machen).
    Auf deiner Seite dürftest du bei identischer Bezeichnung jedoch keine neue DB anlegen, sondern mir nur die ID der bestehenden DB zurückliefern.

    Du selbst müsstest das beim Statistik-Erzeugen-GUI auch irgendwie behandeln, weil's ja keinen Sinn macht, den selben Wert mehrfach zu pollen.

    lg, Christian

    PS: Beim http://www.loxwiki.eu/display/LOXBERRY/Stats4Lox-Import Artikel ist derzeit noch einiges an Theorie drin, ein wenig Hoffnung und eine Prise Glaube :-)

    Einen Kommentar schreiben:


  • Prof.Mobilux
    antwortet
    Christian Fenzl Ich hab' so langsam ein schlechtes Gewissen - komme im Moment nicht wirklich voran...

    Zu den Rechten: Finde ich auch - habe ich mit aufgenommen. Werde trotzdem den Kommandozeilenmodus mit ergänzen.

    Zum Import: Die Dublettenprüfung kann ich mit ergänzen. Ich habe nur noch nicht ganz verstanden, wass passieren soll. Fehlermeldung und nichts weiter oder soll trotzdem eine weitere Datenbank angelegt werden?

    Einen Kommentar schreiben:

Lädt...