Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. ioBroker Allgemein
    4. Ersatz für vcgencmd nach Raspberry Kernel Update

    NEWS

    • ioBroker@Smart Living Forum Solingen, 14.06. - Agenda added

    • ioBroker goes Matter ... Matter Adapter in Stable

    • Monatsrückblick - April 2025

    Ersatz für vcgencmd nach Raspberry Kernel Update

    This topic has been deleted. Only users with topic management privileges can see it.
    • Thomas Braun
      Thomas Braun Most Active @mickym last edited by

      @mickym sagte in Raspberry Kernel Update:

      um bestimmte Updates zu blockieren.

      apt-hold ist dein Freund.

      mickym 1 Reply Last reply Reply Quote 0
      • mickym
        mickym Most Active @Thomas Braun last edited by

        @thomas-braun sagte in Raspberry Kernel Update:

        @mickym sagte in Raspberry Kernel Update:

        um bestimmte Updates zu blockieren.

        apt-hold ist dein Freund.

        OK - Danke - ich probiers mal - und sag obs geklappt hat. 🙂

        Thomas Braun 1 Reply Last reply Reply Quote 0
        • Thomas Braun
          Thomas Braun Most Active @mickym last edited by Thomas Braun

          @mickym

          Versuch mal

          vcgencmd display_power 0 0
          
          echad@chet:~ $ vcgencmd display_power 0 0
          display_power=0
          

          display_power [0 | 1 | -1] [display]

          Show current display power state, or set the display power state. vcgencmd display_power 0 will turn off power to the current display. vcgencmd display_power 1 will turn on power to the display. If no parameter is set, this will display the current power state. The final parameter is an optional display ID, as returned by tvservice -l or from the table below, which allows a specific display to be turned on or off.

          Note that for the 7" Raspberry Pi Touch Display this simply turns the backlight on and off. The touch functionality continues to operate as normal.

          vcgencmd display_power 0 7 will turn off power to display ID 7, which is HDMI 1 on a Raspberry Pi 4.

          Display         | ID
          > Main LCD      | 0
          > Secondary LCD | 1
          > HDMI 0        | 2
          > Composite     | 3
          > HDMI 1        | 7
          

          To determine if a specific display ID is on or off, use -1 as the first parameter.

          vcgencmd display_power -1 7 will return 0 if display ID 7 is off, 1 if display ID 7 is on, or -1 if display ID 7 is in an unknown state, for example undetected.

          mickym 1 Reply Last reply Reply Quote 0
          • mickym
            mickym Most Active @Thomas Braun last edited by

            @thomas-braun sagte in Raspberry Kernel Update:

            @mickym

            Versuch mal

            vcgencmd display_power 0 0
            
            echad@chet:~ $ vcgencmd display_power 0 0
            display_power=0
            

            Ja das hat ich schon probiert - auch mit

            pi@MWHome2:~ $ vcgencmd display_power = 0
            display_power=0
            pi@MWHome2:~ $ vcgencmd display_power 0 0
            display_power=0
            

            Das meldet zwar display_power=0 zurück, der HDMI Port bleibt aber weiter aktiv.

            Thomas Braun 1 Reply Last reply Reply Quote 0
            • Thomas Braun
              Thomas Braun Most Active @mickym last edited by

              @mickym

              Und mit 2 oder 7? Das sind die HDMI-Ports.

              mickym 1 Reply Last reply Reply Quote 0
              • mickym
                mickym Most Active @Thomas Braun last edited by mickym

                @thomas-braun Also Du meinst

                vcgencmd display_power 2 0
                

                bzw.

                vcgencmd display_power 7 0
                

                btw: Das mit dem Zurückhalten der Pakete hat aber schon mal geklappt und Ursache ist definitiv das Kernel Update.

                Thomas Braun 1 Reply Last reply Reply Quote 0
                • Thomas Braun
                  Thomas Braun Most Active @mickym last edited by

                  @mickym Anders herum.

                  vcgencmd display_power 0 7
                  vcgencmd display_power -1 7
                  

                  Die ID steht hinten.

                  mickym 1 Reply Last reply Reply Quote 0
                  • mickym
                    mickym Most Active @Thomas Braun last edited by mickym

                    @thomas-braun Kein Effekt.

                    Ich hab alles von -2 bis +7 ausprobiert, es kommt mal display_power=-1 oder display_power=0 zurück, aber es schaltet nichts ab.

                    Thomas Braun 1 Reply Last reply Reply Quote 0
                    • Thomas Braun
                      Thomas Braun Most Active @mickym last edited by

                      @mickym

                      Hast du xrandr installiert?

                      xrandr --output HDMI-1 --off
                      

                      Wobei ich da die genaue Syntax nicht kenne. Mein RPI läuft ja headless...

                      mickym 1 Reply Last reply Reply Quote 0
                      • mickym
                        mickym Most Active @Thomas Braun last edited by

                        @thomas-braun Das Kommando habe ich zwar aber es kommt immer zurück, dass er kein Display öffnen konnte.

                        xrandr --output HDMI-1 --off
                        Can't open display
                        
                        pi@MWHome2:~ $ xrandr --listmonitors
                        Can't open display
                        pi@MWHome2:~ $ xrandr --listproviders
                        Can't open display
                        

                        Wie gesagt das mit dem Kernel auf hold setzen hat geklappt. Es war halt sehr elegant - weil der Bildschirm über Bewegungsmelder gesteuert wurde und nicht über starre Zeiten der Inaktivität - aber noch viel besser - er ist halt automatisch angegangen sobald man das Zimmer betreten hat. Ich finde solche Updates einfach beschi...en. Dann soll man es halt sicher machen oder man nutzt es auf eigenes Risiko.

                        Entweder nehm ich halt den blöden Bildschirmschoner - dann muss man halt immer ne Maus bewegen oder ich hab auch noch einen Shelly über und hänge den Monitor ganz hin - dann wird gar kein Strom mehr gebraucht - wenn niemand im Zimmer ist.

                        Thomas Braun 1 Reply Last reply Reply Quote 0
                        • Thomas Braun
                          Thomas Braun Most Active @mickym last edited by

                          @mickym sagte in Raspberry Kernel Update:

                          Can't open display

                          Möglich das man dafür in der Gruppe 'video' sein muss. Sollte aber eh der Fall sein.

                          xrandr
                          

                          oder

                          sudo xrandr
                          

                          sagt?

                          mickym 1 Reply Last reply Reply Quote 0
                          • mickym
                            mickym Most Active @Thomas Braun last edited by mickym

                            @thomas-braun

                            pi@MWHome2:~ $ xrandr
                            Can't open display
                            pi@MWHome2:~ $ sudo xrandr
                            Can't open display
                            pi@MWHome2:~ $
                            

                            pi ist in Gruppe video.

                            M 1 Reply Last reply Reply Quote 0
                            • M
                              mrjeschke @mickym last edited by

                              @mickym
                              Musste gerade feststellen das ich das gleiche Problem habe.
                              Ausschalten kann ich den Monitor über

                              pi@DietPi:~$ export DISPLAY=:0.0
                              pi@DietPi:~$ xrandr --output HDMI-1 --off
                              

                              Einschalten geht über

                              pi@DietPi:~$ xrandr --output HDMI-1 --auto
                              
                              mickym 2 Replies Last reply Reply Quote 0
                              • mickym
                                mickym Most Active @mrjeschke last edited by

                                @maik-0
                                @Thomas-Braun

                                Ja und ich bin soooo blöd.😬 😬 😬

                                Man muss das Kommando tatsächlich auf der Maschine eingeben, an der der Bildschirm hängt. Das war bei dem vcgencmd nicht so, da ging das auch über ssh.

                                Das Ausschalten geht so. - Ich muss nun schauen, ob ich es via NodeRed steuern kann.

                                Thomas Braun 1 Reply Last reply Reply Quote 0
                                • Thomas Braun
                                  Thomas Braun Most Active @mickym last edited by Thomas Braun

                                  @mickym sagte in Raspberry Kernel Update:

                                  Das war bei dem vcgencmd nicht so, da ging das auch über ssh.

                                  Das ist klar, X wird nicht (ohne weiteres) über ssh geroutet.
                                  Hier kämpfen auch einige damit:
                                  https://www.linuxquestions.org/questions/linux-general-1/xrandr-from-remote-through-ssh-869084/

                                  mickym 1 Reply Last reply Reply Quote 0
                                  • mickym
                                    mickym Most Active @Thomas Braun last edited by

                                    @thomas-braun Das Ausschalten ging, aber ich habe nun das Problem wie ich das wieder anbekomme.

                                    1 Reply Last reply Reply Quote 0
                                    • mickym
                                      mickym Most Active @mrjeschke last edited by mickym

                                      @mrjeschke
                                      @Thomas-Braun

                                      So vielen Dank an Euch beide. Wichtig war noch der Export dieser Umgebungsvariable DISPLAY=0.0 - damit ist es dann auch möglich remote und über SSH den Bildschirm wieder zu schalten. Außerdem muss man noch Berechtigungen vergeben, damit das ganze auch für andere Benutzer funktioniert. Für NodeRed muss man dann noch ein paar Verrenkungen machen. Da muss ich wohl @apollon77 bitten wieder eine Variable für die settings.js bereitzustellen, damit man in der Laufzeitumgebung des NodeRed Prozesses Umgebungsvariablen definieren kann.

                                      Als erstes damit der Benutzer iobroker das Ganze auch ausführen darf, muss man die Zugriffsrechte anpassen und zwar muss das wohl bei jedem Neustart des Systems neu erfolgen, kann man wohl nicht konfigurieren. Ich habe diesen Zugriffscheck abgeschaltet mit xhost +.

                                      Es langt wenn man es für den Benutzer pi ins Anmeldeprofil schreibt, da sich dieser ja eh automatisch anmeldet.

                                      Die beiden Befehle habe ich also in die .profile im Homeverzeichnis des pi angehängt:

                                      export DISPLAY=:0.0
                                      xhost +
                                      

                                      Dann war die Herausforderung diese DISPLAY Umgebungsvariable in dem Prozess, in dem node-red läuft zugänglich zu machen, wie oben bereits erwähnt.

                                      Man kann folgendenen Eintrag in die settings.js machen bevor die module.export section beginnt - also entweder ganz am Anfang oder ganz am Ende.

                                      process.env.DISPLAY=':0.0';
                                      

                                      Wenn man es nicht macht - dann bekommt man immer als RC=1 zurück, wenn man die xrandr Befehle ausführen will.

                                      Ansonsten kann man dann prüfen, dass der Returncode 0 ist - also alles in Ordnung ist. Und kann dann an bzw. true in auto und false bzw, aus in off übersetzen und an den Befehlsrumpf angehängt.

                                      xrandr --output HDMI-1 <--off|--auto>
                                      

                                      3405251b-b031-41d9-8c15-6946a87dcc76-image.png

                                      Danke an alle die mir geholfen haben. 🙂

                                      mickym Sminter 2 Replies Last reply Reply Quote 0
                                      • mickym
                                        mickym Most Active @mickym last edited by

                                        Das Einzige - was etwas offen ist - das ich bisher nichts gefunden habe, wie bei dem vcgencmd Befehl, das mir den aktuellen Status zurückliefert. Das ist nicht ganz so schlimm, wenn man eh nur an einer Stelle schaltet und halt sobald die Maschine hochgefahren ist, einen definierten Status schaltet.

                                        1 Reply Last reply Reply Quote 0
                                        • Sminter
                                          Sminter @mickym last edited by

                                          @mickym Danke, genau das habe ich gesucht: Die Steuerung des Bildschirms per NodeRed. Kannst du mir noch den Export deines Flows zukommen lassen?
                                          Da ich mich noch nicht lange mit dem Pi beschäftige. Wo finde ich die zwei anzupassenden Dateien auf dem Pi 4?

                                          mickym 1 Reply Last reply Reply Quote 0
                                          • mickym
                                            mickym Most Active @Sminter last edited by mickym

                                            @sminter Na wenn du all das gemacht hast, was ich unten beschrieben habe - der Flow ist quasi nur der Aufruf der Befehle:

                                            769866ee-2af9-4dcc-9c1c-055e925955cc-image.png

                                            Mit true und false schalte ich den Monitor an und aus:

                                            Hier der Flow:

                                            [
                                               {
                                                   "id": "226756a3.c3f79a",
                                                   "type": "exec",
                                                   "z": "2364426f.ac30ce",
                                                   "command": "xrandr --output HDMI-1 ",
                                                   "addpay": "payload",
                                                   "append": "",
                                                   "useSpawn": "true",
                                                   "timer": "10",
                                                   "winHide": false,
                                                   "oldrc": false,
                                                   "name": "",
                                                   "x": 770,
                                                   "y": 1840,
                                                   "wires": [
                                                       [
                                                           "7220811b.4bd39"
                                                       ],
                                                       [
                                                           "7220811b.4bd39"
                                                       ],
                                                       [
                                                           "830e8b336da27104"
                                                       ]
                                                   ]
                                               },
                                               {
                                                   "id": "3b699dd31190819f",
                                                   "type": "change",
                                                   "z": "2364426f.ac30ce",
                                                   "name": "translate",
                                                   "rules": [
                                                       {
                                                           "t": "change",
                                                           "p": "payload",
                                                           "pt": "msg",
                                                           "from": "true",
                                                           "fromt": "bool",
                                                           "to": "--auto",
                                                           "tot": "str"
                                                       },
                                                       {
                                                           "t": "change",
                                                           "p": "payload",
                                                           "pt": "msg",
                                                           "from": "false",
                                                           "fromt": "bool",
                                                           "to": "--off",
                                                           "tot": "str"
                                                       }
                                                   ],
                                                   "action": "",
                                                   "property": "",
                                                   "from": "",
                                                   "to": "",
                                                   "reg": false,
                                                   "x": 560,
                                                   "y": 1840,
                                                   "wires": [
                                                       [
                                                           "226756a3.c3f79a"
                                                       ]
                                                   ]
                                               }
                                            ]
                                            

                                            Die anderen Dateien habe ich in dem Post beschrieben. Die .profile im Homeverzeichnis des pi.

                                            7e5bc690-d600-4631-b6fb-cbf353059581-image.png

                                            Den export der Variablen, wie gesagt in der settings.js - da musst Du das template editieren. Leider - da es nicht in die Adapterkonfiguration übernommen wird, bei jedem Update erneut ändern:

                                            Die template settings.js findest Du unter dem Verzeichnis:

                                            /opt/iobroker/node_modules/iobroker.node-red
                                            

                                            b2b247ae-37c1-4dec-96be-84616abf9d4d-image.png

                                            Sminter 1 Reply Last reply Reply Quote 0
                                            • First post
                                              Last post

                                            Support us

                                            ioBroker
                                            Community Adapters
                                            Donate
                                            FAQ Cloud / IOT
                                            HowTo: Node.js-Update
                                            HowTo: Backup/Restore
                                            Downloads
                                            BLOG

                                            648
                                            Online

                                            31.6k
                                            Users

                                            79.5k
                                            Topics

                                            1.3m
                                            Posts

                                            9
                                            42
                                            5934
                                            Loading More Posts
                                            • Oldest to Newest
                                            • Newest to Oldest
                                            • Most Votes
                                            Reply
                                            • Reply as topic
                                            Log in to reply
                                            Community
                                            Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen
                                            The ioBroker Community 2014-2023
                                            logo