Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. JavaScript
    5. [Q] Email- Attachment als Variable ?

    NEWS

    • Neuer Blog: Fotos und Eindrücke aus Solingen

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

    • ioBroker goes Matter ... Matter Adapter in Stable

    [Q] Email- Attachment als Variable ?

    This topic has been deleted. Only users with topic management privileges can see it.
    • wcag22
      wcag22 @OliverIO last edited by

      @oliverio sagte in [Q] Email- Attachment als Variable ?:

      Du hattest auch keine Vorgaben gemacht, wie der Dateiname aussehen sollte

      Achso?

      // snapshot (onvif / Tapo Cam) nach /media/Cam mit timestamp kopieren
      
      exec('wget --output-document /media/Cam/`date +%Y_%m%d-%H.%M.%S`.jpg \'http://192.168.178.80:8095/192_168_178_59_2020\' ');
      

      🙂

      OliverIO 1 Reply Last reply Reply Quote 0
      • OliverIO
        OliverIO @wcag22 last edited by

        @wcag22

        ja hatte ich mittlerweile entfernt.

        Aber du hast recht lassen wir es gut sein.
        Ist schwierig mit dir.
        Viel Glück

        wcag22 1 Reply Last reply Reply Quote 0
        • wcag22
          wcag22 @OliverIO last edited by

          @oliverio

          Ist schwierig mit dir.

          Nur der Vollständigkeit halber, weil ich das nicht auf mir sitzen lasse:

          Du entfernst für die "Antwort" entscheidende JS-Zeilen aus meinem Posting:

          ja hatte ich mittlerweile entfernt.
          [...]
          Du hattest auch keine Vorgaben gemacht, wie der Dateiname aussehen sollte

          Obwohl es sehr wohl Wünsche für den Datenamen gab, wie aus den ersten Post zu ersehen ist.

          Du wolltest die 100% Lösung schon haben und nicht nur Hilfe in die richtige Richtung?

          Du unterstellst mir, die Lösung auf dem Silbertablet haben zu wollen und die Doku nicht zu lesen (was Du gar nicht wissen kannst) und hast offenbar meine Frage nur oberflächlich überflogen, was aus Deinen Antworten zumindest zu erahnen ist.

          Und Du meinst dann, ich wäre schwierig? - Sportlich...

          Schwierig finde ich Diskussionen, bei denen am Thema vorbei geredet wird und die mit Vorwürfen und Unterstellungen daher kommen.
          Gebe das Kompliment hiermit gern zurück.
          Damit ist das Thema dann für mich endgültig erledigt.

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

            @wcag22 @OliverIO
            So, jetzt beruhigen wir uns wieder und kommen zurück zum Problem:

            @wcag22
            So wie ich das bis hierhin verstanden habe, hast Du Hochkommas ' mit Backticks ` verwechselt.

            Ich hab' mal folgendes zusammengeklöppelt (ungetestet):

            const filename = '/media/Cam/' + formatDate(new Date(), 'YYYY_MM_TT_hh_mm_ss') + '.jpg'; // /media/Cam/2025_01_15_12_30_18.jpg
            const url = 'http://192.168.178.80:8095/192_168_178_59_2020';
            const wget = `wget --output-document ${filename} ${url}`;
            
            exec(wget, function(error) {
                if (!error) {
                    sendTo("email.0", "send", {
                        text: 'Hallo Welt!',
                        to: 'ich@domain.de',
                        subject: 'Bewegung erkannt',
                        attachments:[
                            {path: filename, cid: "file1"},
                        ]
                    });
                } else {
                    console.log(error);
                }
            });
            

            Bitte auch hier wieder Hochkommas und Backticks beachten. Letztere werden benötigt, wenn im String Platzhalter ${} verwendet werden.

            Nagel mit bitte nicht darauf fest, dass das Ganze auch funktioniert.
            Im Zweifelsfall kann man ja an den interessanten Stellen noch Logausgaben einbauen.

            Beim Dateinamen habe ich ein etwas anderes Format gewählt, damit das einfacher zu formatieren ist.

            wcag22 3 Replies Last reply Reply Quote 1
            • wcag22
              wcag22 @Codierknecht last edited by

              @codierknecht
              Hallo Codierknecht,

              eigentlich wollte ich mich ja aus dem Thread verabschieden. Da Du aber die Situation ganz unaufgeregt neutralisierst hast, wäre es unfair Dir gegenüber, nicht mehr zu reagieren. Danke schon mal dafür.

              Das Ganze hat derzeit auch eher experimentellen Charakter, heißt: Schauen was geht, lernen und Erfahrungen sammeln. Ohne Zeitdruck.

              Soweit ich das jetzt kurz überflogen habe, hilft mir das gut weiter. Nach vielen Jahren perl und php hadere ich immer noch mit JS, besonders was die Arbeit mit Variablen angeht. Konkret hier Datumsformatierung, Zuweisung zu einer Variablen und Verwendung dieser im eMail-Script.

              Auf der Grundlage Deines code snippet werde ich nochmal umbauen:

              Nach erfolgreicher Erstellung des snapshot im onvif DP Generierung eines Zeitstempels und Zuweisung zu einer Variablen, diese bei der Formatierung des Dateinamens verwenden und den snapshot nach '/media/Cam/neuer Dateiname' kopieren.
              Diese Variable dann auch für den eMail-Versand nutzen.

              Mein Problem bestand offenbar darin, dass ich den neuen Dateinamen zwar zum Zweck des kopierens richtig erstellen konnte (also als Datum und Zeit), ihn aber in dieser Form nicht verwenden konnte, um ihn im Mail Script zu nutzen. Da ich selbst schon mit diversen Hochkomma, Backticks und Anführungszeichen probiert hat, vermute ich, dass es schlicht und ergreifend eine unzweckmäßige Formatierung war. Ich hatte sie in einem anderen Thread hier im Forum gefunden. Allein für den Kopiervorgang hätte sie ja gereicht, aber muss ja noch unbedingt eine Mail versenden - my fault. 🙂

              Also Danke für Deine Hilfe und Anregung.
              Beste Grüße Peter

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

                @wcag22 sagte in [Q] Email- Attachment als Variable ?:

                Nach vielen Jahren perl und php hadere ich immer noch mit JS

                Ist nach 25 Jahren Delphi nicht anders 😀

                1 Reply Last reply Reply Quote 0
                • wcag22
                  wcag22 @Codierknecht last edited by

                  @codierknecht
                  Moin,

                  kurzer Zwischenbericht: )*

                  function Info()
                  begin:
                  result := "Komme gut voran, erste Anpassungen schon erfolgt, melde mich dann mit Endergebnis";
                  end;
                  

                  )* naja, habe nur mal gaaaanz kurz nach Delphi gegoogelt, Syntax stimmt natürlich nicht, aber neugierig war ich schon. 🙂

                  1 Reply Last reply Reply Quote 0
                  • wcag22
                    wcag22 @Codierknecht last edited by

                    @codierknecht

                    Einen schönen Sonntag,

                    dann will ich Dich mal nicht weiter auf die Folter spannen und feed back geben.

                    Ich habe Deinen Vorschlag umgesetzt und - eigensinnig wie ich bin 😉 - gleich ein wenig angepasst.

                    Die Verzögerung von 200ms sind der Tatsache geschuldet, dass die Camera bereits an den "Blickfeldgrenzen" Bewegung detektiert und damit das sich bewegende Objekt (meist Nachbars Katze, Fuchs, Waschbär oder Dachs) nicht vollständig im Bild ist. Mit diesem Wert erscheinen sie i.d.R in der Bildmitte.

                    Das Datumsformat bastele ich mir dann nach eigenem Gustus zusammen - ist für mich übersichtlicher.

                    Die 1 Sekunde Verzögerung vor dem Kopieren reicht aktuell aus. Mit den Zeiten kann ich aber insgesamt noch etwas herumspielen.

                    Das Ganze läuft als Testversion zum spielen auf einen 4er Raspi mit 4GB.

                    onvif 2025-01-19 at 11-37-09 javascript - raspi4GB.png

                    Soweit also Aufgabe erledigt.

                    Parallel dazu habe ich mich mal mit gotify beschäftigt, den Server installiert und auch das funktioniert vom Grundsatz schon mal. Eine Mail mit snapshot würde mich im schlechtesten Fall erst nach 15min (Abrufintervall) auf dem Handy erreichen. Da wäre gotify im Vorteil.

                    gotify 2025-01-19 at 11-44-36 javascript - raspi4GB.png

                    Ob irgend etwas davon dann mal produktiv genutzt wird, werde ich sehen. Im Moment sind es nur Fingerübungen.
                    Ich will auch sehen, inwieweit ich die Tapo-Cams via onvif aus den "Tapo-Klauen" befreien kann, sprich: Internet kappen oder nur wichtige Zielserver zulassen. Mal schauen...

                    Ich danke Dir jedenfalls, dass Du mich auf den Pfad der Tugend 🙂 geführt hast. Hilfe war also nicht erfolglos.

                    Codierknecht 1 Reply Last reply Reply Quote 0
                    • Codierknecht
                      Codierknecht Developer Most Active @wcag22 last edited by

                      @wcag22 sagte in [Q] Email- Attachment als Variable ?:

                      Die 1 Sekunde Verzögerung vor dem Kopieren reicht aktuell aus. Mit den Zeiten kann ich aber insgesamt noch etwas herumspielen.

                      Darum läuft das in meinem Beispiel erst, wenn des exec ein Ergebnis gemeldet hat.
                      Das kann dann auch mal länger dauern, ohne dass es Probleme mit einem "timeout" o.ä gibt.

                      Aber egal - Hauptsache es funktioniert bei Dir und Du bis damit zufrieden 😉

                      wcag22 1 Reply Last reply Reply Quote 0
                      • wcag22
                        wcag22 @Codierknecht last edited by wcag22

                        @codierknecht sagte in [Q] Email- Attachment als Variable ?:

                        Darum läuft das in meinem Beispiel erst, wenn des exec ein Ergebnis gemeldet hat.

                        Ah...ok. Dann muss ich mir DAS nochmal genauer ansehen. Tnx für den Hinweis.

                        PS: Du meinst den function (error) - Zweig?

                        PPS: Habe nochmal umgebastelt und Deine exec Version übernommenn. Lediglich das Zusammenbasteln des Dateinamens habe ich ausgelagert / beibehalten.

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

                        Support us

                        ioBroker
                        Community Adapters
                        Donate

                        569
                        Online

                        31.8k
                        Users

                        80.0k
                        Topics

                        1.3m
                        Posts

                        3
                        17
                        405
                        Loading More Posts
                        • Oldest to Newest
                        • Newest to Oldest
                        • Most Votes
                        Reply
                        • Reply as topic
                        Log in to reply
                        Community
                        Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen
                        The ioBroker Community 2014-2023
                        logo