[Bugs] 00_MQTT2_SERVER / 10_MQTT2_DEVICE

Begonnen von betateilchen, 10 August 2018, 18:01:33

Vorheriges Thema - Nächstes Thema

netbus

Hier mal ein Log.

Ich habe keepaliveFactor mit 3 probiert und da hat es sich ein bisschen beruhigt aber Timeouts kamen immer noch.
Zitat von: osr am 14 Dezember 2018, 19:06:27
Was für Geräte hast du denn im Einsatz?
Ich habe Shelly1/2 und Sonoff S20 im Einsatz und alle mit Tasmota Firmware.

rudolfkoenig

ZitatHier mal ein Log.
In den 85 Minuten langen log habe ich eine "left us" Meldung gesehen.

Das Geraet wurde von MQTT2_SERVER 15 Sekunden nach dem letzten PINGREQ abgemeldet. Vorher kamen die PINGREQs alle 10 Sekunden, ich gehe also von einem per CONNECT bestellten keepalive von 10s aus. Da ich keine CONNECT Zeile gesehen habe, und mir auch die Ausgabe von "list TYPE=MQTT2_SERVER cid keepalive" nicht vorliegt, bin ich dabei nicht ganz sicher. Wenn meine Vermutung stimmt, dann ist das Verhalten von MQTT2_SERVER korrekt.

Ein keepalive von 10s schreit nach Problem, insb wenn, wie hier, 17 Geraete mit einem aehnlichen keepalive angebunden sind.
Ich wuerde ein keepalive von 60 oder 120 Sekunden favorisieren.

netbus

da gebe ich dir recht, dass 10 Sekunden zu kurz sind aber ich weiß leider nicht wie ich das in Tasmota ändern kann.

keepalive       60
                 cid             stehlampe
keepalive       15
                  cid             Waschmaschine
keepalive       15
                  cid             wcheizung
keepalive       15
                  cid             werkbank
keepalive       15
                  cid             terrasse
keepalive       15
                 cid             infrarot
keepalive       15
                  cid             wohnzimmer
keepalive       10
                  cid             poollicht
keepalive       15
                  cid             keller
keepalive       10
                  cid             wc
keepalive       10
                  cid             kueche
keepalive       10
                  cid             vorzimmer
keepalive       10
                  cid             eg-stiege
keepalive       10
                  cid             eingangstuere
keepalive       15
                 cid             lounge
keepalive       15
                  cid             beamer
keepalive       15

osr

Das mit den 10 Sekunden kann ich bestätigen. Mit mehr Geräten geht dann MQTT2_SERVER in die Knie? Habe hier so um die 50 aktuell aktiv. So bis zur Hälfte hatte ich wohl keine Probleme. Zumindest waren Sie nicht besonders offensichtlich. Also wohl eher ein Mengen Problem als irgendwelche Änderungen im Code? Mit MQTT2_CLIENT und mosquitto habe ich keine Probleme.

Die besagte Einstellung bei Tasmota ließe sich ändern:

MqttRetry      Show current MQTT connection retry timer in seconds
MqttRetry   10   (default) Set MQTT connection retry timer in seconds
MqttRetry   10..32000   Set MQTT connection retry timer in seconds

Befehl um das per publish zu ändern wäre:

cmnd/<topic>/MqttRetry 60

um es auf 60 Sekunden zu erhöhen. MqttRetry kann, wie immer bei Tasmota, groß/klein sonstwie geschrieben werden.

Wäre kein Problem das ins Template mit auf zu nehmen. Ist das denn bei anderen mqtt Geräten standardmäßig wirklich höher? Die Last bei WLAN für ein keepalive ist ja nicht wirklich groß.

rudolfkoenig

ZitatMit mehr Geräten geht dann MQTT2_SERVER in die Knie?
Das waere noch nachzuweisen, ich glaube nicht daran.
Eher daran, dass mosquitto diesen Parameter ignoriert, oder anders auswertet.

ZitatDie Last bei WLAN für ein keepalive ist ja nicht wirklich groß.
Mag sein, aber wenn jede Sekunde 5 Geraete was senden, kann zu Problemen kommen. Wobei ich eher an Probleme in der Tasmota Firmware/TCP Implementierung denke, und nicht an FHEM, der den Linux TCP Stack verwendet.

netbus

Zitat von: osr am 16 Dezember 2018, 22:25:57
Die besagte Einstellung bei Tasmota ließe sich ändern:

MqttRetry      Show current MQTT connection retry timer in seconds
MqttRetry   10   (default) Set MQTT connection retry timer in seconds
MqttRetry   10..32000   Set MQTT connection retry timer in seconds
Habe ich geändert doch der Server schickt noch immer alle 10 Sekunden einen Request. Auch die cid keepalive Werte sind unverändert.

osr

Habe da nur die Tasmota-Wiki mal durchstöbert. Weitere Parameter als den mqttretry habe ich nicht gefunden.

Was ist denn so bei anderen mqtt-Geräten üblich?

binford6000

#202
Hallo Zusammen,
bin mir nicht sicher ob es seit dem letzten oder vorletzten Update so ist:
Bei meinen zwei MQTT2_DEVICEs fehlt die DEVICEOVERVIEW und der STATE bleibt leer.

Hier mal ein List eines der Devices:
Internals:
   CID        Schreibtischlampe_0E3428
   DEF        Schreibtischlampe_0E3428
   DEVICETOPIC bu_schreibtisch_licht
   IODev      mqtt2_server
   LASTInputDev mqtt2_server
   MSGCNT     5
   NAME       bu_schreibtisch_licht
   NR         362
   STATE     
   TYPE       MQTT2_DEVICE
   mqtt2_server_MSGCNT 5
   mqtt2_server_TIME 2018-12-20 14:51:25
   OLDREADINGS:
   READINGS:
     2018-12-20 14:51:25   POWER           ON
     2018-12-20 14:51:25   power           on
     2018-12-20 14:51:25   state           on
Attributes:
   IODev      mqtt2_server
   alexaName  Schreibtisch
   alexaRoom  Büro
   autocreate 0
   building   wohnung_lichter
   devStateIcon on:light_light_dim_100@red off:light_light_dim_00
   event-on-change-reading .*
   eventMap   { dev=>{'^(.*)POWER(.?): OFF$'=>'$1POWER$2: off', '^(.*)POWER(.?): ON$'=>'$1POWER$2: on'} }
   genericDeviceType light
   group      Licht
   icon       light_office_desk
   model      A_01a_tasmota_basic_state_power1
   readingList tele/Schreibtischlampe_0E3428/LWT:.* LWT
  tele/Schreibtischlampe_0E3428/STATE:.* { json2nameValue($EVENT) }
  tele/Schreibtischlampe_0E3428/SENSOR:.* { json2nameValue($EVENT) }
  tele/Schreibtischlampe_0E3428/INFO.:.* { json2nameValue($EVENT) }
  stat/Schreibtischlampe_0E3428/RESULT:.* { json2nameValue($EVENT) }
   room       02_Tablet,20_Licht,Alexa,Homekit
   room_map   power
   setList    off:noArg    cmnd/Schreibtischlampe_0E3428/POWER1 0
  on:noArg     cmnd/Schreibtischlampe_0E3428/POWER1 1
  toggle:noArg cmnd/Schreibtischlampe_0E3428/POWER1 2
  mqttRetry   cmnd/Schreibtischlampe_0E3428/MqttRetry
   stateFormat {lc ReadingsVal("$name","POWER1","") }
   userReadings power {lc(ReadingsVal("bu_schreibtisch_licht","state",""));;}
   userattr   building building_map lightSceneParamsToSave lightSceneRestoreOnlyIfChanged:1,0 room_map structexclude subscribeReading_state
   webCmd     on:off:toggle


Bug oder Feature?
VG Sebastian

Version:
10_MQTT2_DEVICE.pm    18005 2018-12-19 20:51:59Z rudolfkoenig
00_MQTT2_SERVER.pm    17953 2018-12-11 14:44:34Z rudolfkoenig
AttrTemplate.pm       17973 2018-12-14 18:19:05Z rudolfkoenig


rudolfkoenig

Laut stateFormat soll POWER1 angezeigt werden, du hast aber "nur" ein POWER Reading.
Ich meine nicht, dass ein FHEM-Update das Problem verursacht.
Es gab kuerzlich hier eine Diskussion, dass bei Tasmota konfigurieren kann, ob der erste Schalter sich als POWER oder POWER1 zurueckmeldet.

osr

Zitat von: binford6000 am 20 Dezember 2018, 15:25:19
Hallo Zusammen,
bin mir nicht sicher ob es seit dem letzten oder vorletzten Update so ist:
Bei meinen zwei MQTT2_DEVICEs fehlt die DEVICEOVERVIEW und der STATE bleibt leer.

du musst das Template tasmota basic power verwenden nicht power1. Du hast ein Gerät mit einem Relay, da liefert Tasmota standardmäßig POWER nicht POWER1.

Also das Problem ist nicht das Update sondern dass du das falsche Template ausgewählt hast für dein Gerät.

binford6000

Zitat von: osr am 20 Dezember 2018, 18:46:49
du musst das Template tasmota basic power verwenden nicht power1. Du hast ein Gerät mit einem Relay, da liefert Tasmota standardmäßig POWER nicht POWER1.

Also das Problem ist nicht das Update sondern dass du das falsche Template ausgewählt hast für dein Gerät.

OK Danke, STATE ist wieder da mit dem richtigen Template "A_01_tasmota_basic".
Aber wo ist die Device Overview hin?
VG Sebastian

osr

Zitat von: binford6000 am 20 Dezember 2018, 21:41:54
OK Danke, STATE ist wieder da mit dem richtigen Template "A_01_tasmota_basic".
Aber wo ist die Device Overview hin?
VG Sebastian

seit gestern habe ich das Problem mit fehlendem DeviceOverview auch. In einer 2. Installation komischerweise erst seit heute. Beide wurden gestern und heute upgedatet.

Das Problem besteht bei mir bei allen MQTT2-DEVICE Geräten. In einer Installation über MQTT2-CLIENT (da war das Problem schon gestern) und in einer über MQTT2-SERVER (da ist das Problem erst seit heute)

Bei keinem habe ich seither ein template zugewiesen.

rudolfkoenig


osr

Zitat von: rudolfkoenig am 21 Dezember 2018, 12:35:19
Was ist ein "Device Overview"?

in der Nachricht vorher war ein Screenshot ohne und hier jetzt noch einer mit deviceoverview. Hier von einem ZWave-Gerät bei dem das noch kommt.

binford6000

Zitat von: rudolfkoenig am 21 Dezember 2018, 12:35:19
Was ist ein "Device Overview"?
Quasi die Ansicht eines devices innerhalb eines Raums. Siehe Screenshots.
Bei allen MQTT2_DEVICEs fehlt dies (nun).

VG Sebastian