LoxBerry: Statistik Plugin - Diskussion
Einklappen
X
-
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 -
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, ChristianHilfe für die Menschen der Ukraine: https://www.loxforum.com/forum/proje...Cr-die-ukraineKommentar
-
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-ukraineKommentar
-
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
-
Also morgen ne Stunde geben? Und dann gibt's wieder pulled Pork?? ;-) -
1,5 Stunden, und ich hab schon die Einheit aus dem Loxplan in brauchbarer Form. Alles kein Problem! -
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.
-
-
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"
Code:|°C|
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!
Christian1 BildHilfe für die Menschen der Ukraine: https://www.loxforum.com/forum/proje...Cr-die-ukraineKommentar
-
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
-
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-ukraineKommentar
-
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);
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
-
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-ukraineKommentar
-
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
-
Ja, hatte ich komplett deinstalliert. Werd Michael mal interviewen.
Prof.Mobilux, was isses da los?? ;-) -
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 :-)
-
-
/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-ukraineKommentar
-
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
-
Schickst mir die Logs (/opt/loxberry/logs/stats4lox/Import.log) und die roten Jobs in Data/Plugins/Stats4lox/Import/*.failedHilfe für die Menschen der Ukraine: https://www.loxforum.com/forum/proje...Cr-die-ukraineKommentar
-
Hast du einen Fehler gefunden? -
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 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, ChristianHilfe für die Menschen der Ukraine: https://www.loxforum.com/forum/proje...Cr-die-ukraineKommentar
-
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-ukraineKommentar
-
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? -
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... -
Moment, ich bau schon um...
-
Kommentar