Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. Blockly
    5. blockly exec scrot

    NEWS

    • Neuer Blog: Fotos und Eindrücke aus Solingen

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

    • ioBroker goes Matter ... Matter Adapter in Stable

    blockly exec scrot

    This topic has been deleted. Only users with topic management privileges can see it.
    • S
      schween last edited by

      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

      1 Reply Last reply Reply Quote 0
      • BananaJoe
        BananaJoe Most Active last edited by

        @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 1 Reply Last reply Reply Quote 0
        • S
          schween @BananaJoe last edited by

          @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

          BananaJoe 1 Reply Last reply Reply Quote 0
          • BananaJoe
            BananaJoe Most Active @schween last edited by

            @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 1 Reply Last reply Reply Quote 0
            • S
              schween @BananaJoe last edited by

              @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 Braun BananaJoe 2 Replies Last reply Reply Quote 0
              • Thomas Braun
                Thomas Braun Most Active @schween last edited by

                @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 1 Reply Last reply Reply Quote 0
                • BananaJoe
                  BananaJoe Most Active @schween last edited by 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 2 Replies Last reply Reply Quote 0
                  • S
                    schween @Thomas Braun last edited by

                    @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

                    1 Reply Last reply Reply Quote 0
                    • S
                      schween @BananaJoe last edited by

                      @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 Braun 1 Reply Last reply Reply Quote 0
                      • Thomas Braun
                        Thomas Braun Most Active @schween last edited by

                        @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 1 Reply Last reply Reply Quote 0
                        • S
                          schween @Thomas Braun last edited by

                          @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 Braun 1 Reply Last reply Reply Quote 0
                          • Thomas Braun
                            Thomas Braun Most Active @schween last edited by 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 1 Reply Last reply Reply Quote 0
                            • S
                              schween @Thomas Braun last edited by

                              @thomas-braun

                              vielen Dank für Deine wertvollen Kommentare und Tipps! ...von solchen Usern lebt ein Forum 👍 👏

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

                                @schween Gerne.

                                1 Reply Last reply Reply Quote 0
                                • S
                                  schween @BananaJoe last edited by

                                  @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!!!

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

                                  Support us

                                  ioBroker
                                  Community Adapters
                                  Donate

                                  788
                                  Online

                                  31.9k
                                  Users

                                  80.1k
                                  Topics

                                  1.3m
                                  Posts

                                  3
                                  15
                                  658
                                  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