Folgende Frage zu Sonoff/Tasmota und MQTT2_Device

Begonnen von moonsorrox, 13 Dezember 2018, 16:27:05

Vorheriges Thema - Nächstes Thema

Invers

Ich habe jetzt hier nicht alles gelesen, aber es ergibt sich eine Frage:
Meine Steckdose habe ich per Hand eingeschaltet.
Trotzdedm zeigt "setstate Steckdose_2 2019-01-04 14:43:13 state off"
aber: "setstate Steckdose_2 2019-01-04 18:09:02 RESULT_POWER ON
          setstate Steckdose_2 2019-01-04 21:14:45 STATE_LoadAvg 19
          setstate Steckdose_2 2019-01-04 21:14:45 STATE_POWER ON"

Warum wird nicht überall on oder ON angezeigt? state solte doch on sein, wenn ich per Hand einschalte?


defmod Steckdose_2 MQTT2_DEVICE DVES_6ADBE6
attr Steckdose_2 IODev MQTT2_Server
attr Steckdose_2 devStateIcon .*on:hue_filled_outlet@lime .*off:hue_filled_outlet@LightSkyBlue
attr Steckdose_2 readingList DVES_6ADBE6:tele/sonoff1/LWT:.* LWT\
DVES_6ADBE6:cmnd/sonoff1/POWER:.* POWER\
DVES_6ADBE6:tele/sonoff1/INFO1:.* { json2nameValue($EVENT, 'INFO1_', $JSONMAP) }\
DVES_6ADBE6:tele/sonoff1/INFO2:.* { json2nameValue($EVENT, 'INFO2_', $JSONMAP) }\
DVES_6ADBE6:tele/sonoff1/INFO3:.* { json2nameValue($EVENT, 'INFO3_', $JSONMAP) }\
DVES_6ADBE6:stat/sonoff1/RESULT:.* { json2nameValue($EVENT, 'RESULT_', $JSONMAP) }\
DVES_6ADBE6:stat/sonoff1/POWER:.* POWER\
DVES_6ADBE6:tele/sonoff1/STATE:.* { json2nameValue($EVENT, 'STATE_', $JSONMAP) }\
DVES_6ADBE6:tele/sonoff1/UPTIME:.* { json2nameValue($EVENT, 'UPTIME_', $JSONMAP) }
attr Steckdose_2 room MQTT2_DEVICE
attr Steckdose_2 setList on cmnd/sonoff1/POWER on\
off cmnd/sonoff1/POWER off\
reboot cmnd/sonoff1/Restart 1
attr Steckdose_2 webCmd on:off:reboot

setstate Steckdose_2 off
setstate Steckdose_2 2019-01-03 20:43:57 INFO1_FallbackTopic cmnd/DVES_6ADBE6_fb/
setstate Steckdose_2 2019-01-03 20:43:57 INFO1_GroupTopic sonoffs
setstate Steckdose_2 2019-01-03 20:43:57 INFO1_Module Sonoff S2X
setstate Steckdose_2 2019-01-03 20:43:57 INFO1_Version 6.4.1(sonoff)
setstate Steckdose_2 2019-01-03 20:43:57 INFO2_Hostname sonoff1-7142
setstate Steckdose_2 2019-01-03 20:43:57 INFO2_WebServerMode Admin
setstate Steckdose_2 2019-01-03 20:43:57 INFO3_RestartReason Power on
setstate Steckdose_2 2019-01-04 21:14:37 LWT Online
setstate Steckdose_2 2019-01-04 21:14:37 POWER
setstate Steckdose_2 2019-01-04 18:09:02 RESULT_POWER ON
setstate Steckdose_2 2019-01-04 21:14:45 STATE_LoadAvg 19
setstate Steckdose_2 2019-01-04 21:14:45 STATE_POWER ON
setstate Steckdose_2 2019-01-04 21:14:45 STATE_Sleep 50
setstate Steckdose_2 2019-01-04 21:14:45 STATE_SleepMode Dynamic
setstate Steckdose_2 2019-01-04 21:14:45 STATE_Time 2019-01-04T21:14:45
setstate Steckdose_2 2019-01-04 21:14:45 STATE_Uptime 1T00:30:54
setstate Steckdose_2 2019-01-04 21:14:45 STATE_Vcc 3.532
setstate Steckdose_2 2019-01-04 21:02:00 UPTIME_Time 2019-01-04T21:02:00
setstate Steckdose_2 2019-01-04 21:02:00 UPTIME_Uptime 1T00:18:09
setstate Steckdose_2 2019-01-04 14:43:13 state off



WIFI infos entfernt.
Pi3B+ mit SSD/ Bullseye | FB7590 AX | 12 x Dect200 | CUL433+868 | SDuino | HM-LAN | 3 x Heizung FHT + FKontakte | KeyMatic + 4 FB | HM Wandtaster 2-fach m. LED | 6 x Türkont. TFK-TI | HM-Bew.-Melder innen | 3 x Smoked. HM-SEC-SD-2

Beta-User

@Invers:
Du nutzt (noch) nicht das template für den "einkanaligen" mit state=Power, daher sind alle Readings mit dem Prefix versehen.

Vielleicht versuchst du erst mal das mit dem template?
Server: HP-elitedesk@Debian 12, aktuelles FHEM@ConfigDB | CUL_HM (VCCU) | MQTT2: MiLight@ESP-GW, BT@OpenMQTTGw | MySensors: seriell, v.a. 2.3.1@RS485 | ZWave | ZigBee@deCONZ | SIGNALduino | MapleCUN | RHASSPY
svn: u.a MySensors, Weekday-&RandomTimer, Twilight,  div. attrTemplate-files

Invers

Ich weiss nicht, die Steckdosen wurden ja automatisch angelegt. Aber ich versuche es mal. Danke.
Pi3B+ mit SSD/ Bullseye | FB7590 AX | 12 x Dect200 | CUL433+868 | SDuino | HM-LAN | 3 x Heizung FHT + FKontakte | KeyMatic + 4 FB | HM Wandtaster 2-fach m. LED | 6 x Türkont. TFK-TI | HM-Bew.-Melder innen | 3 x Smoked. HM-SEC-SD-2

Beta-User

...das schließt sich nicht aus, genauer gesagt sind die templates eine "Erfindung", um einem ua. mit Tasmota das Leben zu erleichtern ;) . Details siehe hier: https://wiki.fhem.de/wiki/MQTT2-Module_-_Praxisbeispiele#Tasmota
Server: HP-elitedesk@Debian 12, aktuelles FHEM@ConfigDB | CUL_HM (VCCU) | MQTT2: MiLight@ESP-GW, BT@OpenMQTTGw | MySensors: seriell, v.a. 2.3.1@RS485 | ZWave | ZigBee@deCONZ | SIGNALduino | MapleCUN | RHASSPY
svn: u.a MySensors, Weekday-&RandomTimer, Twilight,  div. attrTemplate-files

Invers

OK, vielleicht habe ich mich geirrt, da ich ziemlich viel herumprobiert hatte.
Ich habe nun eine andere Steckdose mal gelöscht und neu anlegen lassen. Anschliessend habe ich Template A_01a_tasmota_basic_state_power1 zugewiesen.
Sieht dann so aus (WiFi entfernt):

defmod MQTT2_DVES_9C6846 MQTT2_DEVICE DVES_9C6846
attr MQTT2_DVES_9C6846 IODev MQTT2_Server
attr MQTT2_DVES_9C6846 autocreate 0
attr MQTT2_DVES_9C6846 eventMap { dev=>{'^(.*)POWER(.?): OFF$'=>'$1POWER$2: off', '^(.*)POWER(.?): ON$'=>'$1POWER$2: on'} }
attr MQTT2_DVES_9C6846 model A_01a_tasmota_basic_state_power1
attr MQTT2_DVES_9C6846 readingList tele/sonoff3/LWT:.* LWT\
  tele/sonoff3/STATE:.* { json2nameValue($EVENT) }\
  tele/sonoff3/SENSOR:.* { json2nameValue($EVENT) }\
  tele/sonoff3/INFO.:.* { json2nameValue($EVENT) }\
  stat/sonoff3/RESULT:.* { json2nameValue($EVENT) }
attr MQTT2_DVES_9C6846 room MQTT2_DEVICE
attr MQTT2_DVES_9C6846 setList off:noArg    cmnd/sonoff3/POWER1 0\
  on:noArg     cmnd/sonoff3/POWER1 1\
  toggle:noArg cmnd/sonoff3/POWER1 2
attr MQTT2_DVES_9C6846 setStateList on off toggle
attr MQTT2_DVES_9C6846 stateFormat POWER1

setstate MQTT2_DVES_9C6846 POWER1
setstate MQTT2_DVES_9C6846 2019-01-05 09:46:54 LoadAvg 19
setstate MQTT2_DVES_9C6846 2019-01-05 09:46:54 POWER OFF
setstate MQTT2_DVES_9C6846 2019-01-05 09:46:54 Sleep 50
setstate MQTT2_DVES_9C6846 2019-01-05 09:46:54 SleepMode Dynamic
setstate MQTT2_DVES_9C6846 2019-01-05 09:46:54 Time 2019-01-05T09:46:53
setstate MQTT2_DVES_9C6846 2019-01-05 09:46:54 Uptime 0T00:35:27
setstate MQTT2_DVES_9C6846 2019-01-05 09:46:54 Vcc 3.519
setstate MQTT2_DVES_9C6846 2019-01-05 09:45:48 state set_off



Ich habe keine Anpassungen vorgenommen.
Folgendes ist mir nun aufgefallen:
Firefox wird "DeviceOverview MQTT2_DVES_9C6846 POWER1 on off" angezeigt. POWER1, on und off können geklickt werden.
Klick auf POWER1 schaltet nur an, sonst nichts. On und off funktionieren, wie gewohnt. Leider  blitzt dazwischen das Lampen-Icon nur kurz auf und nimmt den Platz für diese kurze Zeit von POWER1 ein.
Bei den Readings steht POWER auf on. Aktualisiere ich aber den Browser, steht das Reading auf ON. Nach der nächsten Aktualisierung durch MQTT2 steht da wieder on (klein geschrieben).
Bei STATE steht POWER1. Das ändert sich bis jetzt niemals.
Bei state steht set_on oder set_off, aber nur, wenn ich über die Oberfläche schalte, nicht, wenn ich an der Steckdose die Taste drücke. Dann bleibt state unverändert.

Ist das alles so gewollt? Ich beschäftige mich noch nicht lange mit MQTT2 und hab da erst einmal wenig Ahnung.
Ich würde allerdings gefühlsmäßig erwarten, dass bei state on oder off steht. Muss ich nun wirklich statt state in allen DOIFs und so weiter POWER abfragen? Und das dann in Gross- oder/und Kleinschreibung?
Eventmonitor zeigt POWER: off oder POWER: on. Also Kleinschreibung.

Pi3B+ mit SSD/ Bullseye | FB7590 AX | 12 x Dect200 | CUL433+868 | SDuino | HM-LAN | 3 x Heizung FHT + FKontakte | KeyMatic + 4 FB | HM Wandtaster 2-fach m. LED | 6 x Türkont. TFK-TI | HM-Bew.-Melder innen | 3 x Smoked. HM-SEC-SD-2

Beta-User

Du solltest das andere template (A_01_tasmota_basic) nehmen.
Ees gibt zwei Basic-templates, die sich darin unterscheiden, was im state angezeigt wird und wie die Schaltbefehle sind. Das mit state_POWER1 ist für die, die das umkonfiguriert haben.
Server: HP-elitedesk@Debian 12, aktuelles FHEM@ConfigDB | CUL_HM (VCCU) | MQTT2: MiLight@ESP-GW, BT@OpenMQTTGw | MySensors: seriell, v.a. 2.3.1@RS485 | ZWave | ZigBee@deCONZ | SIGNALduino | MapleCUN | RHASSPY
svn: u.a MySensors, Weekday-&RandomTimer, Twilight,  div. attrTemplate-files

Invers

OK, versuche ich. Ich war der Empfehlung attrTemplate ? gefolgt. Danke dir.
Pi3B+ mit SSD/ Bullseye | FB7590 AX | 12 x Dect200 | CUL433+868 | SDuino | HM-LAN | 3 x Heizung FHT + FKontakte | KeyMatic + 4 FB | HM Wandtaster 2-fach m. LED | 6 x Türkont. TFK-TI | HM-Bew.-Melder innen | 3 x Smoked. HM-SEC-SD-2

Beta-User

Zitat von: Invers am 05 Januar 2019, 11:15:28
Ich war der Empfehlung attrTemplate ? gefolgt. Danke dir.
Verstehe ich nicht ganz; da steht doch auch beim basic:
ZitatApplies to Sonoff 1 Channel devices using POWER-topic for relay state
Server: HP-elitedesk@Debian 12, aktuelles FHEM@ConfigDB | CUL_HM (VCCU) | MQTT2: MiLight@ESP-GW, BT@OpenMQTTGw | MySensors: seriell, v.a. 2.3.1@RS485 | ZWave | ZigBee@deCONZ | SIGNALduino | MapleCUN | RHASSPY
svn: u.a MySensors, Weekday-&RandomTimer, Twilight,  div. attrTemplate-files

Invers

Aber beim Anderen steht:
A_01a_tasmota_basic_state_power1
Applies to Sonoff Basic, S20 using POWER1-topic for relay state

Und ich habe ja S20 und S26. Da dachte ich, das wäre richtig, zumal der mit A_01_tasmota_basic in der FHEM-Oberfläche nicht geschaltet hatte und auch jetzt nicht schaltet.
Ich habe nun das Template A_01_tasmota_basic genommen. Die Steckdose schaltet aber nicht per FHEM-Oberfläche, wobei das Icon aber korrekt angezeigt wird. Werte kommen von der Dose.
Das Problem mit Gross/ Kleinschreibung besteht weiterhin.


defmod MQTT2_DVES_9C6846 MQTT2_DEVICE DVES_9C6846
attr MQTT2_DVES_9C6846 IODev MQTT2_Server
attr MQTT2_DVES_9C6846 autocreate 0
attr MQTT2_DVES_9C6846 eventMap { dev=>{'^(.*)POWER(.?): OFF$'=>'$1POWER$2: off', '^(.*)POWER(.?): ON$'=>'$1POWER$2: on'} }
attr MQTT2_DVES_9C6846 model A_01a_tasmota_basic_state_power1
attr MQTT2_DVES_9C6846 readingList tele/sonoff3/LWT:.* LWT\
  tele/sonoff3/STATE:.* { json2nameValue($EVENT) }\
  tele/sonoff3/SENSOR:.* { json2nameValue($EVENT) }\
  tele/sonoff3/INFO.:.* { json2nameValue($EVENT) }\
  stat/sonoff3/RESULT:.* { json2nameValue($EVENT) }
attr MQTT2_DVES_9C6846 room MQTT2_DEVICE
attr MQTT2_DVES_9C6846 setList off:noArg    cmnd/DEVNAME/POWER1 0\
  on:noArg     cmnd/DEVNAME/POWER1 1\
  toggle:noArg cmnd/DEVNAME/POWER1 2
attr MQTT2_DVES_9C6846 setStateList on off toggle
attr MQTT2_DVES_9C6846 stateFormat POWER1

setstate MQTT2_DVES_9C6846 set_off
setstate MQTT2_DVES_9C6846 2019-01-05 11:29:55 FallbackTopic cmnd/DVES_9C6846_fb/
setstate MQTT2_DVES_9C6846 2019-01-05 11:29:55 GroupTopic sonoffs
setstate MQTT2_DVES_9C6846 2019-01-05 11:29:55 Hostname sonoff3-2118
setstate MQTT2_DVES_9C6846 2019-01-05 11:29:55 IPAddress 192.168.178.37
setstate MQTT2_DVES_9C6846 2019-01-05 11:29:55 LWT Online
setstate MQTT2_DVES_9C6846 2019-01-05 11:35:04 LoadAvg 19
setstate MQTT2_DVES_9C6846 2019-01-05 11:29:55 Module Sonoff S2X
setstate MQTT2_DVES_9C6846 2019-01-05 11:35:04 POWER OFF
setstate MQTT2_DVES_9C6846 2019-01-05 11:29:55 RestartReason Power on
setstate MQTT2_DVES_9C6846 2019-01-05 11:35:04 Sleep 50
setstate MQTT2_DVES_9C6846 2019-01-05 11:35:04 SleepMode Dynamic
setstate MQTT2_DVES_9C6846 2019-01-05 11:35:04 Time 2019-01-05T11:35:03
setstate MQTT2_DVES_9C6846 2019-01-05 11:35:04 Uptime 0T00:05:14
setstate MQTT2_DVES_9C6846 2019-01-05 11:35:04 Vcc 3.523
setstate MQTT2_DVES_9C6846 2019-01-05 11:29:55 Version 6.4.1(sonoff)
setstate MQTT2_DVES_9C6846 2019-01-05 11:29:55 WebServerMode Admin
setstate MQTT2_DVES_9C6846 2019-01-05 11:35:15 state set_off



Hab ich noch etwas übersehen? Hast du noch ne Idee?
Pi3B+ mit SSD/ Bullseye | FB7590 AX | 12 x Dect200 | CUL433+868 | SDuino | HM-LAN | 3 x Heizung FHT + FKontakte | KeyMatic + 4 FB | HM Wandtaster 2-fach m. LED | 6 x Türkont. TFK-TI | HM-Bew.-Melder innen | 3 x Smoked. HM-SEC-SD-2

Beta-User

Arghh, da ist mir im basic eine Zeile verloren gegangen:

Das hier sollte in Zeile 164 stehen:
par:DEVNAME;ESP's name in the topic;{ AttrVal("DEVICE","readingList","") =~ m,tele/([^/]*)/, ? $1 : undef }
Ich check's gleich ein...
Server: HP-elitedesk@Debian 12, aktuelles FHEM@ConfigDB | CUL_HM (VCCU) | MQTT2: MiLight@ESP-GW, BT@OpenMQTTGw | MySensors: seriell, v.a. 2.3.1@RS485 | ZWave | ZigBee@deCONZ | SIGNALduino | MapleCUN | RHASSPY
svn: u.a MySensors, Weekday-&RandomTimer, Twilight,  div. attrTemplate-files

Invers

Ja , sorry, hatte ich diesmal vergessen bei readingList den Namen zu ändern und gerade noch ebend selber bemerkt. Nun schaltet sie wieder.
Alle Probnleme sind nun wieder mit denen des anderen Templates identisch.
Pi3B+ mit SSD/ Bullseye | FB7590 AX | 12 x Dect200 | CUL433+868 | SDuino | HM-LAN | 3 x Heizung FHT + FKontakte | KeyMatic + 4 FB | HM Wandtaster 2-fach m. LED | 6 x Türkont. TFK-TI | HM-Bew.-Melder innen | 3 x Smoked. HM-SEC-SD-2

Beta-User

Hmm, lösche mal

attr MQTT2_DVES_9C6846 setStateList on off toggle
Das ist für das "Zwischenschalten" von set_on verantwortlich (ich finde das mit dem Zwischenstatus gut, weil dann erst der rückgemeldete Status da steht und nicht das Wunschergebnis).

Für Groß- und Kleinschreibung ist die eventMap zuständig. Wenn du Großschreibung brauchst (?), dann evtl. auch probeweise mal löschen, FHEM sollte auch in der Darstellung zwischenzeitlich trotzdem klarkommen.
Server: HP-elitedesk@Debian 12, aktuelles FHEM@ConfigDB | CUL_HM (VCCU) | MQTT2: MiLight@ESP-GW, BT@OpenMQTTGw | MySensors: seriell, v.a. 2.3.1@RS485 | ZWave | ZigBee@deCONZ | SIGNALduino | MapleCUN | RHASSPY
svn: u.a MySensors, Weekday-&RandomTimer, Twilight,  div. attrTemplate-files

sinus61

Zitat von: moonsorrox am 03 Januar 2019, 17:47:42
Ich bekomme es jedenfalls nicht gebacken  :-\  werde mal im FTUI hier im Forum fragen ob das jemand einsetzt

Die Lösung zum Status von POWER1 sieht ja so aus:

data-states='["(.*on|ON)","(.*off|OFF)"]'


Aber warum wechselt der Status auf Fhem Seite nach einiger Zeit auf Großbuchstaben? Praktisch zur Auswertung ist das ja nicht.

Invers

@Beta-User
Habe ich gelöscht. Jetzt kann ich schalten. Alle anderen Probleme bleiben aber bestehen.
Gross-Kleinschreibung sollte eigentlich nur einheitlich sein.
Weil bei allen Steckdosen und Lampen bei state on oder off steht, finde ich es halt seltsam, dass es her nicht so ist.
nun,, nach Löschung des Attributes steht da aber on oder off bei state, so ist es in Ordnung. Nun bleibt aber state on oder off, auch dann, wenn ich am Knopf der Dose schalte. Und das ist für mich das eigentliche Problem. Ist das denn so richtig?
Wäre es nicht logischer (wie es ja sonst auch ist), wenn in und off auch wechseln würden, wenn man an der Dose schaltet? Darum meine Frage, ob ich nun statt state (wie sonst überall) nun POWER auswerten muss.
Bei DeviceOverview steht bei mir immer noch POWER1 on off. Ich bekomme auch kein devStateIcon mehr.
Pi3B+ mit SSD/ Bullseye | FB7590 AX | 12 x Dect200 | CUL433+868 | SDuino | HM-LAN | 3 x Heizung FHT + FKontakte | KeyMatic + 4 FB | HM Wandtaster 2-fach m. LED | 6 x Türkont. TFK-TI | HM-Bew.-Melder innen | 3 x Smoked. HM-SEC-SD-2

Beta-User

Zitat von: Invers am 05 Januar 2019, 14:08:39
Habe ich gelöscht.
Welches der Attribute? Ich hatte zwei genannt...
Ich würde unterstellen, dass das eigentliche Problem immer noch ist, dass stateFormat auf POWER1 steht - und genau das wird nicht akutalisiert, weil das Reading POWER heißt.
Ich kann aber nur doppelt vermuten, den a) habe ich keinen sonoff-Tasmota daliegen und b) kenne ich das aktuelle list nicht (am besten raw, dann sieht man auch die setreadings)...
Server: HP-elitedesk@Debian 12, aktuelles FHEM@ConfigDB | CUL_HM (VCCU) | MQTT2: MiLight@ESP-GW, BT@OpenMQTTGw | MySensors: seriell, v.a. 2.3.1@RS485 | ZWave | ZigBee@deCONZ | SIGNALduino | MapleCUN | RHASSPY
svn: u.a MySensors, Weekday-&RandomTimer, Twilight,  div. attrTemplate-files