Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. Blockly
    5. Ereignis: Nachricht empfangen auch via API erreichbar?

    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

    Ereignis: Nachricht empfangen auch via API erreichbar?

    This topic has been deleted. Only users with topic management privileges can see it.
    • N
      Neral12 @mickym last edited by

      @mickym ja, weiß ich. Aber was genau willst du damit sagen - Bezug zur Frage?

      mickym 1 Reply Last reply Reply Quote 0
      • mickym
        mickym Most Active @Neral12 last edited by mickym

        @neral12 Nun damit kannst Du doch dann Datenpunkte mit NodeRed beschreiben, die Blocklies Deiner Wahl triggern könnten. Ansonsten kenn ich mich in Blockly zuwenig aus - glaube aber nicht, dass Blockly hier eine ähnliche Funktionalität bietet.

        Du kannst aber auch die iobroker simpleAPI nehmen um Datenpunkte zu beschreiben, um Blocklys zu triggern.

        N 1 Reply Last reply Reply Quote 0
        • N
          Neral12 @mickym last edited by

          Nun damit kannst Du doch dann Datenpunkte mit NodeRed beschreiben, die Blocklies Deiner Wahl triggern könnten.

          @mickym Das ist mir klar, aber nicht meine Absicht. Ich möchte im Script diesen Callback von extern aufrufen.

          onMessage('customMessage', async (data, callback) => {
            console.info(JSON.stringify(data, null, 2));
            typeof callback === 'function' && callback({ result: true }); // default callback
          });
          
          

          Hier der Aufruf aus eine Script:

          messageTo({ instance: 0, script: 'script.js.dev.receiver' , message: 'customMessage' }, 'message', { timeout: 1000 });
          

          Ich dachte das geht mit NodeRed einfach damit: c0b10856-b50b-4451-afd3-81862c2b8d60-grafik.png

          Die simpleAPI bringt mir auch nichts ich will ja keine Datenpunkte beschreiben sondern onMessage aufrufen und da habe ich in keiner API was gefunden...

          mickym 1 Reply Last reply Reply Quote 0
          • mickym
            mickym Most Active @Neral12 last edited by

            @neral12 Ok - da bin ich raus. Ich würde aber sagen, dass man dass nur innerhalb von Adaptern aufrufen kann und nicht von außen. - Ich habe schon mal versucht eine iobroker API von extern zu finden und kann nicht mehr dazu sagen.
            Früher konnte man über socket.io noch was machen - momentan glaube ich aber, dass es nicht gewünscht ist die iobroker API ausserhalb von Adaptern zur Verfügung zu stellen. Aber wie gesagt, ich kann Dir nicht weiterhelfen.

            N 1 Reply Last reply Reply Quote 0
            • paul53
              paul53 @Neral12 last edited by

              @neral12 sagte: Die Sender würde ich gerne durch "externe" nicht auf dem ioBroker laufende Anwendungen ersetzen

              Was für Anwendungen? Es muss irgendeine Kommunikation der Anwendung zu ioBroker (z.B. über Simple-API) erfolgen.

              N 1 Reply Last reply Reply Quote 0
              • N
                Neral12 @mickym last edited by

                @mickym OK- trotzdem Danke! 🖖

                OliverIO 1 Reply Last reply Reply Quote 0
                • N
                  Neral12 @paul53 last edited by

                  @paul53 ja, Simple-API, da ist die Frage wie? Das wäre ja grundsätzlich möglich den Callback aufzurufen, ist aber eben nicht dokumentiert/vorhanden (die anderen Scripte machen das ja ähnlich).

                  oder eben z.B 960a58a5-f0e2-45c2-954c-01caed39dedb-1732225496226-c0b10856-b50b-4451-afd3-81862c2b8d60-grafik.png was im Grunde auch nichts anderes als ein API-call ist.

                  Vermutlich ist das noch zu neu und fehlt schlicht...

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

                    @neral12

                    ich würde sagen das geht nicht.
                    die onMessage/sendMessage-Kombination ist eine Funktion von socketio.
                    Das ist nur entfernt eine API unter zuhilfenahme von websockets(soviel ich weiß)

                    Du hast auch nix zu den besonderen Anforderungen geschrieben, warum du meinst das muss von einer API aus aufgerufen werden? Bei APIs muss der Sender und der Empfänger ja auch zusammenpassen. Das einfachste wäre, wenn du von der anderen Anwendung auch bestimmen kannst, was da gesendet werden soll: du überlegst dir einen Kommunikationsdatenpunkt.
                    Die andere Anwendung kann dann per REST diesen Datenpunkt beschreiben.
                    Dein Skript horcht auf Änderungen dieses Datenpunkts, wertet die Informationen darin aus und führt dann die Aktionen aus.

                    1 Reply Last reply Reply Quote 1
                    • P
                      peterfido @Neral12 last edited by

                      @neral12 Entweder mit Simple Api direkt, oder über Umwege per Node-Red-Server, welcher es dann an einen Datenpunkt in ioBroker weitergibt. Auf diesen Datenpunkt lauscht dann entweder ein Skript, oder es handelt sich um einen Datenpunkt eines Adapters, welcher da direkt drauf hört.

                      Am besten kann man Dir helfen, wenn Du den genauen Anwendungsfall schilderst.

                      1 Reply Last reply Reply Quote 0
                      • BananaJoe
                        BananaJoe Most Active @Neral12 last edited by

                        @neral12 Vielleicht hilft dir das hier weiter:

                        Ich habe neulich hier

                        https://forum.iobroker.net/topic/43361/gelöst-vis-intance-id-automatisiert-ermitteln/117?_=1732261133718

                        ein Beispiel für einen eigenen Webserver per JavaScript veröffentlicht. Zusammengesucht aus diversen Beispielen.
                        Wichtig ist die onStop Funktion die den Webserver beim beenden des Skriptes auch wieder beendet. Der läuft sonst auch weiter wenn das Skript nicht läuft.

                        So könntest du auf deinem eigenen gewählten Port auf http-Aufrufe lauschen. Du könntest auch 2 Skripte auf verschiedenen Ports laufen lassen und über httpGet Nachrichten austauschen.

                        Das ganze könntest du natürlich auch in JavaScript-Blöcke in Blockly setzen.

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

                        Support us

                        ioBroker
                        Community Adapters
                        Donate

                        844
                        Online

                        31.9k
                        Users

                        80.1k
                        Topics

                        1.3m
                        Posts

                        6
                        12
                        428
                        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