Posts by Hofei

    ann ist die Antwort hier nun verboten und SPAM?

    nö, meinte nur wegen : "Bei neuen Problemen ist es besser einen neuen Thread zu eröffnen"



    Ich bastel gerade mit matplotlib und stelle fest, dass es einfacher wäre ich hätte Datum und Zeit als einen kompletten String in der Datenbank ... Fand das im Februar so eben übersichtlicher ..

    am besten einfach als timestamp abspeichern



    Und ja, Grafana hab ich schon mal gehört und gesehen, mich aber noch nicht damit beschäftigt. Ich hab mich damals für matplotlib entschieden ..

    würd ich überdenken ;)

    https://kuehltest.linus.dev

    Stromzähler mit Raspberry Pi und ModBus auslesen

    Wetterstation inkl. Abgleich mit Vorhersagen


    Hier ein paar Links von meinen Dashboards^^

    Aber ganz unrecht hab ich damit nicht, dass der speicher außerhalb vom Aufruf definiert werden muss


    Mein Tipp an dich, mach die ganz grundsätzlich mal mit folgenden Punkten vertraut, bevor du bei deinem Projekt weiter arbeitest:

    Gültigkeitsraum einer Variable (Scope)

    (:;)



    Aber dann selbst was machen, da hapert es mit der Umsetzung, weil ichs wohl doch nicht so kapiert oder verinnerlicht hab.

    Das ist ja kein Problem, kannst ja gerne immer hier nachfragen (also im Forum, nicht im selben Thread :lol:)



    Meine Datenbank speichert Zeit und Datum separat ab. Ich kann da auch Werte nach Datum usw. abrufen und verarbeiten.

    Das ist ja umständlich, warum nicht in einem Rutsch.


    Das mit der Liste oben ist für mich ein kleines Progrämmchen zum rumprobieren und verstehen wie alles funktioniert und zusammenhängt. Immer kleine Schritte gehen ...

    Aber ja, wenn es erstmal nur zum lernen dient alles ok.


    Du schriebst, du willst das ganze Visualisieren....kennst du Grafana (:https://grafana.com/

    wenn man immer alles herumreicht funktioniert das Beispiel von Hofei aber nur 1 Mal. In einer Endlosschleife würde der Speicher bei jedem Aufruf von main() wieder "genullt" werden. Sowas muss ich doch irgendwo "außerhalb" definieren, dass es eine Liste namens Speicher gibt in die Werte geschrieben werden Können.

    Nein


    ->

    Code
    1. def main():
    2. speicher = {"a": [], "b": []}
    3.     while True:
    4.     speicher = messwert_hinzufuegen(speicher, "a", 1)
    5.     speicher = messwert_hinzufuegen(speicher, "b", 2)
    6.     speicher = messwert_hinzufuegen(speicher, "a", 3)
    7. main()

    ;)



    Mir fehlt wohl noch sehr viel zum richtigen Verständnis in Python. Zb. die Listen die du in main() definierst ("speicher_a = []")... das ist doch auch sowas wie ne globale Variable?

    Nein ist keine globale Variable, denn du musst diese explizit in die Funktion mit übergeben.


    Mein Tipp an dich, mach die ganz grundsätzlich mal mit folgenden Punkten vertraut, bevor du bei deinem Projekt weiter arbeitest:

    • Gültigkeitsraum einer Variable (Scope)
    • Verwendung von Funktionen
    • Funktionsweisen von Klassen
    • Verwendung von for und while Schleifen
    • Iteration
    • Listen
    • Dictionarys
    • Sets
    • Mutable - Immutable


    Da ich für jeden Messwert eine eigene Liste haben möchte ist die Reihenfolge für den Mittelwert eigentlich egal. Die Werte kommen später in die Sqlite Datebank und lassen sich hier ja jederzeit abrufen um damit neue Listen zu bilden.

    Dann wäre es aber gleich von Vorteil, wenn du dir den Zeitstempel mit speicherst in die Liste

    Grundsätzlich bitte neuer Thread bei neuem Problem.


    Zum einen ja, könntest du das über eine Klasse machen, musst aber nicht.

    Deine Funktion oben funktioniert nur, weil du schon wieder mit globalen Variablen arbeitest!


    oder



    EDIT: Am besten aber du beschreibst mal die Gesamtanforderung / Ziel.

    Hallo,


    grundsätzlich würde ich dir empfehlen, wenn du ernsthaft Python lernen willst auf ein Buch zurück zugreifen. Da mir deutschsprachige Bücher lieber sind, empfehle ich dieses hier: https://www.rheinwerk-verlag.de/python-3_4467/

    Bevorzugt die PDF Variante, da sich damit leichter nach Schlagwörtern suchen lässt.


    Auch so glaube ich, ist das Verständnis von Klassen bei dir noch etwas falsch (ich kann mich natürlich auch irren). Deshalb hier mal ein vereinfachtes Beispiel:


    So zunächst eine vereinfachte Darstellung:

    Da man Code aber nicht wiederholen soll (DRY = Dont repeat yourself), hier auch nochmals eine Funktionalisierte Version:


    Zum besseren Verständnis empfiehlt es sich, wenn du dir den Programmablauf in einem Debugger ansiehst.


    EDIT: Natürlich lassen sich die Funktionen noch variabler gestalten, aber zur Veranschaulichung wollte ich es nicht zu komplex gestalten.

    Hallo und Herzlich Willkommen im Forum,

    bin mir jetzt nicht ganz sicher ob ich dich richtig verstanden habe, aber du willst sowas hier?!

    Python
    1. import random
    2. eingabe = input("Eingabe: ")
    3. if eingabe in ["Hi", "Hallo", "Guten Morgen", "Guten Mittag", "Guten Abend", "Hey", "Yo", "Wie geht's?"]:
    4. ausgabe = ["Hallo Mensch.", "Hi, wie geht's?", "Schön dich kennen zu lernen", "Hallo!"]
    5. elif eingabe in ["Tschüss", "Auf Widersehen"]:
    6. ausgabe = ["Bye!", "Tschau"]
    7. else:
    8. ausgabe = ["Habe dich nicht verstanden"]
    9. print(random.choice(ausgabe))

    Neues Update zum Projekt:

    Software wurde entfernt, diese ist zukünftig auf Github zu finden.

    https://github.com/Hofei90/picoffee


    Neue Features:

    • Messagebox: Anzeige von Nachrichten am Display nach Anmeldung.
      System kann sich merken wer die Nachricht schon gelesen hat und wer nicht (Nachricht wird einmalig angezeigt nachdem sie quittiert wurde)
      Hier ein besonderer Dank an noisefloor , der mir bei der Umsetzung mit Peewee behilflich war!
    • Statistiken zum Kaffeekonsum