Gosund SP1 v23 mit Tasmota kann nach einigen Stunden nicht mehr schalten

Begonnen von td, 12 Februar 2021, 20:16:26

Vorheriges Thema - Nächstes Thema

td

Hallo,

ich erbitte Unterstützung zu folgendem Problem:
Ich habe eine Gosund Sp1 v23 mit diversen Tasmotas geflasht (ab 8.5.1 bis aktuell 9.1.0).
Autocreate erkennt sie auch korrekt. Anschließend habe ich das template tasmota_basic vergeben (obwohl dann anschließend tasmota_basic_state_power1 als "model" in den Attributen erscheint).
Sämtliche Readings kommen an bzw. werden gesetzt, Schalten der Gosund ist auch möglich.
Nach eingen Stunden ist das Schalten über das MQTT-Device aber nicht mehr möglich (Lampensymbol mit Ausrufezeichen), die Readings werden aber gleichwohl noch aktualisiert. Das Schalten über die Gosund-Web-Oberfläche ist problemslos möglich.
Kann mir jemand bitte weiterhelfen?

td


defmod MQTT2_DVES_C85CAA MQTT2_DEVICE DVES_C85CAA
attr MQTT2_DVES_C85CAA IODev Mosquitto
attr MQTT2_DVES_C85CAA autocreate 0
attr MQTT2_DVES_C85CAA comment NOTE: For on-for-timer SetExtensions are used. You may add on-for-timer option running on the device. The following is limited to 1h max duration, but will not affect future simple "on" commands:<br>on-for-timer {my $duration = $EVTPART1*10;; 'cmnd/cmnd/Gosund_1/Backlog POWER1 1;; delay '.$duration.';; POWER1 0'}<br>See the "Praxisbeispiele" in the wiki for "pulseTime1" alternative option and it's restrictions.
attr MQTT2_DVES_C85CAA icon hue_filled_outlet
attr MQTT2_DVES_C85CAA jsonMap POWER1:0 POWER2:0 POWER3:0 POWER4:0 Dimmer:0 Channel_0:0 Channel_1:0 Channel_2:0 Channel_3:0 Channel_4:0 HSBColor:0 Color:0
attr MQTT2_DVES_C85CAA model tasmota_basic_state_power1
attr MQTT2_DVES_C85CAA readingList tele/Gosund_1/LWT:.* LWT\
  tele/Gosund_1/STATE:.* { json2nameValue($EVENT,'',$JSONMAP) }\
  tele/Gosund_1/SENSOR:.* { json2nameValue($EVENT,'',$JSONMAP) }\
  tele/Gosund_1/INFO.:.* { json2nameValue($EVENT,'',$JSONMAP) }\
  tele/Gosund_1/UPTIME:.* { json2nameValue($EVENT,'',$JSONMAP) }\
  stat/Gosund_1/POWER1:.* state\
  stat/Gosund_1/RESULT:.* { json2nameValue($EVENT,'',$JSONMAP) }
attr MQTT2_DVES_C85CAA room new
attr MQTT2_DVES_C85CAA setList off:noArg    cmnd/Gosund_1/POWER1 0\
  on:noArg     cmnd/Gosund_1/POWER1 1\
  toggle:noArg cmnd/Gosund_1/POWER1 2\
  setOtaUrl:textField cmnd/Gosund_1/OtaUrl $EVTPART1\
  upgrade:noArg   cmnd/Gosund_1/upgrade 1
attr MQTT2_DVES_C85CAA setStateList on off toggle

setstate MQTT2_DVES_C85CAA set_on
setstate MQTT2_DVES_C85CAA 2021-02-12 20:09:00 ENERGY_ApparentPower 34
setstate MQTT2_DVES_C85CAA 2021-02-12 20:09:00 ENERGY_Current 0.147
setstate MQTT2_DVES_C85CAA 2021-02-12 20:09:00 ENERGY_Factor 0.87
setstate MQTT2_DVES_C85CAA 2021-02-12 20:09:00 ENERGY_Period 2
setstate MQTT2_DVES_C85CAA 2021-02-12 20:09:00 ENERGY_Power 30
setstate MQTT2_DVES_C85CAA 2021-02-12 20:09:00 ENERGY_ReactivePower 17
setstate MQTT2_DVES_C85CAA 2021-02-12 20:09:00 ENERGY_Today 0.300
setstate MQTT2_DVES_C85CAA 2021-02-12 20:09:00 ENERGY_Total 5.028
setstate MQTT2_DVES_C85CAA 2021-02-12 20:09:00 ENERGY_TotalStartTime 2020-11-04T18:21:07
setstate MQTT2_DVES_C85CAA 2021-02-12 20:09:00 ENERGY_Voltage 234
setstate MQTT2_DVES_C85CAA 2021-02-12 20:09:00 ENERGY_Yesterday 0.138
setstate MQTT2_DVES_C85CAA 2021-02-11 23:48:56 FallbackTopic cmnd/DVES_C85CAA_fb/
setstate MQTT2_DVES_C85CAA 2021-02-11 23:48:56 GroupTopic cmnd/tasmotas/
setstate MQTT2_DVES_C85CAA 2021-02-12 20:09:00 Heap 26
setstate MQTT2_DVES_C85CAA 2021-02-11 23:48:57 Hostname Gosund_1-7338
setstate MQTT2_DVES_C85CAA 2021-02-11 23:48:57 IPAddress 192.168.1.65
setstate MQTT2_DVES_C85CAA 2021-02-11 23:48:56 LWT Online
setstate MQTT2_DVES_C85CAA 2021-02-12 20:09:00 LoadAvg 19
setstate MQTT2_DVES_C85CAA 2021-02-11 23:48:56 Module Gosund SP1 v23
setstate MQTT2_DVES_C85CAA 2021-02-12 20:09:00 MqttCount 1
setstate MQTT2_DVES_C85CAA 2021-02-11 23:48:57 RestartReason Software/System restart
setstate MQTT2_DVES_C85CAA 2021-02-11 23:42:19 SaveData on
setstate MQTT2_DVES_C85CAA 2021-02-11 23:42:19 SetOption26 on
setstate MQTT2_DVES_C85CAA 2021-02-12 20:09:00 Sleep 50
setstate MQTT2_DVES_C85CAA 2021-02-12 20:09:00 SleepMode Dynamic
setstate MQTT2_DVES_C85CAA 2021-02-11 23:42:17 StateText1 off
setstate MQTT2_DVES_C85CAA 2021-02-11 23:42:18 StateText2 on
setstate MQTT2_DVES_C85CAA 2021-02-11 23:42:18 StateText3 toggle
setstate MQTT2_DVES_C85CAA 2021-02-11 23:42:18 StateText4 hold
setstate MQTT2_DVES_C85CAA 2021-02-12 20:09:00 Time 2021-02-12T20:09:00
setstate MQTT2_DVES_C85CAA 2021-02-12 20:09:00 Uptime 0T20:20:10
setstate MQTT2_DVES_C85CAA 2021-02-12 20:09:00 UptimeSec 73210
setstate MQTT2_DVES_C85CAA 2021-02-11 23:48:56 Version 9.1.0(tasmota)
setstate MQTT2_DVES_C85CAA 2021-02-11 23:48:57 WebServerMode Admin
setstate MQTT2_DVES_C85CAA 2021-02-12 20:09:00 Wifi_AP 2
setstate MQTT2_DVES_C85CAA 2021-02-12 20:09:00 Wifi_BSSId 00:1F:3F:13:25:A4
setstate MQTT2_DVES_C85CAA 2021-02-12 20:09:00 Wifi_Channel 4
setstate MQTT2_DVES_C85CAA 2021-02-12 20:09:00 Wifi_Downtime 0T00:00:03
setstate MQTT2_DVES_C85CAA 2021-02-12 20:09:00 Wifi_LinkCount 1
setstate MQTT2_DVES_C85CAA 2021-02-12 20:09:00 Wifi_RSSI 54
setstate MQTT2_DVES_C85CAA 2021-02-12 20:09:00 Wifi_SSId Wildspring-EG
setstate MQTT2_DVES_C85CAA 2021-02-12 20:09:00 Wifi_Signal -73
setstate MQTT2_DVES_C85CAA 2021-02-11 23:42:11 attrTemplateVersion 20200522 or prior
setstate MQTT2_DVES_C85CAA 2021-02-12 20:02:33 state set_on
setstate MQTT2_DVES_C85CAA 2021-02-11 23:47:52 subscriptions cmnd/DVES_C85CAA_fb/# cmnd/Gosund_1/# cmnd/tasmotas/#


Program Version 9.1.0(tasmota)
Build Date & Time 2020-11-07T11:57:45
Core/SDK Version 2_7_4_5/2.2.2-dev(38a443e)
Uptime 0T20:25:28
Flash write Count 212 at 0xF9000
Boot Count 63
Restart Reason Software/System restart
Friendly Name 1 Gosund_1

AP2 SSId (RSSI) x
Hostname Gosund_1-7338
MAC Address E0:98:06:C8:5C:AA
IP Address (wifi) 192.168.1.65

Gateway 192.168.1.1
Subnet Mask 255.255.255.0
DNS Server 192.168.1.1

MQTT Host 192.168.1.200
MQTT Port 1883
MQTT User DVES_USER
MQTT Client DVES_C85CAA
MQTT Topic Gosund_1
MQTT Group Topic 1 cmnd/tasmotas/
MQTT Full Topic cmnd/Gosund_1/
MQTT Fallback Topic cmnd/DVES_C85CAA_fb/
MQTT No Retain Disabled

Emulation None
mDNS Discovery Disabled

ESP Chip Id 13130922
Flash Chip Id 0x144051
Flash Size 1024kB
Program Flash Size 1024kB
Program Size 600kB
Free Program Space 400kB
Free Memory 26kB

rudolfkoenig

Klingt fuer mich so, dass der Gosund die Verbindung zu Mosquitto neu aufgebaut hat, dabei aber vergessen hat sein subscription zu erneuern.
Was sieht man mit beim Schalten ueber FHEM in einem externen MQTT-Client (z.Bsp. mosquitto_sub .h <mqtt2_serverhost> -v -t #)?

td

Hallo Rudolf,

danke für Deine Rückmeldung. Leider passiert gar nichts beim Schalten über fhem.
Bei Schalten über die Tasmota-Web-Oberfläche erhalte ich:


mosquitto_sub -h localhost -v -t '#'
stat/Gosund_1/RESULT {"POWER1":"on"}
stat/Gosund_1/POWER1 on
stat/Gosund_1/RESULT {"POWER1":"off"}
stat/Gosund_1/POWER1 off


Gruß
td

rudolfkoenig

Kannst Du bitte im Problemfall "attr global verbose 5" setzen, danach per FHEM einen Schaltversuch absetzen, und den Log-Ausschnitt hier anhaengen (wenn laenger: Eweiterte Optionen, Datai anhaengen).

td

Hallo Rudolf,

gerne, verbose ist auf 5:
2021.02.15 10:20:56 4: MQTT2_DEVICE_Parse: MQTT2_DVES_C85CAA tele/Gosund_1/STATE => { json2nameValue($EVENT,'',$JSONMAP) }
2021.02.15 10:20:56 4: MQTT2_DEVICE_Parse: MQTT2_DVES_C85CAA tele/Gosund_1/SENSOR => { json2nameValue($EVENT,'',$JSONMAP) }
2021.02.15 10:21:03 3: MQTT2_DEVICE set MQTT2_DVES_C85CAA off


Gruß
Thomas

rudolfkoenig

Das sieht nicht nach einem "attr global verbose 5" Log-Ausschnitt aus, da muesste viel mehr kommen.

td

Hallo Rudolf,

Du hast absolut Recht. Nun mit globalem verbose 5, s. Anhang.

Gruß
Thomas

rudolfkoenig

2021.02.15 11:05:55 5: Cmd: >set MQTT2_DVES_C85CAA on<
2021.02.15 11:05:55 3: MQTT2_DEVICE set MQTT2_DVES_C85CAA on
2021.02.15 11:05:55 5: No IO device or WriteFn found for MQTT2_DVES_C85CAA

Laut Log fehlt dieser Instanz eine Zuordnung zum Ein/Ausgabegeraet, obwohl eine MQTT2_SERVER Instanz mit dem Namen Mosquitto gibt, die laut deinem vorherigen "list -r" per IODev Attribut dem MQTT2_DEVICE zugewiesen ist.
Ich tippe darauf, dass Mosquitto mit dem Attribut disable oder disabledForIntervals versehen ist.

Falls das nicht der Fall sein sollte, dann brauche ich die Ausgabe von
list Mosquitto
{ $defs{MQTT2_DVES_C85CAA}{IODev} }
{ $defs{MQTT2_DVES_C85CAA}{IODev}{NAME} }

Die Zeile bitte jeweils in der FHEMWEB Kommandozeile eingeben, und das Ergebnis rauskopieren.

Bleibt das Problen nach einem FHEM-Restart bestehen?
Wird fhem.cfg direkt editiert? Bin nicht sicher, ob MQTT2_DEVICE "rereadcfg fest" ist, ich habe es noch nie getestet.

td

Hallo Rudolf,

der Mosquitto-Server hat kein Attribut gesetzt:
Internals:
   CONNECTS   285
   Clients    :MQTT2_DEVICE:MQTT_GENERIC_BRIDGE:
   ClientsKeepOrder 1
   DEF        1883 global
   FD         39
   FUUID      5fb1b31b-f33f-941a-c1c1-19ec2622c5d7dd5e
   NAME       Mosquitto
   NR         652
   PORT       1883
   STATE      Initialized
   TYPE       MQTT2_SERVER
   MatchList:
     1:MQTT2_DEVICE ^.
     2:MQTT_GENERIC_BRIDGE ^.
   READINGS:
     2021-02-15 10:15:06   RETAIN          {"tasmota/discovery/E09806C85CAA/config":"{\u0022ip\u0022:\u0022192.168.1.65\u0022,\u0022dn\u0022:\u0022Gosund_1\u0022,\u0022fn\u0022:[\u0022Gosund_1\u0022,null,null,null,null,null,null,null],\u0022hn\u0022:\u0022Gosund_1-7338\u0022,\u0022mac\u0022:\u0022E09806C85CAA\u0022,\u0022md\u0022:\u0022Gosund SP1 v23\u0022,\u0022ty\u0022:0,\u0022if\u0022:0,\u0022ofln\u0022:\u0022Offline\u0022,\u0022onln\u0022:\u0022Online\u0022,\u0022state\u0022:[\u0022off\u0022,\u0022on\u0022,\u0022toggle\u0022,\u0022hold\u0022],\u0022sw\u0022:\u00229.1.0\u0022,\u0022t\u0022:\u0022Gosund_1\u0022,\u0022ft\u0022:\u0022%prefix%/%topic%/\u0022,\u0022tp\u0022:[\u0022cmnd\u0022,\u0022stat\u0022,\u0022tele\u0022],\u0022rl\u0022:[1,0,0,0,0,0,0,0],\u0022swc\u0022:[-1,-1,-1,-1,-1,-1,-1,-1],\u0022swn\u0022:[null,null,null,null,null,null,null,null],\u0022btn\u0022:[0,0,0,0],\u0022so\u0022:{\u00224\u0022:0,\u002211\u0022:0,\u002213\u0022:0,\u002217\u0022:0,\u002220\u0022:0,\u002230\u0022:0,\u002268\u0022:0,\u002273\u0022:0,\u002282\u0022:0,\u0022114\u0022:0},\u0022lk\u0022:1,\u0022lt_st\u0022:0,\u0022ver\u0022:1}","tasmota/discovery/E09806C85CAA/sensors":"{\u0022sn\u0022:{\u0022Time\u0022:\u00222021-02-11T23:48:56\u0022,\u0022ENERGY\u0022:{\u0022TotalStartTime\u0022:\u00222020-11-04T18:21:07\u0022,\u0022Total\u0022:4.723,\u0022Yesterday\u0022:0.490,\u0022Today\u0022:0.133,\u0022Power\u0022:30,\u0022ApparentPower\u0022:39,\u0022ReactivePower\u0022:25,\u0022Factor\u0022:0.76,\u0022Voltage\u0022:236,\u0022Current\u0022:0.165}},\u0022ver\u0022:1}","tele/Gosund_1/LWT":"Online","tele/Koogeek_1/LWT":"Online","tele/Koogeek_2/LWT":"Online","tele/Sonoff_Basic_1/LWT":"Online","tele/Sonoff_Basic_2/LWT":"Online","tele/Sonoff_Basic_3/LWT":"online","tele/Sonoff_Basic_4/LWT":"online","tele/tasmota/LWT":"Online"}
     2020-11-15 23:28:17   connection      disconnected
     2021-02-11 23:42:07   lastPublish     cmnd/Gosund_1/Backlog:StateText1 off; StateText2 on; StateText3 toggle; StateText4 hold; SetOption26 1; SaveData 1
     2021-02-15 13:12:35   nrclients       7
     2021-02-11 23:46:52   state           Initialized
   clients:
     Mosquitto_192.168.1.52_57031 1
     Mosquitto_192.168.1.58_58212 1
     Mosquitto_192.168.1.61_26639 1
     Mosquitto_192.168.1.62_12596 1
     Mosquitto_192.168.1.63_50785 1
     Mosquitto_192.168.1.64_54286 1
     Mosquitto_192.168.1.65_54046 1
   retain:
     tasmota/discovery/E09806C85CAA/config:
       ts         1613083738.39018
       val        {"ip":"192.168.1.65","dn":"Gosund_1","fn":["Gosund_1",null,null,null,null,null,null,null],"hn":"Gosund_1-7338","mac":"E09806C85CAA","md":"Gosund SP1 v23","ty":0,"if":0,"ofln":"Offline","onln":"Online","state":["off","on","toggle","hold"],"sw":"9.1.0","t":"Gosund_1","ft":"%prefix%/%topic%/","tp":["cmnd","stat","tele"],"rl":[1,0,0,0,0,0,0,0],"swc":[-1,-1,-1,-1,-1,-1,-1,-1],"swn":[null,null,null,null,null,null,null,null],"btn":[0,0,0,0],"so":{"4":0,"11":0,"13":0,"17":0,"20":0,"30":0,"68":0,"73":0,"82":0,"114":0},"lk":1,"lt_st":0,"ver":1}
     tasmota/discovery/E09806C85CAA/sensors:
       ts         1613083738.39087
       val        {"sn":{"Time":"2021-02-11T23:48:56","ENERGY":{"TotalStartTime":"2020-11-04T18:21:07","Total":4.723,"Yesterday":0.490,"Today":0.133,"Power":30,"ApparentPower":39,"ReactivePower":25,"Factor":0.76,"Voltage":236,"Current":0.165}},"ver":1}
     tele/Gosund_1/LWT:
       ts         1613226105.23823
       val        Online
     tele/Koogeek_1/LWT:
       ts         1613226103.98764
       val        Online
     tele/Koogeek_2/LWT:
       ts         1613226103.83199
       val        Online
     tele/Sonoff_Basic_1/LWT:
       ts         1613226104.76977
       val        Online
     tele/Sonoff_Basic_2/LWT:
       ts         1613226105.08175
       val        Online
     tele/Sonoff_Basic_3/LWT:
       ts         1613380505.92155
       val        online
     tele/Sonoff_Basic_4/LWT:
       ts         1613380506.33275
       val        online
     tele/tasmota/LWT:
       ts         1613083613.52704
       val        Online
Attributes:

Er arbeitet auch mit zwei Koogeeks und vier Sonoffs problemlos zusammen.
Die beiden nächsten Anweisungen
{ $defs{MQTT2_DVES_C85CAA}{IODev} }
{ $defs{MQTT2_DVES_C85CAA}{IODev}{NAME} }

erzeugen gar keine Ausgabe, weder im FHEMWEB noch per telnet.

Tatsächlich schaltet fhem die Gosund nach einem Restart problemlos (s. a. angeh. log).
Jetzt ergibt

{ $defs{MQTT2_DVES_C85CAA}{IODev} }
HASH(0x55889a5d2058)

und

{ $defs{MQTT2_DVES_C85CAA}{IODev}{NAME} }
Mosquitto


Und: Ja, fhem.config wird direkt editiert  :-[

rudolfkoenig

Die Ursache ist wohl 'ne Kombination von Problemfaellen: MQTT2_DVES_C85CAA wird vor Mosquitto definiert, und das wird nur beim Start "repariert", nicht aber bei rereadcfg. Das Problem wird nicht "nach eingen Stunden" ausgeloest, sondern nach dem ersten rereadcfg.

Ich habe jetzt rereadcfg repariert (FHEM update ab morgen um acht), bin auf die Nebenwirkungen gespannt.
Alternativ kann man (als fhem.cfg Editierer relativ leicht :) ) die Definition von MQTT2_DVES_C85CAA hinter die von Mosquitto verschieben.

td

Hallo Rudolf,

ich kann bestätigen, daß, ohne manuelle Änderung an der fhem.conf, nach durchgeführten Update und anschließendem rereadcfg das gewünschte Verhalten, sprich Schalten der Gosund durch fhem, einwandfrei funktioniert.

Ganz herzlichen Dank für Deine Unterstützung!

Gruß
td