Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Entwicklung
    4. socket.io (eigene Visualisierung)

    NEWS

    • ioBroker@Smart Living Forum Solingen, 14.06. - Agenda added

    • ioBroker goes Matter ... Matter Adapter in Stable

    • Monatsrückblick - April 2025

    socket.io (eigene Visualisierung)

    This topic has been deleted. Only users with topic management privileges can see it.
    • UncleSam
      UncleSam Developer @D.VE last edited by

      @d-ve sagte in socket.io (eigene Visualisierung):

      Wie werden die getriggert? Bei onUpdate() werden ja alle Änderungen reingespült.

      Bei Änderungen am Objekt (nicht am State). Das ist eine eher seltene Angelegenheit.

      beide false

      Wenn du den Breakpoint hier setzt: https://github.com/ioBroker/ioBroker.socketio/blob/919a467121e673590377a4fd1023f99ee38656b5/example/conn.js#L1270

      • wird der angesprungen?
      • was ist der Inhalt von version?

      Nein, noch nicht...

      OK, dann ist das mal kein Problem.

      D.VE 1 Reply Last reply Reply Quote 1
      • D.VE
        D.VE @UncleSam last edited by

        @unclesam said in socket.io (eigene Visualisierung):

        wird der angesprungen?

        yep

        @unclesam said in socket.io (eigene Visualisierung):

        was ist der Inhalt von version?

        4.1.11

        UncleSam 1 Reply Last reply Reply Quote 0
        • UncleSam
          UncleSam Developer @D.VE last edited by

          @d-ve Dann ist das ja gut. Und ich nehme an, es wird auch nur einmal angesprungen. Danach ist die Verbindung da und alles ist gut. Kannst du mal den Vorschlag von @OliverIO versuchen und/oder schauen, was in Chrome / Edge (oder FF???) in den Entwickler-Tools unter "Netzwerk" steht. Es gibt dort eine langlebige Verbindung (unter "Time" steht bei mir "Pending") (1), dort kannst du drauf klicken und auf den Reiter "Messages" wechseln (2); da solltest du alle ausgetauschten Nachrichten sehen (3):

          6e0dac09-c169-495d-aaa3-97f4bfcaf7aa-image.png

          Was steht da bei dir?

          D.VE 1 Reply Last reply Reply Quote 0
          • D.VE
            D.VE @UncleSam last edited by

            @unclesam said in socket.io (eigene Visualisierung):

            da solltest du alle ausgetauschten Nachrichten sehen

            590a75d4-d8bf-48d5-9b59-177151afbe37-grafik.png

            Ab da kommen nur noch stateChange Nachrichten

            Hab auch nochmal geschaut, die Queue wird wohl irgendwo geleert:
            0089c8e3-4243-4d56-aa0e-a518fd6ba090-grafik.png

            89d1d323-686f-458c-af0f-0d2afda593f5-grafik.png

            Hat das was zu bedeuten?

            Trying to get states again, because emitted getStates still pending
            
            UncleSam 1 Reply Last reply Reply Quote 0
            • UncleSam
              UncleSam Developer @D.VE last edited by

              @d-ve Ja, es scheint, dass getStates hängt. Du hast gesagt dass du tausende States hast. Vielleicht solltest du wirklich nur die States holen, die du brauchst.

              D.VE 1 Reply Last reply Reply Quote 0
              • D.VE
                D.VE @UncleSam last edited by

                @unclesam said in socket.io (eigene Visualisierung):

                @d-ve Ja, es scheint, dass getStates hängt. Du hast gesagt dass du tausende States hast. Vielleicht solltest du wirklich nur die States holen, die du brauchst.

                das ist ja genau das, was ich hier von Anfang an versuche... Weiß nur nicht wie...

                UncleSam 1 Reply Last reply Reply Quote 0
                • UncleSam
                  UncleSam Developer @D.VE last edited by

                  @d-ve sagte in socket.io (eigene Visualisierung):

                  das ist ja genau das, was ich hier von Anfang an versuche... Weiß nur nicht wie...

                  Sorry, jetzt haben wir uns wirklich genau einmal in Kreis gedreht. Naja, immerhin habe ich eine Information mehr: es gibt einen Request für ["getStates", "*"]. Im Code von conn.js finde ich dazu nichts. Machst du das in deinem Code?

                  Im Beispiel-Code wir das hier gemacht: https://github.com/ioBroker/ioBroker.socketio/blob/919a467121e673590377a4fd1023f99ee38656b5/example/index.html#L27

                  Bei dir würde ich aber wie gesagt nicht empfehlen, alle States zu holen.

                  Wenn du nicht weisst, woher der Request kommt, dann setze mal hier einen Breakpoint:
                  https://github.com/ioBroker/ioBroker.socketio/blob/919a467121e673590377a4fd1023f99ee38656b5/example/conn.js#L775
                  und schau dir dann den Callstack an.

                  D.VE 1 Reply Last reply Reply Quote 0
                  • D.VE
                    D.VE @UncleSam last edited by

                    @unclesam said in socket.io (eigene Visualisierung):

                    Im Beispiel-Code wir das hier gemacht: https://github.com/ioBroker/ioBroker.socketio/blob/919a467121e673590377a4fd1023f99ee38656b5/example/index.html#L27

                    I know... das hat nur nicht funktioniert... Deswegen habe ich den Request jetzt schon dreihundertiverundachtzigmal umgeschrieben

                    @unclesam said in socket.io (eigene Visualisierung):

                    Bei dir würde ich aber wie gesagt nicht empfehlen, alle States zu holen.

                    Wie gesagt, habe ich auch nicht vor... Ich möchte momentan einfach nur mal IRGENDEINEN State holen, am liebsten ein spezifisches Device.
                    Momentan funktioniert bei mir nur der onUpdate()-Teil. Aber wenn ich den Status meiner Lampe anzeigen will, kann nicht so lange warten bis die sich mal bequemt, zufällig ein Update zu senden.

                    lg, Dave

                    UncleSam 1 Reply Last reply Reply Quote 0
                    • UncleSam
                      UncleSam Developer @D.VE last edited by

                      @d-ve Jedes Mal, wenn ich deinen Screenshot anschaue, fällt mir wieder etwas auf...

                      Auf welchen Port verbindest du dich mit dem socket.io Server? Machst du das etwa mit Port 8081? Gleich nach deinem "getStates()" reklamiert nämlich der Admin, dass mit dem Request etwas nicht stimmt. Richtig wäre der Port des socket.io Adapters (normalerweise 8082).

                      Homoran D.VE 2 Replies Last reply Reply Quote 0
                      • Homoran
                        Homoran Global Moderator Administrators @UncleSam last edited by

                        @unclesam sagte in socket.io (eigene Visualisierung):

                        Richtig wäre der Port des socket.io Adapters (normalerweise 8082).

                        8084!

                        1 Reply Last reply Reply Quote 0
                        • D.VE
                          D.VE @UncleSam last edited by

                          @unclesam said in socket.io (eigene Visualisierung):

                          Auf welchen Port verbindest du dich mit dem socket.io Server? Machst du das etwa mit Port 8081?

                          Ja nehme 8081. 8084 aus dem Beispiel hat garnicht funktioniert...

                          @unclesam said in socket.io (eigene Visualisierung):

                          der Port des socket.io Adapters (normalerweise 8082).

                          Hmmm... das könnte die Ursache sein, wobei sich mir dann die Frage stellt, warum der Adapter unter 8081 dann überhaupt antwortet. Kann das nachher mal mit 8082 testen (bin gerade nicht am Platz).

                          lg, Dave

                          Homoran UncleSam 2 Replies Last reply Reply Quote 0
                          • Homoran
                            Homoran Global Moderator Administrators @D.VE last edited by

                            @d-ve Bitte sieh bei dir nach auf welchem Port dein socket.io läuft
                            8082 ist der port für den Web-Adapter, 8081 für den admin, socket.io hat üblicherweise 8084, könnte aber bei dir umkonfiguriert sein.

                            UncleSam 1 Reply Last reply Reply Quote 0
                            • UncleSam
                              UncleSam Developer @D.VE last edited by

                              @d-ve sagte in socket.io (eigene Visualisierung):

                              wobei sich mir dann die Frage stellt, warum der Adapter unter 8081 dann überhaupt antwortet

                              Ganz einfach: das ist der Port von Admin. Und Admin verwendet auch socket.io, aber teilweise andere Befehle (da Admin mehr können muss als Socket.io).

                              Und: den socket.io Adapter hast du schon installiert, oder?

                              D.VE 1 Reply Last reply Reply Quote 0
                              • UncleSam
                                UncleSam Developer @Homoran last edited by

                                @homoran sagte in socket.io (eigene Visualisierung):

                                8082 ist der port für den Web-Adapter, 8081 für den admin, socket.io hat üblicherweise 8084, könnte aber bei dir umkonfiguriert sein.

                                Richtig, hatte ich verwechselt. Aber gibt es einen Grund, nicht einfach die socket.io Verbindung vom Web-Adapter zu verwenden? Die sollte ja identisch sein mit dem anderen socket.io, oder auch nicht? Ich verwende für meine selbstgeschriebene Vis einfach Port 8082 und habe den socket.io gar nicht installiert. Aber ich verwende auch nicht conn.js sondern habe da selber Code geschrieben (da es eine Angular App ist).

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

                                  @unclesam sagte in socket.io (eigene Visualisierung):

                                  die socket.io Verbindung vom Web-Adapter zu verwenden? Die sollte ja identisch sein mit dem anderen socket.io, oder auch nicht?

                                  Da habe ich ehrlich keine Ahnung, habe nur festgestellt, dass es Problem mit dem Web-Adapter gab, die dadurch zu lösen waren nicht den internen socket zu nehmen.

                                  1 Reply Last reply Reply Quote 0
                                  • D.VE
                                    D.VE @UncleSam last edited by

                                    @unclesam said in socket.io (eigene Visualisierung):

                                    Und: den socket.io Adapter hast du schon installiert, oder?

                                    Öhem... Nö... 😬
                                    Hätte ich sollen?
                                    Braucht man da noch eine zweite Instanz extra für eigene Implementierung?

                                    UncleSam 1 Reply Last reply Reply Quote 0
                                    • UncleSam
                                      UncleSam Developer @D.VE last edited by

                                      @d-ve sagte in socket.io (eigene Visualisierung):

                                      Braucht man da noch eine zweite Instanz extra für eigene Implementierung?

                                      Bei mir funktioniert es mit Port 8082 und dem (normalen) Web Adapter. Damit brauchst du keine zweite Instanz.

                                      Wenn du es ganz korrekt machen willst, musst du den socket.io Adapter installieren und Port 8084 verwenden.

                                      Port 8081 darfst du niemals verwenden (der hat auch erhöhte Rechte und wird möglicherweise in Zukunft noch besser abgesichert).

                                      B D.VE 2 Replies Last reply Reply Quote 0
                                      • B
                                        Benda @UncleSam last edited by

                                        Kann mir jemand auf die Sprünge helfen wie ich die Authentifizierung in Socket io realisiere?
                                        Ohne Auth im Admin bekomme ich die Daten über https ausgelesen, sobald ich allerdings auth angebe, funzt es nicht mehr.

                                        Ich finde leider auch keine doku wo, bzw wie ich die credentials im client angebe:

                                        {
                                                name: 'mobile.0', // optional - default 'vis.0'
                                                connLink: 'https://192.168.1.35:8084', // optional URL of the socket.io adapter
                                                socketSession: '', // optional - used by authentication
                                              },
                                        

                                        habe schon einiges für socketSession probiert,
                                        das wird im script ja als query mit key=... beim verbinden eingefügt?!

                                        1 Reply Last reply Reply Quote 1
                                        • D.VE
                                          D.VE @UncleSam last edited by

                                          @unclesam said in socket.io (eigene Visualisierung):

                                          Bei mir funktioniert es mit Port 8082

                                          Kaum macht man es richtig, funktioniert es... Das wäre mein erster Vorschlag für das Exmaple: Ändert den Port auf 8082.

                                          Denn ich könnte mir vorstellen, dass es vielen so geht wie mir... Port 8084 aus dem Example funktioniert nicht... Was probiert man dann ganz intuitiv als erstes aus...? Natürlich Prot 8081 vom ioBroker... und der funktioniert ja dann auch erstmal.

                                          Zwei Fragen habe ich noch:

                                          • Was ist der Unterschied zwischen onUpdate(), onRefresh() und und onCommand()?
                                          • Ist es möglich dass bei onUpdate() nur bestimmte States gecheckt werden, und dort nicht ALLES reinkommt?
                                          Homoran UncleSam 2 Replies Last reply Reply Quote 0
                                          • Homoran
                                            Homoran Global Moderator Administrators @D.VE last edited by Homoran

                                            @d-ve sagte in socket.io (eigene Visualisierung):

                                            Kaum macht man es richtig, funktioniert es... Das wäre mein erster Vorschlag für das Exmaple: Ändert den Port auf 8082.
                                            Denn ich könnte mir vorstellen, dass es vielen so geht wie mir... Port 8084 aus dem Example funktioniert nicht...

                                            Hast du in dem Web-Adapter integriertes socket eingestellt?
                                            Wenn du da socketio.0 auswählst müsste es auch mit 8084 funktionieren

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

                                            Support us

                                            ioBroker
                                            Community Adapters
                                            Donate

                                            793
                                            Online

                                            31.7k
                                            Users

                                            79.8k
                                            Topics

                                            1.3m
                                            Posts

                                            socket.io
                                            7
                                            58
                                            3810
                                            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