Posts by noisefloor

    Hallo,

    manuell kompiliiert und...

    ok, dann haben wohl Pakete gefehlt. Anleitung zum Kompilieren inkl. aller Module: https://wiki.ubuntuusers.de/Python/manuelle_Installation/ Ist zwar für Ubuntu geschrieben, sollte unter Raspberry Pi OS genau so funktionieren.


    danach mit ln die python versionen umgelegt von 3.9.x auf 3.10.11

    Macht man nicht. Kann gut gehen, muss aber nicht. Python ist für Raspberry Pi OS (und viele andere Distros) Bestandteil der Grundinstallation und ohne Python3 läuft das System erst gar nicht. Wenn man die Version, die zur Kerninstallation gehört ändert, kann das unerwünschte Nebeneffekte bis zu einem nicht funktionierenden System führen (kann, muss aber nicht). Also: nie machen.

    Zumal es ohne Probleme möglich ist, mehrere Python-Version konfliktfrei parallel zu installieren und aufzurufen. Ist auch im oben genannten Artikel erklärt.


    Gruß, noisefloor

    Ich glaube das ganze hier fürt zu nichts außer einer Diskusion die sich immer weiter von der eigentlichen Frage Stellung entfernt.

    Du verstehst nicht oder willst nicht verstehen, dass das _alles_ wichtig ist. Du fragst, weil du gerne besseren Code hättest. Da gehört halt auch die PEP8 dazu. Wenn du die als Python-Programmierer ignorierst wirst du das immer und immer wieder gesagt bekommen. Mit Recht. Oder anders: wenn du dich der PEP8 verweigerst, verweigerst du dich Python.


    Abgesehen davon hast du doch explizit gesagt bekommen, was (außer den Namen) in deinem Code falsch ist. Und zwar sehr ausführlich in der allerersten Antwort. Das musst du jetzt halt "nur noch" umsetzen.


    Du kannst jederzeit gerne deine korrigierten Code hier posten. Idealerweise den gesamten Kontext, also zumindest die Klasse und alle relevanten Methoden. GUI Programmierung ohne Klassen geht nun mal nicht wirklich, außer man hat eine mega-triviale Anwendung. Das gilt auch nicht spezifisch für Qt, sondern alle GUI Frameworks, als z.B. auch Tkinter und GTK.


    Gruß, noisefloor

    Hallo,


    was heißt eigentlich genau "Ich habe die 3.10.11 manuell installiert." - installiert als Paket aus Quelle? Oder manuell kompiliert?


    Und welche Version von Raspberry Pi OS benutzt du bzw. welche Python-Version ist das in der Standardinstallation an Bord?


    Lt. Ausgangspost hast du mit deiner manuell installierten Version des Default-Python des Systems überschrieben. Sollte man nie machen, dass kann unangenehme Nebeneffekte haben.


    Gruß, noisefloor

    Hallo,


    was heißt "Daten ziehen"?


    Ein Python venv ist _nur_ eine isolierte _Python_ Umgebung, d.h. die hat einen eigenen Python Interpreter (i.d.R. ein Kopie der Python-Installation des Systems und im venv installierte Module sind nur im venv sichtbar. Umgekehrt sind im venv auch nicht die systemweiten Module sichtbar. Auf _alle_ anderen Dateien / das Dateisystem hast du freien Zugriff, ebenso bestehende Netzwerkverbindung etc.


    Ein Python venv hat nichts mit einer virtuellen Maschine oder Containertechnologie zu tun.


    Gruß, noisefloor

    Hallo,

    Ich denke pip und phyton müssen zusammenspielen. das tuts in meinem Fall nicht.

    Doch, tut es sehr wohl. Du hat auch keine Fehler gemacht. Es ist schon grundsätzlich der richtige Weg, pip aus den Paketquellen zu installieren oder manuell die neuste Version. Wie gesagt ist der Fehler IMHO in den Requirements des Programms, was du nutzen möchtest.


    Gruß, noisefloor

    Hallo,


    IMHO ist da ein grundlegender Fehler im Projekt, wenn das genau _eine_ pip-Version verlangt, im gegebenen Fall ja sogar Major / Minor / Bugfix Release. Dafür gibt es eigentlich so überhaupt keine Grund, weil es ja erzwingt, eine alter Version von pip zu nutzen. Will man aber in der Regel nicht.


    Wenn du das Projekt nutzen willst ist IMHO der sauberste Weg, die ein Python virtual environment _ohne_ pip einzurichten, darin die gewünschte pip Version manuell zu installieren und dann das Projekt zu installieren.


    Unabhängig von dem spezifischen Problem: es ist immer besser, ein venv zu verwenden. Python-Module global mit Root-Rechten zu installieren ist a) in 95% der Fälle nicht nötig und b) kann zu unerwünschten Nebeneffekten im System führen.


    Gruß, noisefloor

    Hallo,


    Quote

    Raspberry weil die Dinger nix an Strom verbrauchen da diese ja durchgehend laufen sollen

    Wird aber nicht funktionieren, siehe oben. Wenn du diese... na ja... fragwürdige Vorhaben umsetzen willst solltest du halt mal massive in Hardware investieren, die genug Leistung hat, um mehrere VMs laufen zu lassen. Selbst den z.Zt. leistungsstärksten Raspi wirst du mit einer VM an den Rand der Leistungsfähigkeit bringen.

    Wenn du in Hardware investierst solltest du Serverhardware nehmen. Die ist eher darauf ausgelegt, 24/7 unter Last zu laufen. Das sind Laptops und Desktoprechner eher nicht.


    Gruß, noisefloor

    Hallo,


    Quote

    Wieviel VM kann ich auf einen Raspberry laufen lassen ?

    Also grundsätzlich läuft wohl KVM (=der Virtualisierer des Linux Kernels) auch auf ARM64.

    Aber: selbst ein Raspi 4 hat für mehrere VMs zu wenig Ressourcen und vor allem zu wenig RAM. Wenn ein Browser laufen soll brauchst du in der VM ja eine vollständige Desktopinstallation inkl. graphischer Oberfläche. Außerdem brauchen Firefox und Chrome als moderen Browser halt reichlich Ressourcen, also RAM (min 4 GB für eine Desktop Installation und CPU Power).


    Für "mehrere VMs mit Browser" solltest IMHO schon nach einer potenten 8 Kern (oder mehr) CPU schauen und 24 oder 32 GB RAM. Also definitiv nichts kleines.


    Gruß, noisefloor

    Hallo,

    Für alte Laptops kann ich Lubuntu empfehlen.

    Kann ich so gar nicht bestätigen. Lubuntu benutzt exakt den gleichen Unterbau, d.h. da braucht jedes *buntu gleich viel Ressourcen. Bei Desktop spart man ein kleines bisschen und bei der Plattenbelegung auch, das ist aber eher marginal. Es war in der Tat früher mal etwas anders, aber heutzutage gibt es halt kein *buntu mehr, was auf "alter" Hardware flüssig läuft.

    Abgesehen davon: die gängigste Anwendung für den Desktop ist nun mal der Browser - und der braucht heutzutage genügend Ressourcen. Egal wie "schlank" der Unterbau ist.


    Ubuntu mit LXDE = Lubuntu

    Das ist veraltet. Lubuntu verwendet in allen Unterstützen Version LXQt. Die letzte Lubuntuversion mit LXDE war 18.04, das ist der Support seit April 2021 zu Ende. Und selbst der Support für den Ubuntu Unterbau (also die ganze Pakete aus den Main-Repos) endet Ende Mai 2023. Also in 7 Tagen.


    Gruß, noisefloor

    Hallo,


    aufgrund des Alters des Laptops wirst du höchstwahrscheinlich mit Ubuntu und damit auch mit Mint - Mint nimmt ja als Unterbau Ubuntu - keinen Spaß haben, weil Ubuntu nicht wirklich gut auf alter Hardware läuft. Bzw. es läuft, aber halt sehr zäh.


    Da du dich ja bisher zu Hardwaredetails ausschweigst kann man leider mehr nicht sagen.


    Noch was...

    Genauso hasse ich alle Googels...

    Doof ist dann halt für dich, dass Google maßgeblich am Linux Kernel mitarbeitet und mit zu den Firmen gehört, die die meisten Kernel Entwickler bezahlen.


    Gruß, noisefloor

    Hallo,

    Das müsste doch möglich sein?

    Grundsätzlich ja. Die offene Frage ist: wie gut unterstützt Raspbian OS die Hardware von deinem Laptop? Musst du halt ausprobieren. Ggf. fährst du mit Debian besser.

    Wenn du das genauer wissen willst solltest die genauere Angaben zu deinem Laptop machen. Es gibt ziemlich viele HP350 aus unterschiedlichen Generation.

    Wenn dein Laptop ein rotierendes Laufwerk und keine SSD hat wird sich das alles so oder so eher zäh anfühlen, weil der I/O nach heutigen Maßstäben halt lahm ist.


    Wenn du mit der Linux Installation ins Internet willst (also mit Firefox oder Chrome), dann sollte der Laptop min 4 GB RAM haben, mehr schadet nicht. Sonst läuft dir das RAM voll und das System fängt an zu swappen - und wird super lahm. Moderne Browser brauchen nun mal reichlich Ressourcen.


    Wenn du mit dem Laptop ins Internet willst, dann solltest tunlichst nicht mehr Win 7 benutzten. Das ist seit 3,25 Jahren ohne Support, d.h. es bekommt seit dem auch keine Sicherheitsupdates mehr.


    Ansonsten wäre zum mobilen Spielen noch die Nintendo Switch empfehlenswert.


    Gruß, noisefloor

    Hallo,


    CreativePi : Raspberry Pi OS mit Desktop ist nicht schwergewichtig, der Raspberry Pi 1B ist einfach nach heutigen Maßstäben leistungsschwach, wenn man Linux + Desktop drauf laufen lassen will. Das Ding ist ~10 Jahre alt, was CPU Performance und RAM angeht. Ich würde mal behaupten, dass selbst ein extrem leichtgewichtiger Desktop mit OpenBox oder so in Kombination mit einem aktuellen Linux Kernel hart am Limit wäre. Über Sachen wir Browser (Firefox, Chrome) brauchen wir erst gar nicht reden, die brauchen mit ein paar offenen Tab wahrscheinlich schon mehr Speicher, als der Raspi 1B gesamt überhaupt hat.


    Oder anders: verabschiede dich einfach von der Idee, den Raspi 1B als Desktoprechner nutzen zu wollen. Als kleiner Server für zu Hause oder zum Testen ist der 1B sicherlich noch gut genug.


    Gruß, noisefloor

    Hallo,


    Audacity ist halt unter Linux DER Standard als Audioeditor. Wenn du das Programm nicht willst, findest du unter https://wiki.ubuntuusers.de/Multimedia und https://wiki.ubuntuusers.de/Audiodateien_umwandeln/ ziemliche viele alternative Tools. Da du dich über deine Zielplattform(en) ausschweigst musst du halt schauen, ob es das Tool auch für deine Zielplattform gibt. Wenn du Windows nutzen möchtest gibt es sicherlich noch mehr / andere Tools.

    SoX wäre gut, nur wie soll ich es mir vorstellen, Anfang und Ende einer Sounddatei zu kappen, wenn ich nur mit der Commandozeile arbeite?

    Indem du den Startpunkt und die Dauer des wegzuschneidenden Abschnitts angibst. Ist aber auch in der Doku / Manpage von sox erklärt. Lt. Doku dekodiert sox die Datei vor der Bearbeitung und Rekodiert sie dann wieder, d.h. bei MP3 mit jeder Änderung einen Qualitätsverlust.


    Gruß, noisefloor

    Hallo,

    Bis 2:15Uhr alles gut, und dann geht es nicht mehr richtig.

    Das geht aus den Logs aber nicht hervor bzw. die sind unauffällig. Du hast jedes Mal den Status Code 200 (=OK) zurück bekommen und 481 Byte Daten. Der Fehler liegt also wohl nicht an der Abfrage der OpenWeather API.


    Du könntest noch in die Logs von systemd schauen, weil der Cron-Job wird ja letztendlich von systemd geregelt. Die Logs kannst du mittels journalctl abfragen. Am besten direkt nach dem betreffenden Zeitraum Filter.

    Wenn du dein Skript über eine systemd Timer Units ausführen würdest wäre die Suche etwas einfacher, weil du der Unit einen Namen geben kannst und dann gezielt danach die Logs filtern kannst.


    Wie kann ich es besser machen?

    Indem du die betreffenden Codezeilen in eine Funktion auslagerst und die dann auf der main-Funktion aufrufst.


    Gruß, noisefloor

    Hallo,

    Wie kann / muss ich mein Skript ändern, dass er entweder für die OW-Temperatur die letzte übertragene nimmt oder ich einen festen Wert nimmt?

    In erster Instanz musst du feststellen, welchen Fehler dein Skript wirfst, wenn die API-Anfrage von Open Weather ins Leere läuft. Den Fall fängst du dann aber und weißt TA einen Wert deiner Wahl zu.


    Zeile 85 in deinem Skript ist ganz schlecht, weil die einfach undifferenziert alle Fehler abfängst. Ist in 99% der Fälle falsch. Fehler fängt man gezielt ab. Wenn z.B. dein SQL-Query einen Fehler hätte und deshalb eine Exception geworfen würde, dann macht weder ein Commit noch ein Rollback Sinn - geht ja auch beides gar nicht dann.


    Aussagekräftige Variablennamen kosten nichts und machen den Quellcode besser lesbar. Kryptisches Zeug wie w, TAORG, P1 usw sollte man vermeiden, weil schlechter Stil.


    Deine main-Funktion ist eigentlich noch zu lang, dass kann man stärker modularisieren. Du könntest die Abfrage von OpenWeather und der drei Sensoren auch je in eine eigene Funktion auslagern.


    Gruß, noisefloor

    Hallo,


    Quote

    Wäre folgendes richtig?

    Programmieren ist nicht raten - probier's aus. Spoiler: du wirst einen NameError, bekommen, weil `true` nicht definiert ist. Die Wahrheitswerte schreibt man in Python am Anfang groß - siehe mein vorheriger Post.


    Quote

    Nein, ich kann leider nicht die Widerstände messen bei LED ein und aus. Dafür müsste ich das Pumpengehäuse öffnen und dann wüsste ich auch nicht wie ich rankommen kann.

    Nee, hast du falsch verstanden: nicht den Widerstand der LED messen, sondern wie der Widerstand des LDR sich ändert, wenn die LED an geht.


    Gruß, noisefloor