Beiträge von MagicHH

    Moin!

    Erst einmal vielen Dank für die Antworten.

    Es geht hier aber nicht um einen reinen Webserver, sondern um einen MagicMirror

    --> https://github.com/MichMich/MagicMirror

    Hier nutze ich das Modul MMM-MyWastePickup, das mir (und meiner Familie) die nächsten

    Müllabfuhl-Termine auf dem Spiegel anzeigt.

    Nun möchte ich (und hatte es in geraumer Vorzeit schon einmal geschafft), ein Icon austauschen.

    Das sollte ich in der css/custom.css machen.

    Wenn ich ein Beispiel Icon (svg) aus dem Internet nehme, dann klappt das auch.

    Wenn ich mir das aber lokal ablege (um dann nach erfolgreichem Zugriff die Farbe noch von Grün nach Blau zu wechseln), dann geht das nicht mehr.

    Ich bin nach dieser Anleitung vorgegangen: https://forum.magicmirror.builders/topic/14270/mmm-mywastepickup/9

    Weitere Tipps?

    Danke!

    Hallo zusammen,

    ich verstehe folgendes nicht:

    Ich möchte eine SVG-Grafik anstatt einer vorgegebenen Grafik in einem MagicMirror Modul laden.

    Dafür muss ich in der custom.css die neue Grafik hinterlegen.

    Eine Datei aus dem Internet wird geladen und angezeigt, wenn ich das so eintrage:

    Code
    .waste-pickup-icon.recycle {
      background-image:url('https://www.svgrepo.com/show/270587/recycle-bin-trash.svg');
    }

    Aber wenn ich das wie folgt eintrage um meine lokale Datei zu laden, dann funktioniert das nicht ... warum nicht?

    Code
    .waste-pickup-icon.recycle {
      background-image:url('../modules/MMM-MyWastePickup/recycle-bin1.svg');
    }

    Und "ja", die Datei existiert:

    pi@MM3:~/MagicMirror/css $ ls -al ../modules/MMM-MyWastePickup/recycle-bin1.svg

    -r--r--r-- 1 pi pi 38730 9. Dez 2021 ../modules/MMM-MyWastePickup/recycle-bin1.svg

    Ich verstehe es nicht. :conf:

    Wer kann mir helfen?

    Danke!

    OK, ich habe einen (Um-)Weg gefunden.

    hier im Forum habe ich gelesen, dass man den tvservice und vcgencmd wieder aktivieren kann, wenn

    man kms in der /boot/config.txt deaktiviert.

    Ausprobiert - funktioniert.

    Vielen dank an alle, die geholfen haben und mir auch super Tipps bzgl. der Programmieren etc. gegeben haben!

    Hmm, ich dachte, dass ich das ausreichend genug dargestellt hätte, aber dann mache ich das noch einmal komplett :)

    Aktuell wird das Skript hier gestartet: /etc/rc.local

    "Ja", es scheint auch andere ggf. bessere Orte zu geben, aber das wäre eine nachgelagerte Optimierung

    Inhalt des rc.local

    Inhalt des Python Skripts, welches hier liegt: /home/pi/MagicMirror/pirx.py

    Also da, wo vermutet und aufgerufen ...

    Ohne weitere User Anmeldung über RDP reagiert der PIR nicht, da es (scheinbar) unter Bullseye mit dem DISPLAY Probleme gibt.

    Wenn ich mit die Prozesse unter htop anschaue, dann läuft der Job unter dem User root.

    Irgendwo habe ich gelesen, das man kms? in einer /boot/command.txt deaktivieren kann und so vcgencmd wieder verfügbar wäre.

    Aber:

    - ich habe keine /boot/command.txt auf meinem Raspi 4 / Bullseye

    Wenn ich die Datei hätte, oder das sicher irgendwo anders gespeichert ist:

    - ich weiß nicht, welche Nebeneffekte das mit sich bringen könnte

    :/

    Jede Hilfe ist willkommen (habt Rücksicht mit mir - bin normalerweise Windows Mensch :rolleyes: )

    Moin "hyle",

    das Skript wird beim booten gestartet und sollte somit als "root" laufen.

    --> /lib/systemd/system/pir_sensor.service

    oder auch ausprobiert

    --> /etc/rc.local

    Jedenfalls interpretiere ich das so, wenn ich mir das unter htop anschaue

    Keine Ahnung, wie ich den Screenshot hier größer hineinbekomme:

    Der MM läuft im Kiosk-Mode. Also meldet sich kein User an.

    Dadurch scheint die Möglichkeit des xrandr wohl ausgeschlossen.

    Vor Bullseye habe ich meinen PIR (HC-SR04) einwandfrei mit vcgencmd ansprechen und steuern können.

    Bei Bullseye hat man wohl etwas daran gedreht.

    Ich habe schon einige Blogs gesehen, wo über das Problem gesprochen, aber leider noch nicht gelöst wurde.

    Ich möchte über mein Script, dass -blackjack- (fast) gut optimiert hat, den Monitor ansteuern.

    Wenn jemand vor dem Spiegel steht, dann wird über den PIR der Monitor angeschaltet und dann nach Zeit x wieder ausgeschaltet.

    Wenn ich mich über rdp und dem User pi anmelde, dann erhalte ich das hier als Ausgabe von "id":

    Code
    pi@MM3:~ $ id
    uid=1000(pi) gid=1000(pi) Gruppen=1000(pi),4(adm),20(dialout),24(cdrom),27(sudo),29(audio),44(video),46(plugdev),60(games),100(users),105(input),107(render),109(netdev),117(lpadmin),997(gpio),998(i2c),999(spi)

    Ideen?

    Hallo _blackjack_,

    hallo RTFM,

    vielen Dank für eure Tipps und Hinweise.

    _blackjack_ hat das Script super optimiert - ein kleiner Fehler muss da noch drin sein, enn der Bildschirm schaltet sich recht schnell

    aus eigenen Stücken wieder ein.

    Aber leider hat RTFM auch recht. "xrandr" scheint nur mit einem angeledeten User zu funktionieren.

    Das ist ja bei einem MagicMirror nicht der Standard. Ich habe ja das Script aus dem /lib/systemd/system/ gestartet und

    damit läuft es unter root.

    Damit hänge ich wieder am ursprünglichen Problem.

    Scheinbar funktioniet "vcgencmd display_power 0" unter Bullseye nicht mehr:

    Denn wenn ich den Befehl im terminal absetze, dann bekomme ich das hier:

    Code
     pi@MM3:~/MagicMirror $ vcgencmd display_power 1
    display_power=1
    pi@MM3:~/MagicMirror $ vcgencmd display_power 0
    display_power=1

    Bei beiden Befehlen wird mir display_power=1 zurückgegeben.

    Ideen?

    Vielen Dank für eure Hilfe!

    Moin!

    Vielen Dank für die Tipps.

    Das Script wird bei Boot gestartet, die Funktionsaufrufe funktionieren.

    Das Script wird nun hier gestartet:

    /lib/systemd/system/pir_sensor.service

    Code
    [Unit]
    Description=MagicMirror PIR Service
    After=multi-user.target
    
    [Service]
    Type=idle
    ExecStart=/usr/bin/python3.9 -u /home/pi/MagicMirror/pirx.py
    
    [Install]
    WantedBy=multi-user.target

    Hier ein Auszug aus dem Syslog:

    Code
    Nov 27 07:09:12 MM3 python3.9[901]: root        : INFO      Monitor gestartet : Counter = 0 - 55.7 cm
    Nov 27 07:09:12 MM3 python3.9[1622]: No protocol specified
    Nov 27 07:09:12 MM3 python3.9[1622]: Can't open display :0
    Nov 27 07:09:12 MM3 python3.9[901]: root        : INFO     MM OFF
    Nov 27 07:09:13 MM3 python3.9[901]: root        : INFO      Counter reset  - 65.2 cm

    Die Funktionsaufrufe funktionen grundsätzlich, zu sehen am INFO MM OFF

    Im Script sehen die Funktionsaufrufe Beispielhaft so aus:

    Code
    def myfunc_Monitor_OFF():
            bashCommand = "xrandr -d :0 --output HDMI-1 --off"
            process = subprocess.Popen(bashCommand.split(), stdout=subprocess.PIPE)
            output, error = process.communicate()
            logging.info('MM OFF')

    Leider scheint das mit der Übergabe des -d :0 so noch nicht zu funktionieren.

    Hallo Python Experten,

    ich (Windows-Mensch), hat bedingt Ahnung von Linux und Python. möchte aber meinen PIR

    dazu bringen, nach einer Zeit X den Bildschirm auszuschalten und bei Abstand unter 120cm vor dem PIR wieder einzuschalten.

    Dazu benötige ich (warum auch immer) diese Befehle unter Bullseye:

    Display DISPLAY=:0 xrandr --output HDMI-1 --auto --rotate left

    DISPLAY=:0 xrandr --output HDMI-1 --off

    Wenn ich diese 2 Befehle als User pi auf der Console ausführe, dann funktioniert das einwandfrei.

    Nun habe ich gelesen, dass man Python Scripte auch so starten kann

    DISPLAY=:0 python3 pir.py

    Das Script startet oder Fehlermeldungen, aber schaltet den Bildschirm weder aus noch an ...

    Wo liegt mein Fehler?

    Am Ende soll das Script über /etc/rc.local beim Booten aus der /etc/rc.local gestartet werden.

    Inhalt /etc/rc.local:

    Und hier das Python Script:

    Ich bin für jeden Tipp dankbar!

    Moin!

    Erst einmal vielen Dank für eure Antworten.

    Dann muss ich sagen, dass ich ein Windows-User bin und mich im Linux nur sehr rudimentär auskenne ...

    Dann muss ich meine Frage wahrscheinlich noch ein wenig ausdehnen:

    Ich habe mir vor Jahren mal einen Magic Mirror gebastelt, der grundsätzlich auch läuft.

    Nach OS upgrade usw. war dann aber irgendwann mal der Punkt gekommen, wo mein PIR nicht mehr reagiert hat.

    Wahrscheinlich, weil das vcgencmd nicht mehr unterstützt wird ??

    Das wollte ich nun prüfen und mache mich gerade auf die Suche, wo ich den start-Befehl vom Python für mein pir.py eingebaut habe.

    Unter Linux scheint es da ja einge Orte zu geben.

    Den Pfad zur pir3.py kenne ich. Ich möchte aber auch den Start-Befehl wiederfinden ...

    Gibt es unter Linux eine Suchfunktion, die in alle Dateien schaut und nach pir3.py suchen könnte?

    Dann würde ich sehen, wo ich den python Aufruf eingetragen habe.

    Sorry für die Verwirrung.