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.
    • 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
                                      • UncleSam
                                        UncleSam Developer @D.VE last edited by

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

                                        Zwei Fragen habe ich noch:

                                        Was ist der Unterschied zwischen onUpdate(), onRefresh() und und onCommand()?

                                        • onUpdate() wird für (fast) alle Änderungen von Datenpunkten aufgerufen (siehe unten)
                                        • onRefresh() wird nie aufgerufen
                                        • onCommand() wird aufgerufen, wenn sich ein Datenpunkt mit der Endung .control.command ändert

                                        Ist es möglich dass bei onUpdate() nur bestimmte States gecheckt werden, und dort nicht ALLES reinkommt?

                                        Ja, folgende werden nicht mit onUpdate() geliefert:

                                        • Datenpunkt mit der Endung .control.command
                                        • Datenpunkt mit der Endung .control.data
                                        • Datenpunkt mit der Endung .control.instance
                                        D.VE 1 Reply Last reply Reply Quote 1
                                        • D.VE
                                          D.VE @UncleSam last edited by

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

                                          Ja, folgende werden nicht mit onUpdate() geliefert:

                                          Ich glaube wir haben uns missverstanden... Mit subcribe()/unsubcribe() kann man ja die Datenpunkte "abonnieren", deren states man über onUpdate() bekommt.
                                          Am Anfang sind aber ALLE Datenpunkte da abonniert (natürlich mit obigen Ausnahmen)... Meine Frage ist: Kann ich dieses Verhalten abstellen, oder muss ich quasi immer erstmal mit ubsubscribe('*') die Subscriptions löschen?

                                          Bist Du eigentlich Entwickler beim socket.io Adapter?

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

                                            @D-VE meinst du das?

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

                                            Aber, dann musst du das autoSubscribe im init() auf false setzen.

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

                                            Support us

                                            ioBroker
                                            Community Adapters
                                            Donate

                                            823
                                            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