Doppeltes Event auf state bei MQTT2_DEVICE (set ignorieren?)

Begonnen von der-pw, 24 November 2018, 10:12:20

Vorheriges Thema - Nächstes Thema

rudolfkoenig

Zitat2018-11-25 17:04:36 MQTT2_DEVICE MQTT2_DVES_3E0F61 POWER: ON
Kannst du mir sagen, was fuer ein Geraet/Firmware das ist?
Die templates kennen bisher nur POWER1/POWER2.

der-pw

#16
Ein Sonoff S26 Zwischenstecker
Das ist die Version:
Tasmota Version 6.3.0
Build-Datum & -Uhrzeit 2018.10.30 17:39:28
Core-/SDK-Version 2_3_0/1.5.3(aec24ac9)


Den POWER1- und POWER2-Pfad kenne ich bisher nur aus dem Sonoff DUAL.

Das spuckt der Sonoff Basic beim Neustart aus, der verhält sich analog zum S26:
00:00:00 Projekt sonoff Sonoff_ke_LEDLicht (Topic sonoff_ke_ledlicht, Fallback sonoff_ke_ledlicht, GroupTopic sonoffs) Version 6.3.0-2_3_0
00:00:00 WIF: verbinden mit AP1 FRITZ!Box 7490 in Modus 11N wie sonoff_ke_ledlicht-5352...
00:00:06 WIF: verbunden
00:00:06 DNS: initialisiert
00:00:06 HTP: Web-Server aktiv bei sonoff_ke_ledlicht-5352.local mit IP-Adresse 192.168.178.38
00:00:06 MQT: Verbindungsversuch...
00:00:06 MQT: verbunden
00:00:06 MQT: tele/sonoff_ke_ledlicht/LWT = online (beibehalten)
00:00:06 MQT: cmnd/sonoff_ke_ledlicht/POWER =
00:00:06 MQT: tele/sonoff_ke_ledlicht/INFO1 = {"Module":"Sonoff Basic","Version":"6.3.0","FallbackTopic":"sonoff_ke_ledlicht","GroupTopic":"sonoffs"}
00:00:06 MQT: tele/sonoff_ke_ledlicht/INFO2 = {"WebServerMode":"Admin","Hostname":"sonoff_ke_ledlicht-5352","IPAddress":"192.168.178.38"}
00:00:06 MQT: tele/sonoff_ke_ledlicht/INFO3 = {"RestartReason":"Software/System restart"}
00:00:06 MQT: stat/sonoff_ke_ledlicht/RESULT = {"POWER":"OFF"}
00:00:06 MQT: stat/sonoff_ke_ledlicht/POWER = OFF
18:32:16 MQT: tele/sonoff_ke_ledlicht/STATE = {"Time":"2018-11-25T18:32:15","Uptime":"0T00:00:15","Vcc":3.179,"POWER":"OFF","Wifi":{"AP":1,"SSId":"FRITZ!Box 7490","BSSId":"E0:28:6D:D2:72:AF","Channel":1,"RSSI":80}}
18:32:16 MQT: domoticz/in = {"idx":1,"nvalue":0,"svalue":"17.7;51.8;1","Battery":58,"RSSI":8}
18:32:16 MQT: tele/sonoff_ke_ledlicht/SENSOR = {"Time":"2018-11-25T18:32:16","AM2301":{"Temperature":17.7,"Humidity":51.8},"TempUnit":"C"}


und so registriert ihn autocreate.
Internals:
   CFGFN     
   CID        sonoff_ke_ledlicht
   DEF        sonoff_ke_ledlicht
   DEVICETOPIC MQTT2_sonoff_ke_ledlicht
   IODev      mqtt2_server
   LASTInputDev mqtt2_server
   MSGCNT     33
   NAME       MQTT2_sonoff_ke_ledlicht
   NR         325
   STATE      off
   TYPE       MQTT2_DEVICE
   mqtt2_server_MSGCNT 33
   mqtt2_server_TIME 2018-11-25 18:32:15
   READINGS:
     2018-11-25 18:32:07   INFO1_FallbackTopic sonoff_ke_ledlicht
     2018-11-25 18:32:07   INFO1_GroupTopic sonoffs
     2018-11-25 18:32:07   INFO1_Module    Sonoff Basic
     2018-11-25 18:32:07   INFO1_Version   6.3.0
     2018-11-25 18:32:07   INFO2_Hostname  sonoff_ke_ledlicht-5352
     2018-11-25 18:32:07   INFO2_IPAddress 192.168.178.38
     2018-11-25 18:32:07   INFO2_WebServerMode Admin
     2018-11-25 18:32:07   INFO3_RestartReason Software/System restart
     2018-11-25 18:32:07   LWT             online
     2018-11-25 18:32:07   POWER           OFF
     2018-11-25 18:32:07   RESULT_POWER    OFF
     2018-11-25 18:32:15   SENSOR_AM2301_Humidity 51.8
     2018-11-25 18:32:15   SENSOR_AM2301_Temperature 17.7
     2018-11-25 18:32:15   SENSOR_TempUnit C
     2018-11-25 18:32:15   SENSOR_Time     2018-11-25T18:32:16
     2018-11-25 18:32:15   STATE_POWER     OFF
     2018-11-25 18:32:15   STATE_Time      2018-11-25T18:32:15
     2018-11-25 18:32:15   STATE_Uptime    0T00:00:15
     2018-11-25 18:32:15   STATE_Vcc       3.179
     2018-11-25 18:32:15   STATE_Wifi_AP   1
     2018-11-25 18:32:15   STATE_Wifi_BSSId E0:28:6D:D2:72:AF
     2018-11-25 18:32:15   STATE_Wifi_Channel 1
     2018-11-25 18:32:15   STATE_Wifi_RSSI 80
     2018-11-25 18:32:15   STATE_Wifi_SSId FRITZ!Box 7490
     2018-11-25 18:32:15   in_Battery      58
     2018-11-25 18:32:15   in_RSSI         8
     2018-11-25 18:32:15   in_idx          1
     2018-11-25 18:32:15   in_nvalue       0
     2018-11-25 18:32:15   in_svalue       17.7;51.8;1
     2018-11-25 18:28:06   state           off
Attributes:
   DbLogExclude .*
   IODev      mqtt2_server
   readingList sonoff_ke_ledlicht:tele/sonoff_ke_ledlicht/LWT:.* LWT
sonoff_ke_ledlicht:cmnd/sonoff_ke_ledlicht/POWER:.* POWER
sonoff_ke_ledlicht:tele/sonoff_ke_ledlicht/INFO1:.* { json2nameValue($EVENT, 'INFO1_') }
sonoff_ke_ledlicht:tele/sonoff_ke_ledlicht/INFO2:.* { json2nameValue($EVENT, 'INFO2_') }
sonoff_ke_ledlicht:tele/sonoff_ke_ledlicht/INFO3:.* { json2nameValue($EVENT, 'INFO3_') }
sonoff_ke_ledlicht:stat/sonoff_ke_ledlicht/RESULT:.* { json2nameValue($EVENT, 'RESULT_') }
sonoff_ke_ledlicht:stat/sonoff_ke_ledlicht/POWER:.* POWER
sonoff_ke_ledlicht:tele/sonoff_ke_ledlicht/STATE:.* { json2nameValue($EVENT, 'STATE_') }
sonoff_ke_ledlicht:domoticz/in:.* { json2nameValue($EVENT, 'in_') }
sonoff_ke_ledlicht:tele/sonoff_ke_ledlicht/SENSOR:.* { json2nameValue($EVENT, 'SENSOR_') }
   room       MQTT2_DEVICE
   setList    on cmnd/sonoff_ke_ledlicht/POWER ON
off cmnd/sonoff_ke_ledlicht/POWER OFF


setlist habe ich natürlich manuell angelegt.

Habe auch eben bemerkt, dass der state nun automatisch (durchs Modul?) in lowercase geschrieben wird. top!

rudolfkoenig

ZitatTasmota Version   6.3.0
Ich habe 6.1.1 mit POWER1. Oder liegt es an einem angepassten Firmware (meiner ist "original")?
Vermutlich muss ich die Templates umbauen, bin aber noch unentschlossen, wie.

der-pw

#18
Also ich habe mir die Binary runtergeladen, von https://github.com/arendst/Sonoff-Tasmota/releases

Ich kann es nicht mehr zu 100% bestätigen, aber auch unter 5.x hatte ich auf dem Basic nur einen Topic mit "POWER", die Nummerierung kenne ich nur von dem DUAL.

ZitatVermutlich muss ich die Templates umbauen, bin aber noch unentschlossen, wie.
Meinst du die attr-Templates?
Die passen ja IMHO momentan für den DUAL. So könntest du ein Template für den Basic mit hinzufügen.
In der Hoffnung, ich habe dich da richtig verstanden.

Edit:
Sorry, jetzt erst raffe ich den Unterschied in den Templates zwischen 1ch und 2ch.

tpm88

Zitat von: rudolfkoenig am 26 November 2018, 11:04:41
Ich habe 6.1.1 mit POWER1. Oder liegt es an einem angepassten Firmware (meiner ist "original")?
Vermutlich muss ich die Templates umbauen, bin aber noch unentschlossen, wie.

Ich setzte auch die Tasmota 6.3 Release Firmware (d.h. ohne individuelle Änderungen) ein.

So sieht ein SONOFF Basic Device mit einem Kanal nach autoCreate und Anwendung des Templates sonoff_tasmota_1ch aus.


fhem> list MQTT2_DVES_324190

Internals:
   CFGFN
   CID        DVES_324190
   DEF        DVES_324190
   DEVICETOPIC MQTT2_DVES_324190
   IODev      my_MQTT2
   LASTInputDev my_MQTT2
   MSGCNT     157
   NAME       MQTT2_DVES_324190
   NR         281
   STATE      POWER1
   TYPE       MQTT2_DEVICE
   my_MQTT2_MSGCNT 157
   my_MQTT2_TIME 2018-11-26 13:58:36
   READINGS:
2018-11-26 10:51:27   INFO1_FallbackTopic DVES_324190
2018-11-26 10:51:27   INFO1_GroupTopic sonoffs
2018-11-26 10:51:27   INFO1_Module    Sonoff Basic
2018-11-26 10:51:27   INFO1_Version   6.3.0
2018-11-26 10:51:27   INFO2_Hostname  sonoff-0400
2018-11-26 10:51:27   INFO2_IPAddress 192.168.8.89
2018-11-26 10:51:27   INFO2_WebServerMode Admin
2018-11-26 10:51:27   INFO3_RestartReason Power on
2018-11-26 13:17:53   LWT             Online
2018-11-26 13:17:53   POWER
2018-11-26 10:35:33   RESULT_Command  Unknown
2018-11-26 10:51:27   RESULT_POWER    OFF
2018-11-26 10:42:37   RESULT_SaveData ON
2018-11-26 13:58:36   STATE_POWER     OFF
2018-11-26 13:58:36   STATE_Time      2018-11-26T13:58:37
2018-11-26 13:58:36   STATE_Uptime    0T03:07:21
2018-11-26 13:58:36   STATE_Vcc       3.116
2018-11-26 13:58:36   STATE_Wifi_AP   1
2018-11-26 13:58:36   STATE_Wifi_BSSId 5C:49:79:7C:93:A7
2018-11-26 13:58:36   STATE_Wifi_Channel 13
2018-11-26 13:58:36   STATE_Wifi_RSSI 100
2018-11-26 13:58:36   STATE_Wifi_SSId TobiVision
2018-11-26 10:42:33   STATUS5_StatusNET_DNSServer 192.168.8.1
2018-11-26 10:42:33   STATUS5_StatusNET_Gateway 192.168.8.1
2018-11-26 10:42:33   STATUS5_StatusNET_Hostname sonoff-0400
2018-11-26 10:42:33   STATUS5_StatusNET_IPAddress 192.168.8.89
2018-11-26 10:42:33   STATUS5_StatusNET_Mac 80:7D:3A:32:41:90
2018-11-26 10:42:33   STATUS5_StatusNET_Subnetmask 255.255.255.0
2018-11-26 10:42:33   STATUS5_StatusNET_Webserver 2
2018-11-26 10:42:33   STATUS5_StatusNET_WifiConfig 5
2018-11-26 10:42:29   STATUS_Status_ButtonRetain 0
2018-11-26 10:42:29   STATUS_Status_ButtonTopic 0
2018-11-26 10:42:29   STATUS_Status_FriendlyName_1 Sonoff
2018-11-26 10:42:29   STATUS_Status_LedState 1
2018-11-26 10:42:29   STATUS_Status_Module 1
2018-11-26 10:42:29   STATUS_Status_Power 0
2018-11-26 10:42:29   STATUS_Status_PowerOnState 3
2018-11-26 10:42:29   STATUS_Status_PowerRetain 0
2018-11-26 10:42:29   STATUS_Status_SaveData 1
2018-11-26 10:42:29   STATUS_Status_SaveState 1
2018-11-26 10:42:29   STATUS_Status_SensorRetain 0
2018-11-26 10:42:29   STATUS_Status_SwitchMode_1 0
2018-11-26 10:42:29   STATUS_Status_SwitchMode_2 0
2018-11-26 10:42:29   STATUS_Status_SwitchMode_3 0
2018-11-26 10:42:29   STATUS_Status_SwitchMode_4 0
2018-11-26 10:42:29   STATUS_Status_SwitchMode_5 0
2018-11-26 10:42:29   STATUS_Status_SwitchMode_6 0
2018-11-26 10:42:29   STATUS_Status_SwitchMode_7 0
2018-11-26 10:42:29   STATUS_Status_SwitchRetain 0
2018-11-26 10:42:29   STATUS_Status_SwitchTopic 0
2018-11-26 10:42:29   STATUS_Status_Topic sonoff
2018-11-26 13:01:59   UPTIME_Time     2018-11-26T13:02:00
2018-11-26 13:01:59   UPTIME_Uptime   0T02:10:44
Attributes:
   IODev      my_MQTT2
   eventMap   { dev=>{ON=>'on',OFF=>'off'} }
   readingList DVES_324190:tele/sonoff/LWT:.* LWT
DVES_324190:cmnd/sonoff/POWER:.* POWER
DVES_324190:tele/sonoff/INFO1:.* { json2nameValue($EVENT, 'INFO1_') }
DVES_324190:tele/sonoff/INFO2:.* { json2nameValue($EVENT, 'INFO2_') }
DVES_324190:tele/sonoff/INFO3:.* { json2nameValue($EVENT, 'INFO3_') }
DVES_324190:stat/sonoff/RESULT:.* { json2nameValue($EVENT, 'RESULT_') }
DVES_324190:stat/sonoff/POWER:.* POWER
DVES_324190:tele/sonoff/STATE:.* { json2nameValue($EVENT, 'STATE_') }
DVES_324190:stat/sonoff/STATUS5:.* { json2nameValue($EVENT, 'STATUS5_') }
DVES_324190:stat/sonoff/STATUS:.* { json2nameValue($EVENT, 'STATUS_') }
DVES_324190:tele/sonoff/UPTIME:.* { json2nameValue($EVENT, 'UPTIME_') }
   room       MQTT2_DEVICE
   setList    off:noArg    cmnd/sonoff/POWER1 0
  on:noArg     cmnd/sonoff/POWER1 1
  toggle:noArg cmnd/sonoff/POWER1 2
   stateFormat POWER1


Damit der Zustand richtig im FHEM Web Frontend angezeigt wird, musste ich stateFormat von POWER1 auf POWER ändern. Bei der setList war keine Änderung nötig. Auch die Homekit Integration funktioniert "out of the box".

Danke für das Modul.

Gruß
Tobias
Test FHEM Server on RPi, CUL_HM
Prod FHEM Server on Odroid HC1, HM-USB, JeeLink
Devices: diverse HM, IT1500, 1wire, LaCrosse, MQTT

rudolfkoenig

ZitatDamit der Zustand richtig im FHEM Web Frontend angezeigt wird, musste ich stateFormat von POWER1 auf POWER ändern.Bei der setList war keine Änderung nötig.
Ich habe jetzt ein tasmota_basic nach diesen Regeln angelegt. Die sonoff_tasmota2channel habe ich nach tasmota_2channel umbenannt, in der Hoffnung, dass es nicht sonoff spezifisch ist.Wuesste gerne, ob  tasmota_1channel notwendig ist, oder nur ich habe es geschafft, mein sonoff basic falsch zu flashen.

ZitatAuch die Homekit Integration funktioniert "out of the box".
Was war dafuer zu tun?
Kann man sowas auch als attrTemplate vorstellen?

der-pw

#21
Homekit reagiert auf das Readings "state", zumindest ohne homebridgeMapping.
Ich vermute also, dass es nur "out of the box" läuft, wenn man das Sonoff-Device über das WebIF schaltet bzw. über set.

tpm88

Zitat von: rudolfkoenig am 27 November 2018, 18:25:39
Was war dafuer zu tun?
Kann man sowas auch als attrTemplate vorstellen?

Für die Homekit Integration genügt es - zumindest bei 1-Kanal Switches - folgendes Attribut zu setzen - also auch per attrTemplate machbar:

attr <device> genericDeviceType switch


Üblicherweise wird die Device Selektion der HomeBridge über einen Raum gemacht. Diese Raumauswahl muss man dem User überlassen. In jedem Fall muss der homebridge service nach Hinzufügen eines neuen Device auch manuell neu gestartet werden, damit es in der Apple Home App sichtbar wird.

attr <device> room  Homekit,MQTT2_DEVICE
Test FHEM Server on RPi, CUL_HM
Prod FHEM Server on Odroid HC1, HM-USB, JeeLink
Devices: diverse HM, IT1500, 1wire, LaCrosse, MQTT