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. Entwicklung
  4. socket.io States via Kotlin/Java abgreifen

NEWS

  • Weihnachtsangebot 2025! 🎄
    BluefoxB
    Bluefox
    22
    1
    1.2k

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

  • Monatsrückblick – September 2025
    BluefoxB
    Bluefox
    14
    1
    2.5k

socket.io States via Kotlin/Java abgreifen

Geplant Angeheftet Gesperrt Verschoben Entwicklung
7 Beiträge 3 Kommentatoren 618 Aufrufe 3 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.
  • S Offline
    S Offline
    scripz
    schrieb am zuletzt editiert von
    #1

    Hey zusammen,

    ich bin gerade dabei eine Android App, die den socket.io Adapter nutzt, zu erstellen. Dabei kann ich mit den Sockets Dinge schalten und States abgreifen.

    Leider kann ich nicht wie in der Javascriptversion mit dem "onUpdate" bzw. "stateChange" Event nach Änderungen der Stati horchen.

    Beispiel:

     mSocket.on("connect", Emitter.Listener { args ->
                    Log.e(
                        "CUSTOM",
                        "connected to ioBroker"
                    )
                })
    

    Das funktioniert, bin ich connected, wird die Funktion aktiv.

    Wenn ich jedoch

    mSocket.on("stateChange", Emitter.Listener { args ->
                    Log.e(
                        "CUSTOM",
                        "hier sollte was stehen, wenn was geändert wird"
                    )
                })
    

    abgebe, werden keine Objectchanges geloggt..

    Hat einer vielleicht eine Idee?

    Grüße

    UncleSamU 1 Antwort Letzte Antwort
    0
    • S scripz

      Hey zusammen,

      ich bin gerade dabei eine Android App, die den socket.io Adapter nutzt, zu erstellen. Dabei kann ich mit den Sockets Dinge schalten und States abgreifen.

      Leider kann ich nicht wie in der Javascriptversion mit dem "onUpdate" bzw. "stateChange" Event nach Änderungen der Stati horchen.

      Beispiel:

       mSocket.on("connect", Emitter.Listener { args ->
                      Log.e(
                          "CUSTOM",
                          "connected to ioBroker"
                      )
                  })
      

      Das funktioniert, bin ich connected, wird die Funktion aktiv.

      Wenn ich jedoch

      mSocket.on("stateChange", Emitter.Listener { args ->
                      Log.e(
                          "CUSTOM",
                          "hier sollte was stehen, wenn was geändert wird"
                      )
                  })
      

      abgebe, werden keine Objectchanges geloggt..

      Hat einer vielleicht eine Idee?

      Grüße

      UncleSamU Offline
      UncleSamU Offline
      UncleSam
      Developer
      schrieb am zuletzt editiert von UncleSam
      #2

      @scripz Was ist mSocket? Ist es das socket-io Objekt? Dann wird das nicht gehen, da socket-io nur die darunterliegende Verbindung herstellt. Du musst selber Nachrichten verschicken und auf Nachrichten hören.

      Hier findest du den entsprechenden JavaScript Code:
      https://github.com/ioBroker/ioBroker.socketio/blob/master/example/conn.js

      Dies musst du mehr oder weniger so nach Kotlin oder Java portieren.

      Bitte bei Problemen mit meinen Adaptern, Issue auf GitHub erfassen: Loxone | I2C | Luxtronik2
      ♡-lichen Dank an meine Sponsoren

      S 1 Antwort Letzte Antwort
      0
      • UncleSamU UncleSam

        @scripz Was ist mSocket? Ist es das socket-io Objekt? Dann wird das nicht gehen, da socket-io nur die darunterliegende Verbindung herstellt. Du musst selber Nachrichten verschicken und auf Nachrichten hören.

        Hier findest du den entsprechenden JavaScript Code:
        https://github.com/ioBroker/ioBroker.socketio/blob/master/example/conn.js

        Dies musst du mehr oder weniger so nach Kotlin oder Java portieren.

        S Offline
        S Offline
        scripz
        schrieb am zuletzt editiert von
        #3

        @unclesam genau, das ist ein socket-io Objekt. Die conn.js habe ich schon bei meiner Webapp genutzt, da konnte man eben auf "onUpdate" horchen, deshalb dachte ich gibts da sowas auch :( Aber dann muss ich wohl alle x milisekunden eine Nachricht schicken und den Output verarbeiten. Schade.

        Danke für Deine Antwort! :)

        UncleSamU 1 Antwort Letzte Antwort
        0
        • S scripz

          @unclesam genau, das ist ein socket-io Objekt. Die conn.js habe ich schon bei meiner Webapp genutzt, da konnte man eben auf "onUpdate" horchen, deshalb dachte ich gibts da sowas auch :( Aber dann muss ich wohl alle x milisekunden eine Nachricht schicken und den Output verarbeiten. Schade.

          Danke für Deine Antwort! :)

          UncleSamU Offline
          UncleSamU Offline
          UncleSam
          Developer
          schrieb am zuletzt editiert von
          #4

          @scripz sagte in socket.io States via Kotlin/Java abgreifen:

          dann muss ich wohl alle x milisekunden eine Nachricht schicken und den Output verarbeiten. Schade.

          Was, weshalb? Nein, du kannst doch auf mSocket.on(xxx) auf die Sachen hören, aber dafür must du natürlich auch ein subscribe oder getState, oder sonst etwas machen. Siehe all die this._socket.emit() im oben genannten conn.js.

          Von selbst kommen bei socket-io keine Daten - zum Glück, sonst würde bei grossen ioBroker Installationen die Verbindung komplett überfordert.

          Im conn.js wird das in diesen zwei Zeilen gemacht - aber das kann ich nicht empfehlen, da das sehr viele Daten sein können:

                  this._autoSubscribe && this._socket.emit('subscribe', '*');
                  objectsRequired && this._socket.emit('subscribeObjects', '*');
          

          Damit erhälst du jede Änderung von irgendetwas in ioBroker.

          Bitte bei Problemen mit meinen Adaptern, Issue auf GitHub erfassen: Loxone | I2C | Luxtronik2
          ♡-lichen Dank an meine Sponsoren

          S 1 Antwort Letzte Antwort
          1
          • UncleSamU UncleSam

            @scripz sagte in socket.io States via Kotlin/Java abgreifen:

            dann muss ich wohl alle x milisekunden eine Nachricht schicken und den Output verarbeiten. Schade.

            Was, weshalb? Nein, du kannst doch auf mSocket.on(xxx) auf die Sachen hören, aber dafür must du natürlich auch ein subscribe oder getState, oder sonst etwas machen. Siehe all die this._socket.emit() im oben genannten conn.js.

            Von selbst kommen bei socket-io keine Daten - zum Glück, sonst würde bei grossen ioBroker Installationen die Verbindung komplett überfordert.

            Im conn.js wird das in diesen zwei Zeilen gemacht - aber das kann ich nicht empfehlen, da das sehr viele Daten sein können:

                    this._autoSubscribe && this._socket.emit('subscribe', '*');
                    objectsRequired && this._socket.emit('subscribeObjects', '*');
            

            Damit erhälst du jede Änderung von irgendetwas in ioBroker.

            S Offline
            S Offline
            scripz
            schrieb am zuletzt editiert von
            #5

            @unclesam Perfekt! Vielen Dank! Ich habe mich zu sehr auf das onUpdate und stateChanged konzentriert. Auch war mir das Konzept von socketIO nicht ganz klar. Dein Tipp "Von selbst kommen bei socket-io keine Daten" hat mich dann erst in die richtige Richtung gestoßen. Das wusste ich so nicht :)

            Vielen Dank, jetzt kann ich weiter "basteln" :)

            Grüße

            benj1m4nB 1 Antwort Letzte Antwort
            0
            • S scripz

              @unclesam Perfekt! Vielen Dank! Ich habe mich zu sehr auf das onUpdate und stateChanged konzentriert. Auch war mir das Konzept von socketIO nicht ganz klar. Dein Tipp "Von selbst kommen bei socket-io keine Daten" hat mich dann erst in die richtige Richtung gestoßen. Das wusste ich so nicht :)

              Vielen Dank, jetzt kann ich weiter "basteln" :)

              Grüße

              benj1m4nB Offline
              benj1m4nB Offline
              benj1m4n
              schrieb am zuletzt editiert von benj1m4n
              #6

              @scripz Hi, ich versuche gerade das gleiche umzusetzen und eine kleine Android App zur Steuerung aufzusetzen. allerdings scheitere ich shcon am connect. Wie hast du das damals hinbekommen?

                      val uri = URI.create("http://<meineip>")
                      mSocket = IO.socket(uri)
                      mSocket?.on("connect", {Log.i("CUSTOM","connected to ioBroker")})
                      mSocket?.connect();
              

              Der connect Befehl wird aber nicht ausgeführt, ich sehe auch keine Fehlermeldungen im Debugger.
              Die IP kann ich im Browser ohne Probleme aufrufen, also auch kein Tipp Fehler.
              Hast du einen Tipp wie du damals vorgegangen bist?

              UncleSamU 1 Antwort Letzte Antwort
              0
              • benj1m4nB benj1m4n

                @scripz Hi, ich versuche gerade das gleiche umzusetzen und eine kleine Android App zur Steuerung aufzusetzen. allerdings scheitere ich shcon am connect. Wie hast du das damals hinbekommen?

                        val uri = URI.create("http://<meineip>")
                        mSocket = IO.socket(uri)
                        mSocket?.on("connect", {Log.i("CUSTOM","connected to ioBroker")})
                        mSocket?.connect();
                

                Der connect Befehl wird aber nicht ausgeführt, ich sehe auch keine Fehlermeldungen im Debugger.
                Die IP kann ich im Browser ohne Probleme aufrufen, also auch kein Tipp Fehler.
                Hast du einen Tipp wie du damals vorgegangen bist?

                UncleSamU Offline
                UncleSamU Offline
                UncleSam
                Developer
                schrieb am zuletzt editiert von UncleSam
                #7

                @benj1m4n sagte in socket.io States via Kotlin/Java abgreifen:

                Die IP kann ich im Browser ohne Probleme aufrufen, also auch kein Tipp Fehler.

                Und du kannst die IP ohne Portnummer aufrufen? Oder hast du etwa den Port vergessen? Du kannst entweder den im Web-Adapter zur Verfügung gestellten Socket.io Port verwenden (meistens 8082) oder du installierst den Socket.io Adapter und stellst dort einen Port ein, den du dann verwendest.

                Und wahrscheinlich (auch wenn ich die Android/Java Version von Socket.io nicht kenne), solltest du mal ein mSocket?.on("error", ...); oder ähnliches versuchen. Klar gibt die asynchrone Methode connect() nichts zurück, wenn du eine falsche URI verwendest - die Methode ist ja eben asynchron.

                Bitte bei Problemen mit meinen Adaptern, Issue auf GitHub erfassen: Loxone | I2C | Luxtronik2
                ♡-lichen Dank an meine Sponsoren

                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

                819

                Online

                32.5k

                Benutzer

                81.7k

                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