PI3 und Grafana

L I V E Stammtisch ab 20:30 Uhr im Chat
  • Hallo,

    ich betreibe auf meinem PI eine InfluxDB die ich mit Grafana visualisiere. Innerhalb von Grafana würde nun aber gerne noch 2 weitere Informationen Anzeigen lassen, aber irgendwie klappt das noch nicht so ganz.

    1. Pi Daten

    Ich suche eine Möglichkeit die Daten des Raspberry PI´s in eine InfluxDB schreiben zu lassen damit ich diese dann später in Grafana anzeigen kann(Temperatur, CPU, Ram Auslastung, User, Netzwerk, Uptime, etc).

    2. Fritzbox Daten

    Hierbei geht es eigentlich um fast das selbe wie bei Punkt 1. ich weiß das es eine Anleitung gibt wie das ganze mit „Prometheus“ funktioniert, nur komme ich damit nicht so zurecht.

    Gibt es hier für einen weg der auf InfluxDB basiert?

  • Zu 1. aus meinem "Monitoring" :) als Einstieg

    Config: /root/send-influx.conf

    Daemon: /root/send-influx.sh

    Und zum starten: /lib/systemd/system/send-influx.service

    Und noch aktivieren (als root) ...

    Code
    chmod +x ~/send-influx.sh
    systemctl enable send-influx
    systemctl start  send-influx
    systemctl status send-influx

    Knut

  • Hallo

    Ein weiterer Weg für die Daten vom Pi ist Telegraf.

    Habe den selber im Einsatz und funktioniert tadellos, kann auch auf weiteren Systemen installiert werden und dann da die Daten zu deiner influxdb schicken. Funktioniert ohne Einwand und auch das System wird ja belastet (ist wirklich ein guter Agent).

    Für die Daten der Fritzbox kann evtl Anno verwendet werden welche dann wiederum über einen Agent periodisch abgeholt werden ( das habe ich noch nicht getestet, steht noch auf meiner To-Do Liste aktuell fehlt mir aber die Zeit und ein "Testobjekt")

    Gruss dani

  • Super damit funktioniert es schon mal :)

    so wie ich das sehe steht dann folgende angaben für folgende Werte:

    Temperature => Temperatur

    Load => Auslastung des PI´s

    Memory => Arbeitsspeicher Auslastung

    oder?

  • Hallo,

    ich bräuchte mal eure Hilfe.

    Mein Pi ist im Keller und hat einige 1Wire Fühler die abgefragt werden.Ich habe einen DS9490-USB-Stick an dem ca 20 18b20 werkeln.

    OWFS läuft und liefert die Temperaturen.

    mountpoint = /mnt/1wire

    allow_other

    alias = /etc/owfs-alias

    owfs-alias nutze ich um die ID der Fühler umzubennenen. zB (/28.FF245F3D040018 = Aussen)

    Über den Explorrer kann ich die Fühler auch finden unter /mnt/1wire/ zeigt es mir die einzelnen Ordner der Fühler mit dem alias an.

    Influxdb Grafana und Telegraf hab ich Installiert.

    Jetzt hänge ich bei der Umsetztung die Werte über Telegraf zu Influxdb und danach zu Grafana anzeigen zu lassen.

    lG

    Bährle

  • Hallo,

    bin etwas weiter gekommen.

    Spoiler anzeigen
    Code
    Okt 10 06:02:37 Heizung systemd[1]: Started The plugin-driven server agent for reporting metrics into InfluxDB.
    Okt 10 06:02:45 Heizung telegraf[341]: 2019-10-10T04:02:45Z W! [outputs.influxdb] when writing to [http://127.0.0.1:8086]: database "telegraf" creation failed
    Okt 10 06:02:45 Heizung telegraf[341]: 2019-10-10T04:02:45Z I! Starting Telegraf v1.6.2
    Okt 10 06:02:45 Heizung telegraf[341]: 2019-10-10T04:02:45Z I! Loaded outputs: influxdb
    Okt 10 06:02:45 Heizung telegraf[341]: 2019-10-10T04:02:45Z I! Loaded inputs: inputs.exec
    Okt 10 06:02:45 Heizung telegraf[341]: 2019-10-10T04:02:45Z I! Tags enabled: host=heizung
    Okt 10 06:02:45 Heizung telegraf[341]: 2019-10-10T04:02:45Z I! Agent Config: Interval:1m0s, Quiet:false, Hostname:"heizung", Flush Interval:1m0s
    Okt 10 06:03:00 Heizung telegraf[341]: 2019-10-10T04:03:00Z E! Error in plugin [inputs.exec]: exec: fork/exec /usr/local/bin/heizung.py: exec format error for command '/usr/local/bin/heizung.py'
    Okt 10 06:04:13 Heizung telegraf[341]: 2019-10-10T04:04:13Z E! Error in plugin [inputs.exec]: exec: fork/exec /usr/local/bin/heizung.py: exec format error for command '/usr/local/bin/heizung.py'

    ...

    lG

    Bärle

  • Hallo,

    danke .

    mein Fehler, hier das Script.

    Das Skript läst sich ausfühen.

    Als Ergebnis

    Spoiler anzeigen

    pi@Heizung:~ $ python /usr/local/bin/heizung.py

    Solar Ruecklauf: 25.25 °C

    Solar Vorlauf: 28.00 °C

    HW Ruecklauf: 27.75 °C

    Gastherme Vorlauf: 34.00 °C

    Gastherme Ruecklauf: 26.25 °C

    HW Vorlauf: 38.50 °C

    TW Zirkulation: 26.25 °C

    Speicher unten: 31.25 °C

    Speicher oben: 48.00 °C

    TW Kaltwasser: 16.75 °C

    TW Warmwasser: 46.00 °C

    Raumtemperatur: 20.00 °C

    Aussen: 8.50 °C

    Brenner VL: 26.75 °C

    Brenner RL: 25.50 °C

    Brenner: 29.25 °C

    Abgastemperatur: 26.25 °C

    Vorlauf HK1: 37.75 °C

    Ruecklauf HK1: 26.50 °C

    Vorlauf HK2: 26.75 °C

    Ruecklauf HK2: 24.25 °C

    Holzofen VL: 25.25 °C

    Holzofen RL: 30.00 °C

    Holzofen: 31.50 °C

    pi@Heizung:~ $


    Ich weiß nicht was und wie Influxdb die Daten braucht. Sorry ich stehe gerade auf der Leitung.:conf:

    LG

    Bährle

  • Leider lässt es sich dann nicht mehr ausführen,

    Nachtrag -- mein Fehler war das die erste Zeile im Script eine leere war --

    Spoiler anzeigen

    pi@Heizung:~ $ python /usr/local/bin/heizung.py

    File "/usr/local/bin/heizung.py", line 23

    SyntaxError: Non-ASCII character '\xc2' in file /usr/local/bin/heizung.py on line 23, but no encoding declared; see http://python.org/dev/peps/pep-0263/ for details

    pi@Heizung:~ $

    habs mal zurückgestellt.

    Mein Problem ist, ich hab momentan keine Ahnung wie Influxdb die Daten haben will.

    :gk1: Ich stell glaub die falschen Fragen:wallbash:

    Danke für eure Geduld.

    Einmal editiert, zuletzt von Bährle (11. Oktober 2019 um 18:33)

    • Offizieller Beitrag

    Das Skript ist ausführbar? Dann starte das mal ohne es vorher an den Intrpreter zu übergeben.

    Um das zu erklären. Mit python /usr/local/bin/heizung.py ist die erste Zeile ein einfacher Kommentar, der vom Interpreter ignoriert wird. Setzt Du # -*- coding: utf-8 -*- in eine zweite Zeile, so wie in Python2 üblich, dann ist diese kein Kommentar, sondern wird in dem Fall vom Interpreter gelesen. (Siehe Link in Deiner Fehlermeldung!)

    Mit einem direkten Aufruf ohne Interpreter (python vor dem Dateipfad), also /usr/local/bin/heizung.py wird dem System durch den Shebang mitgeteilt, welches Programm das Skript verarbeiten soll. Der Shebang mit dem Codinggedöns dürfte imho nicht funktionieren. Mal salopp ausgedrückt.

    Wenn der direkte Aufruf (der Code so wie von mir in #12 vorgeschlagen) einen Fehler wirft, dann lass die Codingzeile mal weg.

    Btw. Du solltest, gerade wenn Du jetzt neu aufbaust, gleich auf Python3 setzen!

  • Hallo

    Spoiler anzeigen

    pi@Heizung:~ $ /usr/local/bin/heizung.py

    /usr/local/bin/heizung.py: Zeile 4: Syntaxfehler beim unerwarteten Wort `('

    /usr/local/bin/heizung.py: Zeile 4: `file = open('/etc/owfs-alias')'

    pi@Heizung:~ $


    jup

    oh mann, :danke_ATDE:

    /usr/local/bin/heizung.py

    ich hatte zudem noch eine Leerzeile an erster stelle.:daumendreh2:

    jetzt läuft es :blush:

  • Verstehe ich nicht. Hast du das PEP überhaupt gelesen? Windows wird gar nicht erwähnt, wieso sollte sich Windows CPython diesbezüglich anders verhalten als Unix-like CPython?

    Ich gestehe:

    Nein, ich habe das PEP maximal mal überflogen.

    Aber hilf mir:

    Ich habe (P2.7) es immer so verstanden, dass diese Zeile vor allem dabei hilft, Sonderzeichen (im Kommentar) richtig darzustellen, so man dort welche verwendet.

    Genau das Problem habe ich (damals) gehabt: Da ich Kommentare in Deutsch verfasst habe, waren diese im PyCharm unter Windows verkrüppelt. Nach setzen dieser Zeile war das weg.

    Erklärt habe ich mir das so, dass der Code aus Linux (UTF8-Format) unter Windows ohne den Hinweis im Code eben nicht als UTF8 sondern eben als die Windows-eigene Codepage interpretiert wird und Sonderzeichen eben anders codiert sind.

    Ich entwickle mit Python in meiner Freizeit, nicht professionell, insofern bin ich da nicht der Guru...


    Nachtrag:

    Ich habe das PEP als Empfehlungen/Richtlinien verstanden, sozusagen als "Best Praxis"... kein zwingendes MUSS...

Jetzt mitmachen!

Du hast noch kein Benutzerkonto auf unserer Seite? Registriere dich kostenlos und nimm an unserer Community teil!