Skip to content
  • Home
  • Recent
  • Tags
  • 0 Unread 0
  • Categories
  • Unreplied
  • Popular
  • 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

  • Default (No Skin)
  • No Skin
Collapse
ioBroker Logo

Community Forum

donate donate
  1. ioBroker Community Home
  2. Deutsch
  3. Tester
  4. [Adapter] Sonoff- Tasmota

NEWS

  • Jahresrückblick 2025 – unser neuer Blogbeitrag ist online! ✨
    BluefoxB
    Bluefox
    17
    1
    2.8k

  • Neuer Blogbeitrag: Monatsrückblick - Dezember 2025 🎄
    BluefoxB
    Bluefox
    13
    1
    1.1k

  • Weihnachtsangebot 2025! 🎄
    BluefoxB
    Bluefox
    25
    1
    2.4k

[Adapter] Sonoff- Tasmota

Scheduled Pinned Locked Moved Tester
720 Posts 75 Posters 265.9k Views 8 Watching
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • modmaxM Offline
    modmaxM Offline
    modmax
    wrote on last edited by
    #401

    @klassisch

    Bei mir ist das Problem auch so, daß der Sonoff was schickt, aber der Adapter nix verarbeitet.

    Der Sonoff erscheint nicht mehr unter "sonoff.0.info.connection".

    Und wenn der da nicht mehr drin ist (auch wenn der per Web noch erreichbar ist),

    dann meldet der Sonoff-Adapter beim Sendern auch den Fehler, daß der Sonoff nicht verbunden ist.

    Wird wohl vor jedem senden geprüft, ob der Sonoff in der connections-Liste drin ist; anstatt auf

    das ALIVE des Sonoff zu setzen oder dergleichen.

    Mein Skript habe ich eben noch mal umgeschrieben, so daß es von jedem verwendet werden kann.

    Es erzeugt dann ein paar neue States im Javascript-Adapter und darüber funzt dann der Neustart.

    Einzugtragen sind nur alle Geräte, die man im Sonoff-Adapter hat; könnte man sicherlich auch eleganter lösen,

    so daß man nicht alle Sonoffs eintragen muß, aber da es bei mir anderes benutzt wird, sollte das reichen.

    Hab das Skript nun aber nicht ausführlich getestet, sondern lediglich umgeschrieben

    und geprüft, damit es lauffähig ist.

    ! ```
    `// definierte devices
    var devices = [];
    devices.push('sonoff_1');
    ! // bei Änderung an connections auslösen
    on('sonoff.0.info.connection', function (obj) {
    var connections = obj.state.val;
    ! // prüfe ob jedes Gerät noch verbunden ist
    for (var i = 0; i < devices.length; i++) {
    var deviceName = devices[i];
    ! if (connections.indexOf(deviceName) == -1) {
    // CASE: Gerät nicht verbunden
    ! var delays = getStateDelayed('sonoff.reconnects.'+deviceName);
    if ((delays.length === 0) && (getState('sonoff.reconnects.'+deviceName).val === 0)) {
    // setze reconnects in 3 Minuten auf 1, wenn keine Delay läuft und reconnects=0 ist
    setStateDelayed('sonoff.reconnects.'+deviceName, 1, true, 180000);
    }
    } else {
    // CASE: Gerät verbunden

            // lösche laufende schedules und counter
            clearStateDelayed('sonoff.reconnects.'+deviceName);
            setState('sonoff.reconnects.'+deviceName, 0, true);
        }
    }
    

    })

    ! // bei Skriptstart
    for (var i = 0; i < devices.length; i++) {
    var deviceName = devices[i];
    log('Create subscription for ' + deviceName, 'debug');
    createState('sonoff.reconnects.'+deviceName, 0, {type: 'number', read: true, write: false, role: 'value', name: deviceName});
    ! on({id: 'javascript.0.sonoff.reconnects.'+deviceName, change: 'gt'}, function (obj) {
    var sonoffDevice = obj.id.replace('javascript.0.sonoff.reconnects.','');
    var reconnects = obj.state.val;

        if (reconnects === 4) {
            // nach 3 erfolglosen Reconnect-Versuchen Push-Over-Nachricht versenden
            sendTo('pushover', {
                title :  'Sonoff-Neustart erfolglos',
                message: virtual
            });
    
        } else if (reconnects < 4) {
            log('Neustart von Sonoff: ' + sonoffDevice);
            var ip = getState('sonoff.0.'+sonoffDevice+'.INFO.IPAddress').val;
    

    ! request('http://'+ip+'/cm?cmnd=Restart 1', function(error, response, body) {
    if (error || response.statusCode !== 200) {
    log('Fehler beim Neustart von Sonoff: ' + sonoffDevice + ' (StatusCode = ' + response.statusCode + ')');
    }
    // erhöhe reconnects in 3 Minuten um 1
    setStateDelayed('sonoff.reconnects.'+sonoffDevice, reconnects+1, true, 180000);
    });
    }
    });
    }` [/i][/i]

    1 Reply Last reply
    0
    • T Offline
      T Offline
      TimmBo
      wrote on last edited by
      #402

      @modmax:

      Einzugtragen sind nur alle Geräte, die man im Sonoff-Adapter hat; könnte man sicherlich auch eleganter lösen,

      so daß man nicht alle Sonoffs eintragen muß, aber da es bei mir anderes benutzt wird, sollte das reichen. `

      Danke erstmal für die Mühe.

      Kannst du mir bitte noch verraten wo und in welcher Form ich die Geräte eintragen muss.

      Würd das Skript gerne mal testen.

      Mfg Timm

      1 Reply Last reply
      0
      • K Offline
        K Offline
        klassisch
        Most Active
        wrote on last edited by
        #403

        Die Geräte stehen automatisch in der Liste

        sonoff.0.info.connection

        Wenn sich an dieser Liste was ändert, wird das Skript getriggert.

        1 Reply Last reply
        0
        • modmaxM Offline
          modmaxM Offline
          modmax
          wrote on last edited by
          #404

          @TimmBo:

          Kannst du mir bitte noch verraten wo und in welcher Form ich die Geräte eintragen muss. `

          Eingetragen werden die direkt im Skript.

          Wenn Du z.B. Sonoffs hast (also das was Du unter sonoff.0 siehst)

          die da lauten: wc-lampe,flur-licht,..

          Dann mußt Du im Skript am Anfang folgendes ergänzen.

          devices.push('wc-lampe');
          devices.push('flur-licht');
          
          

          Das eine Device was da bereits im Skript steht ist nur zur Verdeutlichung

          und kann gelöscht werden.

          Die Namen entsprechen genau den Namen, die Du auf den Sonoffs

          bei den MQTT-Einstellungen vergeben hast.

          1 Reply Last reply
          0
          • T Offline
            T Offline
            TimmBo
            wrote on last edited by
            #405

            Danke …

            Hab es mal so eingetragen und Teste jetzt. Ich melde mich mal wie es läuft.

            schönen Abend noch Timm

            1 Reply Last reply
            0
            • ChaotC Offline
              ChaotC Offline
              Chaot
              wrote on last edited by
              #406

              Ich habe in Zeile 67 eine Fehlermeldung: "Don't make functions within a loop"

              ioBroker auf NUC unter Proxmox; VIS: 12" Touchscreen und 17" Touch; Lichtsteuerung, Thermometer und Sensoren: Tasmota (39); Ambiente Beleuchtung: WLED (9); Heizung: DECT Thermostate (9) an Fritz 6690; EMS-ESP; 1 Echo V2; 3 Echo DOT; 1 Echo Connect; 2 Echo Show 5; Unifi Ap-Ac Lite.

              1 Reply Last reply
              0
              • modmaxM Offline
                modmaxM Offline
                modmax
                wrote on last edited by
                #407

                Hab ich auch … :-

                Ist aber nur ne Warnung .... Kein Fehler .... Und funktioniert trotzdem

                1 Reply Last reply
                0
                • B Offline
                  B Offline
                  Balu0127
                  wrote on last edited by
                  #408

                  Hab glaub ich was verpasst?

                  Wo schreib ihr das Script hin?

                  1 Reply Last reply
                  0
                  • ChaotC Offline
                    ChaotC Offline
                    Chaot
                    wrote on last edited by
                    #409

                    Ja, die Funktion ist da. Ich wollte nur darauf hinweisen.

                    Mal sehen ob das jetzt besser wird.

                    Wobei ich immer noch meine Fritzbox im Verdacht habe. Die ist kaum noch zu bedienen seit IOBroker läuft.

                    ioBroker auf NUC unter Proxmox; VIS: 12" Touchscreen und 17" Touch; Lichtsteuerung, Thermometer und Sensoren: Tasmota (39); Ambiente Beleuchtung: WLED (9); Heizung: DECT Thermostate (9) an Fritz 6690; EMS-ESP; 1 Echo V2; 3 Echo DOT; 1 Echo Connect; 2 Echo Show 5; Unifi Ap-Ac Lite.

                    1 Reply Last reply
                    0
                    • modmaxM Offline
                      modmaxM Offline
                      modmax
                      wrote on last edited by
                      #410

                      @Bluefox

                      Ich hab mir mal den AdapterCode angesehen und da ist mir (vielleicht) etwas aufgefallen.

                      Vielleicht kannst Du da den Fehler erkennen .. oder ich habe noch nicht die Logik von Javascript und Adaptern komplett kapiert.

                      Oder meine Erkenntnisse sind voll daneben oder passen eben nicht; und bei asynchronem Javascript passe ich eh meistens.

                      Ist ab Zeile 467 in der "lib/server.js" zu finden.

                                  client.on('disconnect', function (/*packet*/) {
                                      if (client._sendOnStart) {
                                          clearTimeout(client._sendOnStart);
                                          client._sendOnStart = null;
                                      }
                                      adapter.log.info('Client [' + client.id + '] disconnected');
                                      client.stream.end();
                                      if (clients[client.id]) {
                                          delete clients[client.id];
                                          sendLWT(client);
                                          updateClients();
                                      }
                                  });
                      
                                  client.on('close', function (had_error) {
                                      if (client._sendOnStart) {
                                          clearTimeout(client._sendOnStart);
                                          client._sendOnStart = null;
                                      }
                                      if (had_error) adapter.log.error('Closed because of error');
                                      adapter.log.info('Client [' + client.id + '] closed');
                                      if (clients[client.id]) {
                                          delete clients[client.id];
                                          sendLWT(client);
                                          updateClients();
                                      }
                                  });
                      
                                  client.on('error', function (err) {
                                      if (client._sendOnStart) {
                                          clearTimeout(client._sendOnStart);
                                          client._sendOnStart = null;
                                      }
                                      adapter.log.warn('Client error [' + client.id + ']: ' + err);
                      
                                      if (!clients[client.id]) return;
                      
                                      delete clients[client.id];
                                      sendLWT(client, function () {
                                          updateClients();
                                          client.stream.end();
                                      });
                      	});
                      
                      

                      1.) Nur ne Kleinigkeit: in der client.on('error',…) die Zeile

                      adapter.log.warn('Client error [' + client.id + ']: ' + err);
                      

                      hinter die Zeile

                       if (!clients[client.id]) return;
                      

                      setzen.

                      Dann würde die Fehlermeldung nur einmal ausgegeben.

                      2.) Die sendLWT-Befehle sind mir noch irgendwie fremd, bzw. der Ablauf nicht ganz klar,

                      aber die werden in den 3 Methoden anders aufgerufen.

                      bei "disconnect" und "close". nämlich so:

                      if (clients[client.id]) {
                          delete clients[client.id];
                          sendLWT(client);
                          updateClients();
                      }
                      
                      

                      Bei "error" aber mittels callback:

                      delete clients[client.id];
                          sendLWT(client, function () {
                              updateClients();
                              client.stream.end();
                          };
                      });
                      
                      

                      Ich würde für alle 3 Fälle disconnect,close,error erwarten, daß sowas ausreichen würde.

                      if (clients[client.id]) {
                          delete clients[client.id];
                          updateClients();
                          sendLWT(client);
                      }
                      
                      

                      Also erst Stream schließen, dann Client aus Liste löschen und dann erst LWT wieder senden.

                      Sind wie gesagt nur meine Erkenntnisse und ich bin auch kein Experte in Javascript,

                      aber es fiel mir eben ins Auge und deswegen die Frage ob das "nicht wiederverbinden"

                      wie hier im Thread auf den letzten Seiten beschrieben ist evtl. auf das Handling von "error" zurückzuführen ist.

                      Testen kann ich das aktuell auch nicht wirklich, sondern habe mich anhander

                      der hier geposteten Logfiles da durch gehangelt.

                      MfG Markus

                      1 Reply Last reply
                      0
                      • modmaxM Offline
                        modmaxM Offline
                        modmax
                        wrote on last edited by
                        #411

                        @Skript-Benutzer

                        Wie ich selber feststellen mußte funktioniert mein Skript zu gut.

                        Es triggert auch, wenn der Sonoff-Adapter geschlossen wird,

                        da dann auch die connections zurückgesetzt werden.

                        Daher müßte man das Skript folgendermaßen ergänzen:

                        ....
                        // bei Änderung an connections auslösen
                        on('sonoff.0.info.connection', function (obj) {
                        
                            if (getState('system.adapter.sonoff.0.alive').val === false) {
                                // Sonoff-Adapter gestoppt; nichts zu tun
                                return;
                            }
                        ....
                        
                        
                        1 Reply Last reply
                        0
                        • T Offline
                          T Offline
                          TimmBo
                          wrote on last edited by
                          #412

                          Soeben ist das Skript zum Einsatz gekommen.

                          Hat 1a funktioniert.

                            sonoff.0	2018-03-13 19:27:03.577	info	Client [Musik_Wohnzimmer] connected
                          javascript.0	2018-03-13 19:26:56.123	info	script.js.scripte.Sonoff.Sonoff_restart: Neustart von Sonoff: Musik_Wohnzimmer
                          sonoff.0	2018-03-13 19:23:56.083	warn	Client error [Musik_Wohnzimmer]: Error: This socket has been ended by the other party
                          sonoff.0	2018-03-13 19:23:56.083	warn	Client error [Musik_Wohnzimmer]: Error: This socket has been ended by the other party
                          sonoff.0	2018-03-13 19:23:56.082	warn	Client error [Musik_Wohnzimmer]: Error: This socket has been ended by the other party
                          sonoff.0	2018-03-13 19:23:56.081	warn	Client error [Musik_Wohnzimmer]: Error: This socket has been ended by the other party
                          sonoff.0	2018-03-13 19:23:56.081	warn	Client error [Musik_Wohnzimmer]: Error: This socket has been ended by the other party
                          sonoff.0	2018-03-13 19:23:56.080	warn	Client error [Musik_Wohnzimmer]: Error: This socket has been ended by the other party    
                          

                          Vielen Dank!

                          Hoffe trotzdem das Bluefox etwas Zeit hat um sich den Adapter mal anzusehen.

                          Mfg Timm

                          1 Reply Last reply
                          0
                          • WalW Offline
                            WalW Offline
                            Wal
                            Developer
                            wrote on last edited by
                            #413

                            Im Github vom Tasmota hatten einige Probleme mit Neustarts und haben eine Lösung gefunden.

                            https://github.com/arendst/Sonoff-Tasmota/issues/2149

                            Gruß
                            Walter

                            DoorIO-Adapter
                            wioBrowser-Adapter und wioBrowser

                            1 Reply Last reply
                            0
                            • modmaxM Offline
                              modmaxM Offline
                              modmax
                              wrote on last edited by
                              #414

                              Danke für die Info Walter,

                              das Problem dort betrifft aber nur Neustarts und DNS-Auflösung;

                              also Eingabe von IP (192.168.12.12) statt Name (iobroker.myhost.de) wäre dann zu verwenden.

                              Hier in diesem Thread geht es aber um Verlust der Connection aus undefinierten Gründen.

                              Das Problem ist hier, daß ioBroker zu jedem Sonoff eine dauerhafte Verbindung (Input- und Outputstream),

                              aufrecht erhält; aber nicht mitkriegt, wenn dieser Stream aus netztechnischen Gründen abbricht

                              (z.B. WLAN-Aussetzer, abrupter Stromverlust eines Sonoffs etc. pp).

                              Der sonoff-Adapter baut dann keine neue Connection auf, denn dies ist Aufgabe des Clients.

                              Doch der Client (also Sonoff) sendet ja was, aber der Sonoff-Adapter kriegt reagiert darauf nicht korrekt;

                              so daß nur ein Neustart des Sonoff hilft … oder des Sonoff-Adapters.

                              MfG Markus

                              1 Reply Last reply
                              0
                              • BluefoxB Offline
                                BluefoxB Offline
                                Bluefox
                                wrote on last edited by
                                #415

                                Bitte 2.0.0 direkt vom github ausprobieren?

                                1 Reply Last reply
                                0
                                • K Offline
                                  K Offline
                                  klassisch
                                  Most Active
                                  wrote on last edited by
                                  #416

                                  Herzlichen Dank @bluefox für Deine Mühe.

                                  Habe den 2.0.0 installiert. Man kann eine timeout Zeit einstellen, 300sec ist default.

                                  Grundfunktion ist gegeben.

                                  Habe einen "remote Sonoff", der über VPN angebunden ist. Habe jetzt mal VPN unterbrochen, um festzustellen, was bei einer Verbindungsstörung passiert.

                                  1 Reply Last reply
                                  0
                                  • K Offline
                                    K Offline
                                    klassisch
                                    Most Active
                                    wrote on last edited by
                                    #417

                                    Bei meinen Tests funktioniert es nun.

                                    Habe den VPN Tunnel zu meinem remote Sonoff geschlossen. Der Verbindungsabbruch wurde registriert und dieser Sonoff nicht mehr alle 15 sec angepingt.

                                    Habe die Unterbrechung > 10 min aufrecht erhalten, so daß der Sonoff sicher einen vergeblichen Sendeversuch unternommen hat. Mit dem alten Adapter hat er ab da nicht mehr auf Sonoff Kommandos reagiert.

                                    Nach dem Wiederherstellen des VPN-Tunnels hat der Adapter den Sonoff wieder verbunden und konnte ihn ansteuern.

                                    Ändert man whrend der Unterbrechung den Schaltzustand im Adapter geht der korrekterweise auf rot. Nach Wiederherstellen der Verbindung dauert es einige Minuten, bis sich die Schaltstellung wieder selbstständig synchronisiert und wieder schwarz wird.

                                    Beim Umstellen des Adapters von debug auf info bekam ich einige Fehlermeldungen. Vielleicht sind bei mir einige Systemkomponenten zu alt.

                                    ! sonoff.0 2018-03-16 23:22:25.108 info starting. Version 2.0.0 in /opt/iobroker/node_modules/iobroker.sonoff, node: v6.13.1 host.orangepiplus2e 2018-03-16 23:22:21.654 info instance system.adapter.sonoff.0 started with pid 2065 host.orangepiplus2e 2018-03-16 23:22:20.287 info instance system.adapter.sonoff.0 terminated with code 6 (uncaught exception) Caught 2018-03-16 23:22:20.286 error by controller[9]: 2018-03-16 23:22:19.171 - debug: sonoff.0 stateChange sonoff.0.SonoffS20-01.alive: {"val":false,"ack":true,"ts":1521238939099,"q":0,"from":"system.adapter.sonoff.0","lc":1521238939 Caught 2018-03-16 23:22:20.286 error by controller[8]: at Manager.ondata (/opt/iobroker/node_modules/socket.io-client/lib/manager.js:322:16) Caught 2018-03-16 23:22:20.285 error by controller[8]: at Decoder.add (/opt/iobroker/node_modules/socket.io-parser/index.js:246:12) Caught 2018-03-16 23:22:20.284 error by controller[8]: at Decoder.Emitter.emit (/opt/iobroker/node_modules/component-emitter/index.js:134:20) Caught 2018-03-16 23:22:20.284 error by controller[8]: at Decoder. (/opt/iobroker/node_modules/component-bind/index.js:21:15) Caught 2018-03-16 23:22:20.283 error by controller[8]: at Manager.ondecoded (/opt/iobroker/node_modules/socket.io-client/lib/manager.js:332:8) Caught 2018-03-16 23:22:20.283 error by controller[8]: at Manager.Emitter.emit (/opt/iobroker/node_modules/socket.io-client/node_modules/component-emitter/index.js:133:20) Caught 2018-03-16 23:22:20.282 error by controller[8]: at Manager. (/opt/iobroker/node_modules/component-bind/index.js:21:15) Caught 2018-03-16 23:22:20.281 error by controller[8]: at Socket.onpacket (/opt/iobroker/node_modules/socket.io-client/lib/socket.js:236:12) Caught 2018-03-16 23:22:20.280 error by controller[8]: at Socket.onack (/opt/iobroker/node_modules/socket.io-client/lib/socket.js:312:9) Caught 2018-03-16 23:22:20.280 error by controller[8]: at Socket.adapter.setForeignState (/opt/iobroker/node_modules/iobroker.sonoff/lib/server.js:30:36) Caught 2018-03-16 23:22:20.279 error by controller[8]: 2018-03-16 23:22:19.166 - sonoff.0 TypeError: server.destroy is not a function Caught 2018-03-16 23:22:20.278 error by controller[7]: 2018-03-16 23:22:19.162 - sonoff.0 uncaught exception: server.destroy is not a function Caught 2018-03-16 23:22:20.278 error by controller[6]: at Manager.ondata (/opt/iobroker/node_modules/socket.io-client/lib/manager.js:322:16) Caught 2018-03-16 23:22:20.277 error by controller[6]: at Decoder.add (/opt/iobroker/node_modules/socket.io-parser/index.js:246:12) Caught 2018-03-16 23:22:20.271 error by controller[6]: at Decoder.Emitter.emit (/opt/iobroker/node_modules/component-emitter/index.js:134:20) Caught 2018-03-16 23:22:20.270 error by controller[6]: at Decoder. (/opt/iobroker/node_modules/component-bind/index.js:21:15) Caught 2018-03-16 23:22:20.270 error by controller[6]: at Manager.ondecoded (/opt/iobroker/node_modules/socket.io-client/lib/manager.js:332:8) Caught 2018-03-16 23:22:20.269 error by controller[6]: at Manager.Emitter.emit (/opt/iobroker/node_modules/socket.io-client/node_modules/component-emitter/index.js:133:20) Caught 2018-03-16 23:22:20.269 error by controller[6]: at Manager. (/opt/iobroker/node_modules/component-bind/index.js:21:15) Caught 2018-03-16 23:22:20.268 error by controller[6]: at Socket.onpacket (/opt/iobroker/node_modules/socket.io-client/lib/socket.js:236:12) Caught 2018-03-16 23:22:20.267 error by controller[6]: at Socket.onack (/opt/iobroker/node_modules/socket.io-client/lib/socket.js:312:9) Caught 2018-03-16 23:22:20.267 error by controller[6]: at Socket.adapter.setForeignState (/opt/iobroker/node_modules/iobroker.sonoff/lib/server.js:30:36) Caught 2018-03-16 23:22:20.266 error by controller[6]: TypeError: server.destroy is not a function Caught 2018-03-16 23:22:20.265 error by controller[5]: 2018-03-16 23:22:19.102 - debug: sonoff.0 stateChange sonoff.0.TestSonPow.alive: {"val":false,"ack":true,"ts":1521238939092,"q":0,"from":"system.adapter.sonoff.0","lc":152123893909 Caught 2018-03-16 23:22:20.265 error by controller[4]: 2018-03-16 23:22:14.865 - debug: sonoff.0 Client [TestSonPow] pingreq Caught 2018-03-16 23:22:20.264 error by controller[3]: 2018-03-16 23:22:11.565 - debug: sonoff.0 Client [SonoffS20-01] pingreq Caught 2018-03-16 23:22:20.263 error by controller[2]: 2018-03-16 23:21:59.864 - debug: sonoff.0 Client [TestSonPow] pingreq Caught 2018-03-16 23:22:20.260 error by controller[1]: 2018-03-16 23:21:56.564 - debug: sonoff.0 Client [SonoffS20-01] pingreq sonoff.0 2018-03-16 23:22:19.170 debug stateChange sonoff.0.SonoffS20-01.alive: {"val":false,"ack":true,"ts":1521238939099,"q":0,"from":"system.adapter.sonoff.0","lc":1521238939099} sonoff.0 2018-03-16 23:22:19.166 error at Manager.ondata (/opt/iobroker/node_modules/socket.io-client/lib/manager.js:322:16) sonoff.0 2018-03-16 23:22:19.166 error at Decoder.add (/opt/iobroker/node_modules/socket.io-parser/index.js:246:12) sonoff.0 2018-03-16 23:22:19.166 error at Decoder.Emitter.emit (/opt/iobroker/node_modules/component-emitter/index.js:134:20) sonoff.0 2018-03-16 23:22:19.166 error at Decoder. (/opt/iobroker/node_modules/component-bind/index.js:21:15) sonoff.0 2018-03-16 23:22:19.166 error at Manager.ondecoded (/opt/iobroker/node_modules/socket.io-client/lib/manager.js:332:8) sonoff.0 2018-03-16 23:22:19.166 error at Manager.Emitter.emit (/opt/iobroker/node_modules/socket.io-client/node_modules/component-emitter/index.js:133:20) sonoff.0 2018-03-16 23:22:19.166 error at Manager. (/opt/iobroker/node_modules/component-bind/index.js:21:15) sonoff.0 2018-03-16 23:22:19.166 error at Socket.onpacket (/opt/iobroker/node_modules/socket.io-client/lib/socket.js:236:12) sonoff.0 2018-03-16 23:22:19.166 error at Socket.onack (/opt/iobroker/node_modules/socket.io-client/lib/socket.js:312:9) sonoff.0 2018-03-16 23:22:19.166 error at Socket.adapter.setForeignState (/opt/iobroker/node_modules/iobroker.sonoff/lib/server.js:30:36) sonoff.0 2018-03-16 23:22:19.166 error TypeError: server.destroy is not a function sonoff.0 2018-03-16 23:22:19.161 error uncaught exception: server.destroy is not a function sonoff.0 2018-03-16 23:22:19.101 debug stateChange sonoff.0.TestSonPow.alive: {"val":false,"ack":true,"ts":1521238939092,"q":0,"from":"system.adapter.sonoff.0","lc":1521238939092} host.orangepiplus2e 2018-03-16 23:22:19.027 info stopInstance system.adapter.sonoff.0 killing pid 27739 host.orangepiplus2e 2018-03-16 23:22:19.024 info stopInstance system.adapter.sonoff.0 host.orangepiplus2e 2018-03-16 23:22:18.994 info object change system.adapter.sonoff.0 !

                                    1 Reply Last reply
                                    0
                                    • BluefoxB Offline
                                      BluefoxB Offline
                                      Bluefox
                                      wrote on last edited by
                                      #418

                                      Ok. Fixed on github. Version ist die gleiche.

                                      1 Reply Last reply
                                      0
                                      • K Offline
                                        K Offline
                                        klassisch
                                        Most Active
                                        wrote on last edited by
                                        #419

                                        Danke, jetzt sind es deutlich weniger Fehler beim Umstellen auf info:

                                        ! ````
                                        sonoff.0 2018-03-17 00:31:05.693 info Client [SonoffS20-01] connected
                                        sonoff.0 2018-03-17 00:31:05.655 info Client [TestSonPow] connected
                                        sonoff.0 2018-03-17 00:30:59.452 info Starting MQTT authenticated server on port 1500
                                        sonoff.0 2018-03-17 00:30:59.308 info starting. Version 2.0.0 in /opt/iobroker/node_modules/iobroker.sonoff, node: v6.13.1
                                        host.orangepiplus2e 2018-03-17 00:30:55.924 info instance system.adapter.sonoff.0 started with pid 17259
                                        host.orangepiplus2e 2018-03-17 00:30:53.979 info instance system.adapter.sonoff.0 terminated with code 0 (OK)
                                        Caught 2018-03-17 00:30:53.978 error by controller[6]: 2018-03-17 00:30:53.435 - debug: sonoff.0 stateChange sonoff.0.TestSonPow.alive: {"val":false,"ack":true,"ts":1521243053402,"q":0,"from":"system.adapter.sonoff.0","lc":152124305340
                                        Caught 2018-03-17 00:30:53.977 error by controller[5]: 2018-03-17 00:30:53.417 - debug: sonoff.0 stateChange sonoff.0.SonoffS20-01.alive: {"val":false,"ack":true,"ts":1521243053395,"q":0,"from":"system.adapter.sonoff.0","lc":1521243053
                                        Caught 2018-03-17 00:30:53.976 error by controller[4]: 2018-03-17 00:30:42.411 - debug: sonoff.0 Client [SonoffS20-01] pingreq
                                        Caught 2018-03-17 00:30:53.975 error by controller[3]: 2018-03-17 00:30:42.280 - debug: sonoff.0 Client [TestSonPow] pingreq
                                        Caught 2018-03-17 00:30:53.974 error by controller[2]: 2018-03-17 00:30:27.411 - debug: sonoff.0 Client [SonoffS20-01] pingreq
                                        Caught 2018-03-17 00:30:53.972 error by controller[1]: 2018-03-17 00:30:27.283 - debug: sonoff.0 Client [TestSonPow] pingreq
                                        sonoff.0 2018-03-17 00:30:53.899 info terminating
                                        sonoff.0 2018-03-17 00:30:53.434 debug stateChange sonoff.0.TestSonPow.alive: {"val":false,"ack":true,"ts":1521243053402,"q":0,"from":"system.adapter.sonoff.0","lc":1521243053402}
                                        sonoff.0 2018-03-17 00:30:53.416 debug stateChange sonoff.0.SonoffS20-01.alive: {"val":false,"ack":true,"ts":1521243053395,"q":0,"from":"system.adapter.sonoff.0","lc":1521243053395}
                                        host.orangepiplus2e 2018-03-17 00:30:53.363 info stopInstance system.adapter.sonoff.0 killing pid 17040
                                        host.orangepiplus2e 2018-03-17 00:30:53.358 info stopInstance system.adapter.sonoff.0
                                        host.orangepiplus2e 2018-03-17 00:30:53.354 info object change system.adapter.sonoff.0

                                        1 Reply Last reply
                                        0
                                        • modmaxM Offline
                                          modmaxM Offline
                                          modmax
                                          wrote on last edited by
                                          #420

                                          Hi @Bluefox,

                                          erstmal Danke für den schnellen Fix.

                                          Den Streamserver haste ja rausgeschmissen.

                                          Ich hatte selber bei mir eine von mir umgebaute server.js laufen,

                                          die im Grunde dem entsprach,w as Du umgesetzt hast.

                                          Anstatt eines Timeouts auf dem Stream hatte ich aber bei einem pingreq den pingresp

                                          unterdrückt, wenn der Client geschlossen war.

                                          Also sowas in der Art:

                                          client.on('pingreq', (/*packet*/) => {
                                              if (clients[client.id]) {
                                                  adapter.log.debug('Client [' + client.id + '] pingreq');
                                                  client.pingresp();
                                              }
                                          });
                                          
                                          

                                          Das sollte dafür sorgen, daß bei einem "close" kein ping mehr

                                          für den Stream eines geschlossenen Clients geschrieben werden sollte.

                                          Sorgte im Endeffekt aber dafür, daß der Client nochmals geschlossen wurde,

                                          das erste Mal durch den "socket has closed by other party" (ErrorCode: EPIPE),

                                          um danach gleich nochmal wegen des Pings geschlossen zu werden .. :-)

                                          Bin halt kein Javascript-Experte … sondern nur echtem Java.

                                          Ist wahrscheinlich auch falsch gewesen an der Stelle aber war eben ein Test von mir ...

                                          Hab nun die Installation auf das neueste 2.0.0 geupdatet und lasse das mal so laufen

                                          und schau was passiert.

                                          Daß der Fehler mit WLAN-Qualität zu tun haben soll, kann ich auch nur bedingt bestätigen.

                                          Hab selber eine Fritzbox 7490, sowie einen Fritzbox WLAN-Repeater 1150 im Einsatz (als MESH-Netz).

                                          Nachts schalte ich das Gast-WLAN per TR64-Adapter immer aus; und dann haben sich

                                          die Sonoffs, die am Repeater hingen auch netztechnisch verabschiedet.

                                          Ich denke, daß es hier auch Unterbrechungen geben kann, die auf die Router/Repeater-Hardware

                                          zurückzuführen ist.

                                          Beim Anschalten des Gast-WLANs am Morgen gibt es dagegen keine Probleme.

                                          MfG Markus

                                          1 Reply Last reply
                                          0
                                          Reply
                                          • Reply as topic
                                          Log in to reply
                                          • Oldest to Newest
                                          • Newest to Oldest
                                          • Most Votes


                                          Support us

                                          ioBroker
                                          Community Adapters
                                          Donate

                                          708

                                          Online

                                          32.6k

                                          Users

                                          82.3k

                                          Topics

                                          1.3m

                                          Posts
                                          Community
                                          Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen | Einwilligungseinstellungen
                                          ioBroker Community 2014-2025
                                          logo
                                          • Login

                                          • Don't have an account? Register

                                          • Login or register to search.
                                          • First post
                                            Last post
                                          0
                                          • Home
                                          • Recent
                                          • Tags
                                          • Unread 0
                                          • Categories
                                          • Unreplied
                                          • Popular
                                          • GitHub
                                          • Docu
                                          • Hilfe