MQTT2 Server und Sonoff S20

Begonnen von Tommy82, 05 Januar 2019, 16:40:41

Vorheriges Thema - Nächstes Thema

Beta-User

Zitat von: rudolfkoenig am 05 Januar 2019, 19:13:55
Um solche Probleme zu vermeiden sollten wir statt
attr DEVICE stateFormat POWER
lieberattr DEVICE userReadings state:POWER:.* { lc(ReadingsVal("DEVICE","POWER","")) }verwenden.
Habe es eben für die Tasmotas in die templates eingecheckt.

@all:
Damit funktionieren hoffentlich nach einem update morgen die Tasmota-templates für eure Anwendungsfälle wie gewünscht.

@Papaloewe:
Du hast ein typisches list vor Anwendung eines der templates. Tommy82 und Invers hatten jeweils eines angewandt bzw. die Attribute selbst angepaßt.
Was es mit den templates auf sich hat, kannst du z.B. hier nachlesen: https://wiki.fhem.de/wiki/MQTT2-Module_-_Praxisbeispiele.
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

OdfFhem

@Papaloewe
ZitatHier mal das List eines frisch erkannten Tasmota-Devices:

attr MQTT2_tasmota_gosund5723 readingList\
  tasmota/gosund-5723/tele/STATE:.* { json2nameValue($EVENT, 'STATE_', $JSONMAP) }\
  tasmota/gosund-5723/tele/SENSOR:.* { json2nameValue($EVENT, 'SENSOR_', $JSONMAP) }\
  tasmota/gosund-5723/stat/RESULT:.* { json2nameValue($EVENT, 'RESULT_', $JSONMAP) }\
  tasmota/gosund-5723/stat/POWER:.* POWER\
  tasmota/gosund-5723/stat/RESULT:.* { json2nameValue($EVENT, 'RESULT_', $JSONMAP) }\
  tasmota/gosund-5723/stat/POWER:.* POWER


Handelt es sich hier um einen Kopierfehler oder enthält die readingList des frisch erkannten Tasmota-Devices tatsächlich 2x die folgenden Zeilen

  tasmota/gosund-5723/stat/RESULT:.* { json2nameValue($EVENT, 'RESULT_', $JSONMAP) }\
  tasmota/gosund-5723/stat/POWER:.* POWER


Papaloewe

Nein, das war kein Kopierfehler!
Die beiden Einträge sind doppelt automatisch angelegt worden.
Warum, weiß ich auch nicht?

sinus61

Hab gerade mal A_01_tasmota_basic mit ein paar Sonoffs probiert, funktioniert jetzt alles gut.

Ein paar Anmerkungen noch zu A_04b_tasmota_4ch_unified_icon, ich hab es mit einer 4-fach Steckdose getestet:

Es wird ein Raum mit dem Devicenamen angelegt, das war wohl nicht so gedacht?!

Das devStateIcon hat ein paar div zuviel oder zuwenig, kommt drauf an welche Darstellung beabsichtigt war. Ich hab jetzt mal so gemacht:

{ "<div><a href=\"/fhem?cmd.dummy=set ".$name." p1 toggle&XHR=1\">POWER1:" . FW_makeImage(lc ReadingsVal($name, "POWER1", "off")) . "</a> <a href=\"/fhem?cmd.dummy=set ".$name." p2 toggle&XHR=1\">POWER2:" . FW_makeImage(lc ReadingsVal($name, "POWER2", "off")) . "</a> <a href=\"/fhem?cmd.dummy=set ".$name." p3 toggle&XHR=1\">POWER3:" . FW_makeImage(lc ReadingsVal($name, "POWER3", "off")) . "</a> <a href=\"/fhem?cmd.dummy=set ".$name." p4 toggle&XHR=1\">POWER4:" . FW_makeImage(lc ReadingsVal($name, "POWER4", "off")) . "</a></div>" }


Es gibt ein Userreading:

state:POWER1:.* { lc(ReadingsVal("VIFLYKOO_SH21","POWER1","")) }


Damit hat man nur die erste Steckdose im state. Ich hab das hier so geändert:


state:POWER.*:.* { lc(ReadingsVal($NAME,"POWER1","") . " " . ReadingsVal($NAME,"POWER2","") . " " .
ReadingsVal($NAME,"POWER3","") . " " . ReadingsVal($NAME,"POWER4","")) }

Beta-User

Thx @sinus61,

hab's hoffentlich soweit vollständig mit übernommen; hin und wieder hat die "Vererberei" auch ihre Nachteile...
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

osr

Zitat von: Tommy82 am 05 Januar 2019, 18:37:55
Hi,
das ist seltsam, bei mir gibt es kein Reading "RESULT_POWER", die Rückmeldung kommt bei mir im Reading "POWER"
De Fehler war bei mir das na dem setzen des nach dem setzen des Templates, in den Attributen "setList" "POWER1"  und in "stateFormat" auch "POWER1" stand, nachdem ich das auf "POWER" geändert habe funktioniert auch alles über die FTUI, dazu kommt das meine Definition in der FTUI noch aus Zeiten von MQTT war und dort "ON" und "OFF" waren, und jetzt bei MQTT2 "on" und "off" sind.

Bitte das nicht vermischen. Result_ wird in FHEM nur angezeigt/benutzt wenn die Templates nicht benutzt werden!

Also das Gerät normal mit autocreate erzeugt wurde und kein Template angewandt wurde.

Mit den Tasmota-Templates in FHEM ist das alles kein Problem! Die Probleme kamen vor allem mit FHEM seit bei autocreate die RESULT_ etc. in den Readings ausgegeben wird. Erst ab da fand das alte Überlagern der Readings nicht mehr statt. Das Problem ist genauso mit STATE_ ...

Das hat mich am Anfang auch verwirrt, aber dank den Templates kann man das einfach korrigieren. Das Problem sind wohl andere MQTT-Geräte wo das Klassifizieren wohl sinnvoll ist. Man kann es hier wohl schlicht nicht allen recht machen mit autocreate ;-)

Beta-User

Ist evtl. nur die eventMap das "Problem"?
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