Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. ioBroker Allgemein
    4. Netatmo Adapter Live camera picture URL per Telegram senden

    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

    Netatmo Adapter Live camera picture URL per Telegram senden

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

      Hi Thomas,

      ich denke auch, dass es an Telegram liegt, dass das Bild nicht aktualisiert wird.

      Wenn man priv jemanden ein Bild sendet, versendet Telegram es ja auch nur beim ersten "richtig".

      Bei weiteren Personen erkennt Telegram es, dass man es schon gesendet hat und an hat sofort den "gesendet Status".

      Fällt besonders bei meiner teils langsamen Handyverbindung auf.

      Den Block, wie Du ihn beschreibst, hatte ich mal eingefügt und ausprobiert.

      Aber dann wird kein Bild, sondern er reine Link als Text in die Nachricht kopiert.

      Daher hatte ich es einzeln gemacht.

       <xml xmlns="http://www.w3.org/1999/xhtml"><block type="on" id="]r@cDL(T)/9T}0Ri|=9#" x="-2912" y="-612"><field name="OID">hm-rpc.1.PEQ0653529.1.PRESS_SHORT</field>
          <field name="CONDITION">true</field>
      
          <statement name="STATEMENT"><block type="control" id="qA}S64(0(lNfd*^h#]Yh"><mutation delay_input="false"></mutation>
              <field name="OID">mihome.0.devices.gateway_7c49ebb17ef2.mid</field>
              <field name="WITH_DELAY">FALSE</field>
              <value name="VALUE"><block type="math_number" id="s3VO47.[NPq_Yr)ONlX_"><field name="NUM">10</field></block></value> 
              <next><block type="control" id="?)SSFf5(!P-XZtH*Js)6"><mutation delay_input="false"></mutation>
                  <field name="OID">mihome.0.devices.gateway_7c49ebb17ef2.dimmer</field>
                  <field name="WITH_DELAY">FALSE</field>
                  <value name="VALUE"><block type="math_number" id="JLDnp*U_0N9BNHg0I8gb"><field name="NUM">100</field></block></value> 
                  <next><block type="control" id="@UiJ!FNWZZNpV!1;yQxS"><mutation delay_input="false"></mutation>
                      <field name="OID">mihome.0.devices.gateway_7c49ebb17ef2.rgb</field>
                      <field name="WITH_DELAY">FALSE</field>
                      <value name="VALUE"><block type="text" id="Xj*DrC#fi71B_l`r``Ia"><field name="TEXT">#002BFF</field></block></value> 
                      <next><block type="control" id="BY0|vzr(~;D#Cjnwg;aB"><mutation delay_input="false"></mutation>
                          <field name="OID">alexa2.0.Echo-Devices.G090LF0964330VQ6.Commands.speak</field>
                          <field name="WITH_DELAY">FALSE</field>
                          <value name="VALUE"><block type="text" id="}BfhQZhY1vJ5VnUkZ6@@"><field name="TEXT">Es hat an der Haustüre geklingelt</field></block></value> 
                          <next><block type="control" id="SDLi*W!`r(%Nn~/.!CXe"><mutation delay_input="true"></mutation>
                              <field name="OID">alexa2.0.Echo-Devices.G090LV037066068T.Commands.speak</field>
                              <field name="WITH_DELAY">TRUE</field>
                              <field name="DELAY_MS">3000</field>
                              <field name="UNIT">ms</field>
                              <field name="CLEAR_RUNNING">FALSE</field>
                              <value name="VALUE"><block type="text" id="=oQfkbLgoXyh}u@(D.A9"><field name="TEXT">Es hat an der Haustüre geklingelt</field></block></value> 
                              <next><block type="control" id="c60X-qN38)ZAS{=uB2:?"><mutation delay_input="true"></mutation>
                                  <field name="OID">alexa2.0.Echo-Devices.G2A0QU06837206K8.Commands.speak</field>
                                  <field name="WITH_DELAY">TRUE</field>
                                  <field name="DELAY_MS">6000</field>
                                  <field name="UNIT">ms</field>
                                  <field name="CLEAR_RUNNING">FALSE</field>
                                  <value name="VALUE"><block type="text" id="wqIa~kmwG8D3}s%RDP~t"><field name="TEXT">Es hat an der Haustüre geklingelt</field></block></value> 
                                  <next><block type="control" id="lYlXxx1IxG(DlTl_gCe^"><mutation delay_input="true"></mutation>
                                      <field name="OID">alexa2.0.Echo-Devices.G090LV03733600SK.Commands.speak</field>
                                      <field name="WITH_DELAY">TRUE</field>
                                      <field name="DELAY_MS">9000</field>
                                      <field name="UNIT">ms</field>
                                      <field name="CLEAR_RUNNING">FALSE</field>
                                      <value name="VALUE"><block type="text" id="pYTA}}9g8ibc{R?%{Fyr"><field name="TEXT">Es hat an der Haustüre geklingelt</field></block></value> 
                                      <next><block type="control" id="jY5o[3rRj{1y1H[mHL~I"><mutation delay_input="true"></mutation>
                                          <field name="OID">mihome.0.devices.gateway_7c49ebb17ef2.mid</field>
                                          <field name="WITH_DELAY">TRUE</field>
                                          <field name="DELAY_MS">5</field>
                                          <field name="UNIT">sec</field>
                                          <field name="CLEAR_RUNNING">FALSE</field>
                                          <value name="VALUE"><block type="math_number" id="1Dom,.@X#)`K|;o^UF#U"><field name="NUM">10</field></block></value> 
                                          <next><block type="control" id="``gp|Yh1pzI7CJs3Ar()"><mutation delay_input="true"></mutation>
                                              <field name="OID">mihome.0.devices.gateway_7c49ebb17ef2.dimmer</field>
                                              <field name="WITH_DELAY">TRUE</field>
                                              <field name="DELAY_MS">30</field>
                                              <field name="UNIT">sec</field>
                                              <field name="CLEAR_RUNNING">FALSE</field>
                                              <value name="VALUE"><block type="math_number" id="y]l;]!9ki8}ChQa?dIGu"><field name="NUM">0</field></block></value> 
                                              <next><block type="telegram" id="d.9v=RP8OcROYpIZ)[c#"><field name="SILENT">FALSE</field>
                                                  <field name="PARSEMODE">default</field>
                                                  <value name="MESSAGE"><shadow type="text" id="Ke5/*Fn3Z~}+SQrKpaX;"><field name="TEXT"> Es hat an der Haustür geklingelt!</field></shadow></value> 
                                                  <next><block type="telegram" id="yB)40*7aLM[C9OjEl1q8"><field name="SILENT">FALSE</field>
                                                      <field name="PARSEMODE">default</field>
                                                      <value name="MESSAGE"><shadow type="text" id="j5V:VCj8zA]+Wu/a8{Kx"></shadow> 
                                                        <block type="get_value" id="7#Kv#[fE^D[KyfZz+uXi"><field name="ATTR">val</field>
                                                          <field name="OID">netatmo.0.Wohnbereich.Lampe Eingang.live.picture</field></block></value></block></next></block></next></block></next></block></next></block></next></block></next></block></next></block></next></block></next></block></next></block></statement></block></xml> 
      

      Da Du ja ne Presence hast, kannst Du ja vielleicht ausprobieren, wie man es mit Java Kenntnis gelöst bekommt.

      Eilt ja nicht.

      LG Frank

      1 Reply Last reply Reply Quote 0
      • ThomasLPZ
        ThomasLPZ last edited by

        Hi Frank,

        ich kenne mich mit den Gegebenheiten von Telegram nicht so aus. Vielleicht sollte man das Bild aus dem Link vorher auf Platte schreiben und dann als Bild und nicht per Link via Telegram versenden. Ich schau mir das in den nächsten Tagen mal an.

        Gruß

        Thomas

        1 Reply Last reply Reply Quote 0
        • K
          Kaiman55 last edited by

          @ThomasLPZ:

          Hallo Frank,

          ich habe mal nachgelesen https://dev.netatmo.com/en-US/resources … urity/live. Die URL ändert sich alle 3 Stunden. Insofern wäre es mal interessant, ob im Abstand von >3Stunden das richtige Bild angezeigt wird. Wenn dem so ist, dann ist meine Vermutung, dass hier im Telegram oder auf dem Handy selbst das Bild im Cache verbleibt und (wenn kein neuer Link übermittelt wird) das Bild nicht neu geladen wird sondern einfach das "alte" angezeigt wird. Vielleicht magst du das ja mal testen. `

          Du hattest Recht. Heute Mittag hat der Postbote geklingelt. Ein Bild kam.

          Als ich gerade nach Hause kam habe ich geklingelt. Diesmal kam ein Bild von mir :lol:

          Somit funktioniert das mit dem hinterlegten Objekt ansatt der URL.

          Klingel ich allerdings erneut, kommt wieder das gleiche Bild. Muss dann wohl wieder 3 Stunden warten.

          1 Reply Last reply Reply Quote 0
          • ThomasLPZ
            ThomasLPZ last edited by

            Also nur noch alle 3 Stunden klingeln. Das könnte man ja am Eingang vermerken :lol:

            Ich denke damit liegt es an Telegram. Ich würde versuchen das Bild aus der URL in eine Datei auf dem ioBroker-Host zu schreiben und dieses dann per Telegram zu versenden. Also ähnlich wie hier in anderer Form schon umgesetzt: viewtopic.php?f=21&t=18739&hilit=kamera+telegram

            Aber vielleicht hat ja noch jemand eine ganz andere Idee.

            Gruß

            Thomas

            1 Reply Last reply Reply Quote 0
            • SmarthomeMF
              SmarthomeMF last edited by

              Hi

              Das mit dem v7 oder v 11 lässt sich nicht ändern!!

              du musst nur einen teil der URL nehmen

              bei mir sieht sie so aus

              http://192.xxx.xxx.xx(IP der Kamera)/835abfacdxxxxxxxxx (dert teil aus deiner URL)/live/files/poor/index.m3u8

              ! Hallo in die Runde,
              ! ich versuche mal zu schildern was ich bisher tun konnte. Vielleicht hilft es ja bei der ein oder anderen Fragestellung.
              ! Anlegen der APP unter https://dev.netatmo.com/myaccount/
              ! Client ID und Client Secret in den Netatmo-Adapter im IOBroker eintragen - Speichern - Adapter startet neu
              ! In den Objekten im IOBroker findet man nun die Livestream URL der Kamera für den externen Zugriff.
              ! Bsp.: https://v1.netatmo.net/restricted/xx.xx … <schlüssel 1="">/<schlüssel 2="">/live/index_local.m3u8 Diese funktionier bei mir zeitlich begrenzt im VLC-Player.
              ! Nun einfach (für den internen Zugriff - Achtung "http" nicht mehr "https") den Link für den Livestream wie folgt generieren:
              ! http://<lokale ip/der/kamera="">/<schlüssel 1="">/live/index_local.m3u8
              ! Alternativ für verschiedene Bandbreiten und Auflösungen statt "/live/index_local.m3u8" jeweils:
              ! /live/files/poor/index.m3u8 (Bandbreite=64000 - Auflösung 640x360)
              ! /live/files/low/index.m3u8 (Bandbreite=500000 - Auflösung 640x360)
              ! /live/files/medium/index.m3u8 (Bandbreite=1000000 - Auflösung 1280x720)
              ! /live/files/high/index.m3u8 (Bandbreite=3000000 - Auflösung 1920x1080)
              ! verwenden.
              ! Die jeweiligen Links funktionieren bei mir (bisher) ohne zeitliche Begrenzung.
              ! Ich hoffe ich konnte ein wenig helfen.
              ! Gruß
              ! Thomas</schlüssel></lokale></schlüssel></schlüssel>
              aber lies mal hier!!

              viewtopic.php?f=20&t=9641

              1 Reply Last reply Reply Quote 0
              • K
                Kaiman55 last edited by

                @ThomasLPZ:

                Also nur noch alle 3 Stunden klingeln. Das könnte man ja am Eingang vermerken :lol:

                Ich denke damit liegt es an Telegram. Ich würde versuchen das Bild aus der URL in eine Datei auf dem ioBroker-Host zu schreiben und dieses dann per Telegram zu versenden. Also ähnlich wie hier in anderer Form schon umgesetzt: viewtopic.php?f=21&t=18739&hilit=kamera+telegram

                Aber vielleicht hat ja noch jemand eine ganz andere Idee. `
                :lol:

                "Nur alle 3 Stunden klingeln" ist gut :mrgreen:

                Ich werde mal schauen, ob ich es mit Blockly hinbekomme, die Bilddatei wegzuschreiben.

                Gruss Frank

                1 Reply Last reply Reply Quote 0
                • ThomasLPZ
                  ThomasLPZ last edited by

                  Ob das mit Blockly was werden kann bin ich gespannt. Kannst ja mal dein Ergebnis posten wenn du magst. Ich schau mal ob ich heute Abend Zeit finde. Die Idee find ich spannend. 8-)

                  VG

                  Thomas

                  1 Reply Last reply Reply Quote 0
                  • K
                    Kaiman55 last edited by

                    Hi Thomas,

                    ich habe mir den Link von Deinem Beispiel mit dem wegschreiben mal angeschaut.

                    Aber ich verstehe nur Bahnhof und kann es leider nicht auf die Presence umsetzen.

                    😢

                    LG Frank

                    1 Reply Last reply Reply Quote 0
                    • ThomasLPZ
                      ThomasLPZ last edited by

                      Hi Frank,

                      ich habe mal dein Blockly importiert und das im Javascript nachgebildet. Dies kannst du einfach importieren und müsttest nur noch die ersten Angaben (Zeile 3 bis 5) auf deine Installation anpassen. Ich denke es ist soweit selbsterklärend.

                      Kannst ja mal versuchen ob es nun funktioniert. Hier im Script wird jetzt das Bild geholt, im Image-Verzeichnis (muss du vorher anlegen) zwischengespeichert, an Telegram gesendet und anschließend wieder gelöscht. Schau mal ob es bei dir funktioniert. Bei mir läuft es 🙂

                      Hab mich dabei an dem Script von @HoffmannOs unter viewtopic.php?f=21&t=18739&hilit=kamera … am#p195677 orientiert.

                      Grüße

                      Thomas

                      var fs = require('fs');
                      
                      camerapicture = 'netatmo.0.Home.Presence.live.picture' ;    // Objekt der Live camera picture URL
                      imagepath = '/Image/'                                       // Pfand zum Zwischenspeicher des Bildes - muss vorher angelegt sein
                      message = 'Es hat an der Haustür geklingelt'                // Nachrichtentext für Telegram
                      
                      on({id: "hm-rpc.1.PEQ0653529.1.PRESS_SHORT", val: true}, function (obj) {
                        var value = obj.state.val;
                        var oldValue = obj.oldState.val;
                        setState("mihome.0.devices.gateway_7c49ebb17ef2.mid", 10);
                        setState("mihome.0.devices.gateway_7c49ebb17ef2.dimmer", 100);
                        setState("mihome.0.devices.gateway_7c49ebb17ef2.rgb", '#002BFF');
                        setState("alexa2.0.Echo-Devices.G090LF0964330VQ6.Commands.speak", 'Es hat an der Haustüre geklingelt');
                        setStateDelayed("alexa2.0.Echo-Devices.G090LV037066068T.Commands.speak", 'Es hat an der Haustüre geklingelt', 3000, false);
                        setStateDelayed("alexa2.0.Echo-Devices.G2A0QU06837206K8.Commands.speak", 'Es hat an der Haustüre geklingelt', 6000, false);
                        setStateDelayed("alexa2.0.Echo-Devices.G090LV03733600SK.Commands.speak", 'Es hat an der Haustüre geklingelt', 9000, false);
                        setStateDelayed("mihome.0.devices.gateway_7c49ebb17ef2.mid", 10, 5000, false);
                        setStateDelayed("mihome.0.devices.gateway_7c49ebb17ef2.dimmer", 0, 30000, false);
                        getImage( obj );
                      });
                      
                      // Bild aus Objekt camerapicture holen
                      function getImage() {
                          var fname = imagepath + Date.now() + '.jpg';
                          request.get({url: getState(camerapicture).val, encoding: 'binary'}, function (err, response, body) {
                              fs.writeFile(fname, body, 'binary', function(err) {
                                  if (err) {
                                      log('Fehler beim Bild speichern: ' + err, 'warn');
                                  } else {
                                      setTimeout(function() { sendImage(fname); }, 2000); 
                                  }
                              }); 
                          });
                      }
                      
                      // Bild über Telegram senden 
                      function sendImage (fname) { 
                          try {
                              sendTo('telegram.0', {
                                  text:                   fname,
                                  caption:                message, 
                                  disable_notification:   true
                              });
                          }
                          catch(err) { if (err.code != "ENOENT") log(err); }  
                          setTimeout(function() { deleteImage(fname); }, 3000); 
                      }
                      
                      // Bild löschen
                      function deleteImage(fname) {
                          try {
                      //        var stats = fs.statSync(path);
                              try { fs.unlinkSync(fname); }
                              catch(err) { if (err.code != "ENOENT") log(err); }     
                          }
                          catch(err) { if (err.code != "ENOENT") log(err); }
                      }
                      
                      1 Reply Last reply Reply Quote 0
                      • ThomasLPZ
                        ThomasLPZ last edited by

                        @Kaiman55:

                        Hi Thomas,

                        ich habe mir den Link von Deinem Beispiel mit dem wegschreiben mal angeschaut.

                        Aber ich verstehe nur Bahnhof und kann es leider nicht auf die Presence umsetzen.

                        😢

                        LG Frank `

                        Hi Frank,

                        konntest schon mal testen? Würde mich nur interessieren ob es bei dir funktioniert. Bei mir läufts und ich find die Idee cool 8-)

                        Danke nochmal dafür und schönes Wochenende

                        Gruß Thomas

                        1 Reply Last reply Reply Quote 0
                        • K
                          Kaiman55 last edited by

                          Guten Morgen Thomas,

                          ich lag am Wochenende flach.

                          Wo muss ich das Verzeichnis anlegen?

                          Direkt im iobroker Verzeichnis?

                          Gruß Frank

                          1 Reply Last reply Reply Quote 0
                          • ThomasLPZ
                            ThomasLPZ last edited by

                            Hi Frank,

                            ich hab das direkt in der root angelegt. Du kannst aber auch das vorhandene tmp Verzeichnis nutzen. Dann einfach imagepath = 'tmp' verwenden.

                            Gruß

                            Thomas

                            Gesendet von iPhone mit Tapatalk

                            1 Reply Last reply Reply Quote 0
                            • K
                              Kaiman55 last edited by

                              Hi Thomas,

                              es funktioniert 😄

                              Habe TMP genommen.

                              Leeren muss ich das jetzt nicht noch, oder? Die alten Bilder werden überschrieben!?

                              Vielen Dank für die Hilfe! 😉

                              LG Frank

                              1 Reply Last reply Reply Quote 0
                              • ThomasLPZ
                                ThomasLPZ last edited by

                                Hi Frank,

                                das ist prima. Jetzt weißt du immer wer klingelt 🙂

                                Leeren musst du nicht. Die Datei wird nach dem senden wieder gelöscht.

                                Ich nutze es auch, allerdings nur wenn die Presence eine Person erkennt. Coole Idee!

                                Grüße

                                Thomas

                                Gesendet von iPhone mit Tapatalk

                                1 Reply Last reply Reply Quote 0
                                • K
                                  Kaiman55 last edited by

                                  Hi Thomas,

                                  wo ist der Datenpunkt? Erkennung Person oder Auto?

                                  LG Frank

                                  1 Reply Last reply Reply Quote 0
                                  • thexbrain
                                    thexbrain last edited by

                                    imagepath = '/Image/' // Pfand zum Zwischenspeicher des Bildes - muss vorher angelegt sein

                                    Was muss ich hier eintragen?

                                    Vom Raspberry oder NAS das Image Verzeichnis?

                                    1 Reply Last reply Reply Quote 0
                                    • ThomasLPZ
                                      ThomasLPZ last edited by

                                      @Kaiman55:

                                      Hi Thomas,

                                      wo ist der Datenpunkt? Erkennung Person oder Auto?

                                      LG Frank `

                                      Hi Frank,

                                      den gibts in dieser Form leider nicht. Hab hierzu den Adapter bisschen angepasst. Hatte auch schon den Entwickler angeschrieben ob er daran interessiert ist und nochmal als Profi drüber schauen will. Leider hat er bis heute nicht reagiert.

                                      Ich selber nutze die Erkennung einer Person um in der Nacht richtig Krach zu machen damit ich es im Schlaf auch mitbekomme wenn sich jemand rumtreiben sollte.

                                      Gruß

                                      Thomas

                                      Gesendet von iPhone mit Tapatalk

                                      1 Reply Last reply Reply Quote 0
                                      • ThomasLPZ
                                        ThomasLPZ last edited by

                                        @thexbrain:

                                        imagepath = '/Image/' // Pfand zum Zwischenspeicher des Bildes - muss vorher angelegt sein

                                        Was muss ich hier eintragen?

                                        Vom Raspberry oder NAS das Image Verzeichnis? `

                                        Wenn ioBroker auf dem Raspberry läuft dann irgendein Verzeichnis auf dem Raspi anlegen oder das vorhandene tmp-Verzeichnis eintragen.

                                        Gruß

                                        Gesendet von iPhone mit Tapatalk

                                        1 Reply Last reply Reply Quote 0
                                        • thexbrain
                                          thexbrain last edited by

                                          Bekomme irgendwie immer eine Fehlermeldung
                                          4720_netatmo_script.jpg

                                          1 Reply Last reply Reply Quote 0
                                          • ThomasLPZ
                                            ThomasLPZ last edited by

                                            Du hast eine Netatmo Presence im Einsatz?

                                            Im Script, Zeile 3, muss das Objekt angegeben werden, welches den Link auf das Livebild (als jpg) enthält. In meinem Fall ist das 'netatmo.0.Home.Presence.live.picture'

                                            Gruß

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

                                            Support us

                                            ioBroker
                                            Community Adapters
                                            Donate
                                            FAQ Cloud / IOT
                                            HowTo: Node.js-Update
                                            HowTo: Backup/Restore
                                            Downloads
                                            BLOG

                                            749
                                            Online

                                            31.9k
                                            Users

                                            80.2k
                                            Topics

                                            1.3m
                                            Posts

                                            5
                                            36
                                            3589
                                            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