Posts by noisefloor

    Hallo,


    Quote

    Ich werde jetzt wohl einige Weinflaschen verköstigen, vielleicht ist ja noch eine mit Naturkorken dabei.

    Geldermann Sekt hat Naturkorken. Halt in Sektkorkenform, d.h. müsstest du dir zurecht Schnitzen. Für den Preis einer Flasche Sekt dieser Marke bekommst du aber auch 5 St. PP 15mm Plastikkugeln im Onlinehandel... Musst du halt wissen, worauf du den Fokus legst ;)


    Gruß, noisefloor

    Hallo,

    Sieht interessant aus.

    Yup. Ist ja dann quasi sowas wie ein Microcontroller auf Supersteroiden.

    Ob das für "normale" Heimanwender letztendlich von Interesse ist, ist das eine. Aber im Industriellen Umfeld könnte das IMHO schon interessant sein, wenn das ganz ähnlich stabil läuft wie Programme auf Mikrocontrollern.


    Gruß, noisefloor

    Hallo,


    Quote

    Dann bin ich da auch noch auf Hinweise zu systemd gestossen, aber das wird mir etwas zu komplex.

    Das ist IMHO aber der richtige Weg.

    Wenn du in der Datei /etc/systemd/logind.conf die Zeile `KillUserProcesses=no`einkommentierst und aus dem `no` ein `yes` machst sollten alle Prozess, die dem User gehören, beim Logout gekillt werden.

    In wie weit das auch für Remote Sessions über RDP gilt weiß ich nicht, müsstest du mal testen.

    Quote
    Zumal ich da bisher auch noch nicht auf eine wirklich gute und vorallem vollständige Beschreibung von systemd gestossen bin.

    https://www.freedesktop.org/software/systemd/man/ - das systemd sehr umfangreich ist, ist das ein bisschen mehr zu lesen... ;)


    Gruß, noisefloor

    Hallo,


    und willkommen im Forum :)

    Quote

    Ich würde gerne verstehen wie es dazu kommt, dass der Python Interpreter scheinbar aufhört zu arbeiten sobald ich meine SSH Verbindung verliere

    Wenn du dich per SSH auf einem entfernten Rechner einloggst, öffnest du dort eine Shell. In der führst du denn etwas aus, z.B. dein Skript. Wenn die SSH Verbindung beendet wird (warum auch immer), dann schließt sich die Shell und damit auch das Programm, was darin läuft.


    Wenn das Skript immer laufen soll, dann solltest du es per systemd Service Unit beim Systemstart starten. systemd kann sich dann u.a. auch darum kümmern, dass das Skript neu startet, falls es crashen sollte.


    Wenn du das Skript von Hand starten (und stoppen) willst und per SSH auf dem entfernen Rechner arbeitest, dann kannst du z.B. tmux oder screen nutzen. Damit kannst du das Skript von der Shell entkoppeln und es läuft weiter, wenn du die ausloggst bzw. die SSH Verbindung einbricht.


    Gruß, noisefloor

    Hallo,


    ich sehe das auch als schwierig an. Zumal es ja auch Sätze gibt, wo ein Satzzeichen den Sinn verändert, wie der Klassiker:

    "Komm' wir Essen, Opa" vs. Komm' wir Essen Opa".


    Plus aus dem reinen Text ist es schwierig "herauszulesen", ob es ein langer Schachtelsatz ist oder ggf. zwei oder drei Sätzen. Beim reinen Zuhören macht das ja keinen wirklichen Unterschied, da bekommt man den Kontext i.d.R. hin.


    Gruß, noisefloor

    Hallo,


    solange die Pins wackeln und dadurch mal Kontakt haben oder auch nicht ist es halt schwer zu prüfen, warum der HAT nicht funktioniert. Könnte ja sein, dass der Fehler durch fehlende Kontakte irgendwie verursacht wird.


    Gruß, noisefloor

    Hallo,


    Gegenfrage: hast hast du denn schon probiert? Zeig' mal deinen Code. Der einfachste Weg ist, dass du über `table`iterierst, dabei auf positiv / negativ prüfst, wenn positiv die Grenzen prüfst und dann noch die Häufigkeit zählst. Also Schritt für Schritt. Das kann man dann noch beliebig elegant ausgestalten, aber für den Anfang und gerade dann, wenn man keine richtigen Ansatz hat, ist Schritt für Schritt ein guter Start.


    Gruß, noisefloor

    Hallo,


    Quote

    Aber im Makefile ist sogar für den Pi ja schon die entsprechende Zeile vorbereitet

    Ja, aber die Fehlermeldung besagt ja ziemlich klar, dass die von dir eingesetzt Version von gcc ein Argument für eine Option nicht kennt und drei Optionen gar nicht kennt. Was in sofern komisch ist, als das die gcc Doku die Optionen ‘-mapcs’ und ‘-mno-sched-prolog´ kennt.


    Ich würde also behaupten, es liegt am gcc Compiler, den du verwendest. Damit kenne ich mich aber leider auch so ziemlich überhaupt nicht aus.


    Gruß, noisefloor

    Hallo,


    ... und willkommen im Forum :)


    Quote

    Allerdings wackelt die Leiste ordentlich.

    Hattest du keine Montagehilfe dabei? Bei meiner solderless Leiste hatte ich eine Montagehilfe aus Kunststoff dabei, mit deren Hilfe man mit Einsatz eines kleinen Hammers (hört sich komisch an, aber war tatsächlich so!) die Leiste supergut und supersauber montieren konnte. Wenn deine Leiste noch wackelt würde ich sagen: runter damit und eine neue montieren.


    Quote

    Und bzgl des Ethernet/USB HATs ist mir nicht ganz klar wie der angeschlossen wird.

    Der Anschluss ist doch hier erklärt: https://www.waveshare.com/wiki/ETH/USB_HUB_HAT


    Wie versorgst du deine Raspi mit Strom?


    Gruß, noisefloor

    Hallo,


    Quote

    Mit Datenbanken ob maria, lighttpd oder sqllite habe ich so meine Installationsschwierigkeiten gehabt, so dass ich danach zu CSV als Ausweichmöglichkeit gekommen bin.

    SQLite hat Python an Bord, d.h. wenn du Python installiert hast, hast du auch SQLite und das Python sqlite3 Modul automatisch an Bord. Ohne zusätzliche Installation.

    Doku: https://docs.python.org/3/library/sqlite3.html


    Gruß, noisefloor

    Hallo,


    such' mal im Internet nach "python logging in csv", dann kriegst du bei den ersten Treffern div. Anleitung, wie du eine CSV-Datei und das logging Modul inkl. Logrotation paarst.


    Aber warum verwendest du keine Datenbank wie SQLite? Damit ist das Abfragen einfacher und die brauchst dir auch bei so einer einfachen Datenstruktur keine Gedenken wegen der Größe machen. Auch SQLite kann mit ein paar Millionen Zeilen umgehen.


    Gruß, noisefloor

    Hallo,


    dein Ansatz ist so falsch. Pack' die ganze GUI in eine Klasse, dann können die Methoden der Klassen direkt die GUI ändern.

    Aber deine Funktionen geben gar keine Werte zurück (außer das implizite `None` - was soll denn ausgegeben werden.


    Kürz' deinen Code am besten erst mal auf eine Funktion, nicht direkt auf 6. Und in Zukunft bitte den Code in einen Codeblock packen, den erreichst du über die </> Schaltfläche. Dann ist der Code auch lesbar und die Einrückungen bleiben erhalten.


    Gruß, noisefloor

    Hallo,


    Quote

    Die Daten würde ich in eine Datenbank schreiben.

    +1 - vergiß' die CSV-Datei, dass ist doch viel zu umständlich und unflexibel. Nimm' eine relationale Datenbank wie z.B. SQLite. Die kann lokal auf dem Raspi laufen und Python hat dafür alles an Bord. Wenn du eine netzwerkfähig DB brauchst, dann musst du halt PostgreSQL oder MariaDB nehmen. Ist hier aber vielleicht ein bisschen "too much".


    Gruß, noisefloor

    Hallo,


    Quote


    ich habe vor eine Waage mit HX711 zu bauen und die gewogenen Daten in einer CSV pro Behälter zu speichern. Die Datenablage soll mittels WEB-Server koordiniert werden.

    Das macht so eigentlich keine Sinn - ein Webserver ist ja "nur" dafür da, Content an den Client (=den Browser) zu liefern. D.h. das Speichern von Messwerten wohin auch immer ist nicht Sache des Servers. Oder willst du nur Speichern, wenn ein Button im Webinterface gedrückt wurde?


    Zum Speichern würde ich dir hier auch eine Datenbank empfehlen - dann kannst du später auch mal gezielt nach Werten suchen, ohne die CSV Datei komplett einlesen zu müssen und die Suche selber zu implementieren. Abgesehen davon ist das Schreiben einfacher, weil du nicht jedes mal die komplette CSV-Datei neu schreiben musst.


    Wenn die Webseite sich aktualisieren soll, muss die sich a) entweder im wieder neu Laden - macht man aber eigentlich nicht, besonders nicht, wenn das alle 2 Sekunden passieren soll - oder b) holt sich die Webseite mit Javascript und der fetch-API (oder AJAX) periodisch die Daten. Wenn du echte bidirektionale Kommunikation brauchst kannst du auch Websockets nehmen. Das ist aber nicht ganz trivial zum Implementieren, wenn du neu in die Webprogrammierung einsteigst.


    Gruß, noisefloor

    Hallo,


    du hattest hat "Warnsystem" geschrieben - klingt irgendwie wichtig ;)


    Ich habe im privaten Bereich auch dieses Setup, halt nur mit Django, also nginx + gunicorn + Django. Django verhält sich da ja genau so, sprich dass der Build-in Server nicht produktiv genutzt werden sollte.


    Gruß, noisefloor

    Hallo,


    grundsätzlich ist es keine gute Idee, den eingebauten Server produktiv z nutzen. Zitat aus der Doku: "Flask’s built-in server is not suitable for production".

    Wenn du das machen willst, was ja scheinbar der Fall ist, dann solltest du mindestens einen WSGI-Applikationsserver wie gunicorn davor setzen. Und ggf. noch nginx als Reverse Proxy. Klingt kompliziert, ist es aber nicht - und ist ein sehr gängiges Setup. Hat auch den Vorteil, dass du gunicorn (und ggf. nginx) beim Systemstart via systemd starten kannst und sich systemd dann auch um den Neustart des Servers kümmert, wenn er crasht.


    Gruß, noisefloor