Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. Blockly
    5. Linux PC in Bereitschaft versetzen exec

    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

    Linux PC in Bereitschaft versetzen exec

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

      Morgen Jungs,
      Ich würde gerne meinen Linux PC über Blockly in den Ruhezustand setzen..
      ioBroker läuft auf der Syno im Docker, in der Konsole klappt mein vorhaben schonmal wunderbar

      ssh sigi@192.168.54.48 sudo /usr/sbin/pm-suspend
      

      Der Remote Rechner geht in die Bereitschaft. Nur über Blockly und exec will es noch nicht laufen

      Ich hab mir ein relativ einfaches Blockly gebaut, wird der Datenpunkt auf wahr geswitcht soll der Rechner in die Bereitschaft geschickt werden..
      "Erlaube Kommando exec" im JS Adapter habe ich gesetzt.
      Hier mal ein Screenshot meines Blocklys

      Screenshot (86).png

      Laut Log wird der Befehl auch erfolgreich gesendet...
      Hat zu meinem Problem jemand ne Idee?

      liv-in-sky 1 Reply Last reply Reply Quote 0
      • liv-in-sky
        liv-in-sky @UncleB last edited by

        @UncleB damit du das ergebnis/fehler siehst kannst du folgendes machen:

        erzeuge eine variable die "result" heißt - wähle im exec-blockly mit ereignissen aus und setze direkt unter dem exec-blockly ein debug-blockly, die die variable result ausgibt - dann solltes du die antwort deines servers auf den befehl sehen

        Image 1.png

        hast du schon mal ein sudo vor ssh probiert ?

        1 Reply Last reply Reply Quote 0
        • Jey Cee
          Jey Cee Developer last edited by

          sudo erfordert die Eingabe des Passwortes für root rechte. Das geht aber so nicht mit exec, da die möglichkeit dazu fehlt.

          Am einfachsten wäre es die sudo Konfiguration für den Benutzer ioBroker so an zu passen das er den Befehl ohne Passwort eingabe ausführen kann.

          Hier mal ein Beispiel für ein Bash Script.

          liv-in-sky 1 Reply Last reply Reply Quote 0
          • liv-in-sky
            liv-in-sky @Jey Cee last edited by

            @Jey-Cee
            @UncleB

            da hat der jey-cee natürlich recht - hier ist noch ein thread, wo das behandelt wurde
            https://forum.iobroker.net/post/267424

            1 Reply Last reply Reply Quote 0
            • U
              UncleB last edited by

              Danke fpr den Tipp live-in-sky, und sudo ist ja miteingebaut wie man im Screenshot sehen kann.
              @Jey-Cee habe den Benutzer sudo ohne PW für die Befehle erlaubt.

              %sigi ALL=NOPASSWD: /sbin/shutdown, /sbin/reboot, /usr/sbin/pm-suspend, /usr/sbin/pm-hibernate
              
              

              Und direkt aus der Konsole des Systems auf dem ioBroker läuft klappt das ja auch wunderbar..
              Nur nicht über exec und Blockly..

              Aber ich sehe mir mal die Bash Methode an

              Jey Cee AlCalzone 2 Replies Last reply Reply Quote 0
              • Jey Cee
                Jey Cee Developer @UncleB last edited by Jey Cee

                @UncleB sagte in Linux PC in Bereitschaft versetzen exec:

                Nur nicht über exec und Blockly..

                Das liegt sicher daran das du NICHT den Benutzer iobroker eingetragen hast.

                EDIT: Nicht gecheckt das es um Remote geht, also vergiss es.

                1 Reply Last reply Reply Quote 0
                • AlCalzone
                  AlCalzone Developer @UncleB last edited by

                  @UncleB Wie loggt sich der User sigi auf dem entfernten Rechner ein?
                  Anhand des Befehls würde ich schätzen mit einem Zertifikat. Da besteht aber das Problem, dass ioBroker im Kontext des Users iobroker läuft, in welchem das Zertifikat nicht zugreifbar ist.
                  Wenn du auf der Konsole bist, dürftest du als root angemeldet sein?

                  Wenn dem so ist:

                  1. "Logge" dich als ioBroker ein: sudo su -u iobroker -s /bin/bash
                  2. Installiere dort das Zertifikat für den User sigi
                  1 Reply Last reply Reply Quote 0
                  • First post
                    Last post

                  Support us

                  ioBroker
                  Community Adapters
                  Donate

                  760
                  Online

                  31.9k
                  Users

                  80.3k
                  Topics

                  1.3m
                  Posts

                  4
                  7
                  494
                  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