Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Entwicklung
    4. Re-New DoorBird Adapter v1.0.x

    NEWS

    • 15. 05. Wartungsarbeiten am ioBroker Forum

    • Monatsrückblick - April 2025

    • Minor js-controller 7.0.7 Update in latest repo

    Re-New DoorBird Adapter v1.0.x

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

      @schmakus

      Hi Schmakus, danke, dass Du den Adapter weiter entwickelst!

      Ich nutzte bis zum Update folgendes Blockly, um mir das Klingel- und Bewegungsbild zu senden...

      bb84996c-7dc5-4d61-a1ea-dc11aa636c14-image.png

      Im Javascript hatte ich dann den Pfad zum Bild, aber das Bild ist ja jetzt im Ordner Dateien, im Unterordner ".doorbird.0"
      Leider bin ich nicht firm genug, das Script anzupassen. Mit folgendem "Satz" habe ich es erfolglos für bspw. das Bewegungsbild probiert.

      sendTo('telegram.0','./files/doorbird.0/Motion_1.jpg');
      

      In diesem Fall kommt bei telegram nur ein Satz an: ".files/doorbird.0/Motion_1.jpg"

      Wenn ich die Url von ioB verwende, dann bekomme ich "immerhin" einen Link zum Bild (wenn ich auf den Link klicke bekomme ich das richtige Bild angzeigt), aber es wird eben nicht das Bild gesendet:

      sendTo('telegram.0','192.168.x.x:80xx/files/doorbird.0/Motion_1.jpg');
      

      Nun frage ich mich / Dich: Wie lautet der Pfad richtig? Oder gibt es einen besseren Weg? Ein besseres, einfacheres Blockly, um mir bei "Bewegung" oder "Klingeln" ein Bild per Telegram senden zu lassen?

      Würde mich sehr freuen, wenn Du mir helfen magst

      Lieben Dank
      LEM

      T Schmakus 2 Replies Last reply Reply Quote 0
      • T
        todde @lemonbiter last edited by

        @lemonbiter bei mir klappt es mit

        sendTo('telegram.0', {text: '/opt/iobroker/iobroker-data/files/doorbird.0/Doorbell1_1.jpg', type: 'photo'});
        
        1 Reply Last reply Reply Quote 0
        • Schmakus
          Schmakus Developer @lemonbiter last edited by

          @lemonbiter sagte in Re-New DoorBird Adapter v1.0.x:

          @schmakus

          Hi Schmakus, danke, dass Du den Adapter weiter entwickelst!

          Ich nutzte bis zum Update folgendes Blockly, um mir das Klingel- und Bewegungsbild zu senden...

          bb84996c-7dc5-4d61-a1ea-dc11aa636c14-image.png

          Im Javascript hatte ich dann den Pfad zum Bild, aber das Bild ist ja jetzt im Ordner Dateien, im Unterordner ".doorbird.0"
          Leider bin ich nicht firm genug, das Script anzupassen. Mit folgendem "Satz" habe ich es erfolglos für bspw. das Bewegungsbild probiert.

          sendTo('telegram.0','./files/doorbird.0/Motion_1.jpg');
          

          In diesem Fall kommt bei telegram nur ein Satz an: ".files/doorbird.0/Motion_1.jpg"

          Wenn ich die Url von ioB verwende, dann bekomme ich "immerhin" einen Link zum Bild (wenn ich auf den Link klicke bekomme ich das richtige Bild angzeigt), aber es wird eben nicht das Bild gesendet:

          sendTo('telegram.0','192.168.x.x:80xx/files/doorbird.0/Motion_1.jpg');
          

          Nun frage ich mich / Dich: Wie lautet der Pfad richtig? Oder gibt es einen besseren Weg? Ein besseres, einfacheres Blockly, um mir bei "Bewegung" oder "Klingeln" ein Bild per Telegram senden zu lassen?

          Würde mich sehr freuen, wenn Du mir helfen magst

          Lieben Dank
          LEM

          @lemonbiter die beste Methode ist folgende:

          readFile("doorbird.0", "TakeSnapshot_1.jpg", function (error, data) {
            if (error) {
              console.error(error);
            } else {
              sendTo("telegram.0", {
                text: data,
                type: "photo",
              });
            }
          });
          

          Folgendes funktioniert auch, jedoch nur, wenn wenn die object db nicht redis ist.

          sendTo('telegram.0', {text: '/opt/iobroker/iobroker-data/files/doorbird.0/Doorbell1_1.jpg', type: 'photo'});
          

          Ab js-controller 4.1.x funktioniert auch folgendes. Ist mega cool. Dies reagiert auf Änderung der Datei.
          Somit sind irgendwelche Pausen und Timeout zwischen Auslösen eines Snapshot und warten bis Snapshot vorhanden ist, überflüssig:

          onFile("doorbird.0", "TakeSnapshot_1.jpg", false, function (id, fileName, size, fileData, mimeType) {
              sendTo('telegram.0', {
                  text: fileData,
                  type: 'photo'
              });
          });
          
          M lemonbiter 2 Replies Last reply Reply Quote 1
          • M
            MartyBr @Schmakus last edited by

            Hallo @Schmakus , danke das du den Adapter weiterentwickelt hast. Ich habe eine Doorbird an der Gartentür.
            Ich habe eine Frage zu den Skripten. Frage im Zitat:

            @schmakus sagte in Re-New DoorBird Adapter v1.0.x:

            @lemonbiter sagte in Re-New DoorBird Adapter v1.0.x:

            @schmakus

            Hi Schmakus, danke, dass Du den Adapter weiter entwickelst!

            Ich nutzte bis zum Update folgendes Blockly, um mir das Klingel- und Bewegungsbild zu senden...

            bb84996c-7dc5-4d61-a1ea-dc11aa636c14-image.png

            Im Javascript hatte ich dann den Pfad zum Bild, aber das Bild ist ja jetzt im Ordner Dateien, im Unterordner ".doorbird.0"
            Leider bin ich nicht firm genug, das Script anzupassen. Mit folgendem "Satz" habe ich es erfolglos für bspw. das Bewegungsbild probiert.

            sendTo('telegram.0','./files/doorbird.0/Motion_1.jpg');
            

            In diesem Fall kommt bei telegram nur ein Satz an: ".files/doorbird.0/Motion_1.jpg"

            Wenn ich die Url von ioB verwende, dann bekomme ich "immerhin" einen Link zum Bild (wenn ich auf den Link klicke bekomme ich das richtige Bild angzeigt), aber es wird eben nicht das Bild gesendet:

            sendTo('telegram.0','192.168.x.x:80xx/files/doorbird.0/Motion_1.jpg');
            

            Nun frage ich mich / Dich: Wie lautet der Pfad richtig? Oder gibt es einen besseren Weg? Ein besseres, einfacheres Blockly, um mir bei "Bewegung" oder "Klingeln" ein Bild per Telegram senden zu lassen?

            Würde mich sehr freuen, wenn Du mir helfen magst

            Lieben Dank
            LEM

            @lemonbiter die beste Methode ist folgende:

            readFile("doorbird.0", "TakeSnapshot_1.jpg", function (error, data) {
              if (error) {
                console.error(error);
              } else {
                sendTo("telegram.0", {
                  text: data,
                  type: "photo",
                });
              }
            });
            

            Wird das Script in die Javascript Funktion des obigen Blocks eingetragen?

            Folgendes funktioniert auch, jedoch nur, wenn wenn die object db nicht redis ist.

            sendTo('telegram.0', {text: '/opt/iobroker/iobroker-data/files/doorbird.0/Doorbell1_1.jpg', type: 'photo'});
            

            Ab js-controller 4.1.x funktioniert auch folgendes. Ist mega cool. Dies reagiert auf Änderung der Datei.
            Somit sind irgendwelche Pausen und Timeout zwischen Auslösen eines Snapshot und warten bis Snapshot vorhanden ist, überflüssig:

            onFile("doorbird.0", "TakeSnapshot_1.jpg", false, function (id, fileName, size, fileData, mimeType) {
                sendTo('telegram.0', {
                    text: fileData,
                    type: 'photo'
                });
            });
            

            Ist dieses Script ein eigenständiges Javascript? Es hat ja einen Trigger "onfile().

            Ich bin in Javascript nicht firm, erstelle mir bisher nur Blockys.

            Kannst du vielleicht ein vollständiges Script bzw. Blocky posten? Ich nutze aktuell das Blocky aus dem 3. Posting mit der Funktion:

            sendTo('telegram.0', {text: '/opt/iobroker/iobroker-data/files/doorbird.0/Doorbell1_1.jpg', type: 'photo'});
            
            Schmakus 1 Reply Last reply Reply Quote 0
            • lemonbiter
              lemonbiter @Schmakus last edited by lemonbiter

              @schmakus sagte in Re-New DoorBird Adapter v1.0.x:

              onFile("doorbird.0", "TakeSnapshot_1.jpg", false, function (id, fileName, size, fileData, mimeType) {

              Klasse. das bedeutet, dass ich das Blockly so lasse wie es ist und dann im Javascript das eintrage

              readFile("doorbird.0", "TakeSnapshot_1.jpg", function (error, data) {
                if (error) {
                  console.error(error);
                } else {
                  sendTo("telegram.0", {
                    text: data,
                    type: "photo",
                  });
                }
              });
              

              ;ist dann für die "Motion" oder für "Klingeln"?
              Sorry, dass ich hier Pfeile im Kopf habe...
              Wenn das snippet nur für das eine (also Motion oder Klingeln) ist, wie sieht es dann beim "anderen" aus? Aus dem Snippet kann ich nicht erkennen, für was es ist...
              MEA CULPA 🙂

              Danke
              LEM

              Schmakus 1 Reply Last reply Reply Quote 0
              • Schmakus
                Schmakus Developer @MartyBr last edited by

                @martybr sagte in Re-New DoorBird Adapter v1.0.x:

                readFile("doorbird.0", "TakeSnapshot_1.jpg", function (error, data) { if (error) { console.error(error); } else { sendTo("telegram.0", { text: data, type: "photo", }); } });

                Das kannst in der js-funktion eintragen (angepasst auf das jeweilige Bild natürlich)

                readFile("doorbird.0", "TakeSnapshot_1.jpg", function (error, data) {
                  if (error) {
                    console.error(error);
                  } else {
                    sendTo("telegram.0", {
                      text: data,
                      type: "photo",
                    });
                  }
                });
                
                M 2 Replies Last reply Reply Quote 1
                • Schmakus
                  Schmakus Developer @lemonbiter last edited by Schmakus

                  @lemonbiter
                  TakeSnapshot_01.jpg ist das Bild, welches manuell über den Snapshot Button erstellt wird
                  Motion_01.jpg wird bei Bewegung erstellt
                  Doorbell1_01.jpg wird beim Klingeln erstellt.

                  lemonbiter 2 Replies Last reply Reply Quote 1
                  • lemonbiter
                    lemonbiter @Schmakus last edited by lemonbiter

                    @schmakus
                    sorry.. ich habe das noch mal korrigiert...
                    Ich nehme als das Blockly, so wie oben dargestellt... dann folge ich Deinem Tipp:

                    "Also das ist der beste Weg":

                    readFile("doorbird.0", "TakeSnapshot_1.jpg", function (error, data) {
                      if (error) {
                        console.error(error);
                      } else {
                        sendTo("telegram.0", {
                          text: data,
                          type: "photo",
                        });
                      }
                    });
                    

                    Wo stelle ich ein, was das Bild sein soll, also ob Motion oder Klingeln...?
                    Kannst Du es mir deutlicher machen Büdde?

                    1 Reply Last reply Reply Quote 0
                    • lemonbiter
                      lemonbiter @Schmakus last edited by

                      @schmakus

                      AHHH, Du nimmst also nicht das Bild, welches im User Ordner ist sondern erzeugst es quasi im Falle des Events Motion oder Klingeln selbst und versendest es dann? Gleiches Blockly?

                      Schmakus 1 Reply Last reply Reply Quote 0
                      • M
                        MartyBr @Schmakus last edited by

                        @schmakus sagte in Re-New DoorBird Adapter v1.0.x:

                                                                                                                                                    readFile("doorbird.0", "TakeSnapshot_1.jpg", function (error, data) {                                                                                                                                                                              if (error) {                                                                                                                                                                                console.error(error);                                                                                                                                                                              } else {                                                                                                                                                                                sendTo("telegram.0", {                                                                                                                                                                                  text: data,                                                                                                                                                                                  type: "photo",                                                                                                                                                                                });                                                                                                                                                                              }                                                                                                                                                                            });                                            
                        

                        Das teste ich gleich. Ich muss gerade noch etwas erledigen, dann gebe ich dir/euch eine Rückmeldung.

                        1 Reply Last reply Reply Quote 0
                        • Schmakus
                          Schmakus Developer @lemonbiter last edited by

                          @lemonbiter sagte in Re-New DoorBird Adapter v1.0.x:

                          @schmakus

                          AHHH, Du nimmst also nicht das Bild, welches im User Ordner ist sondern erzeugst es quasi im Falle des Events Motion oder Klingeln selbst und versendest es dann? Gleiches Blockly?

                          Nein, ich verwende das Bild was schon angelegt wurde.
                          mit readFilelese ich das vorhandene Bild.

                          lemonbiter 1 Reply Last reply Reply Quote 0
                          • lemonbiter
                            lemonbiter @Schmakus last edited by

                            @schmakus

                            Ja, ich weiss... Du beisst Dir jetzt auf den Finger, verkrampfst die Zehen, schnappatmung setzt ein und so weiter....

                            ich raffs leider nicht...

                            Kannst Du mir (BITTE BITTE) screenshots senden von Deinem Blockly und den beiden passenden Javascripts...?

                            Dankö

                            Schmakus 1 Reply Last reply Reply Quote 0
                            • Schmakus
                              Schmakus Developer @lemonbiter last edited by

                              @lemonbiter sagte in Re-New DoorBird Adapter v1.0.x:

                              @schmakus

                              Ja, ich weiss... Du beisst Dir jetzt auf den Finger, verkrampfst die Zehen, schnappatmung setzt ein und so weiter....

                              ich raffs leider nicht...

                              Kannst Du mir (BITTE BITTE) screenshots senden von Deinem Blockly und den beiden passenden Javascripts...?

                              Dankö

                              Ich nutze kein Blockly. Aber erstell doch ein Javascript und kopiere folgenden Code.

                              on({id: 'doorbird.0.Doorbell.1.trigger', val: true}, function (obj) {
                                const timeout = setTimeout(function () {
                                  readFile("doorbird.0", "Doorbell1_1.jpg", function (error, data) {
                                  if (error) {
                                      console.error(error);
                                  } else {
                                      sendTo("telegram.0", {
                                      text: data,
                                      type: "photo",
                                      });
                                  }
                                  });
                                }, 1000);
                              });
                              

                              oder für Motion:

                              on({id: 'doorbird.0.Motion.trigger', val: true}, function (obj) {
                                const timeout = setTimeout(function () {
                                  readFile("doorbird.0", "Motion_1.jpg", function (error, data) {
                                  if (error) {
                                      console.error(error);
                                  } else {
                                      sendTo("telegram.0", {
                                      text: data,
                                      type: "photo",
                                      });
                                  }
                                  });
                                }, 1000);
                              });
                              lemonbiter 1 Reply Last reply Reply Quote 1
                              • lemonbiter
                                lemonbiter @Schmakus last edited by lemonbiter

                                @schmakus

                                GANZ LIEBEN DANK... Habs getestet und läuft... Manman man

                                LG
                                LEM

                                1 Reply Last reply Reply Quote 0
                                • Negalein
                                  Negalein Global Moderator @Schmakus last edited by

                                  @schmakus

                                  mir fiel heute diese Warn-Meldung auf.

                                  doorbird.0 2023-07-28 18:53:40.759	warn	Error in Parsing Schedules: RangeError: Maximum call stack size exceeded
                                  
                                  1 Reply Last reply Reply Quote 0
                                  • M
                                    MartyBr @Schmakus last edited by

                                    @schmakus
                                    Danke, das Blocky mit dem Javascript läuft und verschickt nun die Bilder per Telegram.

                                    Negalein 1 Reply Last reply Reply Quote 0
                                    • Negalein
                                      Negalein Global Moderator @MartyBr last edited by

                                      @martybr sagte in Re-New DoorBird Adapter v1.0.x:

                                      Danke, das Blocky mit dem Javascript läuft und verschickt nun die Bilder per Telegram.

                                      magst du vielleicht einen Export zur Verfügung stellen?

                                      lemonbiter M 2 Replies Last reply Reply Quote 0
                                      • lemonbiter
                                        lemonbiter @Negalein last edited by lemonbiter

                                        @negalein

                                        Ich habe es, so wie vorgeschlagen, mit den beiden zur Verfügung gestellten Java Scripten, also ohne Blockly gelöst

                                        1 Reply Last reply Reply Quote 0
                                        • M
                                          MartyBr @Negalein last edited by MartyBr

                                          @negalein
                                          Klar, ist aber das Script von oben:

                                          Bildschirmfoto 2023-07-28 um 19.45.59.png

                                          <xml xmlns="https://developers.google.com/blockly/xml">
                                            <variables>
                                              <variable type="timeout" id="timeout">timeout</variable>
                                            </variables>
                                            <block type="on_ext" id=",~ya]g5}vZRRD8$T^@pj" x="13" y="13">
                                              <mutation xmlns="http://www.w3.org/1999/xhtml" items="1"></mutation>
                                              <field name="CONDITION">true</field>
                                              <field name="ACK_CONDITION"></field>
                                              <value name="OID0">
                                                <shadow type="field_oid" id="qzrJb}U?j@E^qgBPEse~">
                                                  <field name="oid">doorbird.0.Doorbell.1.trigger</field>
                                                </shadow>
                                              </value>
                                              <statement name="STATEMENT">
                                                <block type="timeouts_settimeout" id="Mr1148}Ad7z1u3h4vx),">
                                                  <field name="NAME">timeout</field>
                                                  <field name="DELAY">2</field>
                                                  <field name="UNIT">sec</field>
                                                  <statement name="STATEMENT">
                                                    <block type="procedures_callcustomnoreturn" id="~]p1,VkVh`umIbp3fJZI">
                                                      <mutation name="Klingelbild_Senden"></mutation>
                                                    </block>
                                                  </statement>
                                                </block>
                                              </statement>
                                            </block>
                                            <block type="procedures_defcustomnoreturn" id="+SqFu+D!clJM6b445_b=" x="13" y="188">
                                              <mutation statements="false"></mutation>
                                              <field name="NAME">Klingelbild_Senden</field>
                                              <field name="SCRIPT">cmVhZEZpbGUoImRvb3JiaXJkLjAiLCAiRG9vcmJlbGwxXzAxLmpwZyIsIGZ1bmN0aW9uIChlcnJvciwgZGF0YSkgewogIGlmIChlcnJvcikgewogICAgY29uc29sZS5lcnJvcihlcnJvcik7CiAgfSBlbHNlIHsKICAgIHNlbmRUbygidGVsZWdyYW0uMCIsIHsKICAgICAgdGV4dDogZGF0YSwKICAgICAgY2hhdElkOiAnMjh4eHh4eHgxJywKICAgICAgdHlwZTogInBob3RvIiwKICAgIH0pOwogIH0KfSk7Cg==</field>
                                              <comment pinned="false" h="80" w="160">Beschreibe diese Funktion …</comment>
                                            </block>
                                          </xml>
                                          

                                          Edit 29.7.
                                          Ich habe das Blocky neu exportiert. Da war noch ein Fehler enthalten.

                                          Negalein M 3 Replies Last reply Reply Quote 1
                                          • Negalein
                                            Negalein Global Moderator @MartyBr last edited by

                                            @martybr sagte in Re-New DoorBird Adapter v1.0.x:

                                            Klar, ist aber das Script von oben:

                                            Danke

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

                                            Support us

                                            ioBroker
                                            Community Adapters
                                            Donate

                                            537
                                            Online

                                            31.6k
                                            Users

                                            79.5k
                                            Topics

                                            1.3m
                                            Posts

                                            20
                                            135
                                            9816
                                            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