Skip to content
  • Home
  • Recent
  • Tags
  • 0 Unread 0
  • Categories
  • Unreplied
  • Popular
  • 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

  • Default (No Skin)
  • No Skin
Collapse
ioBroker Logo

Community Forum

donate donate
  1. ioBroker Community Home
  2. Deutsch
  3. Skripten / Logik
  4. Blockly
  5. jede Minute ein Bild downloaden und per sftp uploaden (mit Zeitstempel im Namen) geht das?

NEWS

  • Neuer ioBroker-Blog online: Monatsrückblick März/April 2026
    BluefoxB
    Bluefox
    5
    1
    129

  • Verwendung von KI bitte immer deutlich kennzeichnen
    HomoranH
    Homoran
    8
    1
    166

  • Monatsrückblick Januar/Februar 2026 ist online!
    BluefoxB
    Bluefox
    18
    1
    869

jede Minute ein Bild downloaden und per sftp uploaden (mit Zeitstempel im Namen) geht das?

Scheduled Pinned Locked Moved Blockly
blocklymonitoringmultimedia
16 Posts 3 Posters 2.1k Views 3 Watching
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • lost in translationL lost in translation

    @Kuddel
    Ich habe es mal getestet.
    Ich habe das mit dem Bewegungssensor entfernt und einen einfachen Timer davor gesetzt. Wenn das Skript läuft, dann werden laut log auch execs abgesetzt. Aber: Es passiert nix. Wenn ich den sudo wget befehl aus dem Log kopiere und im terminal ausführe, dann klappt es. Ebenso der scp Befehl. Nur das der scp nicht klappen kann, wenn die jpg Datei erst gar nicht geschrieben wurde, ist selbst mir klar.
    Ich habe den exec in den Einstellungen der javascript Instanz aktiviert. Hast Du eine Idee, woran es liegen könnte?

    ciao
    frank

    lost in translationL Offline
    lost in translationL Offline
    lost in translation
    wrote on last edited by
    #7

    @lost-in-translation

    Ich habe jetzt mal beim wget das sudo entfernt und siehe da, der wget klappt jetzt.
    Leider nicht der scp, was mir logisch erscheint, da nur pi den "Ausweis" hat, scp ohne Passwort zu machen.
    das javascript läuft aber unter dem user iobroker
    vom user iobroker weiss ich aber nicht das passwort.

    Wie stelle ich das an, das ich den user iobroker mit dem nötigen ssh Schlüssel ausstatte um einen scp auf mein NAS zu machen?
    Mit dem User pi habe ich das durch, da klappt der scp Befehl im Terminal.

    ciao

    frank

    1 Reply Last reply
    0
    • lost in translationL Offline
      lost in translationL Offline
      lost in translation
      wrote on last edited by
      #8

      Meine Idee gerade ist, der user iobroker darf kein sudo im javascript. Das würde es erklären. Sowohl der wget als auch der whoami laufen, die Dateien finde ich in der Konsole wieder. Eigentlich müsste der scp unter user pi meines Erachtens auch funktionieren, das kann ich aber nicht prüfen, da ich nicht an den user iobroker rankomme.

      Würde mich freuen, wenn mir mal jemand die Tomaten von den Augen nehmen könnte.

      ciao

      frank
      Hier mal mein Blockly:

      ```
      <xml xmlns="http://www.w3.org/1999/xhtml">
      <variables>
      <variable type="" id="jQ^$686N{uBqpW:3SG?B">zahl</variable>
      <variable type="" id="93iKlm8q,8t/S#zh{),">datum</variable>
      <variable type="" id="$#BWP))B5:wJCO:]03!">zeit</variable>
      <variable type="" id="I-JHB}{qxl!8uB~fDIM">dateiname</variable>
      </variables>
      <block type="variables_set" id="s_6@:)kLK#:H62wZEcqx" x="-812" y="-1337">
      <field name="VAR" id="jQ^$686N{uBqpW:3SG?B" variabletype="">zahl</field>
      <value name="VALUE">
      <block type="math_number" id="[:Ck1eHWT;j,1]5y/%3S">
      <field name="NUM">0</field>
      </block>
      </value>
      <next>
      <block type="schedule" id="rZ0t~6s+m/7u$vrlu
      Ts">
      <field name="SCHEDULE">
      /30 * 6-22 * * *</field>
      <next>
      <block type="variables_set" id="=RtnA{6UiK3sjAoO6Lza">
      <field name="VAR" id="93iKlm8q,8t/S#zh{),
      " variabletype="">datum</field>
      <value name="VALUE">
      <block type="time_get" id="3ZY(-gyrtBQByJM.+/~">
      <mutation format="true" language="false"></mutation>
      <field name="OPTION">custom</field>
      <field name="FORMAT">JJJJ-MM-TT</field>
      </block>
      </value>
      <next>
      <block type="variables_set" id="QWgD|dQePEx-,:KeB:B~">
      <field name="VAR" id="$#BWP))B
      5:wJCO:]03!" variabletype="">zeit</field>
      <value name="VALUE">
      <block type="time_get" id="x/]r.D=IKmR[H0mgA~SC">
      <mutation format="true" language="false"></mutation>
      <field name="OPTION">custom</field>
      <field name="FORMAT">SS.mm.ss</field>
      </block>
      </value>
      <next>
      <block type="variables_set" id=",/sWlnr!hpy6o,E^MyD">
      <field name="VAR" id="I-JHB}{qxl!8uB~fDIM" variabletype="">dateiname</field>
      <value name="VALUE">
      <block type="text_join" id="O6cv-G1Rf{UT}b;P%tr">
      <mutation items="5"></mutation>
      <value name="ADD0">
      <block type="variables_get" id=").6t[B9Z]x8~9NwusjT"> <field name="VAR" id="93iKlm8q,8t/S#zh{),_" variabletype="">datum</field> </block> </value> <value name="ADD1"> <block type="text" id="^N:t*:^^/LIc4zq[=m"> <field name="TEXT">__</field> </block> </value> <value name="ADD2"> <block type="variables_get" id="|]yL:G[QFV*wvhiq@4k9"> <field name="VAR" id="$#BWP))B*5:wJCO:]03!" variabletype="">zeit</field> </block> </value> <value name="ADD3"> <block type="text" id="K+;r0,bm+U{dUMdX5Gh-"> <field name="TEXT">_</field> </block> </value> <value name="ADD4"> <block type="text" id=";SgAZ-h6,y)_hoi(wnr">
      <field name="TEXT">Uhr__PflanzenCam.jpg</field>
      </block>
      </value>
      </block>
      </value>
      <next>
      <block type="exec" id="|)}c(Cq=HT2o+McH]wnJ">
      <mutation with_statement="false"></mutation>
      <field name="WITH_STATEMENT">FALSE</field>
      <field name="LOG">log</field>
      <value name="COMMAND">
      <shadow type="text" id=".W.b.](1gZ#(PZ,jO+dw">
      <field name="TEXT"></field>
      </shadow>
      <block type="text_join" id="WW-~4.F,w=O@Rh3aKhjb">
      <mutation items="3"></mutation>
      <value name="ADD0">
      <block type="text" id="|HV]oYje^/{^+-wFVv%"> <field name="TEXT">wget --output-document /opt/iobroker/kameras/kuechenfenster/</field> </block> </value> <value name="ADD1"> <block type="variables_get" id="=P?]fVIBS@__fQ!02{o+"> <field name="VAR" id="*I-JHB}{qxl!8uB~fDIM" variabletype="">dateiname</field> </block> </value> <value name="ADD2"> <block type="text" id="huw8PuMC.6y3LWV!kFk5"> <field name="TEXT"> 'http://192.168.nnn.mm/media/?user=admin&amp;pwd=&amp;action=snapshot'</field> </block> </value> </block> </value> <next> <block type="exec" id="DAuEe=)zDn3|2-Jxem3y"> <mutation with_statement="false"></mutation> <field name="WITH_STATEMENT">FALSE</field> <field name="LOG">log</field> <value name="COMMAND"> <shadow type="text" id="DMpMf4e*shRl5DSo54Kk"> <field name="TEXT"></field> </shadow> <block type="text_join" id="W)]5UOW#%2X3XvXXRxsV"> <mutation items="3"></mutation> <value name="ADD0"> <block type="text" id="ZW6H^$NkTnH;FgXFB]9">
      <field name="TEXT">sudo --user=pi scp /opt/iobroker/kameras/kuechenfenster/</field>
      </block>
      </value>
      <value name="ADD1">
      <block type="variables_get" id="=vi2Fze@bvK)@,}^P[4#">
      <field name="VAR" id="*I-JHB}{qxl!8uB~fDIM" variabletype="">dateiname</field>
      </block>
      </value>
      <value name="ADD2">
      <block type="text" id="O%bp-``m7/$7Hm6=i=E~">
      <field name="TEXT"> nasuser@192.168.nnn.mm:/volume1/dateien/Bilder/Kameras/Kuechenfenster/</field>
      </block>
      </value>
      </block>
      </value>
      <next>
      <block type="exec" id=";nc6VYP2VEhak
      $pTCH/">
      <mutation with_statement="false"></mutation>
      <field name="WITH_STATEMENT">FALSE</field>
      <field name="LOG">log</field>
      <value name="COMMAND">
      <shadow type="text" id="DMpMf4e
      shRl5DSo54Kk">
      <field name="TEXT"></field>
      </shadow>
      <block type="text_join" id="bsgM
      TK6n]5I$X_?iRR6">
      <mutation items="3"></mutation>
      <value name="ADD0">
      <block type="text" id="4|rA(/@Vu)tx+A#Z$rr.">
      <field name="TEXT">whoami >>/opt/iobroker/kameras/debug_</field>
      </block>
      </value>
      <value name="ADD1">
      <block type="variables_get" id="}m$%-:/zC$g_]f|vVcYH">
      <field name="VAR" id="*I-JHB}{qxl!8uB~fDIM" variabletype="">dateiname</field>
      </block>
      </value>
      <value name="ADD2">
      <block type="text" id="kMh=#gFC$)pP5$V~UxY"> <field name="TEXT">.txt</field> </block> </value> </block> </value> <next> <block type="math_change" id="5ovcK!yoC!0PGKOadT4j"> <field name="VAR" id="jQ^$686N{uBqpW:3SG?B" variabletype="">zahl</field> <value name="DELTA"> <shadow type="math_number" id="r0iu=G{HyR8eN~c$Rah{"> <field name="NUM">1</field> </shadow> </value> <next> <block type="controls_if" id="$Y]{P6I8TZlkigS,V$LR"> <value name="IF0"> <block type="logic_compare" id="B[Xbg;9t!k4(Ftz;)5kP"> <field name="OP">GT</field> <value name="A"> <block type="variables_get" id="gQYmatd15NKfoKe.U=LG"> <field name="VAR" id="jQ^$686N{uBqpW:3SG?B" variabletype="">zahl</field> </block> </value> <value name="B"> <block type="math_number" id="JQp-LEO26*;bo3sA[-P3"> <field name="NUM">100</field> </block> </value> </block> </value> <statement name="DO0"> <block type="timeouts_clearinterval" id="fR[z-H%r[__my1r?kl">
      <field name="NAME">Intervall</field>
      <next>
      <block type="exec" id="R=j$5si=9L(vBdN/n.|">
      <mutation with_statement="false"></mutation>
      <field name="WITH_STATEMENT">FALSE</field>
      <field name="LOG">log</field>
      <value name="COMMAND">
      <shadow type="text" id="uzQG_gzK+5$1X6
      OnDj{">
      <field name="TEXT">rm /opt/iobroker/kameras/kuechenfenster/
      .jpog (dieser Befehl absichtlich kaputt)</field>
      </shadow>
      </value>
      </block>
      </next>
      </block>
      </statement>
      </block>
      </next>
      </block>
      </next>
      </block>
      </next>
      </block>
      </next>
      </block>
      </next>
      </block>
      </next>
      </block>
      </next>
      </block>
      </next>
      </block>
      </next>
      </block>
      </xml>

      AlCalzoneA 1 Reply Last reply
      0
      • lost in translationL lost in translation

        Meine Idee gerade ist, der user iobroker darf kein sudo im javascript. Das würde es erklären. Sowohl der wget als auch der whoami laufen, die Dateien finde ich in der Konsole wieder. Eigentlich müsste der scp unter user pi meines Erachtens auch funktionieren, das kann ich aber nicht prüfen, da ich nicht an den user iobroker rankomme.

        Würde mich freuen, wenn mir mal jemand die Tomaten von den Augen nehmen könnte.

        ciao

        frank
        Hier mal mein Blockly:

        ```
        <xml xmlns="http://www.w3.org/1999/xhtml">
        <variables>
        <variable type="" id="jQ^$686N{uBqpW:3SG?B">zahl</variable>
        <variable type="" id="93iKlm8q,8t/S#zh{),">datum</variable>
        <variable type="" id="$#BWP))B5:wJCO:]03!">zeit</variable>
        <variable type="" id="I-JHB}{qxl!8uB~fDIM">dateiname</variable>
        </variables>
        <block type="variables_set" id="s_6@:)kLK#:H62wZEcqx" x="-812" y="-1337">
        <field name="VAR" id="jQ^$686N{uBqpW:3SG?B" variabletype="">zahl</field>
        <value name="VALUE">
        <block type="math_number" id="[:Ck1eHWT;j,1]5y/%3S">
        <field name="NUM">0</field>
        </block>
        </value>
        <next>
        <block type="schedule" id="rZ0t~6s+m/7u$vrlu
        Ts">
        <field name="SCHEDULE">
        /30 * 6-22 * * *</field>
        <next>
        <block type="variables_set" id="=RtnA{6UiK3sjAoO6Lza">
        <field name="VAR" id="93iKlm8q,8t/S#zh{),
        " variabletype="">datum</field>
        <value name="VALUE">
        <block type="time_get" id="3ZY(-gyrtBQByJM.+/~">
        <mutation format="true" language="false"></mutation>
        <field name="OPTION">custom</field>
        <field name="FORMAT">JJJJ-MM-TT</field>
        </block>
        </value>
        <next>
        <block type="variables_set" id="QWgD|dQePEx-,:KeB:B~">
        <field name="VAR" id="$#BWP))B
        5:wJCO:]03!" variabletype="">zeit</field>
        <value name="VALUE">
        <block type="time_get" id="x/]r.D=IKmR[H0mgA~SC">
        <mutation format="true" language="false"></mutation>
        <field name="OPTION">custom</field>
        <field name="FORMAT">SS.mm.ss</field>
        </block>
        </value>
        <next>
        <block type="variables_set" id=",/sWlnr!hpy6o,E^MyD">
        <field name="VAR" id="I-JHB}{qxl!8uB~fDIM" variabletype="">dateiname</field>
        <value name="VALUE">
        <block type="text_join" id="O6cv-G1Rf{UT}b;P%tr">
        <mutation items="5"></mutation>
        <value name="ADD0">
        <block type="variables_get" id=").6t[B9Z]x8~9NwusjT"> <field name="VAR" id="93iKlm8q,8t/S#zh{),_" variabletype="">datum</field> </block> </value> <value name="ADD1"> <block type="text" id="^N:t*:^^/LIc4zq[=m"> <field name="TEXT">__</field> </block> </value> <value name="ADD2"> <block type="variables_get" id="|]yL:G[QFV*wvhiq@4k9"> <field name="VAR" id="$#BWP))B*5:wJCO:]03!" variabletype="">zeit</field> </block> </value> <value name="ADD3"> <block type="text" id="K+;r0,bm+U{dUMdX5Gh-"> <field name="TEXT">_</field> </block> </value> <value name="ADD4"> <block type="text" id=";SgAZ-h6,y)_hoi(wnr">
        <field name="TEXT">Uhr__PflanzenCam.jpg</field>
        </block>
        </value>
        </block>
        </value>
        <next>
        <block type="exec" id="|)}c(Cq=HT2o+McH]wnJ">
        <mutation with_statement="false"></mutation>
        <field name="WITH_STATEMENT">FALSE</field>
        <field name="LOG">log</field>
        <value name="COMMAND">
        <shadow type="text" id=".W.b.](1gZ#(PZ,jO+dw">
        <field name="TEXT"></field>
        </shadow>
        <block type="text_join" id="WW-~4.F,w=O@Rh3aKhjb">
        <mutation items="3"></mutation>
        <value name="ADD0">
        <block type="text" id="|HV]oYje^/{^+-wFVv%"> <field name="TEXT">wget --output-document /opt/iobroker/kameras/kuechenfenster/</field> </block> </value> <value name="ADD1"> <block type="variables_get" id="=P?]fVIBS@__fQ!02{o+"> <field name="VAR" id="*I-JHB}{qxl!8uB~fDIM" variabletype="">dateiname</field> </block> </value> <value name="ADD2"> <block type="text" id="huw8PuMC.6y3LWV!kFk5"> <field name="TEXT"> 'http://192.168.nnn.mm/media/?user=admin&amp;pwd=&amp;action=snapshot'</field> </block> </value> </block> </value> <next> <block type="exec" id="DAuEe=)zDn3|2-Jxem3y"> <mutation with_statement="false"></mutation> <field name="WITH_STATEMENT">FALSE</field> <field name="LOG">log</field> <value name="COMMAND"> <shadow type="text" id="DMpMf4e*shRl5DSo54Kk"> <field name="TEXT"></field> </shadow> <block type="text_join" id="W)]5UOW#%2X3XvXXRxsV"> <mutation items="3"></mutation> <value name="ADD0"> <block type="text" id="ZW6H^$NkTnH;FgXFB]9">
        <field name="TEXT">sudo --user=pi scp /opt/iobroker/kameras/kuechenfenster/</field>
        </block>
        </value>
        <value name="ADD1">
        <block type="variables_get" id="=vi2Fze@bvK)@,}^P[4#">
        <field name="VAR" id="*I-JHB}{qxl!8uB~fDIM" variabletype="">dateiname</field>
        </block>
        </value>
        <value name="ADD2">
        <block type="text" id="O%bp-``m7/$7Hm6=i=E~">
        <field name="TEXT"> nasuser@192.168.nnn.mm:/volume1/dateien/Bilder/Kameras/Kuechenfenster/</field>
        </block>
        </value>
        </block>
        </value>
        <next>
        <block type="exec" id=";nc6VYP2VEhak
        $pTCH/">
        <mutation with_statement="false"></mutation>
        <field name="WITH_STATEMENT">FALSE</field>
        <field name="LOG">log</field>
        <value name="COMMAND">
        <shadow type="text" id="DMpMf4e
        shRl5DSo54Kk">
        <field name="TEXT"></field>
        </shadow>
        <block type="text_join" id="bsgM
        TK6n]5I$X_?iRR6">
        <mutation items="3"></mutation>
        <value name="ADD0">
        <block type="text" id="4|rA(/@Vu)tx+A#Z$rr.">
        <field name="TEXT">whoami >>/opt/iobroker/kameras/debug_</field>
        </block>
        </value>
        <value name="ADD1">
        <block type="variables_get" id="}m$%-:/zC$g_]f|vVcYH">
        <field name="VAR" id="*I-JHB}{qxl!8uB~fDIM" variabletype="">dateiname</field>
        </block>
        </value>
        <value name="ADD2">
        <block type="text" id="kMh=#gFC$)pP5$V~UxY"> <field name="TEXT">.txt</field> </block> </value> </block> </value> <next> <block type="math_change" id="5ovcK!yoC!0PGKOadT4j"> <field name="VAR" id="jQ^$686N{uBqpW:3SG?B" variabletype="">zahl</field> <value name="DELTA"> <shadow type="math_number" id="r0iu=G{HyR8eN~c$Rah{"> <field name="NUM">1</field> </shadow> </value> <next> <block type="controls_if" id="$Y]{P6I8TZlkigS,V$LR"> <value name="IF0"> <block type="logic_compare" id="B[Xbg;9t!k4(Ftz;)5kP"> <field name="OP">GT</field> <value name="A"> <block type="variables_get" id="gQYmatd15NKfoKe.U=LG"> <field name="VAR" id="jQ^$686N{uBqpW:3SG?B" variabletype="">zahl</field> </block> </value> <value name="B"> <block type="math_number" id="JQp-LEO26*;bo3sA[-P3"> <field name="NUM">100</field> </block> </value> </block> </value> <statement name="DO0"> <block type="timeouts_clearinterval" id="fR[z-H%r[__my1r?kl">
        <field name="NAME">Intervall</field>
        <next>
        <block type="exec" id="R=j$5si=9L(vBdN/n.|">
        <mutation with_statement="false"></mutation>
        <field name="WITH_STATEMENT">FALSE</field>
        <field name="LOG">log</field>
        <value name="COMMAND">
        <shadow type="text" id="uzQG_gzK+5$1X6
        OnDj{">
        <field name="TEXT">rm /opt/iobroker/kameras/kuechenfenster/
        .jpog (dieser Befehl absichtlich kaputt)</field>
        </shadow>
        </value>
        </block>
        </next>
        </block>
        </statement>
        </block>
        </next>
        </block>
        </next>
        </block>
        </next>
        </block>
        </next>
        </block>
        </next>
        </block>
        </next>
        </block>
        </next>
        </block>
        </next>
        </block>
        </next>
        </block>
        </xml>

        AlCalzoneA Offline
        AlCalzoneA Offline
        AlCalzone
        Developer
        wrote on last edited by
        #9

        @lost-in-translation sagte in jede Minute ein Bild downloaden und per sftp uploaden (mit Zeitstempel im Namen) geht das?:

        Würde mich freuen, wenn mir mal jemand die Tomaten von den Augen nehmen könnte.

        Ich hab dir in nem anderen Thread geantwortet, wie du iobroker erlaubst, scp als pi auszuführen. Wenn ich das hier lese: ist es ggf. einfacher, direkt iobroker das Ausführen von scp ohne Passwort zu erlauben?

        Warum `sudo` böse ist: https://forum.iobroker.net/post/17109

        lost in translationL 1 Reply Last reply
        0
        • AlCalzoneA AlCalzone

          @lost-in-translation sagte in jede Minute ein Bild downloaden und per sftp uploaden (mit Zeitstempel im Namen) geht das?:

          Würde mich freuen, wenn mir mal jemand die Tomaten von den Augen nehmen könnte.

          Ich hab dir in nem anderen Thread geantwortet, wie du iobroker erlaubst, scp als pi auszuführen. Wenn ich das hier lese: ist es ggf. einfacher, direkt iobroker das Ausführen von scp ohne Passwort zu erlauben?

          lost in translationL Offline
          lost in translationL Offline
          lost in translation
          wrote on last edited by lost in translation
          #10

          @AlCalzone
          Ja, das denke ich auch.
          ich könnte ja ein Schlüsselpaar anlegen und im user iobroker entsprechend hinterlegen.
          Problem ist, ich bekomme keinen su iobroker hin.
          Das Rechtekonzept habe ich noch nicht vor Augen.

          wenn ich versuche einen su iobroker zu machen, gibt es folgende Meldung:

          root@ioBroker-RasPi:/home/pi# su iobroker
          This account is currently not available.
          root@ioBroker-RasPi:/home/pi#
          

          somit bleibt wohl nur iobroker sudo zu ermöglichen?

          ciao

          frank

          AlCalzoneA 1 Reply Last reply
          0
          • lost in translationL lost in translation

            @AlCalzone
            Ja, das denke ich auch.
            ich könnte ja ein Schlüsselpaar anlegen und im user iobroker entsprechend hinterlegen.
            Problem ist, ich bekomme keinen su iobroker hin.
            Das Rechtekonzept habe ich noch nicht vor Augen.

            wenn ich versuche einen su iobroker zu machen, gibt es folgende Meldung:

            root@ioBroker-RasPi:/home/pi# su iobroker
            This account is currently not available.
            root@ioBroker-RasPi:/home/pi#
            

            somit bleibt wohl nur iobroker sudo zu ermöglichen?

            ciao

            frank

            AlCalzoneA Offline
            AlCalzoneA Offline
            AlCalzone
            Developer
            wrote on last edited by
            #11

            @lost-in-translation sagte in jede Minute ein Bild downloaden und per sftp uploaden (mit Zeitstempel im Namen) geht das?:

            su iobroker

            Der User hat keine Login-Shell, die musst du "erzwingen" für solche Spielchen:
            su -s /bin/bash iobroker

            Warum `sudo` böse ist: https://forum.iobroker.net/post/17109

            lost in translationL 1 Reply Last reply
            0
            • AlCalzoneA AlCalzone

              @lost-in-translation sagte in jede Minute ein Bild downloaden und per sftp uploaden (mit Zeitstempel im Namen) geht das?:

              su iobroker

              Der User hat keine Login-Shell, die musst du "erzwingen" für solche Spielchen:
              su -s /bin/bash iobroker

              lost in translationL Offline
              lost in translationL Offline
              lost in translation
              wrote on last edited by lost in translation
              #12

              @AlCalzone
              Ich hab jetzt mit sudo den keygen im iobroker user ausgeführt und dann entsprechend den Schlüssel auf dem NAS hinterlegt.
              SCP funktioniert jetzt im iobroker user, ich benötige nicht mehr ein sudo für die Aufgabe.

              Aber: ich musste feststelen, dass die jpg unvollständig auf dem NAS ankamen. Offenbar wurde das kopieren bereits angefangen, bevor der wget zu Ende war.
              Ich habe jetzt 5 sekunden Wartezeit vorgesehen, aber so richtig elegant finde ich das nicht.

              8f3c78cd-5596-4f82-ab98-f627744bdb01-image.png

              Was bewirkt das Häkchen "mit Ergebnissen" könnte ich damit arbeiten? Mein Eindruck ist, der wget exec wird abgesetzt ohne das Ergebnis abzuwarten und der scp startet dann schneller als wget fertig wird. So wird nur ein viertel des jpg kopiert.

              andere mögliche Lösung wäre wget und scp in ein bash script zu stecken. Aber dann habe ich von diesem schönen grafischen Puzzle nichts.

              Deswegen meine Frage: wie erreiche ich, dass scp erst dann aufgerufen wird, wenn wget mit dem download fertig ist?
              Frage am Rande, wo ich mir den Screenshot anschaue: wo kann ich ein ticket für blockly erstellen? Das "ms" hinter "Sek" beim timeout macht nicht wirklich Sinn, denke ich.

              Und wo finde ich die genaue Beschreibung was Ausführen timeout in 5 Sek genau macht?

              Mein Intuitives Verständnis war: "geb den Befehlen hier drin 5 Sekunden ferdich zu werden, ansonsten kill"
              Das beobachtete Verhalten war: "warte 5 Sekunden, dann ..."
              ciao

              frank

              AlCalzoneA 1 Reply Last reply
              0
              • lost in translationL lost in translation

                @AlCalzone
                Ich hab jetzt mit sudo den keygen im iobroker user ausgeführt und dann entsprechend den Schlüssel auf dem NAS hinterlegt.
                SCP funktioniert jetzt im iobroker user, ich benötige nicht mehr ein sudo für die Aufgabe.

                Aber: ich musste feststelen, dass die jpg unvollständig auf dem NAS ankamen. Offenbar wurde das kopieren bereits angefangen, bevor der wget zu Ende war.
                Ich habe jetzt 5 sekunden Wartezeit vorgesehen, aber so richtig elegant finde ich das nicht.

                8f3c78cd-5596-4f82-ab98-f627744bdb01-image.png

                Was bewirkt das Häkchen "mit Ergebnissen" könnte ich damit arbeiten? Mein Eindruck ist, der wget exec wird abgesetzt ohne das Ergebnis abzuwarten und der scp startet dann schneller als wget fertig wird. So wird nur ein viertel des jpg kopiert.

                andere mögliche Lösung wäre wget und scp in ein bash script zu stecken. Aber dann habe ich von diesem schönen grafischen Puzzle nichts.

                Deswegen meine Frage: wie erreiche ich, dass scp erst dann aufgerufen wird, wenn wget mit dem download fertig ist?
                Frage am Rande, wo ich mir den Screenshot anschaue: wo kann ich ein ticket für blockly erstellen? Das "ms" hinter "Sek" beim timeout macht nicht wirklich Sinn, denke ich.

                Und wo finde ich die genaue Beschreibung was Ausführen timeout in 5 Sek genau macht?

                Mein Intuitives Verständnis war: "geb den Befehlen hier drin 5 Sekunden ferdich zu werden, ansonsten kill"
                Das beobachtete Verhalten war: "warte 5 Sekunden, dann ..."
                ciao

                frank

                AlCalzoneA Offline
                AlCalzoneA Offline
                AlCalzone
                Developer
                wrote on last edited by
                #13

                @lost-in-translation sagte in jede Minute ein Bild downloaden und per sftp uploaden (mit Zeitstempel im Namen) geht das?:

                Was bewirkt das Häkchen "mit Ergebnissen" könnte ich damit arbeiten.

                Die Namen der Optionen in Blockly sind IMO stark überarbeitungsbedürftig. Ich vermute, dass "mit Ergebnissen" auf die Beendung des Befehls wartet, also müsstest du es anhaken. Dann brauchst du auch kein Timeout, was versagen würde, wenn die Verbindung mal kurz langsam ist.

                Warum `sudo` böse ist: https://forum.iobroker.net/post/17109

                lost in translationL 2 Replies Last reply
                0
                • AlCalzoneA AlCalzone

                  @lost-in-translation sagte in jede Minute ein Bild downloaden und per sftp uploaden (mit Zeitstempel im Namen) geht das?:

                  Was bewirkt das Häkchen "mit Ergebnissen" könnte ich damit arbeiten.

                  Die Namen der Optionen in Blockly sind IMO stark überarbeitungsbedürftig. Ich vermute, dass "mit Ergebnissen" auf die Beendung des Befehls wartet, also müsstest du es anhaken. Dann brauchst du auch kein Timeout, was versagen würde, wenn die Verbindung mal kurz langsam ist.

                  lost in translationL Offline
                  lost in translationL Offline
                  lost in translation
                  wrote on last edited by lost in translation
                  #14

                  @AlCalzone
                  Wenn es mit dem Haken wartet, kann ich den Rest dann dahinter lassen, oder muss er dann in das neue Feld?
                  c9a52b7d-e7ac-4540-841f-d65126b1b392-image.png verschoben werden?

                  Wird bei "mit Ergebnissen" irgendeine Variable mit der Rückgabe belegt? Dann könnte ich es ja richtig sauber machen und nur bei Errorlevel 0 einen scp anstossen.

                  ciao
                  frank

                  AlCalzoneA 1 Reply Last reply
                  0
                  • AlCalzoneA AlCalzone

                    @lost-in-translation sagte in jede Minute ein Bild downloaden und per sftp uploaden (mit Zeitstempel im Namen) geht das?:

                    Was bewirkt das Häkchen "mit Ergebnissen" könnte ich damit arbeiten.

                    Die Namen der Optionen in Blockly sind IMO stark überarbeitungsbedürftig. Ich vermute, dass "mit Ergebnissen" auf die Beendung des Befehls wartet, also müsstest du es anhaken. Dann brauchst du auch kein Timeout, was versagen würde, wenn die Verbindung mal kurz langsam ist.

                    lost in translationL Offline
                    lost in translationL Offline
                    lost in translation
                    wrote on last edited by
                    #15

                    @AlCalzone

                    Hier mal, was ich jetzt daraus gebastelt habe: (Funktioniert im Moment sogar)

                    <xml xmlns="http://www.w3.org/1999/xhtml">
                    <variables>
                    <variable type="" id="]KG2pTxWjSC.613V+lKQ">Zaehler1</variable>
                    <variable type="" id="jQ^$686N{uBqpW:3SG?B">Zaehler2</variable>
                    <variable type="" id="93iKlm8q,8t/S#zh{),">datum</variable>
                    <variable type="" id="$#BWP))B*5:wJCO:]03!">zeit</variable>
                    <variable type="" id="*I-JHB}{qxl!8uB~fDIM">dateiname</variable>
                    <variable type="" id="eV)M8@BfUSafo])3ZCZ8">dateiname2</variable>
                    <variable type="undefined" id="timeout3">timeout3</variable>
                    <variable type="undefined" id="timeout2">timeout2</variable>
                    </variables>
                    <block type="schedule" id="x[c!kbcmnHF{C?Y.gwP$" x="-1363" y="-1862">
                    <field name="SCHEDULE">0 1 * * *</field>
                    <statement name="STATEMENT">
                    <block type="exec" id="}Azsy
                    /O^{44{K~t/W~">
                    <mutation with_statement="false"></mutation>
                    <field name="WITH_STATEMENT">FALSE</field>
                    <field name="LOG">log</field>
                    <value name="COMMAND">
                    <shadow type="text" id="v9IhEQ1htyy)%7ez3:5X">
                    <field name="TEXT">find /opt/iobroker/kameras/kamera1/ -name "
                    .jpg" -mtime +2 -delete</field>
                    </shadow>
                    </value>
                    <next>
                    <block type="exec" id="v$VxxuYHSM5MU~ml?">
                    <mutation with_statement="false"></mutation>
                    <field name="WITH_STATEMENT">FALSE</field>
                    <field name="LOG">log</field>
                    <value name="COMMAND">
                    <shadow type="text" id="3f(;CMm|SmAgfE:4CfG^">
                    <field name="TEXT">find /opt/iobroker/kameras/kamera2/ -name "*.jpg" -mtime +2 -delete</field>
                    </shadow>
                    </value>
                    </block>
                    </next>
                    </block>
                    </statement>
                    </block>
                    <block type="variables_set" id="+dwJ{B,6IiY^#AMn3)B-" x="-837" y="-1612">
                    <field name="VAR" id="]KG2pTxWjSC.613V+lKQ" variabletype="">Zaehler1</field>
                    <value name="VALUE">
                    <block type="math_number" id="qT5^MDKqE{mbdTOiV+z%">
                    <field name="NUM">0</field>
                    </block>
                    </value>
                    <next>
                    <block type="schedule" id="Ku]Rir#v#m6]aMU7b$w
                    ">
                    <field name="SCHEDULE">/30 * 6-22 * * </field>
                    <statement name="STATEMENT">
                    <block type="variables_set" id="BxR[(cW3vnABLM#$BY4W">
                    <field name="VAR" id="93iKlm8q,8t/S#zh{),_" variabletype="">datum</field>
                    <value name="VALUE">
                    <block type="time_get" id="
                    ?U-j9@KKeZNgnjYt3}d">
                    <mutation format="true" language="false"></mutation>
                    <field name="OPTION">custom</field>
                    <field name="FORMAT">JJJJ-MM-TT</field>
                    </block>
                    </value>
                    <next>
                    <block type="variables_set" id="Ey}0W
                    USW=mjj7A%L%wl">
                    <field name="VAR" id="$#BWP))B5:wJCO:]03!" variabletype="">zeit</field>
                    <value name="VALUE">
                    <block type="time_get" id="yD%]+{3^P+RaSV=#z98w">
                    <mutation format="true" language="false"></mutation>
                    <field name="OPTION">custom</field>
                    <field name="FORMAT">SS.mm.ss</field>
                    </block>
                    </value>
                    <next>
                    <block type="variables_set" id=",/sWlnr!hp
                    y6o,E^MyD">
                    <field name="VAR" id="I-JHB}{qxl!8uB~fDIM" variabletype="">dateiname</field>
                    <value name="VALUE">
                    <block type="text_join" id="O6cv-G1Rf{UT}b;P%_tr">
                    <mutation items="5"></mutation>
                    <value name="ADD0">
                    <block type="variables_get" id=").6t[B9Z]x8~9NwusjT"> <field name="VAR" id="93iKlm8q,8t/S#zh{),_" variabletype="">datum</field> </block> </value> <value name="ADD1"> <block type="text" id="^N:t*:^^/LIc4zq[=m"> <field name="TEXT">_</field> </block> </value> <value name="ADD2"> <block type="variables_get" id="|]yL:G[QFV*wvhiq@4k9"> <field name="VAR" id="$#BWP))B*5:wJCO:]03!" variabletype="">zeit</field> </block> </value> <value name="ADD3"> <block type="text" id="K+;r0,bm+U{dUMdX5Gh-"> <field name="TEXT">_</field> </block> </value> <value name="ADD4"> <block type="text" id=";SgAZ-h6,y)_hoi(wnr">
                    <field name="TEXT">Uhr_kamera1.jpg</field>
                    </block>
                    </value>
                    </block>
                    </value>
                    <next>
                    <block type="exec" id="RL}N)s]TL~Z/6d%Es;/K">
                    <mutation with_statement="false"></mutation>
                    <field name="WITH_STATEMENT">FALSE</field>
                    <field name="LOG"></field>
                    <value name="COMMAND">
                    <shadow type="text" id=".W.b.](1gZ#(PZ,jO+dw">
                    <field name="TEXT"></field>
                    </shadow>
                    <block type="text_join" id="Bujqw$!$#Q!I+,Lfj2B">
                    <mutation items="3"></mutation>
                    <value name="ADD0">
                    <block type="text" id="E!,1CF?)LyDL}+M;EV8r">
                    <field name="TEXT">wget --output-document /opt/iobroker/kameras/kamera1/</field>
                    </block>
                    </value>
                    <value name="ADD1">
                    <block type="variables_get" id="d@=Te,Y_F:v?;gjvX~C%">
                    <field name="VAR" id="I-JHB}{qxl!8uB~fDIM" variabletype="">dateiname</field>
                    </block>
                    </value>
                    <value name="ADD2">
                    <block type="text" id="%-MtOol6hPZ~-F}suVJq">
                    <field name="TEXT"> 'http://ip-kamera1/media/?user=admin&amp;pwd=&amp;action=snapshot'</field>
                    </block>
                    </value>
                    </block>
                    </value>
                    <next>
                    <block type="timeouts_settimeout" id="iCssgzh;cN.lp#eS%LuV">
                    <field name="NAME">timeout3</field>
                    <field name="DELAY">5</field>
                    <field name="UNIT">sec</field>
                    <statement name="STATEMENT">
                    <block type="exec" id="|O{1VjI^HaC[UuQdeDB
                    ">
                    <mutation with_statement="false"></mutation>
                    <field name="WITH_STATEMENT">FALSE</field>
                    <field name="LOG"></field>
                    <value name="COMMAND">
                    <shadow type="text" id="DMpMf4e
                    shRl5DSo54Kk">
                    <field name="TEXT"></field>
                    </shadow>
                    <block type="text_join" id="qpgpoDG7|28]q.#%!3G@">
                    <mutation items="3"></mutation>
                    <value name="ADD0">
                    <block type="text" id="KwkGbxOMO0)A{P$mKB+"> <field name="TEXT">scp /opt/iobroker/kameras/kamera1/</field> </block> </value> <value name="ADD1"> <block type="variables_get" id="LHVaqFt6yx}3m(x#kYs">
                    <field name="VAR" id="I-JHB}{qxl!8uB~fDIM" variabletype="">dateiname</field>
                    </block>
                    </value>
                    <value name="ADD2">
                    <block type="text" id="4^s.C@-2Tgl.xqG!d9I">
                    <field name="TEXT"> nas_user@ip_nas:/volume1/dateien/Bilder/Kameras/kamera1/</field>
                    </block>
                    </value>
                    </block>
                    </value>
                    <next>
                    <block type="math_change" id="#!nVZ+o(04eHip4exzQk">
                    <field name="VAR" id="]KG2pTxWjSC.613V+lKQ" variabletype="">Zaehler1</field>
                    <value name="DELTA">
                    <shadow type="math_number" id="0Q,,)lY)T
                    .Ey/Qcc;">
                    <field name="NUM">1</field>
                    </shadow>
                    </value>
                    </block>
                    </next>
                    </block>
                    </statement>
                    </block>
                    </next>
                    </block>
                    </next>
                    </block>
                    </next>
                    </block>
                    </next>
                    </block>
                    </statement>
                    </block>
                    </next>
                    </block>
                    <block type="variables_set" id="s_6@:)kLK#:H62wZEcqx" x="-212" y="-1612">
                    <field name="VAR" id="jQ^$686N{uBqpW:3SG?B" variabletype="">Zaehler2</field>
                    <value name="VALUE">
                    <block type="math_number" id="[:Ck1eHWT;j,1]5y/%3S">
                    <field name="NUM">0</field>
                    </block>
                    </value>
                    <next>
                    <block type="schedule" id="rZ0t~6s+m/7u$vrlu
                    Ts">
                    <field name="SCHEDULE">
                    /30 * * * * *</field>
                    <statement name="STATEMENT">
                    <block type="variables_set" id="=RtnA{6UiK3sjAoO6Lza">
                    <field name="VAR" id="93iKlm8q,8t/S#zh{)," variabletype="">datum</field>
                    <value name="VALUE">
                    <block type="time_get" id="3ZY(-gyrtBQByJM.+/~">
                    <mutation format="true" language="false"></mutation>
                    <field name="OPTION">custom</field>
                    <field name="FORMAT">JJJJ-MM-TT</field>
                    </block>
                    </value>
                    <next>
                    <block type="variables_set" id="QWgD|dQePEx-,:KeB:B~">
                    <field name="VAR" id="$#BWP))B
                    5:wJCO:]03!" variabletype="">zeit</field>
                    <value name="VALUE">
                    <block type="time_get" id="x/]r.D=IKmR[H0mgA~SC">
                    <mutation format="true" language="false"></mutation>
                    <field name="OPTION">custom</field>
                    <field name="FORMAT">SS.mm.ss</field>
                    </block>
                    </value>
                    <next>
                    <block type="variables_set" id="ikxNs$-4BfZ}-%2PHy!t">
                    <field name="VAR" id="eV)M8@BfUSafo])3ZCZ8" variabletype="">dateiname2</field>
                    <value name="VALUE">
                    <block type="text_join" id=";%MKP~-owl
                    )|oQQuIw)">
                    <mutation items="5"></mutation>
                    <value name="ADD0">
                    <block type="variables_get" id=")Tc1R9J{+2~p,5G@3o-"> <field name="VAR" id="93iKlm8q,8t/S#zh{),_" variabletype="">datum</field> </block> </value> <value name="ADD1"> <block type="text" id="@P=?Vk6*EX..)Q?bZD[m"> <field name="TEXT">_</field> </block> </value> <value name="ADD2"> <block type="variables_get" id="XSJ;B]le|=t*Cg-hNe@6"> <field name="VAR" id="$#BWP))B*5:wJCO:]03!" variabletype="">zeit</field> </block> </value> <value name="ADD3"> <block type="text" id="fCS@zCJxPignzY[i(io~"> <field name="TEXT">_</field> </block> </value> <value name="ADD4"> <block type="text" id="C$nc8hpI_!:ZH#N6QQrt"> <field name="TEXT">Uhr_kamera2.jpg</field> </block> </value> </block> </value> <next> <block type="exec" id="O7V=Q~A3D5L#6xdWt)P9"> <mutation with_statement="false"></mutation> <field name="WITH_STATEMENT">FALSE</field> <field name="LOG"></field> <value name="COMMAND"> <shadow type="text" id=".W.b.](1gZ#(PZ,jO+dw"> <field name="TEXT"></field> </shadow> <block type="text_join" id="I*@q.{D65]eYkk8lvh,8"> <mutation items="3"></mutation> <value name="ADD0"> <block type="text" id="st~R#h}Xyk|Nq7?|Oa)$"> <field name="TEXT">wget --output-document /opt/iobroker/kameras/kamera2/</field> </block> </value> <value name="ADD1"> <block type="variables_get" id="14|RDXtGI2uU@?~q:%]">
                    <field name="VAR" id="eV)M8@BfUSafo])3ZCZ8" variabletype="">dateiname2</field>
                    </block>
                    </value>
                    <value name="ADD2">
                    <block type="text" id="V3)cl#!xy!raL:TU$R">
                    <field name="TEXT"> 'http://ip-kamera2/media/?user=admin&amp;pwd=&amp;action=snapshot'</field>
                    </block>
                    </value>
                    </block>
                    </value>
                    <next>
                    <block type="timeouts_settimeout" id="U:lQ+H]5@Q2GRpPGN%%"> <field name="NAME">timeout2</field> <field name="DELAY">5</field> <field name="UNIT">sec</field> <statement name="STATEMENT"> <block type="exec" id="F|5G)S37U9}QbMtrV5@."> <mutation with_statement="false"></mutation> <field name="WITH_STATEMENT">FALSE</field> <field name="LOG"></field> <value name="COMMAND"> <shadow type="text" id="DMpMf4e*shRl5DSo54Kk"> <field name="TEXT"></field> </shadow> <block type="text_join" id="B-_VV%6$s.[DlHx)o/}}"> <mutation items="3"></mutation> <value name="ADD0"> <block type="text" id="_.,2P7FC7bgP+apT,FHg"> <field name="TEXT">scp /opt/iobroker/kameras/kamera2/</field> </block> </value> <value name="ADD1"> <block type="variables_get" id="0F$+LN:O^2s-T/U,Fc#2"> <field name="VAR" id="eV)M8@BfUSafo])3ZCZ8" variabletype="">dateiname2</field> </block> </value> <value name="ADD2"> <block type="text" id="j^f?+]d9aeU{|Nnx]l?">
                    <field name="TEXT"> nas_user@ip_nas:/volume1/dateien/Bilder/Kameras/kamera2/</field>
                    </block>
                    </value>
                    </block>
                    </value>
                    <next>
                    <block type="math_change" id="5ovcK!yoC!0PGKOadT4j">
                    <field name="VAR" id="jQ^$686N{uBqpW:3SG?B" variabletype="">Zaehler2</field>
                    <value name="DELTA">
                    <shadow type="math_number" id="r0iu=G{HyR8eN~c$Rah{">
                    <field name="NUM">1</field>
                    </shadow>
                    </value>
                    </block>
                    </next>
                    </block>
                    </statement>
                    </block>
                    </next>
                    </block>
                    </next>
                    </block>
                    </next>
                    </block>
                    </next>
                    </block>
                    </statement>
                    </block>
                    </next>
                    </block>
                    </xml>

                    Ich habe auf jeden Fall ne Menge gelernt. Vor allem das scp ohne Passwort nochmal aufzufrischen war gar nicht verkehrt.

                    ciao

                    frank

                    1 Reply Last reply
                    0
                    • lost in translationL lost in translation

                      @AlCalzone
                      Wenn es mit dem Haken wartet, kann ich den Rest dann dahinter lassen, oder muss er dann in das neue Feld?
                      c9a52b7d-e7ac-4540-841f-d65126b1b392-image.png verschoben werden?

                      Wird bei "mit Ergebnissen" irgendeine Variable mit der Rückgabe belegt? Dann könnte ich es ja richtig sauber machen und nur bei Errorlevel 0 einen scp anstossen.

                      ciao
                      frank

                      AlCalzoneA Offline
                      AlCalzoneA Offline
                      AlCalzone
                      Developer
                      wrote on last edited by AlCalzone
                      #16

                      @lost-in-translation sagte in jede Minute ein Bild downloaden und per sftp uploaden (mit Zeitstempel im Namen) geht das?:

                      Wenn es mit dem Haken wartet, kann ich den Rest dann dahinter lassen, oder muss er dann in das neue Feld?

                      Der zweite Befehl müsste dann geschachtelt in den ersten exec-Befehl. Alles was darin steht, wird nach Beendigung des Befehls ausgeführt.

                      Ich kann mit dem XML leider nichts anfangen, da ich hier kein ioBroker griffbereit habe.

                      Warum `sudo` böse ist: https://forum.iobroker.net/post/17109

                      1 Reply Last reply
                      0

                      Hello! It looks like you're interested in this conversation, but you don't have an account yet.

                      Getting fed up of having to scroll through the same posts each visit? When you register for an account, you'll always come back to exactly where you were before, and choose to be notified of new replies (either via email, or push notification). You'll also be able to save bookmarks and upvote posts to show your appreciation to other community members.

                      With your input, this post could be even better 💗

                      Register Login
                      Reply
                      • Reply as topic
                      Log in to reply
                      • Oldest to Newest
                      • Newest to Oldest
                      • Most Votes


                      Support us

                      ioBroker
                      Community Adapters
                      Donate

                      347

                      Online

                      32.8k

                      Users

                      82.7k

                      Topics

                      1.3m

                      Posts
                      Community
                      Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen | Einwilligungseinstellungen
                      ioBroker Community 2014-2025
                      logo
                      • Login

                      • Don't have an account? Register

                      • Login or register to search.
                      • First post
                        Last post
                      0
                      • Home
                      • Recent
                      • Tags
                      • Unread 0
                      • Categories
                      • Unreplied
                      • Popular
                      • GitHub
                      • Docu
                      • Hilfe