Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Einsteigerfragen
    4. Auf Daten des ioBrokers von "Außen" zugreifen.

    NEWS

    • Amazon Alexa - ioBroker Skill läuft aus ?

    • Monatsrückblick – September 2025

    • Neues Video "KI im Smart Home" - ioBroker plus n8n

    Auf Daten des ioBrokers von "Außen" zugreifen.

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

      @oliverio
      Danke für die Mühe das alles herauszusuchen. Aber das ist nicht mein Problem. Ich habe Daten über Modbus, Mqtt und Rest-Api (per Script) schon im ioBroker. Nun möchte ich die Daten aber nutzen und da bleibt, nach dem was ich bisher weiß, nur die Möglichkeit über Scripte oder außerhalb vom ioBroker (NodeRed, eigenes Programm ...).
      Zwischenzeitlich habe ich einen Rest-Api-Adapter gefunden der die Schnittstelle nach "draußen" bilden kann und, soweit ich es gelesen habe, kann der Mqtt-Adapter auch publischen. Damit wäre meine Anfangsfrage eigentlich geklärt. 😳

      Gibt es Beispielscripte auf die man aufbauen kann?

      Grüße Martin

      Homoran 1 Reply Last reply Reply Quote 0
      • Homoran
        Homoran Global Moderator Administrators @Martin 5 last edited by

        @martin-5 sagte in Auf Daten des ioBrokers von "Außen" zugreifen.:

        Aber das ist nicht mein Problem.

        welches denn?

        wenn

        @martin-5 sagte in Auf Daten des ioBrokers von "Außen" zugreifen.:

        Nun möchte ich die Daten aber nutzen

        das ein Problem darstellt, dann bitte welches?

        wofür nutzen?
        wie nutzen?

        @martin-5 sagte in Auf Daten des ioBrokers von "Außen" zugreifen.:

        nur die Möglichkeit über Scripte oder außerhalb vom ioBroker (NodeRed, eigenes Programm ...).

        Node red ist auch nur eine GUI für javascript.
        Das gibt es aber als voll funktonsfähigen Adapter, das braucht nichts "außerhalb"!

        Also ganz hab ich dein "Problem" nicht verstanden

        M 1 Reply Last reply Reply Quote 0
        • OliverIO
          OliverIO last edited by

          @martin-5

          ich habe es auch noch nicht so genau verstanden was du mit "draussen" meinst.

          im LAN
          im Garten
          vom Internet aus
          eine visualisierung?

          vom LAN aus kommst du ja schon auf die Daten.
          Wenn du sie visualisiert haben willst, dann per vis/vis2 oder eine der anderen vielen visualisierungsadapter.

          aus dem internet bietet sich mit wireguard oder tailscale an

          mcm1957 M 2 Replies Last reply Reply Quote 0
          • mcm1957
            mcm1957 @OliverIO last edited by

            Also ich verstehe das Ganze so:

            @Martin-5 hat alle Daten die er braucht bereits in ioBroker drinnen.

            Er will aber die Logic die er braucht unbedingt extern programmieren, da er nicht den java-script Adapter benutzen will und dort Scripts mit seiner Logic ablegen will. Wenn das eine fixe Forderung ist, dann muss er die Daten via REST Adapter vom ioBroker abholen und eben extern in welcher Software auch immer bearbeiten.

            Allerdinsg erscheint (mir) das wenig sinnvoll. Zu seinen Argumenten gegen Javascript:

            • javascript hat ekeine Typen und Klassen
              -> stimmt nicht, wenn typen gewunschen sind, dann halt typescritp verwenden, Klassen kennt javascritp selbst.

            • der Editor im javascript Adapetr ist nicht optinal
              -> dann extern editieren. Gibt m.W. nach sogar ein Pluing für vsCode (Details kennen sicher hier einige)

            • kein debugging
              _> bin nicht sicher aber soweit ich weiß kennt der javascript Adapter auch Breakpoints. Debuig Ausgaben kennt er jedenfalls. Allerdings muss das ggF ein echter Kenner bestätigen / korrigieren.

            Nur eines ist klar: ioBroker selbst ist nicht mit java programmierbar.

            @Martin-5
            Lass uns daher bitte wissen ob es noch offene Fragen gibt die wir beantworten können. Und schau dir die Möglichkeiten des java-script Adapters durchaus an und frag nach wenn dir was abgeht. Da du schreibst dass dein Programm "das ohne große Logik die verfügbare Energie an die Verbraucher verteilt" kann das ja keine komplexxe AI Implementierung sein. Aer ohne mehr Info weiß niemand das dein Java Programm nun tut und ob dieselbe Funktionlität trivial im javascript Adapter umsetzbar ist - oder nicht.

            M 1 Reply Last reply Reply Quote 1
            • M
              Martin 5 @Homoran last edited by

              @homoran sagte in Auf Daten des ioBrokers von "Außen" zugreifen.:

              Also ganz hab ich dein "Problem" nicht verstanden

              Die Frage war wie ich an die Daten komme die im ioBroker gesammelt werden. Es hilft ja nichts wenn ich mir alles in der Weboberfläche vom ioBroker ansehen kann. Diese Frage ist ja nun beantwortet, Rest-Api und Mqtt-Client.

              1 Reply Last reply Reply Quote 0
              • M
                Martin 5 @OliverIO last edited by

                @oliverio sagte in Auf Daten des ioBrokers von "Außen" zugreifen.:

                ich habe es auch noch nicht so genau verstanden was du mit "draussen" meinst.

                Außerhalb des ioBrokers. So wie man von einem Javascript mit getState auf einen Datenpunkt zugreift möchte ich von einem anderem Programm aus auf den Datenpunkt lesend und eventuell auch schreibend zugreifen.

                1 Reply Last reply Reply Quote 0
                • M
                  Martin 5 @mcm1957 last edited by Homoran

                  @mcm1957
                  Du hast es auf den Punkt gebracht.

                  Skriptsprachen haben ihre Berechtigung für kleinere Projekte, schnell zu ändern aber langsamer da bei jedem Durchlauf interpretiert wird. C++ Programme werden compiliert und laufen schneller, sind aber schlechter wenn es um schnelle Anpassungen geht.
                  Java liegt irgendwo dazwischen, ist dafür plattformunabhängig.

                  Hier mal ein Link zu meinem miniEm: (https://github.com/MartinDienert/miniEm_) (kleiner Energiemanager ☺ ) Projekt. Es ist keine große Logik dahinter aber besonders das Wallbox-Objekt ist schon etwas größer.
                  Es finde es komisch im Browserfenster zu programmieren, nach einem Plugin für vsCode suche ich mal.
                  Ich könnte natürlich einfach in Java weiter machen aber je mehr verschiedene Schnittstellen dazu kommen desto aufwendiger wird es, und hier soll der ioBroker ins Spiel kommen.

                  Wenn ich Fragen habe melde ich mich. ☺ Danke für eure Hilfe.

                  Grüße Martin

                  mcm1957 OliverIO 2 Replies Last reply Reply Quote 0
                  • mcm1957
                    mcm1957 @Martin 5 last edited by mcm1957

                    @martin-5 said in Auf Daten des ioBrokers von "Außen" zugreifen.:

                    Skriptsprachen haben ihre Berechtigung für kleinere Projekte, schnell zu ändern aber langsamer da bei jedem Durchlauf interpretiert wird.

                    Da hast du im Prinzip recht. Nur ist node.js/javascript (an das du hier wahrscheinlich denkst) keine interpretierte Sprache sondern wird mittels JIT Kompilation sehr wohl in Maschinencode übersetzt. node.js / javascript sollte nicht mit javascript für den Browser aus den 80er Jahren in einen Topf geworfen werden. Und platformunabhängig ist node.js allemal 🙂 - hier aber zumindest bsiher kein relevantes Thema.

                    Siehe z.B. https://www.geeksforgeeks.org/javascript/is-javascript-interpreted-or-compiled/

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

                      @martin-5

                      dann könntest du dir das noch anschauen.
                      damit kannst du dann mit dem iobroker direkt kommunizieren und wirst aktiv benachrichtigt wenn sich ein datenpunkt ändert.
                      https://github.com/socketio/socket.io-client-java

                      1 Reply Last reply Reply Quote 0
                      • M
                        Martin 5 last edited by

                        @mcm1957

                        Aha, danke.

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

                          @Martin-5
                          Deinen Ansatz in Java (die dunkle Seite der Macht) in allen Ehren, aber warum das Rad nochmal neu erfinden?
                          Wenn Du schon mit ioBroker arbeitest (und die Daten dort zur Verfügung hast), hast Du doch schon das komplette Rüstzeug.

                          Es gibt vermutlich die passenden Adapter für Deine Hardware. Sonst hättest Du die Daten ja nicht im ioBroker.
                          Auch sämtliche benötigten Schnittstellen/Protokolle stehen zur Verfügung. MQTT, Modbus, REST, HTTP GET/POST usw.

                          Zur Visualisierung stehen gleich mehrere Möglichkeiten bereit: Vis/Vis2, Jarvis, iQontrol, Lovelace, WebUI und nicht zu vergessen der Energiefluss-Adapter.

                          Für meine Begriffe wäre also lediglich die "Logik" übrig. Also sowas wie: "Wenn Auto voll geladen und PV-Überschuss, dann schalte den Heizstab der WP an" oder Dinge in der Art. Und sowas lässt sich mit den angesprochenen Logikmaschinen (JS, TS, NodeRed usw.) eigentlich ziemlich einfach implementieren.

                          Ich gebe zu, dass der Umstieg von anderen Sprachen zu JS/TS etwas holprig sein kann. Aber das ist keine Hexenwerk ... insbesondere von Java sollte das keine unüberwindliche Hürde sein.
                          Und wie bereits erwähnt darf man NodeJS nicht mit JS im Browser in einen Topf werden. Das sind zwei ziemlich unterschiedliche paar Schuhe.

                          M 1 Reply Last reply Reply Quote 0
                          • M
                            Martin 5 @Codierknecht last edited by

                            @codierknecht
                            Ich werde mal versuchen das miniEm-Projekt (Java) im ioBroker schrittweise umzusetzen.
                            Wie würdet ihr das machen? Für jedes Gerät ein extra Script und dann ein Script für den Ablauf oder alles in einem großen Script?

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

                              @martin-5
                              Da IMHO die Gefahr besteht, dass bei einem Script je Gerät ein Script Werte aus einem anderen Script benötigt, würde ich das in ein einziges Script packen.

                              Auch immer dran denken: ioBroker läuft an der Ecke Ereignisgesteuert.
                              Wenn also z.B. anhand der aktuellen PV-Leistung etwas zu entscheiden und zu steuern ist, legt man einen Trigger auf den DP "PV-Leistung" und entscheidet dort, was jetzt passieren soll und reagiert entsprechend.
                              Also in etwa nach einem solchen Muster:
                              085f6460-e117-40a8-816a-926ea6c2afa7-image.png

                              Edit - etwas OT:
                              Auch ich bin es mit Delphi eigentlich gewohnt, in Klassen zu denken.
                              Mit Vererbung, überladenen Methoden, Eventhandlern und dem ganzen Zipp und Zapp.

                              Muss ich aber in ioBroker nicht. Das haben andere schon längst gemacht und (als Adapter) bereitgestellt.
                              Ich muss also lediglich auf die Änderungen von Werten "horchen" und darauf mit ein paar Zeilen Code reagieren.
                              Da wären jetzt komplexe Klassen wie mit Kanonen auf Spatzen schießen.

                              Bei der Adapterentwicklung sieht das schon wieder anders aus. Aber soweit sind wir ja hier noch nicht 😉

                              M 1 Reply Last reply Reply Quote 2
                              • M
                                Martin 5 @Codierknecht last edited by

                                @codierknecht
                                Dank für die weitere Erläuterung.
                                Wie gehe ich mit Funktionen um die ich in mehreren Scripten verwenden möchte? Kann ich Funktionen aus einem anderem Script verwenden oder muss ich die immer in das entsprechende Script kopieren?

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

                                Support us

                                ioBroker
                                Community Adapters
                                Donate

                                858
                                Online

                                32.3k
                                Users

                                81.0k
                                Topics

                                1.3m
                                Posts

                                6
                                27
                                442
                                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