Posts by Dirk27

    Ja, könnte passen.

    Habe mal in den Issues weiter gesucht.

    Es sieht wohl so aus, dass der Pi 5 noch nicht sauber mit der rpi_ws281x Lib läuft:

    Support for Raspberry Pi 5 · Issue #528 · jgarff/rpi_ws281x
    Hi, I just got a Raspberry Pi 5 and am getting an error that my hardware revision is not supported. Here is some hardware information from cat /proc/cpuinfo:…
    github.com

    Aber es gibt wohl schon einen Pi 5 Branch der Lib, wobei der "experimental" ist:

    Raspberry Pi 5 Support
    Userspace Raspberry Pi PWM library for WS281X LEDs - jgarff/rpi_ws281x
    github.com

    Das habe ich mal gestern versucht zu installieren, aber ohne Erfolg. 🙁

    Hat jemand schon die rpi_ws281x Lib mit dem Pi 5 zum Laufen gekriegt?

    Zentris: I2C kann man über HAOS tatsächlich wie im Raspbian einrichten:

    Common tasks - Operating System
    Common tasks for Home Assistant Operating System
    www.home-assistant.io

    Danke für den SS1306 Link! Sehe ich mir an.

    pisel: Danke! Muss ich probieren. Evtl. löst die Unterbringung der UPS- und OLED-Ansteuerung in einem Container auch das "Autostart-Problem", das bis jetzt bei mir über systemd läuft. An Hardware-Zugriff wäre ja nur I2C und Lesen/Schreiben auf GPIO nötig. Vielleicht klappt's ja ...

    Wenn ja: gäbe es sogar Zugriff auf die UPS-Akkuspannung in HA. Wäre schon ne gute Lösung, wenn's denn funktioniert. Land in Sicht.

    Ja, verstanden: man sollte HA in 1. Linie komplett mit seinem HAOS aufsetzen.

    Aber meine Anfangsfrage:

    Kann man HA nur mit einem Pi solo ohne weitere Hardware, die ein bisschen Steuerungs-Software braucht, nutzen? Wenn man mit dem Pi im Gehäuse noch eine UPS und/oder ein kleines OLED verbaut hat und weiter nutzen will: was kann man machen, um die unter HAOS weiter sinnvoll einzusetzen?

    Was ich inzwischen weiß: man kann I2C wohl auch im HAOS einschalten und nutzen. Systemd service steht wohl nicht im HAOS zur Verfügung.

    Könnte man HA als Core (venv) unter Pi-OS installieren ...?

    Home Assistant Operating System ist ein komplettes Betriebssystem, kein Python-Programm.

    Möglich ist es:

    Installing Home Assistant Core 2023.5.4 in a Python 3.11 vEnv on Raspberry Pi 3B+ step by step
    I have perfectly working instalation of Home Assistant Core 2023.3.2 in venv running by python 3.10. Because I read in changelog that now is python 3.11…
    community.home-assistant.io

    Ich habe meinen Raspi 4B mit UPS und SSD fertig und würde ihn gern für den HA nutzen.

    Wenn ich (als Anfänger) das richtig sehe, müsste ich ein HA Image auf die SD "brennen".

    Meine Frage: ich habe gerade alles gut eingerichtet: die UPS X728 mit einer RTC, Lüftersteuerung, OLED-Display,... mit kleinen Bashs oder Python-Scripts.

    Das hat unter dem Raspi-OS gut geklappt. Geht das auch mit dem HA-OS? Ich will ja nicht die gut funktionierende Ansteuerung der 4B-Hardware verlieren. Oder kann ich HA auch voll mit dem Raspi-OS nutzen?

    Ich weiss ja nicht was für eine UPS du hast, aber ich hatte mal das Vergnügen, dass ein Kabel einen Wackler hatte und mir dann 0,x Volt angezeigt wurden.

    Daher würde ich den Fall auch abfangen, wenn eine Spannung unter 1 Volt liegt, denn dann wäre der Pi eh schon lange aus.

    Ich habe die X728 V2.5 UPS. Guter Hinweis! Genau das versuche ich ja mit diesem Script: ich will ein geordnetes Herunterfahren erzwingen, wenn 3,0V Akkuspannung unterschritten wird. Das klappt auch. Nur die geplante Textausgabe als Vorwarnung, dass in 10s Schluss ist, will nicht, wenn das Ganze als systemd Service läuft.

    Aber: ich habe ja gute Tipps bekommen und werde testen ...

    __blackjack__

    Etwa so:

    ... macht das unser Freund ChatGPT mit wall. Ich bin beeindruckt. 🤯

    Ich habe eine UPS und will den RPi herunterfahren, wenn die Akkuspannung 3,0V unterschreitet.

    Das läuft auch prima mit diesem Script-Ausschnitt:

    Code
     #Set battery low voltage to shut down
     if bat_voltage() < VOLTAGE_MIN:
             print ("UPS Tower Service:")
             print ("  Battery LOW!!!")
             print ("  Shutdown in 10 seconds ...")
             time.sleep(10)
             os.system("sudo nohup shutdown -h now")     

    Allerdings gibt es einen Unterschied, ob ich das Script einzeln starte oder über einen systemd-Service:

    Einzeln gestartet wird der Text:

    Code
    UPS Tower Service:
      Battery LOW!!!
      Shutdown in 10 seconds ...

    ... wie geplant 10s vor dem Herunterfahren im offenen Terminal gezeigt.

    Nutze ich das Script über einen systemd-Service, wird der RPi auch brav heruntergefahren, aber der Text wird vorher nicht ausgegeben, so dass es keine "Vorwarnung" gibt.

    Weiß jemand warum? Was müsste ich ändern, damit der Text auch wie geplant ausgegeben wird?

    Das Teil ist brandgefährlich, beachte die Rezessionen.


    Servus !

    Ja, wenn einige der 46% der Nutzer, die nicht 5 Sterne gegeben haben, die Akkus so (falsch) angeschlossen haben, wie auf der 2S 3S 4S Abbildung zu sehen, dann hat's bei denen wirklich gebrannt. 😂

    So, das Löschen der pwrkey.desktop Datei habe ich auch probiert: der RPi fährt aber weiter ohne AC Power nicht herunter, aber merkwürdigerweise fährt er irgendwann dann ohne Vorankündigung spontan herunter, wenn ich irgendwas auf dem Desktop mache (z.B. Befehle am Terminal eingebe...).

    An dieser Stelle gebe ich meine Versuche mit dtoverlay=gpio-shutdown auf. :(

    Und: mein Ziel, dass dann "wenigstens" bei leerem Akku heruntergefahren wird, muss ich wohl wirklich mit einem Script realisieren,- da gibt es aber gute Lösungen ... :)

    So, habe dtoverlay=gpio-shutdown so belassen wie in meinem 1. Post und mal den GPIO6 (ohne UPS) fest auf GND gelegt, das wäre bei der X728 UPS gleichbedeutend mit "Low=Power supply normal".

    Dann habe ich den GPIO auf 3,3V gelegt (das wäre "High=Power loss"). Allerdings fährt der RPi dann auch nicht herunter, zeigt stattdessen dauerhaft das Desktop-Menü "Herunterfahroptionen".

    Beim Googlen bin ich dann auf diesen Thread:

    How to make gpio-shutdown not pull up power menu - Raspberry Pi Forums

    ... gestoßen, den ich so deute, dass das Herunterfahren über GPIO und dtoverlay wohl mit einem Headless RPi klappt, aber am Desktop scheitern kann. Mit:

    Code
    sudo rm /etc/xdg/autostart/pwrkey.desktop

    ... soll man dann aber doch ein Herunterfahren über den GPIO und dtoverlay erreichen können. Habe ich jetzt noch nicht probiert,- leider gerade andere Baustellen ...

    Gar nicht so einfach, das Ganze ...

    Martin28 , danke für die Erklärung!

    Mir fehlt da noch das Grundverständnis:

    Wenn für die UPS der "GPIO6 for AC power loss detection" verwendet wird: ist das dann für die UPS ein AUSGANG, mit dem sie AC Power Loss oder High an den GPIO6 Eingang des RPi signalisiert?

    Wenn das so ist, könnte ja der RPi mit dieser Info irgendwas tun, z.B. herunterfahren, wenn ich dtoverlay=gpio-shutdown passend definiert habe, richtig? Das passiert aber nicht ...

    Das ist zwar auch ihre Aufgabe, aber was macht dann überhaupt das "dtoverlay=gpio-shutdown,..."?

    Der Name ist Programm. Das fährt den RPi durch drücken eines Tasters, der zwischen dem angegebenen GPIO und einem GND-Pin hängt, runter.

    Ja, die UPS hat eine Verbindung (Pogo-Pin) zu diesem GPIO und könnte den RPi wohl bei leerer Batterie herunterfahren (wenn sie dazu programmiert wäre).

    Was eine UPS auf jeden Fall können müsste, wäre ein sauberer Shutdown bei leerem Akku ...

    Dann solltest Du die Software vom Hersteller auch installieren.

    Ok, mache ich, wenn nicht anders möglich ...

    Danke, ich teste erstmal gpio_pull=up und berichte, wie sich die UPS nach AC power loss und besonders bei leerer Batterie verhält.

    Was ich schon sagen kann: nach AC power loss keine Änderung: die UPS springt ein und liefert dauerhaft Strom. Das ist zwar auch ihre Aufgabe, aber was macht dann überhaupt das "dtoverlay=gpio-shutdown,..."?

    Was eine UPS auf jeden Fall können müsste, wäre ein sauberer Shutdown bei leerem Akku ...

    Meine neue UPS Geekworm X728 V2.5 arbeitet inzwischen ganz gut auf meinem Pi 4B.

    Ich hatte mich entschlossen, nicht das ganze Software-Paket:

    X728-script – Geekworm Wiki

    ... zu installieren, sondern dtoverlay zu nutzen. Dazu habe ich in die config.txt eingetragen:

    Code
    # Settings for Geekworm X728 V2.5
    # Cut power after shutdown
    dtoverlay=gpio-poweroff,gpiopin=26,timeout_ms=6000
    # Shutdown automatically on power loss detected, wait 3s before shutdown
    dtoverlay=gpio-shutdown,gpio_pin=6,active_low=0,gpio_pull=down,debounce=3000
    # Report battery status from X728 to the OS
    dtoverlay=i2c-sensor,max17040

    Jetzt habe ich das schon ein paar Tage getestet:

    1. Ich kann den RPi über Desktop oder Terminal normal herunterfahren, wenige Sekunden danach schaltet die UPS die Power aus. Ich denke, gpio-poweroff scheint also zu funktionieren. Auch die Werte (Akkuspannung und -kapazität) der UPS kann ich gut auslesen.

    2. Bei Power Loss, also AC Netzteil abgeschaltet, fährt die UPS nicht herunter, sondern der RPi wird von ihr weiter mit Strom versorgt, bis die Akkus "leer" sind. Ich schließe daraus, dass gpio-shutdown NICHT funktioniert.

    3. Entgegen der Aussage des Lieferanten Geekworm wird der RPi NICHT heruntergefahren, wenn die Akkuspannung 3,0V unterschreitet, sondern die UPS bleibt an. Ich habe dann irgendwann bei 2,8V abgebrochen, um die Akkus nicht zu beschädigen. Ich schließe daraus, dass ein automatischer Shutdown (ASD) bei leerem Akku NICHT erfolgt (z.B. ausgelöst durch die Firmware der UPS?).

    4. Was auffällt ist aber, dass wenn ich bei leerem Akku (<3,0V) das AC-Netzteil wieder einschalte, sofort auf dem Desktop das Menü "Herunterfahroptionen" erscheint, über das ich mich dann abmelden oder neu starten könnte. Diese Funktion ist mir unklar,- evtl. über GPIO6 gesteuert, aber dann ggf. über eine falsche Flanke am GPIO6 !? Müsste ich also an den Optionen active_low und/oder gpio_pulldown etwas ändern, damit zumindest das Herunterfahr-Menü schon bei leerem Akku erscheint und nicht erst beim Wiedereinschalten des AC Netzteils?

    5. Und: warum erscheint das Herunterfahr-Menü überhaupt? Eigentlich sollte doch der RPi bei leerem Akku und ohne AC Power sofort heruntergefahren werden und die UPS sich ausschalten.


    Viele Fragen. Hat jemand Erfahrungen mit der X728 UPS und die Basis-Funktionen schon ohne mehrere Skripts hinbekommen? Kann man überhaupt alle o.g. Funktionen über dtoverlay erreichen?

    Was könnte ich testen, um etwas weiter zu kommen?