Posts by mischtkrabb

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

    dann ist die Antwort hier nun verboten und SPAM? ;-)


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


    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 ..


    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 ..

    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()

    Du Fuchs Hofei

    Wenn ich sowas sehe versteh ich das und kann es nachvollziehen. Von selbst komm ich aber noch nicht drauf. Aber ganz unrecht hab ich damit nicht, dass der speicher außerhalb vom Aufruf definiert werden muss ;-)


    Quote

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

    Da sagst du was ... Das ist viel Stoff. Ich versuche das alles nach und nach mit viel probieren und wurstel mich so durch. Wenn ich Im Buch ein Kapitel lese kann ich das alles nachvollziehen was dort beschrieben wird. Aber dann selbst was machen, da hapert es mit der Umsetzung, weil ichs wohl doch nicht so kapiert oder verinnerlicht hab.


    Quote

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

    Meine Datenbank speichert Zeit und Datum separat ab. Ich kann da auch Werte nach Datum usw. abrufen und verarbeiten. 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 ...

    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.

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

    wenn du eine Liste nutzt _musst_ du die Funktion x-Mal hintereinander aufrufen, damit du eine garantierte Reihenfolge hast.

    mein Programm läuft momentan in einer Endlosschleife. Nach x durchgängen wird was berechnet. 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.

    Quote

    Grundsätzlich bitte neuer Thread bei neuem Problem.

    Danke für deine Geduld. Meine Probleme werden weniger, aber es sind immer noch viele vorhanden ;-) Ich dachte eben das passt hier zum Thema. Ich möchte auch nicht immer für jedes Problem einen neuen Threat erstellen.


    Quote

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

    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? Ob ich die in ner Funktion oder außerhalb von irgendwas definiere kommt doch aufs selbe raus oder nicht? Sie stehen dann überall im Code zur verfügung... Ich hab früher in der Schule ein wenig C++ gemacht. Da war es so, dass alles ganz oben im Code deklariert werden musste. Vielleicht bringt mich das auch durcheinander...


    Quote

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

    es geht mir immer noch um diesen Klimalogger

    Momentan versuche ich eben die ganzen Einzelteile in Funktionen auszulagern damit es in Python läuft. Wenn das alles so geht wie ich mir das vorstelle, will ich das über den Browser sehen und steuern können ... Und wenn ich das hab, bastel ich bei meinem Vater dann was damit er seine ganzen Temperaturen von seiner Heizung, Kessel, usw. grafisch auswerten kann.

    ...

    ..Ich verstehe ehrlich gesagt dein Problem nicht, weil das eigentlich alles mega-offensichtlich ist...

    jetzt wo ich das verstanden hab frag ich mich auch, warum das bei mir so lang gedauert hat ;-) dafür kämpfe ich nun mit anderen Dingen:


    Ich habe eine Funktion erstellt die Messwerte in eine Liste schreiben soll. Ich habe mehrere Messwerte die zeitgleich gemessen werden. Reicht hier eine Funktion aus um insgesamt 6 Listen zu erstellen? Natürlich kann man in der Funktion add 6 mal diversen Code schreiben .... ist aber viel zu tippen. Das geht sicher einfacher


    Python
    1. name=[]
    2. def add(x):
    3. name.append(x)
    4. print ("Liste:",name)
    5. add(wert1)

    Vielleicht kann mir jemand nen Denkanstoß in die richtige Richtung geben.


    ich möchte das ungefäht so aufrufen:

    add(wert1,wert2,wert3)

    oder

    add(wert1)

    add(wert2) usw.


    Das Problem daran ist, dass ich in der Funktion ja nur in Listen schreiben kann die vorher angelegt bzw. definiert wurden.

    Wie kann ich das ganz allgemein halten? Dass durch jeden Funktionsaufruf für x Messwerte automatisch eine Liste erstellt wird in die dann geschrieben werden kann?

    Geht das mit Funktionen überhaupt oder brauch ich da Klassen?

    mischtkrabb : das sind absolute Grundlagen. Wenn du damit kämpfst -> Tutorial auf docs.python.org durcharbeiten.


    Gruß, noisefloor

    ich weiß, ich bin da aber schon ziemliche lange am googeln und hab mir auch ein buch gekauft. irgendwie bin ich wohl zu doof ;-)


    in den ganzen Tutorials und docs wird das jeweils nur für eine Funktion betrachtet. ich habe noch nichts gefunden, wo beschrieben ist wie man Variablen aus einer Funktion in einer anderen Funktion nutzt...


    Andreas erwähnt oben mehrere Wege... Wäre mal sehr hilfreich wenn ich eine Seite finden würde, in der die mehreren Wege beschrieben und verglichen werden. Bei mir ist da viel ausprobieren und dabei lernen ... irgendwann komm ich schon dahinter wie das funkt.


    So wie ich das bisher kapiert und verstanden habe, ist wohl Beispiel 1 oder Beispiel 3 am besten. Das versteh ich und ist nachvollziehbar wenn ich aus Funktionen Variablen im main Code verwenden will. Beispiel 4 versteh ich auch noch, wie ich Werte der Funktion aus Beispiel 1 in der Funktion Beispiel 4 wieder verwende.


    Gibts denn noch mehrere Möglichkeiten sowas zu machen? Oder ist das alles?

    ich kämpfe momentan auch mit Variablen zurückgeben. Schön, dass das hier so wie beschrieben funktioniert um Werte aus einer Funktion in einer anderen Funktion zu nutzen.


    Das liest sich für mich aber so, als gäbe es noch einen schöneren/besseren Weg!? Was wäre denn noch eine Lösung für das Problem?

    Danke dir Hofei,


    das werd ich mir morgen mal durcharbeiten. Kann sein dass ich Klassen falsch verstehe, aber bisher macht es das was ich damit machen will ;-)

    wie gesagt, war das auch nicht einfach so weit zu kommen ... viel frust dabei, lesen und lesen, nix verstehen ... probieren, nix geht, warum geht nix usw ...

    Hallo zusammen,


    ich war fast am verzweifeln mit Klassen, Methoden, Attributen usw... umso mehr ich darüber gelesen habe umso weniger hab ich verstanden und umso komplizierter kam es mir vor. Wenn ich z.B. Nach Klassenvariabeln gegoogelt habe, hab ich nie was gefunden das mir weiter hilft. Es taten sich immer neue Baustellen auf ...

    Ich hab es nun aber endlich geschafft, eine Klasse zu erstellen, die als Hygrometer/Wetterstation dienen soll. Vielleicht hilft das einigen ja auch zum Verständnis oder bei ähnlichen Problemen mit Variablen in Klassen.


    Ich bin noch nicht ganz damit zufrieden, denn die Variablennamen erscheinen mir unnötig lange. Vielleicht habt ihr einen TIpp, wie ich das einfacher gestalten kann ?


    Ich habe genau dasselbe gemacht. Die Datenbank wurde vorher mit sqlite erstellt und mit phpliteadmin hab ich die Tabellen dazu eingerichtet. Dann braucht es nur noch diesen python Code (der über crontab alle 5 Min ausgeführt wird) um die Datenbank zu befüllen.

    erstmal Danke für das Tutorial !


    Damit habe ich vor Monaten mal rumexperimentiert und meinen Pi mit der Pi-Cam beim booten ein paar Bilder und ein Video machen lassen. Jetzt sitz ich gerade wieder davor und habe Ewigkeiten gebraucht mein script wieder zu finden ;-)


    Nach weiterem lesen weis ich nun auch dass es durch diesen Befehl

    Code
    1. pi@raspberrypi /etc/init.d/ $ sudo update-rc.d <scriptfile> defaults


    damals zum Autostart hinzugefügt wurde. D.h. im Ordner /etc/rc2.d befindet sich nun eine Datei Namens "S02script.sh" welche beim booten ausgeführt wird. Ich frage mich aber nun wie ich den Autostart für das Script wieder beende/ausschalte?


    Gibt es hier auch einen speziellen Befehl? Oder reicht es einfach die "S02script.sh" im Ordner /etc/rc2.d zu löschen? Wie ist hier der sauberste Weg?

    super greg121 danke !


    ich mach nun auch schon wieder ewigkeiten rum und versuch meinen stick zum laufen zu bekommen. durch google war ich schon auf unzähligen seiten und kam dem problem immer etwas näher. die suche bei google nach "could not insert '8188eu': Exec format error" brachte mich dann hier her. zum glück ;-)


    hab dann einfach deinen kompletten letzten code kopiert und in putty eingefügt. et voila ich seh mein wlan0 wieder am pi.