Stats4Lox - Das Statistik-Plugin

Einklappen
X
 
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge
  • t_heinrich
    Lox Guru
    • 07.01.2016
    • 1987

    Hallo zusammen,

    beim Wechsel von LoxConfig 12 zu 13 oder 14 haben sich ja bei vielen Bausteinen die Bezeichnungen der Ausgänge geändert.

    Dies hat zur Folge, dass zB die Grafen in "Loxberry Stats4Lox" nicht mehr aktualisiert werden (Screenshot 1).

    In den Einstellungen des Plugins werden aber die Daten an der neuen Ausgangsbezeichnung übernommen.

    Wie kann ich denn zB nun für meine bestehenden Daten die Ausgänge aktualisieren, dass zB MQTT Live genutzt werden kann, hier werden noch die alten Ausgänge angezeigt (Screenshot 2)?

    Ein Löschen der Einträge bei "Static Selection" habe ich nicht gefunden (Screenshot 3).

    Danke euch!

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

Name: Bildschirmfoto 2023-04-22 um 08.44.09.png
Ansichten: 704
Größe: 94,6 KB
ID: 388473 Klicke auf die Grafik für eine vergrößerte Ansicht

Name: Bildschirmfoto 2023-04-22 um 08.50.33.png
Ansichten: 669
Größe: 234,5 KB
ID: 388474 Klicke auf die Grafik für eine vergrößerte Ansicht

Name: Bildschirmfoto 2023-04-19 um 11.52.02.png
Ansichten: 639
Größe: 143,4 KB
ID: 388475

    Kommentar

    • Sliderem
      Smart Home'r
      • 30.06.2018
      • 60

      Zitat von Sliderem
      For this here you have Loxone Config and App with the full statistics for entry point current temperature
      Hello guys, no-one has any idea ? on this issue ? not being able to import the statistics gathered on inputs of a bloc ?
      I tried to look in the code, debug it, use postman, etc...

      I have statistics data since 3 years aggregated on the the "Current Temperature Input" value of an "Intelligent Room Controller V2" block, and I can not import this in Stats4Loxone.
      Maybe you are doing this differently ?

      Thanks

      Kommentar

      • Christian Fenzl
        Lebende Foren Legende
        • 31.08.2015
        • 11206

        Does any value of the „Live data from the Miniserver“ match the current input temperature?
        Loxone has (had?) a quite bad statistics format without matching of statistics data names to current data API names, therefore Stats4Lox must programmatically do that matching for each Loxone block type.
        As Loxone mixed up all of it’s block labels with V13, possibly the matching fails.

        Is there any value in S4L live data matching the history stat value? What’s the label?
        Hilfe für die Menschen der Ukraine: https://www.loxforum.com/forum/proje...Cr-die-ukraine

        Kommentar

        • Scrati
          LoxBus Spammer
          • 25.08.2015
          • 216

          Hallo zusammen,

          ich habe mich in den letzten Tagen intensiv damit auseinandergesetzt, wie ich die Daten meiner alten influxDB in die Stats4lox Datenbank bekomme.

          Am Ende leider alles nicht so einfach und es war ein Riesenaufwand. Möglicherweise gibt es auch einfachere Wege, aber den habe ich rausbekommen und er funktioniert für mich. Ich wollte euch wenigstens an der Lösung teilhaben lassen.

          Die Ausgangssituation:
          Die Stats4Lox InfluxDB schreibt bereits alle Daten mit, die ich auch mit der alten Datenbank mitgeschrieben habe. Die alte Datenbank schreibt nichts mehr mit, ist aber noch "up and running"

          Meine alte Datenbank lief in Docker. Auf diese kann man wie folgt Zugriff erhalten, wenn man mit Putty auf der Maschine unterwegs ist, wo der Docker läuft:
          Code:
          sudo -i docker exec -it NAME_DOCKER influx -database NAME_DB​
          Hier könnt ihr euch dann beispielsweise anzeigen lassen, welche Measurements ihr mitschreibt:
          Code:
          show measurements
          Jetzt geht es an den Export. Hierzu per "exit" raus aus der influxDB und dann:
          Code:
          sudo -i docker exec -it NAME_DOCKER influx -database NAME_DB -execute "SELECT * FROM \"NAME MEASUREMENT\"" -format csv > 'NAME.csv'​
          Leider muss man das für jedes einzelne Measurement machen. Aber immerhin hat man erstmal alle Daten in einer bearbeitbaren Form.


          Nun habe ich die Maschine meiner alten Datenbank verlassen und mich auf dem Loxberry eingeklinkt. Das Team von Stats4Lox war so nett und hat ein passthrough Script geschrieben, dass wir direkt nutzen:
          Code:
          /opt/loxberry/bin/plugins/stats4lox/s4linflux -database stats4lox​
          Hier kann man sich auch wieder alles anzeigen lassen unter welchen Namen, welche Dinge mitgeschrieben werden.
          Code:
          show measurements
          Mit "exit" kann man auch hier wieder zum Loxberry zurück.

          Jetzt habe ich mir nach und nach für jedes Measurement die Datenstruktur in eine csv ausgeben lassen:
          Code:
          /opt/loxberry/bin/plugins/stats4lox/s4linflux -database stats4lox -execute "SELECT * FROM \"NAME MEASUREMENT\"" -format csv > 'NAME.csv'​
          Anschließend habe ich mir die csv des Measurements aus der alten Datenbank und aus der neuen Datenbank angeschaut und habe in Excel die alte Struktur auf die neue umgemünzt. Dieses Mapping ist sehr wahrscheinlich hochindividuell und musste bei mir auch für unterschiedliche Measurements unterschiedlich ausfallen. Daher ist es hier - obwohl dies der kritische Teil ist - nicht möglich ein sinnvolles Beispiel zu geben.

          Wenn man nun die alten csv Daten in eine neue xls-Datei überführt, deren Datenstruktur der neuen Datenbank entspricht, ist man schon einen großen Schritt voran gekommen. Aber es stellt sich die Frage, wie bekomme ich jetzt die alten Daten mit der neuen Datenstruktur in die Stats4Lox Datenbank.

          Wir werden hierfür "curl" nutzen. Dazu später mehr. Da wir es hier teils mit hundertausenden Datensätzen zu tun haben, werden wir dies per Text-Datei machen müssen. Für das Schreiben der Daten in die Stats4Lox Datenbank brauchen wir - mal wieder - eine bestimmte Datenstruktur, die wir uns aber wunderbar mit der xls-Datei erzeugen können. Unsere Freunde sind hier "VERKETTEN" oder der Operator "&" mit dem wir Text verknüpfen können.

          Unsere Zieldatenstruktur muss dieses Format einhalten:
          Code:
          MEASUREMENT_NAME,TAG1_NAME=TAG1_WERT,TAG2_NAME=TAG2_WERT VALUE1_NAME=VALUE1_WERT,VALUE2_NAME=VALUE2_WERT TIMESTAMP
          Dies erzeugen wir uns in der xls-Datei durch sinnvolles verketten. Die Zellen kann man dann ganz einfach in ein Text-Dokument kopieren, z.B. eine Test.txt in dieser Form so:
          Code:
          Fensterstatus\ Wohnzimmer,msno=1,name=Fensterstatus\ Wohnzimmer,room=Wohnzimmer,source=csv,type=Memory,url=manuell,uuid=12f0abc1-009a-d39e-ffffa561813020fb,category=Alarm,host=loxberry Default=1 1609962028208000000
          Fensterstatus\ Wohnzimmer,msno=1,name=Fensterstatus\ Wohnzimmer,room=Wohnzimmer,source=csv,type=Memory,url=manuell,uuid=12f0abc1-009a-d39e-ffffa561813020fb,category=Alarm,host=loxberry Default=1 1609962078100000000
          Fensterstatus\ Wohnzimmer,msno=1,name=Fensterstatus\ Wohnzimmer,room=Wohnzimmer,source=csv,type=Memory,url=manuell,uuid=12f0abc1-009a-d39e-ffffa561813020fb,category=Alarm,host=loxberry Default=3 1609969464474000000
          Fensterstatus\ Wohnzimmer,msno=1,name=Fensterstatus\ Wohnzimmer,room=Wohnzimmer,source=csv,type=Memory,url=manuell,uuid=12f0abc1-009a-d39e-ffffa561813020fb,category=Alarm,host=loxberry Default=1 1609969517615000000
          Fensterstatus\ Wohnzimmer,msno=1,name=Fensterstatus\ Wohnzimmer,room=Wohnzimmer,source=csv,type=Memory,url=manuell,uuid=12f0abc1-009a-d39e-ffffa561813020fb,category=Alarm,host=loxberry Default=3 1609970761020000000​
          Achtung: Hierfür zum Beispiel notepad++ nutzen, denn hier kann man das "Format Zeilenende" auf UNIX umstellen. Der Windows-Zeilenumbruch führt zu Fehlern.
          Wenn ihr MEASUREMENT oder TAG Namen mit Leerzeichen habt, so müssen diese mit einem " \ " markiert werden, siehe auch obiges Beispiel der Text-Datei
          Achtet außerdem darauf, dass CURL nur maximal 100.000 Zeilen verarbeitet. ggf. müsst ihr mehrere Dateien anlegen.


          Diese Datei legen wir nun auf dem Loxberry ab, klinken uns im Loxberry in das Verzeichnis der Datei und importieren die Daten per Curl in die Stats4Lox DB:

          Code:
          curl -i -XPOST 'https://localhost:8086/write?db=stats4lox' --insecure --user 'DB_USER:DB:PW' --data-binary @Test.txt
          Den DB User und das DB PW könnt ihr auf eurem Loxberry hier finden: /opt/loxberry/config/plugins/stats4lox/cred.json​

          Anschließend solltet ihr die alten Daten in der neuen Datenbank finden können

          Ganz großes ACHTUNG: Macht in jedem Fall ein Backup eures Loxberry, bevor ihr damit beginnt. Man kann hier richtig viel kaputt machen. Achtet akribisch auf die Schreibweisen.

          Aber man kann auch viel reparieren, wenn man Daten eines Measurements vorher exportiert, dann mit diversen Befehlen in der DB löscht (ich hatte beim einrichten von Stats4Lox viele Zombie-Einträge produziert) und die exportieren Dinge wieder unter Änderungen importiert. Siehe: https://docs.influxdata.com/influxdb...nage-database/
          Zuletzt geändert von Scrati; 30.04.2023, 20:06.

          Kommentar

          • t_heinrich
            Lox Guru
            • 07.01.2016
            • 1987

            RiverRaid vielen Dank für deine ausführliche Beschreibung.

            Klicke auf die Grafik für eine vergrößerte Ansicht Name: 49fa2f91-5495-4061-a8bb-b63f091cd262.jpg Ansichten: 0 Größe: 214,1 KB ID: 315627 (filedata/fetch?id=315627&d=1629747287) Einen guten Abend vom Campingplatz am Faaker See im wunderschönen Kärnten! 😎 Die Revolution ist da! ​​​​​​Michael, Sven,


            Ich war so frei und habe sie ins Wiki übernommen und auch noch was mit hinzugefügt:



            Gerne drüberschauen und bei Bedarf Änderungen einpflegen.

            Christian Fenzl habe o.a. Seite hier verlinkt:

            Zuletzt geändert von t_heinrich; 06.05.2023, 13:20.

            Kommentar


            • RiverRaid
              RiverRaid kommentierte
              Kommentar bearbeiten
              Danke für Deine Arbeit! Aber leider kommt bei mir immer die Fehlermeldung "diese Seite existiert nicht mehr"

            • t_heinrich
              t_heinrich kommentierte
              Kommentar bearbeiten
              RiverRaid Danke für den Hinweis, Link geht jetzt.
              Prof.Mobilux Danke für's weitere Überarbeiten.

            • RiverRaid
              RiverRaid kommentierte
              Kommentar bearbeiten
              Danke!
          • t_heinrich
            Lox Guru
            • 07.01.2016
            • 1987

            Hat schon mal jmd das verlinkte Tool im Wiki ausprobiert und konnte eine Verbindung herstellen?



            "Allow Untrusted SSL" ist in den Einstellungen aktiviert.

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

Name: Bildschirmfoto 2023-05-05 um 12.15.38.png
Ansichten: 515
Größe: 57,8 KB
ID: 390163

            Kommentar

          • Prof.Mobilux
            Supermoderator
            • 25.08.2015
            • 4606

            Wenn Du möchtest, dass er eine Anfrage per HTTPS stellt, musst Du schon auch "Use SSL" anhaken, sonst nimmt er halt HTTP. Und Username und Passwort musst Du natürlich auch ausfüllen. Username (normalerweise "stats4lox") und das Passwort findest Du im Config-Ordner in der Datei "cred.json": /opt/locberry/config/plugins/stats4lox/cred.json

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

Name: image.png
Ansichten: 500
Größe: 18,1 KB
ID: 390166
            🇺🇦 Hilfe für die Menschen der Ukraine: https://www.loxforum.com/forum/proje...Cr-die-ukraine


            LoxBerry - Beyond the Limits

            Kommentar


            • t_heinrich
              t_heinrich kommentierte
              Kommentar bearbeiten
              Kaum macht man es richtig ... klappt es. :-)
              Danke dir für deine schnelle Hilfe.

            • Scrati
              Scrati kommentierte
              Kommentar bearbeiten
              Schade das ich das nicht gefunden habe, als ich meine Daten zusammengeführt habe. Probiere ich glatt mal aus!

            • t_heinrich
              t_heinrich kommentierte
              Kommentar bearbeiten
              Scrati hab es auch erst (zu spät) im Wiki entdeckt. :-)
              Möchte jetzt einzelne (inkorrekte) Werte löschen.
          • Speed
            Dumb Home'r
            • 12.12.2018
            • 23

            Hallo,

            erstmal vielen Dank für das super Plugin.

            Ich habe mir vor kurzem 2 Tasmota Power Plugs angeschafft und würde die gesammelten Daten gerne in Grafana anzeigen lassen.
            Ich habe die Tasmota Plugs so konfiguriert dass sie die Statistiken an den MQTT Broker schicken und über das Plugin das Topic abonniert. Soweit funktioniert alles und ich sehe die Daten auch schon in Grafana. Tasmota schickt sie jedoch als json und um diese korrekt zu parsen muss man die telegraf.config bearbeiten.

            Wie muss ich jetzt vorgehen um meine Config auch "updatekompatibel" zu machen?
            Erstelle ich ein neues Configfile unter /etc/telegraf/telegraf.d/ und richte dort den Input und das data_format ein?

            Danke
            Alex

            P.S. wenn alles läuft schreibe ich auch gerne eine kurze Doku dazu

            Kommentar


            • svethi
              svethi kommentierte
              Kommentar bearbeiten
              Sowas liest man gern. Das Plugin wird genutzt, es funktioniert nicht alles wie gewünscht und man macht sich selbst auch mal Gedanken und sieht sich das an und findet Lösungen. Sehr schön.
              Wenn es über Telegraf nichts wird, könntest Du sonst noch 2 andere Wege gehen. Zum Einen könntest Du im MQTT Gateway eingeben, dass JSON‘s aufgedröselt werden. Und die Werte Einzeln an den MS schicken und diese Werte dann in die Statistik einbinden. Oder das JSON über UDP an den MS schicken und dort die Werte raussuchen und dann in die Statistik übernehmen. Oder sogar noch ne Variante … über NodeRed die Topics abonnieren und über NodeRed dann ins Influx schreiben.
              Lösungen gibts viele ;-)

            • Speed
              Speed kommentierte
              Kommentar bearbeiten
              Danke für den Hinweis, das kannte ich noch nicht aber ich sehe dass die Werte geparsed an den Loxone MS weitergegeben werden.
              Ok, das wäre dann Plan B. Ich würde nur ungern über den doppelten Weg gehen (Tasmota -> MQTT -> Loxone Server -> MQTT -> InfluxDB)... NodeRed hab ich derzeit nicht am Laufen aber einen Home Assistant Container in welchem ich das vermutlich auch machen könnte.
              Ich versuch es mal direkt mit Telegraf, gegebenenfalls gibs bald ne neue Doku dazu

            • Speed
              Speed kommentierte
              Kommentar bearbeiten
              Kurzes Update:
              Nachdem ich Zeit hatte mir das genauer anzuschauen hab ich einen Fehler in meiner Grafana Query gefunden. Eigentlich muss man gar nichts machen, Influx parst das JSON File automatisch und liefert die aufbereiteten Werte. Nevermind...
          • Kverb
            Dumb Home'r
            • 05.05.2022
            • 26

            Ich bin mir nicht sicher, ob ich das im Solcast- oder Stats4Lox-Thread fragen soll, aber hier ist mein Problem:
            Auf einem MQTT-Client auf meinem PC (MQTTX wird zum Testen verwendet) kann ich Meldungen sehen, die sich auf das Vorübergehen von Solcast beziehen. Ich habe ein MQTT-Collector-Thema „solcast/#“ erstellt, sehe aber in Grafana keine Werte im Zusammenhang mit Solcast.
            Weiß jemand, wie man das löst? Ich würde es vorziehen, nicht den zusätzlichen Schritt über den Miniserver durchführen zu müssen, da Stats4Lox meines Wissens nach in der Lage ist, jede Art von MQTT-Daten zu sammeln.​
            Angehängte Dateien

            Kommentar

            • Christian Fenzl
              Lebende Foren Legende
              • 31.08.2015
              • 11206

              Kverb Mach mal Screenshots, wie das in MQTTX aussieht, und wie die Konfiguration im MQTT-Collector aussieht.
              LG, Christian
              Hilfe für die Menschen der Ukraine: https://www.loxforum.com/forum/proje...Cr-die-ukraine

              Kommentar


              • Kverb
                Kverb kommentierte
                Kommentar bearbeiten
                Guter Punkt, ich habe sie der ursprünglichen Frage beigefügt
            • dkieslinger
              Smart Home'r
              • 29.01.2021
              • 88

              Das Problem ist, das das Solcast Plugin aktuell keine Zeiten mit übergibt sondern für die jeweilige Stunde den Wert.
              Der MQTT-Collector schreibt aber die Werte zum Zeitpunkt des auslesens in die InfluxDB. Dadurch entsteht etwas in der Datenbank was du per Grafana nicht auswerten kannst.

              Ich habe das Plugin auch vor kurzen installiert, bin auch das gleiche Problem gestoßen und habe es mir angepasst. Die Anpassung wollte ich dem Entwickler gerade zu Verfügung stellen. Vielleicht übernimmt er es ja in das Plugin.

              Ergebnis ist dann so:
              Klicke auf die Grafik für eine vergrößerte Ansicht

Name: grafik.png
Ansichten: 446
Größe: 30,1 KB
ID: 391378

              Kommentar


              • Kverb
                Kverb kommentierte
                Kommentar bearbeiten
                Aha, das macht irgendwie Sinn. Soll ich warten, bis das Plugin aktualisiert wird, oder können Sie mir Ihre Anpassungen mitteilen?
                Eigentlich interessiert mich sowieso vor allem der aktuelle Wert, ich werde den „solcast/sum/next.3_w“ nutzen, um die Fußbodenheizung zu verzögern, wenn die Sonne den Raum bald aufheizt.
            • dkieslinger
              Smart Home'r
              • 29.01.2021
              • 88

              Die Logik wäre ja erstmal unabhängig von Stats4Lox und eine Steuerung in der Loxone selbst.
              Dafür muss im MQTT-Teil des Loxberry (Plugin MQTT-Gateway oder im Menü links unter MQTT) das Topic per subscription hinterlegt werden und ein virtueller Eingang in der Config erstellt werden.

              Kommentar


              • Kverb
                Kverb kommentierte
                Kommentar bearbeiten
                Das hatte ich schon befürchtet, ich schätze, ich muss es einfach so umsetzen :-)
            • Kverb
              Dumb Home'r
              • 05.05.2022
              • 26

              Es bestehen weiterhin Probleme ... Ich habe im MQTT-Plugin ein HTTP-VI erstellt, aber der Wert im Miniserver bleibt auf „0“. Gibt es ein Problem aufgrund des Punktes in den Solcast MQTT-Daten?
              Angehängte Dateien

              Kommentar


              • Kverb
                Kverb kommentierte
                Kommentar bearbeiten
                Übrigens kann ich das VI manuell über den HTTP-Befehl in meinem Browser aktualisieren
            • dkieslinger
              Smart Home'r
              • 29.01.2021
              • 88

              Stell mal die Validierung auf einen höheren Wert - 10000 oder mehr.
              Du hast dort eingestellt das ein Wert über 100 nicht sein kann und dann der Standardwert 0 gesetzt wird. Dein Wert ist mit 2135 aber definitiv höher

              Kommentar


              • Kverb
                Kverb kommentierte
                Kommentar bearbeiten
                Das habe ich inzwischen entdeckt, aber leider sind dadurch die Werte nicht angekommen.
                Ich werde einen alternativen Ansatz ohne HTTP VI ausprobieren.
            • Bodu2Kuda
              Azubi
              • 20.05.2023
              • 2

              Liebe Leute

              Ich freue mich, dass ihr so ein cooles PlugIn erstellt habt! Vielen Dank!
              Das PlugIn funktioniert bei mir bestens und ich hab auch schon ein paar Stunden damit verbracht meine Dashboards in Grafana zu erstellen. Für Euch Profis habe ich wohl eine simple Frage:

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

Name: IMG_0233.jpg
Ansichten: 385
Größe: 240,4 KB
ID: 391780
              Wie kann ich die Daten der zuerwartenden PV Produktion um 24 Stunden versetzt darstellen, damit sie in Deckung mit der effektiven Produktion sind. Ich habe hier schon gesucht und auch im Internet und nix gefunden, ausser dies hier: https://stackoverflow.com/questions/...luxdb-database Heisst dies, dass es mit influxql nicht geht? Wenn, ja bekomme ich flux zum laufen, was sind die richtigen Einstellungen? Vielen Dank für die Unterstützung, auch wenn Ihr mir nur sagt wo ich döesel lesen muss… :-) Gruss aus der Schweiz Niggi

              Kommentar

              Lädt...