Skip to content
  • Home
  • Aktuell
  • Tags
  • 0 Ungelesen 0
  • Kategorien
  • Unreplied
  • Beliebt
  • GitHub
  • Docu
  • Hilfe
Skins
  • Light
  • Brite
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Standard: (Kein Skin)
  • Kein Skin
Einklappen
ioBroker Logo

Community Forum

donate donate
  1. ioBroker Community Home
  2. Deutsch
  3. Skripten / Logik
  4. Blockly
  5. blockly exec scrot

NEWS

  • Weihnachtsangebot 2025! 🎄
    BluefoxB
    Bluefox
    23
    1
    1.3k

  • UPDATE 31.10.: Amazon Alexa - ioBroker Skill läuft aus ?
    apollon77A
    apollon77
    48
    3
    9.3k

  • Monatsrückblick – September 2025
    BluefoxB
    Bluefox
    14
    1
    2.5k

blockly exec scrot

Geplant Angeheftet Gesperrt Verschoben Blockly
15 Beiträge 3 Kommentatoren 890 Aufrufe 3 Watching
  • Älteste zuerst
  • Neuste zuerst
  • Meiste Stimmen
Antworten
  • In einem neuen Thema antworten
Anmelden zum Antworten
Dieses Thema wurde gelöscht. Nur Nutzer mit entsprechenden Rechten können es sehen.
  • S Offline
    S Offline
    schween
    schrieb am zuletzt editiert von
    #1

    Hallo Zusammen,

    ich möchte gern per Blockly-Script einen Screenshot vom Desktop per Telegram verschicken. Zum Erstellen von Screenshots habe ich per ssh scrot installiert. Von der Console aus funktioniert das Erstellen von Screenshots mit scrot wunderbar. Leider funktioniert scrot aber über den exec-block nicht, vermutlich weil dort ja der user iobroker aktiv ist.
    Ich kenne mich leider mit Linux nicht so gut aus.....gibt es eine Möglichkeit dem User iobroker das Ausführen von scrot zu erlauben, so dass ich per Blockly-Exec scrot aufrufen und den Screenshot dann per Telegram verschicken kann? Mit sudo -u usw. bin ich leider nicht weiter gekommen.

    Vielleicht hat ja jemand einen Tipp für mich?

    Viele Grüße,
    Schween

    Raspi4, Conbee2 USB Zigbee

    1 Antwort Letzte Antwort
    0
    • BananaJoeB Offline
      BananaJoeB Offline
      BananaJoe
      Most Active
      schrieb am zuletzt editiert von
      #2

      @schween du kannst in einer Shell-Sitzung auf deinem Linux-Server per

      sudo -u iobroker /usr/bin/bash
      

      eine Shell als ioBroker Benutzer erhalten und dann mit scrot rumtesten ob es geht.
      ggf. muss der ioBroker-Benutzer ein sudo voranstellen.

      Wenn er dann aber ein Passwort will kannst du die sudoers Datei bearbeiten mit

      visudo /etc/sudoers
      

      bearbeiten und ans Ende eine Zeile wie

      iobroker ALL=(ALL) NOPASSWD: /pfad/zu/scrot
      

      anhängen, dann sollte der iobroker Benutzer das ohne Passwort aufrufen können.
      Der große Hammer wäre

      iobroker ALL=(ALL) NOPASSWD: ALL
      

      Dann darf der alles sudo'n ohne Passwort

      ioBroker@Ubuntu 24.04 LTS (VMware) für: >260 Geräte, 5 Switche, 7 AP, 9 IP-Cam, 1 NAS 42TB, 1 ESXi 15TB, 4 Proxmox 1TB, 1 Hyper-V 48TB, 14 x Echo, 5x FireTV, 5 x Tablett/Handy VIS || >=160 Tasmota/Shelly || >=95 ZigBee || PV 8.1kW / Akku 14kWh || 2x USV 750W kaskadiert || Creality CR-10 SE 3D-Drucker

      S 1 Antwort Letzte Antwort
      0
      • BananaJoeB BananaJoe

        @schween du kannst in einer Shell-Sitzung auf deinem Linux-Server per

        sudo -u iobroker /usr/bin/bash
        

        eine Shell als ioBroker Benutzer erhalten und dann mit scrot rumtesten ob es geht.
        ggf. muss der ioBroker-Benutzer ein sudo voranstellen.

        Wenn er dann aber ein Passwort will kannst du die sudoers Datei bearbeiten mit

        visudo /etc/sudoers
        

        bearbeiten und ans Ende eine Zeile wie

        iobroker ALL=(ALL) NOPASSWD: /pfad/zu/scrot
        

        anhängen, dann sollte der iobroker Benutzer das ohne Passwort aufrufen können.
        Der große Hammer wäre

        iobroker ALL=(ALL) NOPASSWD: ALL
        

        Dann darf der alles sudo'n ohne Passwort

        S Offline
        S Offline
        schween
        schrieb am zuletzt editiert von
        #3

        @bananajoe said in blockly exec scrot:

        iobroker ALL=(ALL) NOPASSWD: ALL

        Hallo BananaJoe,

        Danke für deine schnelle Antwort!
        Ich habe zum testen mal den "großen Hammer" in die /etc/sudoers eingefügt.
        Wenn ich dann als user iobroker scrot mit sudo starte, erhalte ich folgende Fehlermeldung:

        No protocol specified
        Can't open X display. It is running, yeah? [:0]

        Hast du noch eine Idee?

        VG,
        Schween

        Raspi4, Conbee2 USB Zigbee

        BananaJoeB 1 Antwort Letzte Antwort
        0
        • S schween

          @bananajoe said in blockly exec scrot:

          iobroker ALL=(ALL) NOPASSWD: ALL

          Hallo BananaJoe,

          Danke für deine schnelle Antwort!
          Ich habe zum testen mal den "großen Hammer" in die /etc/sudoers eingefügt.
          Wenn ich dann als user iobroker scrot mit sudo starte, erhalte ich folgende Fehlermeldung:

          No protocol specified
          Can't open X display. It is running, yeah? [:0]

          Hast du noch eine Idee?

          VG,
          Schween

          BananaJoeB Offline
          BananaJoeB Offline
          BananaJoe
          Most Active
          schrieb am zuletzt editiert von
          #4

          @schween unter welchem Benutzer funktioniert es denn? Wenn das zufällig auch der ist der an der GUI angemeldet ist ... müsste man zu diesem wechseln per sudo.

          Ich hab mir mal schnell die Anleitung dazu angesehen, das scheint ja eher dafür gedacht zu sein für einen selbst Screenshots durchzuführen.

          Funktioniert das Tool in einer SSH Sitzung von einem anderen Rechner aus?
          Wie oft / wann / aus welchem Grund / bei welchem Ereignis brauchst du die Screenshots?

          ioBroker@Ubuntu 24.04 LTS (VMware) für: >260 Geräte, 5 Switche, 7 AP, 9 IP-Cam, 1 NAS 42TB, 1 ESXi 15TB, 4 Proxmox 1TB, 1 Hyper-V 48TB, 14 x Echo, 5x FireTV, 5 x Tablett/Handy VIS || >=160 Tasmota/Shelly || >=95 ZigBee || PV 8.1kW / Akku 14kWh || 2x USV 750W kaskadiert || Creality CR-10 SE 3D-Drucker

          S 1 Antwort Letzte Antwort
          0
          • BananaJoeB BananaJoe

            @schween unter welchem Benutzer funktioniert es denn? Wenn das zufällig auch der ist der an der GUI angemeldet ist ... müsste man zu diesem wechseln per sudo.

            Ich hab mir mal schnell die Anleitung dazu angesehen, das scheint ja eher dafür gedacht zu sein für einen selbst Screenshots durchzuführen.

            Funktioniert das Tool in einer SSH Sitzung von einem anderen Rechner aus?
            Wie oft / wann / aus welchem Grund / bei welchem Ereignis brauchst du die Screenshots?

            S Offline
            S Offline
            schween
            schrieb am zuletzt editiert von
            #5

            @bananajoe

            Ja, der Desktop und die Anwendung (Divera247 / Einsatzmonitor für die Feuerwehr, eine Webseite im Kioskmodus) laufen unter einem anderen User. Wenn ich mich von einem anderen Rechner per SSH einlogge, dann funktioniert Scrot per Konsole einwandfrei. Es liegt eindeutig an den Rechten vom IOBroker-User. Wie kann ich das bloß umgehen?

            Ich möchte per Telegram mit dem Screenshot nur auf die Schnelle kontrollieren können ob der Einsatzmonitor noch einwandfrei angezeigt wird. Ansonsten müsste ich aktiv werden. Also starte ich Scrot per Telegram und Text2Commands um mir dann den Screenshot per Telegram anzeigen zu lassen. Das funktioniert soweit auch gut, aber nur wenn ich Scrot manuell pet SSH mit dem anderen User Aufrufe. Per Blockly-Exec läuft das dann ja über den IObroker-User der das scheinbar nicht darf.

            Wie kann man das evtl. umgehen?

            Vielen Dank schon mal für deine Mühe!

            VG,
            Schween

            Raspi4, Conbee2 USB Zigbee

            Thomas BraunT BananaJoeB 2 Antworten Letzte Antwort
            0
            • S schween

              @bananajoe

              Ja, der Desktop und die Anwendung (Divera247 / Einsatzmonitor für die Feuerwehr, eine Webseite im Kioskmodus) laufen unter einem anderen User. Wenn ich mich von einem anderen Rechner per SSH einlogge, dann funktioniert Scrot per Konsole einwandfrei. Es liegt eindeutig an den Rechten vom IOBroker-User. Wie kann ich das bloß umgehen?

              Ich möchte per Telegram mit dem Screenshot nur auf die Schnelle kontrollieren können ob der Einsatzmonitor noch einwandfrei angezeigt wird. Ansonsten müsste ich aktiv werden. Also starte ich Scrot per Telegram und Text2Commands um mir dann den Screenshot per Telegram anzeigen zu lassen. Das funktioniert soweit auch gut, aber nur wenn ich Scrot manuell pet SSH mit dem anderen User Aufrufe. Per Blockly-Exec läuft das dann ja über den IObroker-User der das scheinbar nicht darf.

              Wie kann man das evtl. umgehen?

              Vielen Dank schon mal für deine Mühe!

              VG,
              Schween

              Thomas BraunT Online
              Thomas BraunT Online
              Thomas Braun
              Most Active
              schrieb am zuletzt editiert von
              #6

              @schween sagte in blockly exec scrot:

              Wie kann ich das bloß umgehen?

              Am besten gar nicht.
              Und auch am besten gar keinen Desktop auf einem Server laufen lassen.

              Versuch es mit dem divera24-Adapter:
              https://forum.iobroker.net/topic/41095/neuer-adapter-divera-24-7?_=1662728859069

              Der dürfte solche Verrenkungen nicht erfordern.

              Linux-Werkzeugkasten:
              https://forum.iobroker.net/topic/42952/der-kleine-iobroker-linux-werkzeugkasten
              NodeJS Fixer Skript:
              https://forum.iobroker.net/topic/68035/iob-node-fix-skript
              iob_diag: curl -sLf -o diag.sh https://iobroker.net/diag.sh && bash diag.sh

              S 1 Antwort Letzte Antwort
              0
              • S schween

                @bananajoe

                Ja, der Desktop und die Anwendung (Divera247 / Einsatzmonitor für die Feuerwehr, eine Webseite im Kioskmodus) laufen unter einem anderen User. Wenn ich mich von einem anderen Rechner per SSH einlogge, dann funktioniert Scrot per Konsole einwandfrei. Es liegt eindeutig an den Rechten vom IOBroker-User. Wie kann ich das bloß umgehen?

                Ich möchte per Telegram mit dem Screenshot nur auf die Schnelle kontrollieren können ob der Einsatzmonitor noch einwandfrei angezeigt wird. Ansonsten müsste ich aktiv werden. Also starte ich Scrot per Telegram und Text2Commands um mir dann den Screenshot per Telegram anzeigen zu lassen. Das funktioniert soweit auch gut, aber nur wenn ich Scrot manuell pet SSH mit dem anderen User Aufrufe. Per Blockly-Exec läuft das dann ja über den IObroker-User der das scheinbar nicht darf.

                Wie kann man das evtl. umgehen?

                Vielen Dank schon mal für deine Mühe!

                VG,
                Schween

                BananaJoeB Offline
                BananaJoeB Offline
                BananaJoe
                Most Active
                schrieb am zuletzt editiert von BananaJoe
                #7

                @schween du könntest auf dem anderen rechner auch lokal einen Cron-Job laufen lassen der alle x Minuten einen Screnshot ablegt (und überschreibt).

                Dann müsstest du nur noch prüfen ob ein Screenshot da ist, wie alt der ist (Änderungsdatum) und kannst ihn dir senden lassen.

                Ob du per SSH, SCP oder NFS Freigabe etc. holst - wie du willst.
                Der cronjob könnte die Bilddatei auch gleich rüberschieben, z.B. per scp

                ioBroker@Ubuntu 24.04 LTS (VMware) für: >260 Geräte, 5 Switche, 7 AP, 9 IP-Cam, 1 NAS 42TB, 1 ESXi 15TB, 4 Proxmox 1TB, 1 Hyper-V 48TB, 14 x Echo, 5x FireTV, 5 x Tablett/Handy VIS || >=160 Tasmota/Shelly || >=95 ZigBee || PV 8.1kW / Akku 14kWh || 2x USV 750W kaskadiert || Creality CR-10 SE 3D-Drucker

                S 2 Antworten Letzte Antwort
                0
                • Thomas BraunT Thomas Braun

                  @schween sagte in blockly exec scrot:

                  Wie kann ich das bloß umgehen?

                  Am besten gar nicht.
                  Und auch am besten gar keinen Desktop auf einem Server laufen lassen.

                  Versuch es mit dem divera24-Adapter:
                  https://forum.iobroker.net/topic/41095/neuer-adapter-divera-24-7?_=1662728859069

                  Der dürfte solche Verrenkungen nicht erfordern.

                  S Offline
                  S Offline
                  schween
                  schrieb am zuletzt editiert von
                  #8

                  @thomas-braun

                  Den Divera-Adapter habe ich selbstverständlich am laufen.
                  Der bietet allerdings keine Screenshot von dem Alarmmonitor im Webbrowser.

                  Der Raspi ist an einem 50"-Fernseher angeschlossen der sich im Alarmfall einschaltet und alle Einsatzdaten anzeigt sowie die Rückmeldungen der Kameraden. Das erfolgt über eine Webseite die immer wieder aktualisiert wird.
                  Der IOBroker wird dafür nicht zwingend benötigt. Damit kontrolliere ich nur den Raspi da er 24/7 unbeaufsichtigt läuft. Den eigentlichen Desktop habe ich auch überwiegend abgeschaltet. Der Kioskmodus mit der Webseite benötigt keinen Desktop.
                  Das ist also soweit alles kein Problem, das Thema hier sind die Rechte des Users iobroker und die Probleme damit.

                  VG,
                  Schween

                  Raspi4, Conbee2 USB Zigbee

                  1 Antwort Letzte Antwort
                  0
                  • BananaJoeB BananaJoe

                    @schween du könntest auf dem anderen rechner auch lokal einen Cron-Job laufen lassen der alle x Minuten einen Screnshot ablegt (und überschreibt).

                    Dann müsstest du nur noch prüfen ob ein Screenshot da ist, wie alt der ist (Änderungsdatum) und kannst ihn dir senden lassen.

                    Ob du per SSH, SCP oder NFS Freigabe etc. holst - wie du willst.
                    Der cronjob könnte die Bilddatei auch gleich rüberschieben, z.B. per scp

                    S Offline
                    S Offline
                    schween
                    schrieb am zuletzt editiert von
                    #9

                    @bananajoe

                    Danke für den Tipp! Das könnte funktionieren, ich werde es heute Abend mal testen.

                    Schöner wäre es allerdings, wenn es auch einfach per Exec mit dem User iobroker gehen würde. Dann würde Scrot nur laufen wenn ich sporadisch per Telegram einen Screenshot anfordere. Das erspart mir den Aufbau einer VPN-Verbindung und dem Einloggen per VNC, um den Bildschirminhalt zu kontrollieren....
                    Gibt es da keine Möglichkeit Scrot auch für den User iobroker zum laufen zu bekommen?

                    VG,
                    Schween

                    Raspi4, Conbee2 USB Zigbee

                    Thomas BraunT 1 Antwort Letzte Antwort
                    0
                    • S schween

                      @bananajoe

                      Danke für den Tipp! Das könnte funktionieren, ich werde es heute Abend mal testen.

                      Schöner wäre es allerdings, wenn es auch einfach per Exec mit dem User iobroker gehen würde. Dann würde Scrot nur laufen wenn ich sporadisch per Telegram einen Screenshot anfordere. Das erspart mir den Aufbau einer VPN-Verbindung und dem Einloggen per VNC, um den Bildschirminhalt zu kontrollieren....
                      Gibt es da keine Möglichkeit Scrot auch für den User iobroker zum laufen zu bekommen?

                      VG,
                      Schween

                      Thomas BraunT Online
                      Thomas BraunT Online
                      Thomas Braun
                      Most Active
                      schrieb am zuletzt editiert von
                      #10

                      @schween sagte in blockly exec scrot:

                      Gibt es da keine Möglichkeit Scrot auch für den User iobroker zum laufen zu bekommen?

                      DISPLAY exportieren. Aber wie gesagt, das will man nicht.

                      Linux-Werkzeugkasten:
                      https://forum.iobroker.net/topic/42952/der-kleine-iobroker-linux-werkzeugkasten
                      NodeJS Fixer Skript:
                      https://forum.iobroker.net/topic/68035/iob-node-fix-skript
                      iob_diag: curl -sLf -o diag.sh https://iobroker.net/diag.sh && bash diag.sh

                      S 1 Antwort Letzte Antwort
                      0
                      • Thomas BraunT Thomas Braun

                        @schween sagte in blockly exec scrot:

                        Gibt es da keine Möglichkeit Scrot auch für den User iobroker zum laufen zu bekommen?

                        DISPLAY exportieren. Aber wie gesagt, das will man nicht.

                        S Offline
                        S Offline
                        schween
                        schrieb am zuletzt editiert von
                        #11

                        @thomas-braun said in blockly exec scrot:

                        @schween sagte in blockly exec scrot:

                        Gibt es da keine Möglichkeit Scrot auch für den User iobroker zum laufen zu bekommen?

                        DISPLAY exportieren. Aber wie gesagt, das will man nicht.

                        Da weiss ich leider nicht was du damit meinst. In Linux bin ich leider schlecht.
                        Kannst Du mir das mal erklären? Vielleicht will ich das ja? 😉

                        VG

                        Raspi4, Conbee2 USB Zigbee

                        Thomas BraunT 1 Antwort Letzte Antwort
                        0
                        • S schween

                          @thomas-braun said in blockly exec scrot:

                          @schween sagte in blockly exec scrot:

                          Gibt es da keine Möglichkeit Scrot auch für den User iobroker zum laufen zu bekommen?

                          DISPLAY exportieren. Aber wie gesagt, das will man nicht.

                          Da weiss ich leider nicht was du damit meinst. In Linux bin ich leider schlecht.
                          Kannst Du mir das mal erklären? Vielleicht will ich das ja? 😉

                          VG

                          Thomas BraunT Online
                          Thomas BraunT Online
                          Thomas Braun
                          Most Active
                          schrieb am zuletzt editiert von Thomas Braun
                          #12

                          @schween sagte in blockly exec scrot:

                          In Linux bin ich leider schlecht.

                          Dann fummel das ganze Rechte- und Sicherheitskonzept beim X-Server erst auseinander, wenn du nicht mehr 'schlecht' bist.

                          Linux-Werkzeugkasten:
                          https://forum.iobroker.net/topic/42952/der-kleine-iobroker-linux-werkzeugkasten
                          NodeJS Fixer Skript:
                          https://forum.iobroker.net/topic/68035/iob-node-fix-skript
                          iob_diag: curl -sLf -o diag.sh https://iobroker.net/diag.sh && bash diag.sh

                          S 1 Antwort Letzte Antwort
                          0
                          • Thomas BraunT Thomas Braun

                            @schween sagte in blockly exec scrot:

                            In Linux bin ich leider schlecht.

                            Dann fummel das ganze Rechte- und Sicherheitskonzept beim X-Server erst auseinander, wenn du nicht mehr 'schlecht' bist.

                            S Offline
                            S Offline
                            schween
                            schrieb am zuletzt editiert von
                            #13

                            @thomas-braun

                            vielen Dank für Deine wertvollen Kommentare und Tipps! ...von solchen Usern lebt ein Forum :+1: :clap:

                            Raspi4, Conbee2 USB Zigbee

                            Thomas BraunT 1 Antwort Letzte Antwort
                            0
                            • S schween

                              @thomas-braun

                              vielen Dank für Deine wertvollen Kommentare und Tipps! ...von solchen Usern lebt ein Forum :+1: :clap:

                              Thomas BraunT Online
                              Thomas BraunT Online
                              Thomas Braun
                              Most Active
                              schrieb am zuletzt editiert von
                              #14

                              @schween Gerne.

                              Linux-Werkzeugkasten:
                              https://forum.iobroker.net/topic/42952/der-kleine-iobroker-linux-werkzeugkasten
                              NodeJS Fixer Skript:
                              https://forum.iobroker.net/topic/68035/iob-node-fix-skript
                              iob_diag: curl -sLf -o diag.sh https://iobroker.net/diag.sh && bash diag.sh

                              1 Antwort Letzte Antwort
                              0
                              • BananaJoeB BananaJoe

                                @schween du könntest auf dem anderen rechner auch lokal einen Cron-Job laufen lassen der alle x Minuten einen Screnshot ablegt (und überschreibt).

                                Dann müsstest du nur noch prüfen ob ein Screenshot da ist, wie alt der ist (Änderungsdatum) und kannst ihn dir senden lassen.

                                Ob du per SSH, SCP oder NFS Freigabe etc. holst - wie du willst.
                                Der cronjob könnte die Bilddatei auch gleich rüberschieben, z.B. per scp

                                S Offline
                                S Offline
                                schween
                                schrieb am zuletzt editiert von
                                #15

                                @bananajoe

                                Danke für diese einfache, aber gute Idee! Per Cron-Job funktioniert Scrot und ich kann mir nach Bedarf per Telegram den letzten Screenshot zuschicken lassen. Das reicht mir so vollkommen!

                                DANKE!!!

                                Raspi4, Conbee2 USB Zigbee

                                1 Antwort Letzte Antwort
                                0
                                Antworten
                                • In einem neuen Thema antworten
                                Anmelden zum Antworten
                                • Älteste zuerst
                                • Neuste zuerst
                                • Meiste Stimmen


                                Support us

                                ioBroker
                                Community Adapters
                                Donate

                                494

                                Online

                                32.5k

                                Benutzer

                                81.7k

                                Themen

                                1.3m

                                Beiträge
                                Community
                                Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen | Einwilligungseinstellungen
                                ioBroker Community 2014-2025
                                logo
                                • Anmelden

                                • Du hast noch kein Konto? Registrieren

                                • Anmelden oder registrieren, um zu suchen
                                • Erster Beitrag
                                  Letzter Beitrag
                                0
                                • Home
                                • Aktuell
                                • Tags
                                • Ungelesen 0
                                • Kategorien
                                • Unreplied
                                • Beliebt
                                • GitHub
                                • Docu
                                • Hilfe