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. Tester
  4. JavaScript 7.11.0 - Neue Datei-Bausteine (lesen / schreiben)

NEWS

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

  • Monatsrückblick – September 2025
    BluefoxB
    Bluefox
    13
    1
    2.0k

  • Neues Video "KI im Smart Home" - ioBroker plus n8n
    BluefoxB
    Bluefox
    16
    1
    2.7k

JavaScript 7.11.0 - Neue Datei-Bausteine (lesen / schreiben)

Geplant Angeheftet Gesperrt Verschoben Tester
40 Beiträge 11 Kommentatoren 7.1k Aufrufe 17 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.
  • haus-automatisierungH Online
    haus-automatisierungH Online
    haus-automatisierung
    Developer Most Active
    schrieb am zuletzt editiert von haus-automatisierung
    #1
    Aktuelle Test Version 7.11.0
    Veröffentlichungsdatum 26.03.2024
    Github Link https://github.com/ioBroker/ioBroker.javascript/releases/tag/v7.11.0

    Auch in dieser Version gibt es wieder viele neue Blöcke, Bugfixes und Features.

    Anpassung der HTTP-Bausteine

    Neben der Timeout-Option ist jetzt auch der Antwort-Typ dazu gekommen. In 99% der Fälle möchte man wahrscheinlich einfach nur Text haben - um damit im Blockly weiter zu arbeiten und z.B. JSON von einer API im Baustein weiter zu arbeiten / in ein Objekt zu wandeln usw. (hab ich ja ausführlich erklärt).

    Aber jetzt kann auch ein arraybuffer angefordert werden. Also "Rohdaten".

    http.png

    Wozu das Ganze? Damit man das "Dateien-Feature" nutzen kann und z.B. eine neue Datei ablegen. Siehe nächster Punkt.

    Datei schreiben / lesen

    Trigger auf Dateien konnte man schon lange erstellen. Also reagieren, wenn eine Datei im Dateien-Tab angepasst wird. Nutzt aber wahrscheinlich kaum jemand, oder? Das liegt wahrscheinlich dran, dass man mit Blockly bisher keine Dateien erstellen konnte. Das hat sich in 7.11.0 geändert.

    Angenommen Du möchtest regelmäßig ein Bild der Außenkamera holen und ablegen (oder bei Bewegung von einem Bewegungsmelder - was auch immer). Dann nimmst Du einfach den http-Baustein, holst das Bild und legst es in einen Meta-Speicher (das Konzept habe ich im ioBroker-Kurs ja auch erklärt... kennst Du als ioBroker-Profi und Beta-Tester längst).

    Screenshot 2024-03-27 at 09.40.12.png

    Damit gehören die umständlichen exec -> wget -O ...-Befehle hoffentlich der Vergangenheit an :) Als nächstes möchte ich z.B. den Telegram-Adapter erweitern, damit auch diese Dateien versendet werden können.

    Wie geht es dann weiter? Du könntest einen Trigger auf alle Kamera-Bilder registrieren und dann darauf reagieren. Wie gesagt, diesen Trigger gab es ja schon länger - nur hat den kaum jemand genutzt (glaube ich). Hier werden ja auch Wildcards usw. unterstützt.

    Neu ist allerdings, dass ich dafür auch einen Baustein (wie bei den State-Triggern und http-Bausteinen) erstellt habe, um die Parameter direkt nutzen zu können und um nicht irgendwelche Variablen erstellen zu müssen (die genau den richtigen Namen haben müssen). Damit kommt man dann alle Infos aus dem Trigger:

    Screenshot 2024-03-27 at 09.41.32.png

    Genaus könnte man natürlich json schreiben:

    Screenshot 2024-03-27 at 09.44.27.png

    Oder irgendetwas anderes. Möglichst flexibel halt. Wünsche?

    Lesen von Dateien klappt natürlich genauso:

    Screenshot 2024-03-27 at 09.47.16.png

    Also einfach ein JSON lesen, etwas anfügen oder ändern und dann wieder speichern. Kein Problem mehr.

    Screenshot 2024-03-27 at 09.51.49.png

    Fehlt Dir etwas?

    Installation des Adapters

    Bitte ganz normal über das Beta-Repository oder das npm-Tab und NICHT über GitHub! Fragen dazu beantworte ich erstmal nicht. Absolute Grundlagen gibts an anderer Stelle ganz ausführlich.

    Ihr macht das möglich

    Besten Dank an alle Teilnehmer des ioBroker-Master-Kurses. Ihr habt die vielen Stunden Entwicklung (schon wieder) finanziert. Natürlich werde ich die neuen Bausteine und Feature auch dort in neuen Lektionen noch ausführlich zeigen und erklären.

    GitHub Stats

    🧑‍🎓 Autor des beliebten ioBroker-Master-Kurses
    🎥 Tutorials rund um das Thema DIY-Smart-Home: https://haus-automatisierung.com/
    📚 Meine inoffizielle ioBroker Dokumentation

    haus-automatisierungH 1 Antwort Letzte Antwort
    15
    • haus-automatisierungH haus-automatisierung
      Aktuelle Test Version 7.11.0
      Veröffentlichungsdatum 26.03.2024
      Github Link https://github.com/ioBroker/ioBroker.javascript/releases/tag/v7.11.0

      Auch in dieser Version gibt es wieder viele neue Blöcke, Bugfixes und Features.

      Anpassung der HTTP-Bausteine

      Neben der Timeout-Option ist jetzt auch der Antwort-Typ dazu gekommen. In 99% der Fälle möchte man wahrscheinlich einfach nur Text haben - um damit im Blockly weiter zu arbeiten und z.B. JSON von einer API im Baustein weiter zu arbeiten / in ein Objekt zu wandeln usw. (hab ich ja ausführlich erklärt).

      Aber jetzt kann auch ein arraybuffer angefordert werden. Also "Rohdaten".

      http.png

      Wozu das Ganze? Damit man das "Dateien-Feature" nutzen kann und z.B. eine neue Datei ablegen. Siehe nächster Punkt.

      Datei schreiben / lesen

      Trigger auf Dateien konnte man schon lange erstellen. Also reagieren, wenn eine Datei im Dateien-Tab angepasst wird. Nutzt aber wahrscheinlich kaum jemand, oder? Das liegt wahrscheinlich dran, dass man mit Blockly bisher keine Dateien erstellen konnte. Das hat sich in 7.11.0 geändert.

      Angenommen Du möchtest regelmäßig ein Bild der Außenkamera holen und ablegen (oder bei Bewegung von einem Bewegungsmelder - was auch immer). Dann nimmst Du einfach den http-Baustein, holst das Bild und legst es in einen Meta-Speicher (das Konzept habe ich im ioBroker-Kurs ja auch erklärt... kennst Du als ioBroker-Profi und Beta-Tester längst).

      Screenshot 2024-03-27 at 09.40.12.png

      Damit gehören die umständlichen exec -> wget -O ...-Befehle hoffentlich der Vergangenheit an :) Als nächstes möchte ich z.B. den Telegram-Adapter erweitern, damit auch diese Dateien versendet werden können.

      Wie geht es dann weiter? Du könntest einen Trigger auf alle Kamera-Bilder registrieren und dann darauf reagieren. Wie gesagt, diesen Trigger gab es ja schon länger - nur hat den kaum jemand genutzt (glaube ich). Hier werden ja auch Wildcards usw. unterstützt.

      Neu ist allerdings, dass ich dafür auch einen Baustein (wie bei den State-Triggern und http-Bausteinen) erstellt habe, um die Parameter direkt nutzen zu können und um nicht irgendwelche Variablen erstellen zu müssen (die genau den richtigen Namen haben müssen). Damit kommt man dann alle Infos aus dem Trigger:

      Screenshot 2024-03-27 at 09.41.32.png

      Genaus könnte man natürlich json schreiben:

      Screenshot 2024-03-27 at 09.44.27.png

      Oder irgendetwas anderes. Möglichst flexibel halt. Wünsche?

      Lesen von Dateien klappt natürlich genauso:

      Screenshot 2024-03-27 at 09.47.16.png

      Also einfach ein JSON lesen, etwas anfügen oder ändern und dann wieder speichern. Kein Problem mehr.

      Screenshot 2024-03-27 at 09.51.49.png

      Fehlt Dir etwas?

      Installation des Adapters

      Bitte ganz normal über das Beta-Repository oder das npm-Tab und NICHT über GitHub! Fragen dazu beantworte ich erstmal nicht. Absolute Grundlagen gibts an anderer Stelle ganz ausführlich.

      Ihr macht das möglich

      Besten Dank an alle Teilnehmer des ioBroker-Master-Kurses. Ihr habt die vielen Stunden Entwicklung (schon wieder) finanziert. Natürlich werde ich die neuen Bausteine und Feature auch dort in neuen Lektionen noch ausführlich zeigen und erklären.

      GitHub Stats

      haus-automatisierungH Online
      haus-automatisierungH Online
      haus-automatisierung
      Developer Most Active
      schrieb am zuletzt editiert von
      #2

      So, die neuen Lektionen sind jetzt (wie versprochen) im Kurs verfügbar. Dort erkläre ich auch die Meta-Objekte, wo die Dateien liegen (auch bei Redis) uvm.

      Screenshot 2024-03-27 at 16.35.24.png

      🧑‍🎓 Autor des beliebten ioBroker-Master-Kurses
      🎥 Tutorials rund um das Thema DIY-Smart-Home: https://haus-automatisierung.com/
      📚 Meine inoffizielle ioBroker Dokumentation

      E 1 Antwort Letzte Antwort
      3
      • haus-automatisierungH Online
        haus-automatisierungH Online
        haus-automatisierung
        Developer Most Active
        schrieb am zuletzt editiert von
        #3

        Noch eine Erweiterung (7.11.1)

        Für den exec-Block gibt es jetzt (analog zu den anderen Bausteinen) auch einen "Ergebnis"-Block um auf stdout, stderror und error generell zuzugreifen. Damit muss man keine Variablen mehr anlegen, welche genau den richtigen Namen haben müssen (z.B. result).

        Logischerweise prüft der Block ebenfalls, ob er sich im richtigen "Context" befindet.

        Screenshot 2024-03-28 at 16.19.29.png

        Würde mich generell freuen, wenn hier noch etwas Feedback kommt...

        🧑‍🎓 Autor des beliebten ioBroker-Master-Kurses
        🎥 Tutorials rund um das Thema DIY-Smart-Home: https://haus-automatisierung.com/
        📚 Meine inoffizielle ioBroker Dokumentation

        haselchenH paul53P 2 Antworten Letzte Antwort
        6
        • haus-automatisierungH haus-automatisierung

          Noch eine Erweiterung (7.11.1)

          Für den exec-Block gibt es jetzt (analog zu den anderen Bausteinen) auch einen "Ergebnis"-Block um auf stdout, stderror und error generell zuzugreifen. Damit muss man keine Variablen mehr anlegen, welche genau den richtigen Namen haben müssen (z.B. result).

          Logischerweise prüft der Block ebenfalls, ob er sich im richtigen "Context" befindet.

          Screenshot 2024-03-28 at 16.19.29.png

          Würde mich generell freuen, wenn hier noch etwas Feedback kommt...

          haselchenH Offline
          haselchenH Offline
          haselchen
          Most Active
          schrieb am zuletzt editiert von
          #4

          @haus-automatisierung

          Huhu,
          ich fang mal mit dem Feedback an oder nennen wir es mal -> mit einer Frage :)
          Aktuell und zeitintensiv lasse ich mir ein Klingelbild einer RingCam als basic Image in meiner VIS abbilden.
          Der Weg muss leider über Snapshot Request des DP gehen , dann writeFile in den RingOrdner und von da in vis.0 , damit es angezeigt wird.
          Dauer = 10sek. Sonst ist das Widget grau und kein Bild da.
          Kann das nun as soon as possible mit Deinen neuen Blöcken erledigt werden?
          Blöd , wenn es klingelt und auf dem Bild ist keiner :)

          Und last but not least , ein herzliches Dankeschön für Deine Updates aus dem hohen Norden :v:

          Synology DS218+ & 2 x Fujitsu Esprimo (VM/Container) + FritzBox7590 + 2 AVM 3000 Repeater & Homematic & HUE & Osram & Xiaomi, NPM 10.9.4, Nodejs 22.21.0 ,JS Controller 7.0.7 ,Admin 7.7.19

          1 Antwort Letzte Antwort
          0
          • haus-automatisierungH haus-automatisierung

            So, die neuen Lektionen sind jetzt (wie versprochen) im Kurs verfügbar. Dort erkläre ich auch die Meta-Objekte, wo die Dateien liegen (auch bei Redis) uvm.

            Screenshot 2024-03-27 at 16.35.24.png

            E Offline
            E Offline
            Eisbaer721
            schrieb am zuletzt editiert von
            #5

            @haus-automatisierung
            Hallo Matthias
            Ich möchte mich auch mal für deinen Kurs und deine Erweiterung hier im Blockly bedanken.
            Ich habe da eine Frage wie ich bei den neuen Bausteinen die erzeugten .jpg Dateien per Telegram verschicken kann weil sie ja nur als Meta ( Ich habe auch Redis am laufen) abgelegt werden. Telegram schickt mir nur den Pfad zu und nicht das Bild.
            Vielen Dank
            Gruß Marko
            a338f028-c401-4153-9c3f-fe2de8c9b409-image.png

            haus-automatisierungH 1 Antwort Letzte Antwort
            0
            • E Eisbaer721

              @haus-automatisierung
              Hallo Matthias
              Ich möchte mich auch mal für deinen Kurs und deine Erweiterung hier im Blockly bedanken.
              Ich habe da eine Frage wie ich bei den neuen Bausteinen die erzeugten .jpg Dateien per Telegram verschicken kann weil sie ja nur als Meta ( Ich habe auch Redis am laufen) abgelegt werden. Telegram schickt mir nur den Pfad zu und nicht das Bild.
              Vielen Dank
              Gruß Marko
              a338f028-c401-4153-9c3f-fe2de8c9b409-image.png

              haus-automatisierungH Online
              haus-automatisierungH Online
              haus-automatisierung
              Developer Most Active
              schrieb am zuletzt editiert von
              #6

              @eisbaer721 Da muss ich den Telegram Adapter noch anpassen damit das klappt

              🧑‍🎓 Autor des beliebten ioBroker-Master-Kurses
              🎥 Tutorials rund um das Thema DIY-Smart-Home: https://haus-automatisierung.com/
              📚 Meine inoffizielle ioBroker Dokumentation

              HiltexH 1 Antwort Letzte Antwort
              0
              • haus-automatisierungH haus-automatisierung

                Noch eine Erweiterung (7.11.1)

                Für den exec-Block gibt es jetzt (analog zu den anderen Bausteinen) auch einen "Ergebnis"-Block um auf stdout, stderror und error generell zuzugreifen. Damit muss man keine Variablen mehr anlegen, welche genau den richtigen Namen haben müssen (z.B. result).

                Logischerweise prüft der Block ebenfalls, ob er sich im richtigen "Context" befindet.

                Screenshot 2024-03-28 at 16.19.29.png

                Würde mich generell freuen, wenn hier noch etwas Feedback kommt...

                paul53P Offline
                paul53P Offline
                paul53
                schrieb am zuletzt editiert von paul53
                #7

                @haus-automatisierung
                Es wäre schön, wenn man in Blockly die Variable scriptName des JS-Adapters als vordefinierte, nur lesbare Variable zur Verfügung hätte.
                PS: Kann mich gerade nicht auf Github anmelden.

                Bitte verzichtet auf Chat-Nachrichten, denn die Handhabung ist grauenhaft !
                Produktiv: RPi 2 mit S.USV, HM-MOD-RPI und SLC-USB-Stick mit root fs

                haus-automatisierungH 1 Antwort Letzte Antwort
                1
                • paul53P paul53

                  @haus-automatisierung
                  Es wäre schön, wenn man in Blockly die Variable scriptName des JS-Adapters als vordefinierte, nur lesbare Variable zur Verfügung hätte.
                  PS: Kann mich gerade nicht auf Github anmelden.

                  haus-automatisierungH Online
                  haus-automatisierungH Online
                  haus-automatisierung
                  Developer Most Active
                  schrieb am zuletzt editiert von
                  #8

                  @paul53 Das macht mir zwar etwas Angst, weil ich genau heute das gleiche auf die Todo-Liste geschrieben habe, aber: kommt 👍

                  🧑‍🎓 Autor des beliebten ioBroker-Master-Kurses
                  🎥 Tutorials rund um das Thema DIY-Smart-Home: https://haus-automatisierung.com/
                  📚 Meine inoffizielle ioBroker Dokumentation

                  haselchenH 1 Antwort Letzte Antwort
                  1
                  • haus-automatisierungH haus-automatisierung

                    @paul53 Das macht mir zwar etwas Angst, weil ich genau heute das gleiche auf die Todo-Liste geschrieben habe, aber: kommt 👍

                    haselchenH Offline
                    haselchenH Offline
                    haselchen
                    Most Active
                    schrieb am zuletzt editiert von
                    #9

                    @haus-automatisierung

                    Und eine Antwort auf meine obige Frage?
                    Kommt bestimmt auch noch 😉

                    Synology DS218+ & 2 x Fujitsu Esprimo (VM/Container) + FritzBox7590 + 2 AVM 3000 Repeater & Homematic & HUE & Osram & Xiaomi, NPM 10.9.4, Nodejs 22.21.0 ,JS Controller 7.0.7 ,Admin 7.7.19

                    haus-automatisierungH 1 Antwort Letzte Antwort
                    0
                    • haselchenH haselchen

                      @haus-automatisierung

                      Und eine Antwort auf meine obige Frage?
                      Kommt bestimmt auch noch 😉

                      haus-automatisierungH Online
                      haus-automatisierungH Online
                      haus-automatisierung
                      Developer Most Active
                      schrieb am zuletzt editiert von
                      #10

                      @haselchen sagte in JavaScript 7.11.0 - Neue Datei-Bausteine (lesen / schreiben):

                      Und eine Antwort auf meine obige Frage?

                      Kann ich nicht beantworten mit so wenig Infos.

                      🧑‍🎓 Autor des beliebten ioBroker-Master-Kurses
                      🎥 Tutorials rund um das Thema DIY-Smart-Home: https://haus-automatisierung.com/
                      📚 Meine inoffizielle ioBroker Dokumentation

                      haselchenH 1 Antwort Letzte Antwort
                      0
                      • haus-automatisierungH haus-automatisierung

                        @haselchen sagte in JavaScript 7.11.0 - Neue Datei-Bausteine (lesen / schreiben):

                        Und eine Antwort auf meine obige Frage?

                        Kann ich nicht beantworten mit so wenig Infos.

                        haselchenH Offline
                        haselchenH Offline
                        haselchen
                        Most Active
                        schrieb am zuletzt editiert von haselchen
                        #11

                        @haus-automatisierung sagte in JavaScript 7.11.0 - Neue Datei-Bausteine (lesen / schreiben):

                        @haselchen sagte in JavaScript 7.11.0 - Neue Datei-Bausteine (lesen / schreiben):

                        Und eine Antwort auf meine obige Frage?

                        Kann ich nicht beantworten mit so wenig Infos.

                        Wenig Infos? 🤔
                        Was fehlt Dir (noch) für eine Beantwortung?
                        Bin am Handy.
                        Versuche nachher mal das JavaScript hier abzubilden.

                        Edit:
                        @haus-automatisierung

                        Das Skript ist schon älter, tatsächlich das Einzige, was ich gefunden habe, was funktioniert.
                        Allerdings, wie man an den Timeouts sieht, kommt das Bild nicht 1:1 an, wenn es tatsächlich klingelt.

                        var timeout, timeout1
                        var fs = require('fs'); 
                        
                         on({id: 'hm-rpc.1XXXX.PRESS_SHORT', change: "any"}, function (obj) {
                         var value = obj.state.val;
                         var oldValue = obj.oldState.val;
                         setState("ring.0.cocoa.Snapshot.request"/*New Snapshot Request*/, true);
                         timeout = setTimeout(function () {
                        const picture= fs.readFileSync('/opt/iobroker/iobroker-data/tmp/cocoa/SnapshotRingCam.jpg'); //liest linux-datei-system
                        writeFile('vis.0','alarm.jpg', picture, function (error) { });   //schreibt in iobroker system
                        }, 10000);
                        timeout1 = setTimeout(function () {
                           sendTo("telegram.1", "send", {
                               text: '/opt/iobroker/iobroker-data/files/vis.0/alarm.jpg'
                           });
                         }, 13000);
                         });
                        

                        Synology DS218+ & 2 x Fujitsu Esprimo (VM/Container) + FritzBox7590 + 2 AVM 3000 Repeater & Homematic & HUE & Osram & Xiaomi, NPM 10.9.4, Nodejs 22.21.0 ,JS Controller 7.0.7 ,Admin 7.7.19

                        haus-automatisierungH 1 Antwort Letzte Antwort
                        0
                        • haselchenH haselchen

                          @haus-automatisierung sagte in JavaScript 7.11.0 - Neue Datei-Bausteine (lesen / schreiben):

                          @haselchen sagte in JavaScript 7.11.0 - Neue Datei-Bausteine (lesen / schreiben):

                          Und eine Antwort auf meine obige Frage?

                          Kann ich nicht beantworten mit so wenig Infos.

                          Wenig Infos? 🤔
                          Was fehlt Dir (noch) für eine Beantwortung?
                          Bin am Handy.
                          Versuche nachher mal das JavaScript hier abzubilden.

                          Edit:
                          @haus-automatisierung

                          Das Skript ist schon älter, tatsächlich das Einzige, was ich gefunden habe, was funktioniert.
                          Allerdings, wie man an den Timeouts sieht, kommt das Bild nicht 1:1 an, wenn es tatsächlich klingelt.

                          var timeout, timeout1
                          var fs = require('fs'); 
                          
                           on({id: 'hm-rpc.1XXXX.PRESS_SHORT', change: "any"}, function (obj) {
                           var value = obj.state.val;
                           var oldValue = obj.oldState.val;
                           setState("ring.0.cocoa.Snapshot.request"/*New Snapshot Request*/, true);
                           timeout = setTimeout(function () {
                          const picture= fs.readFileSync('/opt/iobroker/iobroker-data/tmp/cocoa/SnapshotRingCam.jpg'); //liest linux-datei-system
                          writeFile('vis.0','alarm.jpg', picture, function (error) { });   //schreibt in iobroker system
                          }, 10000);
                          timeout1 = setTimeout(function () {
                             sendTo("telegram.1", "send", {
                                 text: '/opt/iobroker/iobroker-data/files/vis.0/alarm.jpg'
                             });
                           }, 13000);
                           });
                          
                          haus-automatisierungH Online
                          haus-automatisierungH Online
                          haus-automatisierung
                          Developer Most Active
                          schrieb am zuletzt editiert von
                          #12

                          @haselchen Callback-Funktionen sind eigentlich dafür da, dass man diese nutzt (damit man weiß, wann etwas fertig ist). Einfach 10 Sekunden warten, in der Hoffnung dass alles fertig ist, ist nicht besonders gut gelöst.

                          So z.B.

                          const fs = require('node:fs'); 
                           
                          on({ id: 'hm-rpc.1XXXX.PRESS_SHORT', change: 'any' }, (obj) => {
                             setState('ring.0.cocoa.Snapshot.request', true);
                          
                             setTimeout(() => {
                                const picture = fs.readFileSync('/opt/iobroker/iobroker-data/tmp/cocoa/SnapshotRingCam.jpg'); //liest linux-datei-system
                                writeFile('vis.0','alarm.jpg', picture, (error) => {
                                   if (!error) {
                                      sendTo('telegram.1', 'send', {
                                         text: '/opt/iobroker/iobroker-data/files/vis.0/alarm.jpg'
                                      });
                                   }
                                });
                             }, 10000);
                          });
                          

                          Jetzt müsste man noch den zweiten Timeout loswerden. Irgendetwas muss Dir also sagen, dass das Bild gespeichert wurde. Und da sind wir wieder an dem Punkt, wo ich wegen fehlender Infos nicht helfen kann.

                          Aber... das ist hier im Thread alls komplett Offtopic und hat mit den neuen Blockly-Bausteinen nix zu tun.

                          🧑‍🎓 Autor des beliebten ioBroker-Master-Kurses
                          🎥 Tutorials rund um das Thema DIY-Smart-Home: https://haus-automatisierung.com/
                          📚 Meine inoffizielle ioBroker Dokumentation

                          haselchenH 1 Antwort Letzte Antwort
                          0
                          • haus-automatisierungH haus-automatisierung

                            @haselchen Callback-Funktionen sind eigentlich dafür da, dass man diese nutzt (damit man weiß, wann etwas fertig ist). Einfach 10 Sekunden warten, in der Hoffnung dass alles fertig ist, ist nicht besonders gut gelöst.

                            So z.B.

                            const fs = require('node:fs'); 
                             
                            on({ id: 'hm-rpc.1XXXX.PRESS_SHORT', change: 'any' }, (obj) => {
                               setState('ring.0.cocoa.Snapshot.request', true);
                            
                               setTimeout(() => {
                                  const picture = fs.readFileSync('/opt/iobroker/iobroker-data/tmp/cocoa/SnapshotRingCam.jpg'); //liest linux-datei-system
                                  writeFile('vis.0','alarm.jpg', picture, (error) => {
                                     if (!error) {
                                        sendTo('telegram.1', 'send', {
                                           text: '/opt/iobroker/iobroker-data/files/vis.0/alarm.jpg'
                                        });
                                     }
                                  });
                               }, 10000);
                            });
                            

                            Jetzt müsste man noch den zweiten Timeout loswerden. Irgendetwas muss Dir also sagen, dass das Bild gespeichert wurde. Und da sind wir wieder an dem Punkt, wo ich wegen fehlender Infos nicht helfen kann.

                            Aber... das ist hier im Thread alls komplett Offtopic und hat mit den neuen Blockly-Bausteinen nix zu tun.

                            haselchenH Offline
                            haselchenH Offline
                            haselchen
                            Most Active
                            schrieb am zuletzt editiert von haselchen
                            #13

                            @haus-automatisierung

                            Ich denke genau das macht der neue Baustein?
                            Bild holen und ablegen ( in quasi Echtzeit).
                            Wenn’s Offtopic wäre , würde ich hier nicht fragen ☝️

                            Synology DS218+ & 2 x Fujitsu Esprimo (VM/Container) + FritzBox7590 + 2 AVM 3000 Repeater & Homematic & HUE & Osram & Xiaomi, NPM 10.9.4, Nodejs 22.21.0 ,JS Controller 7.0.7 ,Admin 7.7.19

                            haus-automatisierungH 1 Antwort Letzte Antwort
                            0
                            • haselchenH haselchen

                              @haus-automatisierung

                              Ich denke genau das macht der neue Baustein?
                              Bild holen und ablegen ( in quasi Echtzeit).
                              Wenn’s Offtopic wäre , würde ich hier nicht fragen ☝️

                              haus-automatisierungH Online
                              haus-automatisierungH Online
                              haus-automatisierung
                              Developer Most Active
                              schrieb am zuletzt editiert von
                              #14

                              @haselchen sagte in JavaScript 7.11.0 - Neue Datei-Bausteine (lesen / schreiben):

                              Ich denke genau das macht der neue Baustein?

                              Die neuen Bausteine stellen nur Funktionen in Blockly bereit, welche es in JavaScript schon seit Jahren gibt. Bei dem Ring-Adapter muss man das Bild aber scheinbar anfordern, indem man einen Datenpunkt ansteuert - und es gibt keine HTTP-Url. Daher hilft Dir das alles nicht (wie es aussieht).

                              🧑‍🎓 Autor des beliebten ioBroker-Master-Kurses
                              🎥 Tutorials rund um das Thema DIY-Smart-Home: https://haus-automatisierung.com/
                              📚 Meine inoffizielle ioBroker Dokumentation

                              haselchenH 1 Antwort Letzte Antwort
                              0
                              • haus-automatisierungH haus-automatisierung

                                @haselchen sagte in JavaScript 7.11.0 - Neue Datei-Bausteine (lesen / schreiben):

                                Ich denke genau das macht der neue Baustein?

                                Die neuen Bausteine stellen nur Funktionen in Blockly bereit, welche es in JavaScript schon seit Jahren gibt. Bei dem Ring-Adapter muss man das Bild aber scheinbar anfordern, indem man einen Datenpunkt ansteuert - und es gibt keine HTTP-Url. Daher hilft Dir das alles nicht (wie es aussieht).

                                haselchenH Offline
                                haselchenH Offline
                                haselchen
                                Most Active
                                schrieb am zuletzt editiert von
                                #15

                                @haus-automatisierung

                                Okay.
                                Angekommen ich tausch die Kamera aus. ( hat dann eine HTTP URL), wie sehe dann das Blockly aus?
                                HMIP Klingel -> Bild machen -> unmittelbar für die VIS bereitstellen .

                                Synology DS218+ & 2 x Fujitsu Esprimo (VM/Container) + FritzBox7590 + 2 AVM 3000 Repeater & Homematic & HUE & Osram & Xiaomi, NPM 10.9.4, Nodejs 22.21.0 ,JS Controller 7.0.7 ,Admin 7.7.19

                                haus-automatisierungH 1 Antwort Letzte Antwort
                                0
                                • haselchenH haselchen

                                  @haus-automatisierung

                                  Okay.
                                  Angekommen ich tausch die Kamera aus. ( hat dann eine HTTP URL), wie sehe dann das Blockly aus?
                                  HMIP Klingel -> Bild machen -> unmittelbar für die VIS bereitstellen .

                                  haus-automatisierungH Online
                                  haus-automatisierungH Online
                                  haus-automatisierung
                                  Developer Most Active
                                  schrieb am zuletzt editiert von haus-automatisierung
                                  #16

                                  @haselchen Steht doch alles oben?

                                  Screenshot 2024-03-27 at 09.40.12.png

                                  Dann halt vis.0 als Meta-Storage wählen und alarm.jpg als Dateinamen eintragen. Fertig. Muss halt noch ein Trigger drumherum bei Klingeln, ... sollte klar sein :)

                                  🧑‍🎓 Autor des beliebten ioBroker-Master-Kurses
                                  🎥 Tutorials rund um das Thema DIY-Smart-Home: https://haus-automatisierung.com/
                                  📚 Meine inoffizielle ioBroker Dokumentation

                                  1 Antwort Letzte Antwort
                                  2
                                  • I Offline
                                    I Offline
                                    ioBroker-lover
                                    schrieb am zuletzt editiert von
                                    #17

                                    Danke dir für deine Arbeit! Habe mich direkt mal dran gesetzt um die Skripte umzubauen, die derzeit noch JavaScript Funktionen haben (die für mich als Anfänger schwer zu warten sind).

                                    Irgendwie bekomme ich hier jedoch kein Bild als Ergebnis.
                                    Es scheint, als ob die Funktion nicht ausgeführt wird. Habe ich einen Knoten im Kopf?

                                    3d799e66-e0c8-4222-b018-6c2466f8e3ff-image.png

                                    haus-automatisierungH 1 Antwort Letzte Antwort
                                    0
                                    • I ioBroker-lover

                                      Danke dir für deine Arbeit! Habe mich direkt mal dran gesetzt um die Skripte umzubauen, die derzeit noch JavaScript Funktionen haben (die für mich als Anfänger schwer zu warten sind).

                                      Irgendwie bekomme ich hier jedoch kein Bild als Ergebnis.
                                      Es scheint, als ob die Funktion nicht ausgeführt wird. Habe ich einen Knoten im Kopf?

                                      3d799e66-e0c8-4222-b018-6c2466f8e3ff-image.png

                                      haus-automatisierungH Online
                                      haus-automatisierungH Online
                                      haus-automatisierung
                                      Developer Most Active
                                      schrieb am zuletzt editiert von
                                      #18

                                      @iobroker-lover Wenn das das ganze Blockly ist, wird die Funktion auch nie aufgerufen. Auch der Pushover Block gehört da nicht hin

                                      🧑‍🎓 Autor des beliebten ioBroker-Master-Kurses
                                      🎥 Tutorials rund um das Thema DIY-Smart-Home: https://haus-automatisierung.com/
                                      📚 Meine inoffizielle ioBroker Dokumentation

                                      I 1 Antwort Letzte Antwort
                                      0
                                      • haus-automatisierungH haus-automatisierung

                                        @iobroker-lover Wenn das das ganze Blockly ist, wird die Funktion auch nie aufgerufen. Auch der Pushover Block gehört da nicht hin

                                        I Offline
                                        I Offline
                                        ioBroker-lover
                                        schrieb am zuletzt editiert von ioBroker-lover
                                        #19

                                        @haus-automatisierung Das ist nur ein Test-Skript gewesen.
                                        Sorry, in den Pushover-Block gehört natürlich die Funktion. Habe ein paar Versionen durchgespielt und bemerkt, dass die Funktion hier wenn sie im "Anhang"-Eingang ist, scheinbar nicht aufgerufen wird. Der Screenshot alleine macht so wie du sagst keinen Sinn.

                                        Hier der richtige Stand, der nach meinem Verständnis funktionieren müsste - es aber nicht tut.
                                        Dass "pushover" hier alleine steht, kommt nur daher, dass es so beim Skript-start direkt getriggert wird. (Praktisch zum Testen).
                                        Ist es möglich dass ich "data" nicht in eine Variable stecken kann sondern immer schreiben und lesen muss?

                                        3d3cffc0-e372-4999-8a13-04e510389ed8-grafik.png

                                        haus-automatisierungH 1 Antwort Letzte Antwort
                                        0
                                        • I ioBroker-lover

                                          @haus-automatisierung Das ist nur ein Test-Skript gewesen.
                                          Sorry, in den Pushover-Block gehört natürlich die Funktion. Habe ein paar Versionen durchgespielt und bemerkt, dass die Funktion hier wenn sie im "Anhang"-Eingang ist, scheinbar nicht aufgerufen wird. Der Screenshot alleine macht so wie du sagst keinen Sinn.

                                          Hier der richtige Stand, der nach meinem Verständnis funktionieren müsste - es aber nicht tut.
                                          Dass "pushover" hier alleine steht, kommt nur daher, dass es so beim Skript-start direkt getriggert wird. (Praktisch zum Testen).
                                          Ist es möglich dass ich "data" nicht in eine Variable stecken kann sondern immer schreiben und lesen muss?

                                          3d3cffc0-e372-4999-8a13-04e510389ed8-grafik.png

                                          haus-automatisierungH Online
                                          haus-automatisierungH Online
                                          haus-automatisierung
                                          Developer Most Active
                                          schrieb am zuletzt editiert von
                                          #20

                                          @iobroker-lover Das geht so auch nicht. Die Variable "Bild" wird zurückgegeben, bevor der Callback des HTTP-Requests ausgeführt wird. Das heißt, dass die Bilddaten immer leer sein werden. Das ist bei allen Blockly-Bausteinen so, da alle mit Callback arbeiten und nicht mit Promises (das ginge nur in JavaScript).

                                          🧑‍🎓 Autor des beliebten ioBroker-Master-Kurses
                                          🎥 Tutorials rund um das Thema DIY-Smart-Home: https://haus-automatisierung.com/
                                          📚 Meine inoffizielle ioBroker Dokumentation

                                          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

                                          844

                                          Online

                                          32.4k

                                          Benutzer

                                          81.5k

                                          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