Beiträge von wusa

    Das diese einfach immer in der selben Spalten laden verstehe ich nicht.

    Hier mal ein Auszug aus einem anderen Skript, wie ich in Influx was importiere:

    Ich muss diesem Skript ja mitgeben, welche Werte ich speichern will.

    Daher war meine Frage, wie ich die einzelnen Werte aus dem MQTT bekomme.

    Code: on_connect und on_message
    def on_connect(client, userdata, flags, rc):
        print("Connected with result code " + str(rc))
        client.subscribe("ESP_Easy/#")
    def on_message(client, userdata, msg):
        print(msg.topic)
        print(float(msg.payload.decode()))
    Code: Ausgabe von on_message
    ESP_Easy/Bad_Akku/Spannung
    3.88
    ESP_Easy/Bad/Temperature
    22.79
    ESP_Easy/Bad/Humidity
    43.9

    Es kommen alle Werte vom gesamten Topic.

    Wie kann ich jetzt hier die einzelnen Werte übergeben?

    Oder denke ich gerade komplett falsch?

    Ich denke, dass wir hier ein bisschen aneinander vorbei geredet haben.

    Wenn das geht, dass ich in dem on_connect, alles in die Datenbank eintragen kann, dann will ich das natürlich auch gerne so machen.

    Mir ist nur nicht klar, wie ich das machen kann, daher habe ich nach den Variablen gefragt.

    Ich will es ganz einfach haben.

    In dem on_connect die Werte und direkt in die Datenbank.

    Die Frage ist nur, wie mache ich das, dass die Werte auch immer in der richten Spalten in der Datenbank sind, da ja 3 Werte ankommen. Spannung, Temperatur und Feuchtigkeit.

    hast du einen kompletten Datensatz beisammen?

    Was meinst du damit genau?

    Ich bekomme, wie oben beschrieben, die Daten vom ESP8266 per MQTT geschickt. Auch die Topics und die Werte sind aufgeführt.

    Wenn du bei unter Spannung triggerst, machst du das dann jedes Mal, oder nur einmal, und wie merkst du dir, dass du das gemacht hast, auch über den Neustart des PI hinweg?

    Da das Skript immer läuft, kann ich mir einen Zähler dazu bauen, dann werde ich nicht jedes mal Benachrichtigt. Außerdem schaue ich täglich in Grafana und sehe normal sofort wenn die Spannung abfällt. Wir reden hier von ganz langsamen Spannungsabfall und nicht rapide.

    Zum Neustart: Ich weiß was ich jetzt schreibe, ist nicht sonderlich schön, aber ich komme absolut gut zurecht damit.

    Ich habe mir eine Readme Datei gemacht, wann welches Skript wie startet. Auch dort habe ich aufgeführt, welche Skript's ich manuell starten muss.

    Das funktioniert -für mich- gut, da ich genau weiß das ich immer in diese Datei schauen muss. So läuft das jetzt mit anderen Skript's wunderbar.

    Das ist alles schon gelöst für dich in den bestehenden Tools.

    Das glaub ich gerne. Nur habe ich davon noch weniger Ahnung.

    Ich weiß es besteht die Möglichkeit sich da einzuarbeiten. Diese Zeit fehlt mir momentan. Da ich es auch mit anderen Sachen, zb. mit meiner Heizung schon so mache, die Werte abfragen, in eine Variable speichern und dann über Python das ganze an Influx zu übergeben und es für mich auch funktioniert, wollte ich diesen Weg einfach wieder einschlagen.

    Mit den Triggern habe ich bisher noch nicht gearbeitet, habe aber gesehen, dass es sowas gibt.

    Das selbe ist auch mit Telegraf. Ich habe mir es jetzt mal kurz durchgelesen, aber auch noch nicht wirklich verwendet.

    Ich denke mal, dass ich die Werte auch mit Python raus bekommen kann?

    Das Skript wie ich es in die InfluxDB bekomme, habe ich schon vorhanden. Da ich auch noch andere Sachen in Influx importiere.

    Daher wollte ich den Weg über Python einschlagen, da ich dies dann vermutlich auch besser verstehe.

    Ich habe vor das ganze in eine InfluxDB zu stecken.

    Allerdings würde ich schon gerne Python dafür verwenden, da ich einen Akku an dem Wemos habe und ich mir bei niedriger Akkuspannung über einen Telegram Bot die Meldung schicken lassen würde. Daher das ganze per Python.

    Wenn jetzt die Werte alle in einer eigenen Variable stehen würde, dann kann ich die Werte direkt in Influx importieren und zugleich noch eine Abfrage machen ob die Akkuspannung niedrig ist.

    Hallo Zusammen,

    ich versuche momentan auf relativ einfachem Weg, die Daten von einem Wemos D1 Mini in Variablen zu speichern, damit ich mit diesen Daten später einfach weiter arbeiten kann.

    Das bereitet mir aber momentan Kopfzerbrechen, da ich in Python leider nicht so fit bin.

    Ich hole mir folgende Daten vom ESP8266:

    - Temperatur

    - Feuchtigkeit

    - Akkuspannung

    Momentan übertage ich nur die Daten von einem ESP auf einen Pi per MQTT.

    Wenn das ganze so funktioniert, wie ich mir das vorstelle, sollen noch mehrere ESP's folgen.

    Hier der Code der auf dem Pi läuft:

    Die Ausgabe sieht wie folgt aus:

    Code
    ESP_Easy/Bad_Akku/Spannung
    3.88
    ESP_Easy/Bad/Temperature
    22.79
    ESP_Easy/Bad/Humidity
    43.9

    Ich habe jetzt schon verschiedene Sachen probiert:

    So funktioniert es aber leider auch nicht, da nach dem ersten If sofort die Schleife verlassen wird.

    Auch mit elif funktioniert es nicht.

    So funktioniert es leider auch nicht:

    Ich bin auf der Suche nach einem einfachen und für einen Anfänger verständlichen Weg, damit ich jeden Wert in einer eigenen Variable habe, damit ich später diese zum Befüllen einer Datenbank verwenden kann.

    Danke für die Hilfe.

    Hallo Zusammen,

    ich versuche momentan OMV5 auf einem Raspi installiert zu bekommen.

    Getestet habe ich das ganze mit einem Raspi 3 Modell B.

    Ich habe das neuste Raspberry Pi OS von -hier- heruntergeladen.

    Mit Etcher auf die SD Karte geschrieben.

    Nachdem habe ich das Passwort geändert und mit sudo apt update && sudo apt upgrade -y den Pi auf den neusten Stand gebracht.

    Anschließend wollte ich mit folgendem, OMV installieren.

    Code
    wget -O - https://github.com/OpenMediaVault-Plugin-Developers/installScript/raw/master/install | sudo bash

    Die Installation läuft ungefähr 15 min, bis es dann mit folgender Fehlermeldung abbricht:

    Spoiler anzeigen

    Unpacking openmediavault (5.5.9-1) ...

    Errors were encountered while processing:

    /tmp/apt-dpkg-install-vHKEvR/107-libjs-extjs6_6.2.0.981-2_all.deb

    E: Sub-process /usr/bin/dpkg returned an error code (1)

    failed to install openmediavault package.

    Ich habe schon versucht, monit neu zu installieren, was oft im Internet zu lesen ist:

    apt-get install monit=1:5.25.2-3

    Das hat allerdings keine Auswirkung:

    Spoiler anzeigen

    Reading package lists... Done

    Building dependency tree

    Reading state information... Done

    monit is already the newest version (1:5.25.2-3).

    Wäre über ein Hilfe sehr dankbar.

    Danke

    Hallo Grand,

    warum machst du es so kompliziert?

    MoodeAudio hat einen integrierten Webserver. Du kannst ganz bequem per Smartphone oder Tablet zugreifen.

    Ich lasse mein MoodeAudio seit Monaten einfach laufen und es gibt keinerlei Probleme.

    Ich würde irgendwie Lösung 1 bevorzugen.

    Zitat

    1. Ich lass das Pi immer laufen und steuere nur den Verstäker, dann könnte ich die Daten an den Pi senden und der schaltet das Relais

    So kannst du quasi per Weboberfläche auf MoodeAudio zugreifen.

    Der Pi kann dann quasi immer laufen und auch dein Relais übernehmen.

    Würdest du den Pi ausschalten, benötigst du zusätzlich ein Gerät, dass dir das Relais für den Pi schalten kann.

    Ich schildere mal eine kleine Erkenntnis von mir.

    Hier ist ein Raspi Model B.

    Ich habe auf dem rot eingekreistem, einen Kühlkörper angebracht.

    Der Pi an sich läuft seit Monaten bei mir ohne jegliche Probleme, fasse ich allerdings den Kühlkörper mit dem Finger an, startet dieser sofort neu.

    An was es liegt, kann ich leider nicht sagen, solange ich den Pi in Ruhe lasse, keinerlei Probleme.

    Grand

    Danke für deine Hilfe.

    Ich bin tatsächlich auch weiter gekommen.

    Bei mir funktioniert der Deep Sleep nur, wenn RST und D0 verbunden sind.

    Ist dies Verbindung nicht da, dann funktioniert der Deep Sleep nicht.

    Obwohl diese Verbindung eigentlich nur zum Aufwachen benötigt wird, wird vermutlich die Verbindung abgefragt. Wenn diese nicht besteht, dann geht er nicht Schlafen.

    Hallo Zusammen,

    ich habe mir heute auf meinen D1 Mini (ESP8266), ESPEasy geflasht und mit dem Temperatursensor DS18B20 getestet.

    Das ganz in Verbindung mit MQTT.

    Es läuft soweit alles recht gut, bis auf den Deep Sleep.

    Ich weiß leider nicht, ob ich eine Einstellung falsch habe, oder ob es einfach nicht funktioniert.

    Mein eigentliches Vorhaben wäre, dass der ESP für die Zeit der Messung und des verschickens mittels MQTT angeht und dann wieder in den Deep Sleep wechselt.

    Eine Messung soll alle 15 Minuten stattfinden. Die Zeit für das "Wach sein und verschicken" habe ich auf 20 Sekunden gesetzt.

    Hier mal meine Einstellungen:

    Wo ich mir absolut nicht sicher bin, ist mit dem Interval.

    Wenn ich 30 Sekunden drin stehen habe, wird alle 30 Sekunden die Temperatur per MQTT geschickt.

    Habe ich zb. auch 15 Minuten (900 Sekunden) drin stehen, dann kommt zwar nur alle 15 Min etwas an, aber ich kommt weiterhin auf die Weboberfläche vom ESP.

    Ist das normal? Ich denke nicht, denn wenn der ESP im Deep Sleep ist, dann sollte er eigentlich auch nicht erreichbar sein?

    Danke

    Es ist weiterhin ein String, aber mit einem Komma. Du brauchst nach dem Replace noch ein

    aussentemp_temperatur = float(aussentemp_temperatur)

    Oh mann..... :danke_ATDE:

    Da bin ich ja mal voll drüber gefallen....

    Ist das eine ganz neue Tabelle nur mit diesen neuen Werten?

    Es war eigentlich nur ein Test, ob es mit einer anderen Tabelle mit float funktioniert.

    Sind in dieser Tabelle jetzt die Werte gemischt? Sofern die alten Werte nicht von Interesse sind, würde ich die Tabelle komplett löschen und ganz neu erstellen.

    Nein gemischt sind diese Werte nicht.

    Ich habe den Python Code jetzt umgeschrieben, dass es auch wirklich ein float ist. Habe es auch mit type extra nochmal kontrolliert.

    Ich kann jetzt allerdings die Werte nicht mischen. Influx sagt mir, dass in der Spalte bereits Werte mit string angelegt sind.


    Entweder ich lösche die ganze Tabelle nochmal und erzeuge diese neu oder gibt es eine Möglichkeit nur die Spalte zu leeren? Vielleicht auch umzuwandeln in float?

    Edit:

    Ich habe jetzt kurzen Prozesse gemacht... Hab die Tabelle gelöscht und lasse diese jetzt neu befüllen....

    Wäre jedoch interessant, wenn mir das nochmal passiert, ob man die einzelne Spalte leeren kann oder zumindest eine Typumwandlung machen kann.


    Siehe da... jetzt ist zwar nur ein Wert eingetragen aber es funktioniert:

    Vielen Dank!