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. Mail mit mehr als 2 Anhängen?

NEWS

  • Neuer Blogbeitrag: Monatsrückblick - Dezember 2025 🎄
    BluefoxB
    Bluefox
    10
    1
    150

  • Weihnachtsangebot 2025! 🎄
    BluefoxB
    Bluefox
    24
    1
    1.4k

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

Mail mit mehr als 2 Anhängen?

Geplant Angeheftet Gesperrt Verschoben Blockly
blocklycommunication
37 Beiträge 4 Kommentatoren 2.0k Aufrufe 4 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.
  • lost in translationL lost in translation

    @sigi234 said in Mail mit mehr als 2 Anhängen?:

    @lost-in-translation sagte in Mail mit mehr als 2 Anhängen?:

    gibt es eine Möglichkeit, mehr als 2 Bilder an eine Mail anzuhängen?

    Und wenn du das send Blockly kopierst und untereinander einfügst?

    Dann verschicke ich 2 emails. Das ist die unelegante Lösung, die ich vermeiden wollte. Wird vor allem richtig doof, wenn man mal 15 Bilder verschicken will.

    ciao
    frank

    sigi234S Online
    sigi234S Online
    sigi234
    Forum Testing Most Active
    schrieb am zuletzt editiert von sigi234
    #9

    @lost-in-translation sagte in Mail mit mehr als 2 Anhängen?:

    @sigi234 said in Mail mit mehr als 2 Anhängen?:

    @lost-in-translation sagte in Mail mit mehr als 2 Anhängen?:

    gibt es eine Möglichkeit, mehr als 2 Bilder an eine Mail anzuhängen?

    Und wenn du das send Blockly kopierst und untereinander einfügst?

    Dann verschicke ich 2 emails. Das ist die unelegante Lösung, die ich vermeiden wollte. Wird vor allem richtig doof, wenn man mal 15 Bilder verschicken will.

    ciao
    frank

    Das ist mir klar, war auch nur einen Notlösung..........:wink:

    Bitte benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat.
    Immer Daten sichern!

    1 Antwort Letzte Antwort
    0
    • lost in translationL lost in translation

      @thewhobox said in Mail mit mehr als 2 Anhängen?:

      @lost-in-translation Der code weiß davon nix. Die zwei Dateien sind hardcodiert. Dafür müsste man den Code ändern und ein PR auf GIthub aufmachen.

      PR? Pheature Request?

      ciao

      frank

      thewhoboxT Offline
      thewhoboxT Offline
      thewhobox
      schrieb am zuletzt editiert von
      #10

      @lost-in-translation Bzw. es gibt schon einen Issue:
      https://github.com/iobroker-community-adapters/ioBroker.email/issues/11

      Meine Adapter: emby | discovery
      Benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat.

      1 Antwort Letzte Antwort
      0
      • lost in translationL lost in translation

        Halrlo,
        gibt es eine Möglichkeit, mehr als 2 Bilder an eine Mail anzuhängen? Zippen ist nicht wirklich eine Option...
        Ich habe versucht, zwei Dateien mit ; als Trenner bzw. mit , als Trenner in ein Feld zu schreiben, aber das klappt schonmal nicht.
        6691e227-0936-4319-8f95-abc11e433888-image.png
        Mir fehlt irgendwie das Zahnrad, wo ich mehr Dateien vorsehen kann.
        Gibt es einen Trick?

        ciao

        frank

        thewhoboxT Offline
        thewhoboxT Offline
        thewhobox
        schrieb am zuletzt editiert von
        #11

        @lost-in-translation Als Workaround kannst du auch im Blockly eine Javascriptfunktion aufrufen und dann per sendTo mehrere Dateien verschicken:

        sendTo("email", {
            from:    "iobroker@mydomain.com",
            to:      "aabbcc@gmail.com",
            subject: "Message from ioBroker",
            html: "<p>Embedded image: <img src='cid:image1'/></p>",
            attachments:[
                {path: "path/to/file/image1.jpg", cid: "image1"}
            ]
        });
        

        Meine Adapter: emby | discovery
        Benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat.

        lost in translationL 1 Antwort Letzte Antwort
        0
        • thewhoboxT thewhobox

          @lost-in-translation Als Workaround kannst du auch im Blockly eine Javascriptfunktion aufrufen und dann per sendTo mehrere Dateien verschicken:

          sendTo("email", {
              from:    "iobroker@mydomain.com",
              to:      "aabbcc@gmail.com",
              subject: "Message from ioBroker",
              html: "<p>Embedded image: <img src='cid:image1'/></p>",
              attachments:[
                  {path: "path/to/file/image1.jpg", cid: "image1"}
              ]
          });
          
          lost in translationL Offline
          lost in translationL Offline
          lost in translation
          schrieb am zuletzt editiert von
          #12

          @thewhobox said in Mail mit mehr als 2 Anhängen?:

          sendTo("email", { from: "iobroker@mydomain.com", to: "aabbcc@gmail.com", subject: "Message from ioBroker", html: "<p>Embedded image: <img src='cid:image1'/></p>", attachments:[ {path: "path/to/file/image1.jpg", cid: "image1"} ] });

          Hab ich ausprobiert:
          444e8fcc-5159-4ded-bf9f-85a068dc730b-image.png

          sendTo("email", {
              from:    Absender,
              to:      Empfaenger,
              subject: Betreff,
              // html: "<p>Embedded image: <img src='cid:image1'/></p>",
              html: HTML,
                //  {path: "path/to/file/image1.jpg", cid: "image1"}
                //  {path: "path/to/file/image2.jpg", cid: "image2"}
             attachments:[
                 Bilder
              ]
          });
          

          Ergibt zwar keine Fehlermeldung, aber auch keine Mail im Eingangskorb :-(

          so rein syntaktisch müsste das doch stimmen?

          ciao

          frank

          thewhoboxT 1 Antwort Letzte Antwort
          0
          • lost in translationL lost in translation

            @thewhobox said in Mail mit mehr als 2 Anhängen?:

            sendTo("email", { from: "iobroker@mydomain.com", to: "aabbcc@gmail.com", subject: "Message from ioBroker", html: "<p>Embedded image: <img src='cid:image1'/></p>", attachments:[ {path: "path/to/file/image1.jpg", cid: "image1"} ] });

            Hab ich ausprobiert:
            444e8fcc-5159-4ded-bf9f-85a068dc730b-image.png

            sendTo("email", {
                from:    Absender,
                to:      Empfaenger,
                subject: Betreff,
                // html: "<p>Embedded image: <img src='cid:image1'/></p>",
                html: HTML,
                  //  {path: "path/to/file/image1.jpg", cid: "image1"}
                  //  {path: "path/to/file/image2.jpg", cid: "image2"}
               attachments:[
                   Bilder
                ]
            });
            

            Ergibt zwar keine Fehlermeldung, aber auch keine Mail im Eingangskorb :-(

            so rein syntaktisch müsste das doch stimmen?

            ciao

            frank

            thewhoboxT Offline
            thewhoboxT Offline
            thewhobox
            schrieb am zuletzt editiert von
            #13

            @lost-in-translation Nein da hast nen kleinen Fehler drin.

            attachments: Bilder
            

            ich nehem mal an, dass die Variable Bilder bereits eine Array ist.

            Meine Adapter: emby | discovery
            Benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat.

            lost in translationL 1 Antwort Letzte Antwort
            0
            • thewhoboxT thewhobox

              @lost-in-translation Nein da hast nen kleinen Fehler drin.

              attachments: Bilder
              

              ich nehem mal an, dass die Variable Bilder bereits eine Array ist.

              lost in translationL Offline
              lost in translationL Offline
              lost in translation
              schrieb am zuletzt editiert von
              #14

              @thewhobox

              Hmm.
              mal geändert:
              e63cf017-fdd2-420c-b054-8539bf558de5-image.png
              und

              sendTo("email", {
                  from:    Absender,
                  to:      Empfaenger,
                  subject: Betreff,
                  // html: "<p>Embedded image: <img src='cid:image1'/></p>",
                  html: HTML,
                    //  {path: "path/to/file/image1.jpg", cid: "image1"}
                    //  {path: "path/to/file/image2.jpg", cid: "image2"}
                 attachments: Bilder
              });
              

              Hat jetzt auch nicht den gewünschten Erfolg :-(

              Ich bräuchte mal ein Beispiel mit 2 oder besser 3 Attachments, wo die Filepaths per Variable an die Funktion rüberkommen.

              stell mich grad etwas blöd an. :-(

              ciao

              frank

              thewhoboxT 2 Antworten Letzte Antwort
              0
              • lost in translationL lost in translation

                @thewhobox

                Hmm.
                mal geändert:
                e63cf017-fdd2-420c-b054-8539bf558de5-image.png
                und

                sendTo("email", {
                    from:    Absender,
                    to:      Empfaenger,
                    subject: Betreff,
                    // html: "<p>Embedded image: <img src='cid:image1'/></p>",
                    html: HTML,
                      //  {path: "path/to/file/image1.jpg", cid: "image1"}
                      //  {path: "path/to/file/image2.jpg", cid: "image2"}
                   attachments: Bilder
                });
                

                Hat jetzt auch nicht den gewünschten Erfolg :-(

                Ich bräuchte mal ein Beispiel mit 2 oder besser 3 Attachments, wo die Filepaths per Variable an die Funktion rüberkommen.

                stell mich grad etwas blöd an. :-(

                ciao

                frank

                thewhoboxT Offline
                thewhoboxT Offline
                thewhobox
                schrieb am zuletzt editiert von
                #15

                @lost-in-translation Du übergibst ihm einen reinen Text, das musst du noch in ein Object konvertieren.

                attachments: JSON.parse(Bilder);
                

                Bei "erstelle Text aus" musst du path und cid in Anführungszeichen packen.
                also:

                [{"path": "
                dateipfad1
                ", "cid": "image1"}, //Hier das Komma nicht vergessen
                [{"path": "
                dateipfad2
                ", "cid": "image2"}]
                

                Danach sollte es funktionieren.

                Meine Adapter: emby | discovery
                Benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat.

                1 Antwort Letzte Antwort
                0
                • lost in translationL lost in translation

                  @thewhobox

                  Hmm.
                  mal geändert:
                  e63cf017-fdd2-420c-b054-8539bf558de5-image.png
                  und

                  sendTo("email", {
                      from:    Absender,
                      to:      Empfaenger,
                      subject: Betreff,
                      // html: "<p>Embedded image: <img src='cid:image1'/></p>",
                      html: HTML,
                        //  {path: "path/to/file/image1.jpg", cid: "image1"}
                        //  {path: "path/to/file/image2.jpg", cid: "image2"}
                     attachments: Bilder
                  });
                  

                  Hat jetzt auch nicht den gewünschten Erfolg :-(

                  Ich bräuchte mal ein Beispiel mit 2 oder besser 3 Attachments, wo die Filepaths per Variable an die Funktion rüberkommen.

                  stell mich grad etwas blöd an. :-(

                  ciao

                  frank

                  thewhoboxT Offline
                  thewhoboxT Offline
                  thewhobox
                  schrieb am zuletzt editiert von thewhobox
                  #16

                  @lost-in-translation Ich hab da mal schnell was zusammengeworfen:
                  b2272d72-94eb-4430-b085-031e433ea123-grafik.png

                  var attaches = [];
                  
                  for(var bild in bilder) {
                      attaches.push({path: bilder[bild], cid: "image" + bild});
                  }
                  
                  console.log(JSON.stringify(attaches));
                  
                  sendTo("email", {
                      from:    von,
                      to:      an,
                      subject: betreff,
                      html: text,
                     attachments: attaches
                  });
                  

                  <xml xmlns="http://www.w3.org/1999/xhtml">
                    <variables>
                      <variable type="" id="~l@e!9OC1|4+g+U-JTZB">von</variable>
                      <variable type="" id="_?dVQ*D,vJ)^s+HYjA2)">an</variable>
                      <variable type="" id="HD0=-,oTf7RRdn7y;?PR">betreff</variable>
                      <variable type="" id="eW@e*#2FAy?-0:H%Ac)J">text</variable>
                      <variable type="" id=")`gfy$TzS213`(Zg^h?V">bilder</variable>
                      <variable type="" id="hUY]Ldy*s?G:gWauwJp$">bild1</variable>
                    </variables>
                    <block type="procedures_callcustomnoreturn" id="`^-.85s*w*VmfN5.4V5N" x="113" y="115">
                      <mutation name="sendmail">
                        <arg name="von"></arg>
                        <arg name="an"></arg>
                        <arg name="betreff"></arg>
                        <arg name="text"></arg>
                        <arg name="bilder"></arg>
                      </mutation>
                      <value name="ARG0">
                        <block type="text" id="/Zz+J^i9+;bI=J~?-K@r">
                          <field name="TEXT">mir</field>
                        </block>
                      </value>
                      <value name="ARG1">
                        <block type="text" id="=nIv*ca@dlHYX?nzLdFb">
                          <field name="TEXT">dich</field>
                        </block>
                      </value>
                      <value name="ARG2">
                        <block type="text" id="`e_PykiCeMKOpIj=/Xy$">
                          <field name="TEXT">über uns</field>
                        </block>
                      </value>
                      <value name="ARG3">
                        <block type="text" id="yIg#u@b2M@oom=Q7X;u8">
                          <field name="TEXT">Was geht so?</field>
                        </block>
                      </value>
                      <value name="ARG4">
                        <block type="lists_create_with" id="m}.BdOL=b*~;JojyBA;^">
                          <mutation items="2"></mutation>
                          <value name="ADD0">
                            <block type="variables_get" id="ZoxcQU%bvj6ic0K@~X(H">
                              <field name="VAR" id="hUY]Ldy*s?G:gWauwJp$" variabletype="">bild1</field>
                            </block>
                          </value>
                          <value name="ADD1">
                            <block type="variables_get" id="[KIdA/e{@s]c]zMq?Q]v">
                              <field name="VAR" id=")`gfy$TzS213`(Zg^h?V" variabletype="">bilder</field>
                            </block>
                          </value>
                        </block>
                      </value>
                    </block>
                    <block type="procedures_defcustomnoreturn" id="//81$GAbGVi[!{GnX=;f" x="88" y="363">
                      <mutation statements="false">
                        <arg name="von" varid="~l@e!9OC1|4+g+U-JTZB"></arg>
                        <arg name="an" varid="_?dVQ*D,vJ)^s+HYjA2)"></arg>
                        <arg name="betreff" varid="HD0=-,oTf7RRdn7y;?PR"></arg>
                        <arg name="text" varid="eW@e*#2FAy?-0:H%Ac)J"></arg>
                        <arg name="bilder" varid=")`gfy$TzS213`(Zg^h?V"></arg>
                      </mutation>
                      <field name="NAME">sendmail</field>
                      <field name="SCRIPT">dmFyIGF0dGFjaGVzID0gW107DQoNCmZvcih2YXIgYmlsZCBpbiBiaWxkZXIpIHsNCiAgICBhdHRhY2hlcy5wdXNoKHtwYXRoOiBiaWxkZXJbYmlsZF0sIGNpZDogImltYWdlIiArIGJpbGR9KTsNCn0NCg0KY29uc29sZS5sb2coSlNPTi5zdHJpbmdpZnkoYXR0YWNoZXMpKTsNCg0Kc2VuZFRvKCJlbWFpbCIsIHsNCiAgICBmcm9tOiAgICB2b24sDQogICAgdG86ICAgICAgYW4sDQogICAgc3ViamVjdDogYmV0cmVmZiwNCiAgICBodG1sOiB0ZXh0LA0KICAgYXR0YWNobWVudHM6IGF0dGFjaGVzDQp9KTs=</field>
                      <comment pinned="false" h="80" w="160">Beschreibe diese Funktion …</comment>
                    </block>
                  </xml>
                  

                  Meine Adapter: emby | discovery
                  Benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat.

                  lost in translationL 1 Antwort Letzte Antwort
                  0
                  • thewhoboxT thewhobox

                    @lost-in-translation Ich hab da mal schnell was zusammengeworfen:
                    b2272d72-94eb-4430-b085-031e433ea123-grafik.png

                    var attaches = [];
                    
                    for(var bild in bilder) {
                        attaches.push({path: bilder[bild], cid: "image" + bild});
                    }
                    
                    console.log(JSON.stringify(attaches));
                    
                    sendTo("email", {
                        from:    von,
                        to:      an,
                        subject: betreff,
                        html: text,
                       attachments: attaches
                    });
                    

                    <xml xmlns="http://www.w3.org/1999/xhtml">
                      <variables>
                        <variable type="" id="~l@e!9OC1|4+g+U-JTZB">von</variable>
                        <variable type="" id="_?dVQ*D,vJ)^s+HYjA2)">an</variable>
                        <variable type="" id="HD0=-,oTf7RRdn7y;?PR">betreff</variable>
                        <variable type="" id="eW@e*#2FAy?-0:H%Ac)J">text</variable>
                        <variable type="" id=")`gfy$TzS213`(Zg^h?V">bilder</variable>
                        <variable type="" id="hUY]Ldy*s?G:gWauwJp$">bild1</variable>
                      </variables>
                      <block type="procedures_callcustomnoreturn" id="`^-.85s*w*VmfN5.4V5N" x="113" y="115">
                        <mutation name="sendmail">
                          <arg name="von"></arg>
                          <arg name="an"></arg>
                          <arg name="betreff"></arg>
                          <arg name="text"></arg>
                          <arg name="bilder"></arg>
                        </mutation>
                        <value name="ARG0">
                          <block type="text" id="/Zz+J^i9+;bI=J~?-K@r">
                            <field name="TEXT">mir</field>
                          </block>
                        </value>
                        <value name="ARG1">
                          <block type="text" id="=nIv*ca@dlHYX?nzLdFb">
                            <field name="TEXT">dich</field>
                          </block>
                        </value>
                        <value name="ARG2">
                          <block type="text" id="`e_PykiCeMKOpIj=/Xy$">
                            <field name="TEXT">über uns</field>
                          </block>
                        </value>
                        <value name="ARG3">
                          <block type="text" id="yIg#u@b2M@oom=Q7X;u8">
                            <field name="TEXT">Was geht so?</field>
                          </block>
                        </value>
                        <value name="ARG4">
                          <block type="lists_create_with" id="m}.BdOL=b*~;JojyBA;^">
                            <mutation items="2"></mutation>
                            <value name="ADD0">
                              <block type="variables_get" id="ZoxcQU%bvj6ic0K@~X(H">
                                <field name="VAR" id="hUY]Ldy*s?G:gWauwJp$" variabletype="">bild1</field>
                              </block>
                            </value>
                            <value name="ADD1">
                              <block type="variables_get" id="[KIdA/e{@s]c]zMq?Q]v">
                                <field name="VAR" id=")`gfy$TzS213`(Zg^h?V" variabletype="">bilder</field>
                              </block>
                            </value>
                          </block>
                        </value>
                      </block>
                      <block type="procedures_defcustomnoreturn" id="//81$GAbGVi[!{GnX=;f" x="88" y="363">
                        <mutation statements="false">
                          <arg name="von" varid="~l@e!9OC1|4+g+U-JTZB"></arg>
                          <arg name="an" varid="_?dVQ*D,vJ)^s+HYjA2)"></arg>
                          <arg name="betreff" varid="HD0=-,oTf7RRdn7y;?PR"></arg>
                          <arg name="text" varid="eW@e*#2FAy?-0:H%Ac)J"></arg>
                          <arg name="bilder" varid=")`gfy$TzS213`(Zg^h?V"></arg>
                        </mutation>
                        <field name="NAME">sendmail</field>
                        <field name="SCRIPT">dmFyIGF0dGFjaGVzID0gW107DQoNCmZvcih2YXIgYmlsZCBpbiBiaWxkZXIpIHsNCiAgICBhdHRhY2hlcy5wdXNoKHtwYXRoOiBiaWxkZXJbYmlsZF0sIGNpZDogImltYWdlIiArIGJpbGR9KTsNCn0NCg0KY29uc29sZS5sb2coSlNPTi5zdHJpbmdpZnkoYXR0YWNoZXMpKTsNCg0Kc2VuZFRvKCJlbWFpbCIsIHsNCiAgICBmcm9tOiAgICB2b24sDQogICAgdG86ICAgICAgYW4sDQogICAgc3ViamVjdDogYmV0cmVmZiwNCiAgICBodG1sOiB0ZXh0LA0KICAgYXR0YWNobWVudHM6IGF0dGFjaGVzDQp9KTs=</field>
                        <comment pinned="false" h="80" w="160">Beschreibe diese Funktion …</comment>
                      </block>
                    </xml>
                    

                    lost in translationL Offline
                    lost in translationL Offline
                    lost in translation
                    schrieb am zuletzt editiert von lost in translation
                    #17

                    @thewhobox said in Mail mit mehr als 2 Anhängen?:

                    var attaches = []; for(var bild in bilder) { attaches.push({path: bilder[bild], cid: "image" + bild}); } console.log(JSON.stringify(attaches)); sendTo("email", { from: von, to: an, subject: betreff, html: text, attachments: attaches });

                    Ich stelle mich gerade blöd an. Was soll denn in die Liste?
                    b73cfdf5-2423-497b-b014-e0e5692ec686-image.png
                    bedankt sich mit Fehlermeldung:

                    23:16:58.770	error	javascript.0 script.js.Kameras.Maile_Bilder: ReferenceError: bilder is not defined
                    23:16:58.770	error	javascript.0 at sendmail (script.js.Kameras.Maile_Bilder:9:21)
                    23:16:58.770	error	javascript.0 at script.js.Kameras.Maile_Bilder:48:5
                    

                    Was kommt denn da genau rein?

                    ciao
                    frank

                    thewhoboxT 1 Antwort Letzte Antwort
                    0
                    • lost in translationL lost in translation

                      @thewhobox said in Mail mit mehr als 2 Anhängen?:

                      var attaches = []; for(var bild in bilder) { attaches.push({path: bilder[bild], cid: "image" + bild}); } console.log(JSON.stringify(attaches)); sendTo("email", { from: von, to: an, subject: betreff, html: text, attachments: attaches });

                      Ich stelle mich gerade blöd an. Was soll denn in die Liste?
                      b73cfdf5-2423-497b-b014-e0e5692ec686-image.png
                      bedankt sich mit Fehlermeldung:

                      23:16:58.770	error	javascript.0 script.js.Kameras.Maile_Bilder: ReferenceError: bilder is not defined
                      23:16:58.770	error	javascript.0 at sendmail (script.js.Kameras.Maile_Bilder:9:21)
                      23:16:58.770	error	javascript.0 at script.js.Kameras.Maile_Bilder:48:5
                      

                      Was kommt denn da genau rein?

                      ciao
                      frank

                      thewhoboxT Offline
                      thewhoboxT Offline
                      thewhobox
                      schrieb am zuletzt editiert von
                      #18

                      @lost-in-translation der Parameter Bilder ist jetzt ein array (also eine Liste) in der nur der Pfad drin ist.
                      Also: dateiimpfad = /mnt/meintollerpfad/x.jpeg

                      Wenn du oben rechts auf Blockly=>JS klickt. Was steht da in Zeile 9?

                      Meine Adapter: emby | discovery
                      Benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat.

                      lost in translationL 1 Antwort Letzte Antwort
                      0
                      • thewhoboxT thewhobox

                        @lost-in-translation der Parameter Bilder ist jetzt ein array (also eine Liste) in der nur der Pfad drin ist.
                        Also: dateiimpfad = /mnt/meintollerpfad/x.jpeg

                        Wenn du oben rechts auf Blockly=>JS klickt. Was steht da in Zeile 9?

                        lost in translationL Offline
                        lost in translationL Offline
                        lost in translation
                        schrieb am zuletzt editiert von
                        #19

                        @thewhobox

                        73dd3523-480a-4291-bdc3-848d60d3693c-image.png

                        Ich vermute, ein Groß/Kleinschreibungs Problem.

                        Versuche ich mal zu korrigieren.

                        ciao

                        frank

                        thewhoboxT 1 Antwort Letzte Antwort
                        0
                        • lost in translationL lost in translation

                          @thewhobox

                          73dd3523-480a-4291-bdc3-848d60d3693c-image.png

                          Ich vermute, ein Groß/Kleinschreibungs Problem.

                          Versuche ich mal zu korrigieren.

                          ciao

                          frank

                          thewhoboxT Offline
                          thewhoboxT Offline
                          thewhobox
                          schrieb am zuletzt editiert von
                          #20

                          @lost-in-translation Ja hast recht. Ist ein Groß/Kleinschreibfehler.

                          ändere "for(var bild in Bilder) {"
                          das muss ein großes B sein.

                          Ich schreibe bei mir deswegen generell alles klein.

                          Meine Adapter: emby | discovery
                          Benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat.

                          lost in translationL 1 Antwort Letzte Antwort
                          0
                          • thewhoboxT thewhobox

                            @lost-in-translation Ja hast recht. Ist ein Groß/Kleinschreibfehler.

                            ändere "for(var bild in Bilder) {"
                            das muss ein großes B sein.

                            Ich schreibe bei mir deswegen generell alles klein.

                            lost in translationL Offline
                            lost in translationL Offline
                            lost in translation
                            schrieb am zuletzt editiert von
                            #21

                            @thewhobox
                            das hat soweit geklappt, nun renne ich in das nächste Rätsel
                            f5b3257c-8b5e-471f-96f1-26ad11d23d96-image.png
                            Der Plan: ich speichere die vermailten Dateien zusätzlich auf dem NAS und lösche sie dann
                            Im ersten Wurf hatte ich einen eigenen exec für den rm, dann war da immer nur der letzte Dateiname drin.
                            Dann habe ich es einfach in einen Befehl aneinandergehängt, was grundsätzlich klappte, aber anscheinend zu viele scp Befehle parallel provozierte. Zufällige Dateien kamen nicht auf dem NAS an. Also wollte ich die Schleife mit angezogener Handbremse durchlaufen, und nur alle 100ms einen SCP absetzen. Jetzt haben aber alle scp den letzten Dateinamen aus der Liste zum Inhalt. What the f...?

                            Irgendwie ist mir die Logik bei Blockly noch fremd. Und warum habe ich in der Konstellation nicht alle Dateinamen, sondern nur den letzten?

                            ciao
                            frank

                            thewhoboxT 1 Antwort Letzte Antwort
                            0
                            • lost in translationL lost in translation

                              @thewhobox
                              das hat soweit geklappt, nun renne ich in das nächste Rätsel
                              f5b3257c-8b5e-471f-96f1-26ad11d23d96-image.png
                              Der Plan: ich speichere die vermailten Dateien zusätzlich auf dem NAS und lösche sie dann
                              Im ersten Wurf hatte ich einen eigenen exec für den rm, dann war da immer nur der letzte Dateiname drin.
                              Dann habe ich es einfach in einen Befehl aneinandergehängt, was grundsätzlich klappte, aber anscheinend zu viele scp Befehle parallel provozierte. Zufällige Dateien kamen nicht auf dem NAS an. Also wollte ich die Schleife mit angezogener Handbremse durchlaufen, und nur alle 100ms einen SCP absetzen. Jetzt haben aber alle scp den letzten Dateinamen aus der Liste zum Inhalt. What the f...?

                              Irgendwie ist mir die Logik bei Blockly noch fremd. Und warum habe ich in der Konstellation nicht alle Dateinamen, sondern nur den letzten?

                              ciao
                              frank

                              thewhoboxT Offline
                              thewhoboxT Offline
                              thewhobox
                              schrieb am zuletzt editiert von
                              #22

                              @lost-in-translation das liegt an Javascript. Die Schleife wartet nicht auf das Timeout sondern macht munter weiter und ist schon lange fertig, wenn der erste Timeout abläuft.
                              Aber auch die Idee ist nicht zielführend, da mit dem Timeout auch einfach alle Befehle gleichzeitig nach 100ms ausgeführt werden.

                              Ich schaue es mir später nochmal in Ruhe an

                              Meine Adapter: emby | discovery
                              Benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat.

                              lost in translationL 1 Antwort Letzte Antwort
                              0
                              • thewhoboxT thewhobox

                                @lost-in-translation das liegt an Javascript. Die Schleife wartet nicht auf das Timeout sondern macht munter weiter und ist schon lange fertig, wenn der erste Timeout abläuft.
                                Aber auch die Idee ist nicht zielführend, da mit dem Timeout auch einfach alle Befehle gleichzeitig nach 100ms ausgeführt werden.

                                Ich schaue es mir später nochmal in Ruhe an

                                lost in translationL Offline
                                lost in translationL Offline
                                lost in translation
                                schrieb am zuletzt editiert von
                                #23

                                @thewhobox
                                Irgendwie ist der exec untauglich für Schleifen. Weil der ist einfach zu Ende und die Schleife geht in die nächste Runde, egal wie lange der aufgerufene Befehl benötigt.
                                Und "Innendrin" ist ja auch Banane, dann hab ich keine Schleife. Wenn man etwas mehrfach durchführen will, aber Bitteschön hintereinander, dann kann man nur eine ineinander geschachtelte copy paste Orgie veranstalten. Oder übersehe ich etwas Entscheidendes?

                                ciao

                                Frank

                                AlCalzoneA 1 Antwort Letzte Antwort
                                0
                                • lost in translationL lost in translation

                                  @thewhobox
                                  Irgendwie ist der exec untauglich für Schleifen. Weil der ist einfach zu Ende und die Schleife geht in die nächste Runde, egal wie lange der aufgerufene Befehl benötigt.
                                  Und "Innendrin" ist ja auch Banane, dann hab ich keine Schleife. Wenn man etwas mehrfach durchführen will, aber Bitteschön hintereinander, dann kann man nur eine ineinander geschachtelte copy paste Orgie veranstalten. Oder übersehe ich etwas Entscheidendes?

                                  ciao

                                  Frank

                                  AlCalzoneA Offline
                                  AlCalzoneA Offline
                                  AlCalzone
                                  Developer
                                  schrieb am zuletzt editiert von
                                  #24

                                  @lost-in-translation sagte in Mail mit mehr als 2 Anhängen?:

                                  Wenn man etwas mehrfach durchführen will, aber Bitteschön hintereinander, dann kann man nur eine ineinander geschachtelte copy paste Orgie veranstalten.

                                  Fürchte ja. Oder du lernst "richtiges" Javascript, wo du mit Promises und async/await arbeiten kannst. Da würde auch der Ansatz mit der Schleife funktionieren, wie du dir das vorgestellt hast.

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

                                  lost in translationL 1 Antwort Letzte Antwort
                                  0
                                  • AlCalzoneA AlCalzone

                                    @lost-in-translation sagte in Mail mit mehr als 2 Anhängen?:

                                    Wenn man etwas mehrfach durchführen will, aber Bitteschön hintereinander, dann kann man nur eine ineinander geschachtelte copy paste Orgie veranstalten.

                                    Fürchte ja. Oder du lernst "richtiges" Javascript, wo du mit Promises und async/await arbeiten kannst. Da würde auch der Ansatz mit der Schleife funktionieren, wie du dir das vorgestellt hast.

                                    lost in translationL Offline
                                    lost in translationL Offline
                                    lost in translation
                                    schrieb am zuletzt editiert von
                                    #25

                                    @AlCalzone said in Mail mit mehr als 2 Anhängen?:

                                    @lost-in-translation sagte in Mail mit mehr als 2 Anhängen?:

                                    Wenn man etwas mehrfach durchführen will, aber Bitteschön hintereinander, dann kann man nur eine ineinander geschachtelte copy paste Orgie veranstalten.

                                    Fürchte ja. Oder du lernst "richtiges" Javascript, wo du mit Promises und async/await arbeiten kannst. Da würde auch der Ansatz mit der Schleife funktionieren, wie du dir das vorgestellt hast.

                                    Hast Du evt. ein Beispielscript, dass ein solches Konstrukt nutzt? Ich habe vor ein paar Jahren schonmal javascript genutzt, grundsätzlich habe ich da keine Berührungsängste. Ich hatte halt hier das Tool so wie es vorgesehen ist nutzen wollen. Bei neoload habe ich javascript halt im wesentlichen dazu genutzt, Werte umzurechnen, oder Strings zu verknüpfen. Schleifen waren da nie nötig.
                                    Diese "alles auf einmal loswerfen" Strategie ist mir fremd. Ich hatte es bisher mit eher sequentiellen Skripten zu tun.

                                    Das Blockly mit 50 Bildern nacheinander, das ich gestern gebaut habe, ist fast schon uneditierbar, so langsam wird der Editor im Browser.

                                    ciao

                                    frank

                                    AlCalzoneA 1 Antwort Letzte Antwort
                                    0
                                    • lost in translationL lost in translation

                                      @AlCalzone said in Mail mit mehr als 2 Anhängen?:

                                      @lost-in-translation sagte in Mail mit mehr als 2 Anhängen?:

                                      Wenn man etwas mehrfach durchführen will, aber Bitteschön hintereinander, dann kann man nur eine ineinander geschachtelte copy paste Orgie veranstalten.

                                      Fürchte ja. Oder du lernst "richtiges" Javascript, wo du mit Promises und async/await arbeiten kannst. Da würde auch der Ansatz mit der Schleife funktionieren, wie du dir das vorgestellt hast.

                                      Hast Du evt. ein Beispielscript, dass ein solches Konstrukt nutzt? Ich habe vor ein paar Jahren schonmal javascript genutzt, grundsätzlich habe ich da keine Berührungsängste. Ich hatte halt hier das Tool so wie es vorgesehen ist nutzen wollen. Bei neoload habe ich javascript halt im wesentlichen dazu genutzt, Werte umzurechnen, oder Strings zu verknüpfen. Schleifen waren da nie nötig.
                                      Diese "alles auf einmal loswerfen" Strategie ist mir fremd. Ich hatte es bisher mit eher sequentiellen Skripten zu tun.

                                      Das Blockly mit 50 Bildern nacheinander, das ich gestern gebaut habe, ist fast schon uneditierbar, so langsam wird der Editor im Browser.

                                      ciao

                                      frank

                                      AlCalzoneA Offline
                                      AlCalzoneA Offline
                                      AlCalzone
                                      Developer
                                      schrieb am zuletzt editiert von AlCalzone
                                      #26

                                      @lost-in-translation sagte in Mail mit mehr als 2 Anhängen?:

                                      Hast Du evt. ein Beispielscript, dass ein solches Konstrukt nutzt?

                                      Nein, aber ich kann dir schreiben wie es in etwa aussieht. Benötigt allerdings Node 8+:

                                      const util = require('util');
                                      // promisify wandelt exec in eine Funktion um, die einen Promise zurückgibt,
                                      // anstatt einen Callback aufzurufen.
                                      const execAsync = util.promisify(exec); // exec ist schon geladen, soweit ich weiß
                                      
                                      // Du brauchst eine async-Funktion, die kannst du aber normal aufrufen
                                      async function befehleAusfuehren() {
                                        // wichtig: let für block-scoped Variablen, sonst hast du den Ärger, 
                                        // dass nur das letzte Bild hochgeladen wird
                                        for (let i = 0; i < 20; i++) {
                                          // await hält die Funktion an, bis execAsync wirklich fertig ist
                                          await execAsync("Befehl...");
                                        }
                                        // Code hier wird nach allen exec-Befehlen ausgeführt.
                                      }
                                      
                                      // Nicht vergessen, die Funktion auch aufzurufen:
                                      befehleAusfuehren();
                                      // Der Code hiernach wird wieder asynchron ausgeführt und wartet nicht auf die execs
                                      

                                      Alternativ gäbe es noch execSync, damit kannst du dir bei langen Prozessen aber die Event Loop blockieren und ggf. für Adapter-Neustarts und Geister-Prozesse sorgen.

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

                                      lost in translationL 1 Antwort Letzte Antwort
                                      0
                                      • AlCalzoneA AlCalzone

                                        @lost-in-translation sagte in Mail mit mehr als 2 Anhängen?:

                                        Hast Du evt. ein Beispielscript, dass ein solches Konstrukt nutzt?

                                        Nein, aber ich kann dir schreiben wie es in etwa aussieht. Benötigt allerdings Node 8+:

                                        const util = require('util');
                                        // promisify wandelt exec in eine Funktion um, die einen Promise zurückgibt,
                                        // anstatt einen Callback aufzurufen.
                                        const execAsync = util.promisify(exec); // exec ist schon geladen, soweit ich weiß
                                        
                                        // Du brauchst eine async-Funktion, die kannst du aber normal aufrufen
                                        async function befehleAusfuehren() {
                                          // wichtig: let für block-scoped Variablen, sonst hast du den Ärger, 
                                          // dass nur das letzte Bild hochgeladen wird
                                          for (let i = 0; i < 20; i++) {
                                            // await hält die Funktion an, bis execAsync wirklich fertig ist
                                            await execAsync("Befehl...");
                                          }
                                          // Code hier wird nach allen exec-Befehlen ausgeführt.
                                        }
                                        
                                        // Nicht vergessen, die Funktion auch aufzurufen:
                                        befehleAusfuehren();
                                        // Der Code hiernach wird wieder asynchron ausgeführt und wartet nicht auf die execs
                                        

                                        Alternativ gäbe es noch execSync, damit kannst du dir bei langen Prozessen aber die Event Loop blockieren und ggf. für Adapter-Neustarts und Geister-Prozesse sorgen.

                                        lost in translationL Offline
                                        lost in translationL Offline
                                        lost in translation
                                        schrieb am zuletzt editiert von
                                        #27

                                        @AlCalzone said in Mail mit mehr als 2 Anhängen?:

                                        const execAsync = util.promisify(exec); // exec ist schon geladen, soweit ich weiß

                                        scheitere gerade bereits an dieser Zeile:
                                        const execAsync = util.promisify(exec); // exec ist schon geladen, soweit ich weiß

                                        Ich vermute, es hängt damit zusammen, dass ich keinerlei Ahnung habe was node8+ ist und wie ich checken kann ob ich das habe und was ich tun muss, wenn ich das haben will.

                                        naja, mühsam...

                                        1 Antwort Letzte Antwort
                                        0
                                        • lost in translationL Offline
                                          lost in translationL Offline
                                          lost in translation
                                          schrieb am zuletzt editiert von
                                          #28
                                          var von, an, betreff, text, bilder, Bildzaehler, wgetsleeptime, MailSender, EmailEmpfaenger, Bilderpfad, Name_Kamera1, Name_Kamera2, IP_Kamera1, IP_Kamera2, IP_NAS, UserName_NAS, NAS_Zielpfad, Name_Kamera, IP_Kamera, Bilderliste, datum, zeit, dateiname_1, dateimitpfad1, dateiname_2, dateimitpfad2, i;
                                          /**
                                           * Beschreibe diese Funktion …
                                           */
                                          function sendmail(von, an, betreff, text, bilder) {
                                              var attaches = [];
                                              
                                              for(var bild in bilder) {
                                                  attaches.push({path: bilder[bild], cid: "image" + bild});
                                              }
                                              
                                              console.log(JSON.stringify(attaches));
                                              
                                              sendTo("email", {
                                                  from:    von,
                                                  to:      an,
                                                  subject: betreff,
                                                  html: text,
                                                 attachments: attaches
                                              });
                                          }
                                          
                                          function listsRepeat(value, n) {
                                            var array = [];
                                            for (var i = 0; i < n; i++) {
                                              array[i] = value;
                                            }
                                            return array;
                                          }
                                          
                                          
                                          Bildzaehler = 0;
                                          wgetsleeptime = 0.3;
                                          MailSender = 'iobroker@meinedomain.de';
                                          EmailEmpfaenger = 'ich@meinedomain.de';
                                          Bilderpfad = '/opt/iobroker/kameras/';
                                          Name_Kamera1 = 'xx';
                                          Name_Kamera2 = 'yy';
                                          IP_Kamera1 = '192.168.xx.nn';
                                          IP_Kamera2 = '192.168.yy.nn';
                                          IP_NAS = '192.168.yy.nn';
                                          UserName_NAS = 'gandalf_der_zarte';
                                          NAS_Zielpfad = '/vol1/files/Bilder/Kameras/';
                                          Name_Kamera = Name_Kamera1;
                                          IP_Kamera = IP_Kamera1;
                                          Bilderliste = listsRepeat('/opt/iobroker/kameras/noimage.jpg', 1);
                                          datum = formatDate(new Date(), "JJJJ-MM-TT");
                                          // Ab hier Bilder holen
                                          zeit = formatDate(new Date(), "SS.mm.ss");
                                          dateiname_1 = [datum,'_',zeit,'_','Uhr_',Name_Kamera,'_',Bildzaehler,'.jpg'].join('');
                                          dateimitpfad1 = [Bilderpfad,Name_Kamera.toLowerCase(),'/',dateiname_1].join('');
                                          exec((['wget --output-document ',dateimitpfad1,' \'http://',IP_Kamera,'/media/?user=admin&pwd=&action=snapshot\''].join('')), function (error, result, stderr) {
                                              Bilderliste.splice(((Bilderliste.indexOf('/opt/iobroker/kameras/noimage.jpg') + 1) - 1), 0, dateimitpfad1);
                                            Name_Kamera = Name_Kamera2;
                                            IP_Kamera = IP_Kamera2;
                                            Bildzaehler = (typeof Bildzaehler == 'number' ? Bildzaehler : 0) + 1;
                                            zeit = formatDate(new Date(), "SS.mm.ss");
                                            dateiname_2 = [datum,'_',zeit,'_','Uhr_',Name_Kamera,'_',Bildzaehler,'.jpg'].join('');
                                            dateimitpfad2 = [Bilderpfad,Name_Kamera.toLowerCase(),'/',dateiname_2].join('');
                                            exec((['wget --output-document ',dateimitpfad2,' \'http://',IP_Kamera,'/media/?user=admin&pwd=&action=snapshot\'','  &&sleep ' + String(wgetsleeptime)].join('')), function (error, result, stderr) {
                                                Bilderliste.splice(((Bilderliste.indexOf('/opt/iobroker/kameras/noimage.jpg') + 1) - 1), 0, dateimitpfad2);
                                              Name_Kamera = Name_Kamera1;
                                              IP_Kamera = IP_Kamera1;
                                              Bildzaehler = (typeof Bildzaehler == 'number' ? Bildzaehler : 0) + 1;
                                          // hier Bilder geholt    
                                          Bilderliste.pop();
                                          sendmail(MailSender, EmailEmpfaenger, 'Testbetreff', 'TestBilder', Bilderliste);
                                          for (var i_index in Bilderliste) {
                                              i = Bilderliste[i_index];
                                              exec(([['sleep ',10 + Math.random() * 5,' && scp '].join(''),i,[' ',UserName_NAS,'@',IP_NAS,':',NAS_Zielpfad,'Haustuer/'].join(''),datum,'/ && rm ' + String(i)].join('')));
                                              console.log("exec: " + ([['sleep ',10 + Math.random() * 5,' && scp '].join(''),i,[' ',UserName_NAS,'@',IP_NAS,':',NAS_Zielpfad,'Haustuer/'].join(''),datum,'/ && rm ' + String(i)].join('')));
                                              };
                                            })})
                                                                                                                      
                                          
                                          

                                          Hab ich jetzt mal aus der Javascript Ansicht meines Blockly kopiert und es schickt eine Mail mit 2 Attachements. Jetzt müsste ich ja eigentlich "nur noch" diese Abhängigkeit auflösen und stattdessen mit dem await hantieren.

                                          Es ist fast zu einfach...

                                          Frank

                                          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

                                          748

                                          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