Ankündigung

Einklappen
Keine Ankündigung bisher.

Grafana und InfluxDB neben Edomi. Installation und Best Practice

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

  • Evolution100
    antwortet
    Hab das nochmal nachgestellt.. ist bei mir auch so, wenn ich an E10 ein all setzte und der E1 auf 1 steht, dann rennt er sofort los und kopiert einmal alles. Wenn ich aber nur mit E7 arbeite, tut sich gar nichts :-(

    Gut, man könnte eine Logik anlegen, die bei E11 immer die aktuelle Zeit minus 5 min hat und das dann triggern.. dann hätte man doch, wenn ich das korrekt verstehe, nur einen 5 min Verzug? Oder man triggert das ganze nur Nachts und schaufelt dann alles nach Influx was über den Tag angefallen ist.

    jonofe lieg ich da richtig? Wäre ja so ähnlich wie der sync an E7

    Einen Kommentar schreiben:


  • DiJai
    antwortet
    Nach
    cd /usr/local/edomi/www/admin/include/php/influx-client
    composer require influxdata/influxdb-client-php guzzlehttp/guzzle​
    funktioniert das einmalige einlesen der Edomi-Archive mit "all" an E10 auch - nur das laufende synchronisieren der neuen edomi-Archiv-einträge leider nicht - zumindest bei mir nicht.

    Einen Kommentar schreiben:


  • Evolution100
    antwortet
    jonofe Danke, werde ich so mal testen.

    Jetzt hab ich aber ein anderes Problem. Auf meine Edomi Testrechner (Hardware mit CentOS) hat alles gleich funktioniert und ich konnte den LBS 19002576 direkt nach den Installationsbefehlen in Betrieb nehmen.
    Nun wollte ich das alles auf Produktion nehmen (und das läuft auf einem Proxmox LXC mit dem Template von starwarsfan in der Version edomi-2.03.6
    Da schaffe ich es nicht das Teil zum Laufen zu bekommen. Ich glaub ich hab schon alle Posts hier durch und x-Mal zurückgesetzt und neu getestet.. wenn ich alles korrekt verstanden hab, müsste man laut starwarsfan nur den LBS in Edomi hochladen und dann das hier noch ausführen

    PHP Influx Client
    =================
    cd /usr/local/edomi/www/admin/include/php/
    mkdir influx-client
    cd influx-client/
    composer require influxdata/influxdb-client-php


    Dann bekomme ich das hier in der konsole nach dem composer

    [root@EdomiProd ~]# cd /usr/local/edomi/www/admin/include/php/
    [root@EdomiProd php]# mkdir influx-client
    [root@EdomiProd php]# cd influx-client/
    [root@EdomiProd influx-client]# composer require influxdata/influxdb-client-php
    Do not run Composer as root/super user! See https://getcomposer.org/root for details
    Continue as root/super user [yes]? yes
    ./composer.json has been created
    Running composer update influxdata/influxdb-client-php
    Loading composer repositories with package information
    Updating dependencies
    Lock file operations: 14 installs, 0 updates, 0 removals
    - Locking clue/stream-filter (v1.7.0)
    - Locking influxdata/influxdb-client-php (3.4.0)
    - Locking php-http/client-common (2.7.1)
    - Locking php-http/discovery (1.19.2)
    - Locking php-http/httplug (2.4.0)
    - Locking php-http/message (1.16.0)
    - Locking php-http/promise (1.2.1)
    - Locking psr/http-client (1.0.3)
    - Locking psr/http-factory (1.0.2)
    - Locking psr/http-message (2.0)
    - Locking symfony/deprecation-contracts (v2.5.2)
    - Locking symfony/options-resolver (v5.4.21)
    - Locking symfony/polyfill-php73 (v1.28.0)
    - Locking symfony/polyfill-php80 (v1.28.0)
    Writing lock file
    Installing dependencies from lock file (including require-dev)
    Package operations: 14 installs, 0 updates, 0 removals
    - Downloading php-http/discovery (1.19.2)
    - Downloading psr/http-message (2.0)
    - Downloading psr/http-client (1.0.3)
    - Downloading symfony/polyfill-php80 (v1.28.0)
    - Downloading symfony/polyfill-php73 (v1.28.0)
    - Downloading symfony/options-resolver (v5.4.21)
    - Downloading psr/http-factory (1.0.2)
    - Downloading clue/stream-filter (v1.7.0)
    - Downloading php-http/message (1.16.0)
    - Downloading php-http/promise (1.2.1)
    - Downloading php-http/httplug (2.4.0)
    - Downloading php-http/client-common (2.7.1)
    - Downloading influxdata/influxdb-client-php (3.4.0)
    php-http/discovery contains a Composer plugin which is currently not in your allow-plugins config. See https://getcomposer.org/allow-plugins
    Do you trust "php-http/discovery" to execute code and wish to enable it now? (writes "allow-plugins" to composer.json) [y,n,d,?] y
    - Installing php-http/discovery (1.19.2): Extracting archive
    - Installing psr/http-message (2.0): Extracting archive
    - Installing psr/http-client (1.0.3): Extracting archive
    - Installing symfony/polyfill-php80 (v1.28.0): Extracting archive
    - Installing symfony/polyfill-php73 (v1.28.0): Extracting archive
    - Installing symfony/deprecation-contracts (v2.5.2): Extracting archive
    - Installing symfony/options-resolver (v5.4.21): Extracting archive
    - Installing psr/http-factory (1.0.2): Extracting archive
    - Installing clue/stream-filter (v1.7.0): Extracting archive
    - Installing php-http/message (1.16.0): Extracting archive
    - Installing php-http/promise (1.2.1): Extracting archive
    - Installing php-http/httplug (2.4.0): Extracting archive
    - Installing php-http/client-common (2.7.1): Extracting archive
    - Installing influxdata/influxdb-client-php (3.4.0): Extracting archive
    6 package suggestions were added by new dependencies, use `composer suggest` to see details.
    Generating autoload files
    5 packages you are using are looking for funding.
    Use the `composer fund` command to find out more!
    No security vulnerability advisories found
    Using version ^3.4 for influxdata/influxdb-client-php
    [root@EdomiProd influx-client]#​

    Danach hab ich nochmal das Projekt aktiviert und den Server neu gestartet.. aber er schreibt keine Daten nach Influx
    Das Testbucket dort ist und bleibt leer.

    so hab ich den LBS beschalten (ich glaube auf meiner Testmaschine war es damals genau so...)

    LBS.jpg

    Logs sehen so aus
    {EDOMI,CUSTOMLOG_Influx_Data_Archives-LBS19002576.htm,30.12.2023,18:13:01,429280,901}
    Zeitstempel ms PID LogLevel Meldung
    2023-12-30 18:13:01 429256 901 debug-mysql LBS19002576 [v0.3b]: Query: DROP PROCEDURE IF EXISTS influx_update; (4404)
    2023-12-30 18:13:01 429574 901 debug-mysql LBS19002576 [v0.3b]: Query: DROP TRIGGER IF EXISTS influx_insert_trigger; (4404)
    2023-12-30 18:13:01 429845 901 debug-mysql LBS19002576 [v0.3b]: Query: DROP TRIGGER IF EXISTS influx_update_trigger; (4404)
    2023-12-30 18:13:01 430073 901 debug-mysql LBS19002576 [v0.3b]: Query: DROP TRIGGER IF EXISTS influx_delete_trigger; (4404)
    2023-12-30 18:13:01 430356 901 debug-mysql LBS19002576 [v0.3b]: Query: CREATE PROCEDURE influx_update(command VARCHAR(10), archiveId INT(20), archiveName VARCHAR(100), value VARCHAR(10000), timestamp DATETIME, ms INT(11)) BEGIN DECLARE cmd VARCHAR(1000); DECLARE result INT(10); DECLARE logresult INT(10); SET cmd = CONCAT('/usr/bin/bash -c "/usr/bin/php /usr/local/edomi/www/data/liveproject/lbs/EXE19002576.php ',command,' ',archiveId,' \'',archiveName,'\' \'',value,'\' \'',timestamp,'\' ',ms,' & "'); SET logresult = log_error(cmd); SET result = sys_exec(cmd); END (4404)

    und das CUSTOMLOG_Influx_Data_Archives-EXEC.log ist leer....



    Ich hab jetzt nicht wirklich von vielen gelesen, die es zum Laufen gebracht hatten..?
    Geht das ggf. echt nicht.. oder stelle ich mich einfach nur zu doof an?


    P.S: Wenn ich den composer noch ausführe ändert sich nichts..

    [root@EdomiProd ~]# composer require php-http/guzzle7-adapter
    Do not run Composer as root/super user! See https://getcomposer.org/root for details
    Continue as root/super user [yes]? yes
    ./composer.json has been created
    Running composer update php-http/guzzle7-adapter
    Loading composer repositories with package information
    Updating dependencies
    Lock file operations: 11 installs, 0 updates, 0 removals
    - Locking guzzlehttp/guzzle (7.8.1)
    - Locking guzzlehttp/promises (2.0.2)
    - Locking guzzlehttp/psr7 (2.6.2)
    - Locking php-http/guzzle7-adapter (1.0.0)
    - Locking php-http/httplug (2.4.0)
    - Locking php-http/promise (1.2.1)
    - Locking psr/http-client (1.0.3)
    - Locking psr/http-factory (1.0.2)
    - Locking psr/http-message (2.0)
    - Locking ralouphie/getallheaders (3.0.3)
    - Locking symfony/deprecation-contracts (v2.5.2)
    Writing lock file
    Installing dependencies from lock file (including require-dev)
    Package operations: 11 installs, 0 updates, 0 removals
    - Downloading guzzlehttp/promises (2.0.2)
    - Downloading guzzlehttp/psr7 (2.6.2)
    - Downloading guzzlehttp/guzzle (7.8.1)
    - Downloading php-http/guzzle7-adapter (1.0.0)
    - Installing guzzlehttp/promises (2.0.2): Extracting archive
    - Installing ralouphie/getallheaders (3.0.3): Extracting archive
    - Installing psr/http-message (2.0): Extracting archive
    - Installing psr/http-factory (1.0.2): Extracting archive
    - Installing guzzlehttp/psr7 (2.6.2): Extracting archive
    - Installing psr/http-client (1.0.3): Extracting archive
    - Installing php-http/promise (1.2.1): Extracting archive
    - Installing php-http/httplug (2.4.0): Extracting archive
    - Installing symfony/deprecation-contracts (v2.5.2): Extracting archive
    - Installing guzzlehttp/guzzle (7.8.1): Extracting archive
    - Installing php-http/guzzle7-adapter (1.0.0): Extracting archive
    3 package suggestions were added by new dependencies, use `composer suggest` to see details.
    Generating autoload files
    4 packages you are using are looking for funding.
    Use the `composer fund` command to find out more!
    No security vulnerability advisories found
    Using version ^1.0 for php-http/guzzle7-adapter​
    Zuletzt geändert von Evolution100; 30.12.2023, 18:18.

    Einen Kommentar schreiben:


  • jonofe
    antwortet
    Zitat von Evolution100 Beitrag anzeigen
    Ich habs einmal mit dem LBS 19002576 versucht. Also alle Tempwerte in Edomi in ein Archiv schreiben und die dann nach Influx mit dem LBS Syncen. Dann hab ich x measurements und keine tags
    Welche weiteren Tags brauchst du denn bzw.welche zusätzlichen Infos für Tags hast du denn?
    Bei einem Datenarchiv gibt es nur Timestamp, Name und Wert und genauso ist doch dann in Influx vorhanden.

    Zitat von Evolution100 Beitrag anzeigen
    Aus Auswertungssicht wäre es dann natürlich noch super, wenn alle z.B. Temperaturdaten immer zur gleichen Zeit geschrieben werden
    Da Edomi Event basiert ist, ist das aus meiner Sicht nicht wirklich sinnvoll. Du willst ja am Ende die Werte auch zu den Zeiten sehen, an denen sie gemessen wurden.
    Du müsstest also die Werte erst alle zur gleichen Zeit lesen, dann würden sie auch nahezu zeitgleich geschrieben. Wenn du dann das Aggregationsintervall entsprechend setzt, dann sollte auch in Grafana jedes Measuremnt in jedem Intervall einen Wert liefern.

    Bsp: Alle Temperaturen minütlich abfragen bzw. senden lassen, In Grafana dann ein Diagramm mit 5 Minuten Intervall und function mean() erstellen. Dann hast du für jede Temperatur alle 5 Minuten einen Wert.

    Einen Kommentar schreiben:


  • Evolution100
    antwortet
    Hallo zusammen,

    ich hätte mal eine best practice Frage zu Edomi und Influxdb. Ich teste das gerade etwas und versuche es optimal aufzubauen.
    Aber wie macht man das am besten?

    Ich habs einmal mit dem LBS 19002576 versucht. Also alle Tempwerte in Edomi in ein Archiv schreiben und die dann nach Influx mit dem LBS Syncen. Dann hab ich x measurements und keine tags

    Alternativ hab ich mal versucht jeden Wert direkt beim ermitteln ins Edomi Archiv schreiben zu lassen (damit ich erstmal noch die Diagramme in Edomi hab) und parallel mit dem LBS 19002380 nach Influx. Hier kann ich dann ja ein Tag etc. mitgeben (z.b. Raumtemperatur, oder Zimmernamen). Heist aber, ich müsste jeden Wert immer "live" nach Influx schreiben.. mit X LBS'n ?! Ob das aus Performance etc. Sicht so gut ist? Oder mach ich mir da zu viel Kopf?

    Aus Auswertungssicht wäre es dann natürlich noch super, wenn alle z.B. Temperaturdaten immer zur gleichen Zeit geschrieben werden bzw wenn ich immer den gleichen Zeitstempel mitgebe, da ich in Influx beim Auswerten gesehen habe, dass es deutlich besser wäre, wenn Werte zur gleichen Zeit kommen, sonst sieht man in der Grafik ggf. den anderen Wert nicht genau (oder gibts da eine andere Möglichkeit?

    Vielleicht könnt Ihr mal Berichten, wie ihr da so umsetzt?

    Vielen Dank

    Markus

    Einen Kommentar schreiben:


  • starwarsfan
    antwortet
    Danke für den Reminder, ich habe die Builds eben gestartet. Mal schauen, ob's sauber durch läuft, die Chancen stehen gut.

    Einen Kommentar schreiben:


  • DiJai
    antwortet
    Servus Yves,

    Zitat von starwarsfan Beitrag anzeigen
    ja das ist schon eingebaut. Muss mal wieder neue Releases machen.
    ich habe ja keine Ahnung wie aufwendig es ist, ein neues Release herzustellen, würde mich allerdings tierisch freuen, wenn ich an diesem neuen Projekt weiter machen könnte. Wenn's denn deine Zeit erlaubt, wäre es großartig.

    Einen Kommentar schreiben:


  • DiJai
    antwortet
    Herzlichen Dank Yves, lass dir Zeit....

    Einen Kommentar schreiben:


  • starwarsfan
    antwortet
    Hi,

    ja das ist schon eingebaut. Muss mal wieder neue Releases machen...

    Einen Kommentar schreiben:


  • DiJai
    antwortet
    Servus Yves,

    kurze Frage, hast Du das noch in der Pipeline:
    Zitat von starwarsfan Beitrag anzeigen
    In Bezug auf den LBS 19002576 heisst das also, dass in der Installationanleitung alles bis und mit Abschnitt "Composer" vorhanden ist. Somit braucht nur noch der Abschnitt "PHP Influx Client" abgearbeitet zu werden, um den LBS zu verwenden.

    Wenn ich es nicht vergesse, kann ich das bei der nächsten Image- resp. Template-Version auch noch mit einbauen...
    oder evtl. schon eingebaut?

    Wäre grandios!!!

    Einen Kommentar schreiben:


  • starwarsfan
    antwortet
    Hallo miteinander

    Zitat von fudi6489 Beitrag anzeigen
    starwarsfan
    Du meinst also LBS 19002576 sollte ohne irgendeine Installation sofort auf deinem Template funktionieren?
    Nein, das meine ich nicht. Ich habe geschrieben, dass all die MySQL-UDF-Sachen bereits installiert sind. In Bezug auf den LBS 19002576 heisst das also, dass in der Installationanleitung alles bis und mit Abschnitt "Composer" vorhanden ist. Somit braucht nur noch der Abschnitt "PHP Influx Client" abgearbeitet zu werden, um den LBS zu verwenden.

    Wenn ich es nicht vergesse, kann ich das bei der nächsten Image- resp. Template-Version auch noch mit einbauen...

    Einen Kommentar schreiben:


  • vento66
    antwortet
    Unter Rocky Linux wirst Du EDOMI nicht so out-of the Box installiert bekommen.

    Einen Kommentar schreiben:


  • rdeckard
    antwortet
    fudi6489
    Ich bin leider mangels Zeit auch nie weiter gekommen und konnte nie die automatische Synchronisation mit dem LBS testen. (Nicht, weils nie funktioniert hat, sondern weil mein Test Edomi-Container nicht am KNX hängt und somit keine neuen Daten erhält.)
    Soweit ich mich erinnern kann, hat es aber ja mindestens bei zwei Usern nicht funktioniert. Also gehe ich davon aus, dass es bei mir vermutlich auch nicht funktionieren würde.
    Alles war ja eigentlich standardmässig installiert und hat ja auf den ersten Blick auch ohne Fehler funktioniert. Du hattest ja dann mal das Template in Verdacht, weil es ja sonst bei anderen Usern (phyisches Edomi) funktioniert.

    Ich komme leider weiter nicht dazu, mich um dieses Thema zu kümmern. Aber ich würde bezüglich Troubleshooting folgendes ausprobieren:

    Auf dem Proxmox eine CentOS/Rocky VM (kein Container!) erstellen und dann einfach manuell Edomi und die nötigen LBS installieren. Dann bist du eigentlich sehr nahe an einem physischen Edomi dran. Wenn der automatische Sync damit funktioniert, kann man darauf aufbauen.

    Dann würde ich das gleiche mal mit einem CentOS/Rocky Container Template (nur OS, nicht das von starwarsfan) testen. Also auch in diesem Container Edomi und die nötigen LBS manuell installieren. Wenn es immer noch funktioniert, kann man ein generelles Container Problem schon mal ausschliessen. (Manche Dinge funktionieren ja in einem Container nicht oder nur mit Anpassungen.)

    Das Edomi Template von starwarsfan ist sicher eine super Sache und wir sind alle dankbar, dass wir diese Möglichkeit haben. Aber er kann in seinem Template auch nicht immer alle LBS und Funktionen in einem LBS testen. Vielleicht (was nicht sicher ist) gibt es wirklich eine Inkompatiblität mit diesem Template und der automatischen Sync-Funktion dieses LBS.

    Deshalb würde ich wirklich mal ein paar Schritte zurückgehen und eine VM und einen neutralen Container testen. Mit Proxmox ist das zum Glück ja ohne Zusatzkosten realisierbar. Die Variante, die funktioniert, könnte man auch belassen. Auch wenn eine VM sicher mehr Ressourcen benötigt, hat sie ja auch ihre Vorteile bezüglich Migration.
    Manchmal ist es zielführender, eine ähnlich gute Alternative zu verwenden (die dann funktioniert), als ewig das eigentliche Problem zu finden und zu lösen.

    Einen Kommentar schreiben:


  • fudi6489
    antwortet
    Ich hoffe ich habe jetzt hier nichts durcheinander gebracht.
    InfluxDB und Grafana laufen bereits auf Proxmox.

    Ich habe aber Probleme mit dem Synchronisations LBS 19002576 auf dem Template https://knx-user-forum.de/forum/proj...64#post1776124 von Yves auf meinem produktiven Edomisystem in der Version 2.03.3.

    Da im Changelog der 2.03.6 nichts von mysql oder ähnlichen stand bin ich davon ausgegangen dass es auch nicht funktioniert und habe sofort mit der "Lösung" aus Beitrag https://knx-user-forum.de/forum/proj...50#post1862250 gestartet.
    Eben mit obigen Fehlern.

    https://knx-user-forum.de/forum/proj...86#post1847786
    hier wird der Fehler auf meinem produktiven Edomisystem beschrieben.

    Das nur mal zur Klarstellung, damit wir vom gleichen reden.

    starwarsfan
    Du meinst also LBS 19002576 sollte ohne irgendeine Installation sofort auf deinem Template funktionieren? Dann werde ich das morgen mal testen, wäre aber eigenartig da das eben vor ein paar Monaten auf 2.03.3 nicht der Fall war, und auch BadWicky vom selben Verhalten berichtete. Der LBS arbeitet zwar und der manuelle Synch kann angestoßen werden, die automatische Synchronisation funktioniert aber nicht. Kann aber auch sein dass ich durch ewige Probieren, irgendwas verschlimmbessert habe.

    LG

    Einen Kommentar schreiben:


  • starwarsfan
    antwortet
    Hallo miteinander

    Zitat von saegefisch Beitrag anzeigen
    Yepp, sehe ich genau so! Es gibt ja einen Sinn hinter der Idee der Container.
    .
    .
    .
    ein mandalorianer würde wohl sagen: das ist der Weg 😉
    Das ist der Weg!

    Einen Kommentar schreiben:

Lädt...
X