[gelöst] Tosmata Schaltzustand in jede Richtung

Begonnen von moerte, 16 Dezember 2019, 21:39:02

Vorheriges Thema - Nächstes Thema

moerte

Hallo meine lieben...
Hab mich jetzt etwas mit sonoff Geräten ausgestattet .. derzeit f20 Steckdosen im Einsatz.
Funktioniert alles super mit MQTT2.
Nur eines bekomm ich nicht hin, wenn ich an der Steckdose manuell an/aus schalte, ändert sich der Status in Fhem leider nicht. Das reading POWER ändert sich auf den jeweiligen Zustand ON OFF.
Habe das attr. event-on-change-reading .* gesetzt ohne Erfolg.

Hier mal ein list von device:


Internals:
   CFGFN     
   CID        steckdose1
   DEF        steckdose1
   DEVICETOPIC S1_Flug_UG
   FUUID      5df672ec-f33f-599c-49eb-689ba273f1632d00
   IODev      myBroker
   LASTInputDev myBroker
   MSGCNT     510
   NAME       S1_Flug_UG
   NR         112171
   STATE      on
   TYPE       MQTT2_DEVICE
   myBroker_MSGCNT 510
   myBroker_TIME 2019-12-16 21:25:53
   READINGS:
     2019-12-16 20:05:48   FallbackTopic   cmnd/steckdose1_fb/
     2019-12-16 20:05:48   GroupTopic      /SmartHome/Wohnung/sonoffs/cmnd/
     2019-12-16 21:25:53   Heap            27
     2019-12-16 20:05:48   Hostname        Steckdose1-6013
     2019-12-16 20:05:48   IPAddress       192.168.2.46
     2019-12-16 20:05:48   LWT             Online
     2019-12-16 21:25:53   LoadAvg         19
     2019-12-16 20:05:48   Module          Sonoff Basic
     2019-12-16 21:25:53   MqttCount       1
     2019-12-15 20:39:32   OtaUrl          http://thehackbox.org/tasmota/release/tasmota-DE.bin
     2019-12-16 21:25:53   POWER           ON
     2019-12-16 20:05:48   RestartReason   Power on
     2019-12-16 21:25:53   Sleep           50
     2019-12-16 21:25:53   SleepMode       Dynamic
     2019-12-16 21:25:53   Time            2019-12-16T21:25:52
     2019-12-15 20:40:29   UPGRADE         Successful. Restarting
     2019-12-15 20:39:33   Upgrade         Version 6.7.1 from http://thehackbox.org/tasmota/release/tasmota-DE.bin
     2019-12-16 21:25:53   Uptime          0T01:20:12
     2019-12-16 21:25:53   UptimeSec       4812
     2019-12-16 20:05:48   Version         7.1.2(tasmota)
     2019-12-16 20:05:48   WebServerMode   Admin
     2019-12-16 21:25:53   Wifi_AP         1
     2019-12-16 21:25:53   Wifi_BSSId      E0:28:6D:AA:63:32
     2019-12-16 21:25:53   Wifi_Channel    1
     2019-12-16 21:25:53   Wifi_Downtime   0T00:00:06
     2019-12-16 21:25:53   Wifi_LinkCount  1
     2019-12-16 21:25:53   Wifi_RSSI       60
     2019-12-16 21:25:53   Wifi_SSId       Kartoffelsuppe
     2019-12-16 20:57:10   state           on
     2019-12-16 16:56:03   subscriptions   /SmartHome/Wohnung/Steckdose1/cmnd/# /SmartHome/Wohnung/sonoffs/cmnd/# cmnd/steckdose1_fb/#
Attributes:
   IODev      myBroker
   event-on-change-reading .*
   readingList steckdose1:/SmartHome/Wohnung/Steckdose1/tele/LWT:.* LWT
steckdose1:/SmartHome/Wohnung/Steckdose1/cmnd/POWER:.* POWER
steckdose1:/SmartHome/Wohnung/Steckdose1/tele/INFO1:.* { json2nameValue($EVENT) }
steckdose1:/SmartHome/Wohnung/Steckdose1/tele/INFO2:.* { json2nameValue($EVENT) }
steckdose1:/SmartHome/Wohnung/Steckdose1/tele/INFO3:.* { json2nameValue($EVENT) }
steckdose1:/SmartHome/Wohnung/Steckdose1/stat/RESULT:.* { json2nameValue($EVENT) }
steckdose1:/SmartHome/Wohnung/Steckdose1/stat/POWER:.* POWER
steckdose1:/SmartHome/Wohnung/Steckdose1/tele/STATE:.* { json2nameValue($EVENT) }
steckdose1:/SmartHome/Wohnung/Steckdose1/stat/UPGRADE:.* UPGRADE
   room       MQTT2_DEVICE
   setList    on /SmartHome/Wohnung/Steckdose1/cmnd/POWER on
off /SmartHome/Wohnung/Steckdose1/cmnd/POWER off



(Aktuell attr. Event on change reading wieder gelöscht.)
Vlt kann mir jemand auf die schnelle sagen welches Attribut ich setzen muss dass auch der Status sich in fhem ändert.

Vielen Dank schon mal und allen eine gute Nacht;)
Lg

binford6000

ZitatVlt kann mir jemand auf die schnelle sagen welches Attribut ich setzen muss dass auch der Status sich in fhem ändert.

Kein Attribut, sondern ein
set S1_Flug_UG attrTemplate tasmota_basic_state_power1

Damit solltest du sowas bekommen (Attribut):
eventMap
{ dev=>{'^(.*)POWER(.?): OFF$'=>'$1POWER$2: off', '^(.*)POWER(.?): ON$'=>'$1POWER$2: on'} }


Dann sollten alle Änderungen in beiden Richtungen funktionieren.
VG Sebastian

Otto123

Viele Grüße aus Leipzig  ⇉  nächster Stammtisch an der Lindennaundorfer Mühle
RaspberryPi B B+ B2 B3 B3+ ZeroW,HMLAN,HMUART,Homematic,Fritz!Box 7590,WRT3200ACS-OpenWrt,Sonos,VU+,Arduino nano,ESP8266,MQTT,Zigbee,deconz

moerte

Zitat von: binford6000 am 16 Dezember 2019, 22:20:38
Kein Attribut, sondern ein
set S1_Flug_UG attrTemplate tasmota_basic_state_power1

Damit solltest du sowas bekommen (Attribut):
eventMap
{ dev=>{'^(.*)POWER(.?): OFF$'=>'$1POWER$2: off', '^(.*)POWER(.?): ON$'=>'$1POWER$2: on'} }


Dann sollten alle Änderungen in beiden Richtungen funktionieren.
VG Sebastian

Ahhh super... vielen Dank!!! Da wäre ich nicht drauf gekommen. Danke.
Problem gelöst

TomLee

Zitat von: binford6000 am 16 Dezember 2019, 22:20:38
Damit solltest du sowas bekommen (Attribut):
eventMap
{ dev=>{'^(.*)POWER(.?): OFF$'=>'$1POWER$2: off', '^(.*)POWER(.?): ON$'=>'$1POWER$2: on'} }


Aus Interesse, das mit dem eventMap ist aber schon ein Weilchen (knappes Jahr) her, oder ?

Aktuell sieht das Template so aus und führt das tasmota_set_lowercase_texts_and_state1 aus

attr DEVICE icon ICON
attr DEVICE stateFormat POWER1
set DEVICE attrTemplate tasmota_set_lowercase_texts_and_state1
attr DEVICE setList \
  off:noArg    CMNDTOPIC/POWER1 0\
  on:noArg     CMNDTOPIC/POWER1 1\
  toggle:noArg CMNDTOPIC/POWER1 2\
  setOtaUrl:textField CMNDTOPIC/OtaUrl $EVTPART1\
  upgrade:noArg   CMNDTOPIC/upgrade 1
attr DEVICE readingList \
  TELETOPIC/LWT:.* LWT\
  TELETOPIC/STATE:.* { json2nameValue($EVENT) }\
  TELETOPIC/SENSOR:.* { json2nameValue($EVENT) }\
  TELETOPIC/INFO.:.* { json2nameValue($EVENT) }\
  STATTOPIC/RESULT:.* { json2nameValue($EVENT) }
deletereading -q DEVICE (?!associatedWith).*
attr DEVICE setStateList on off toggle
attr DEVICE 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:
on-for-timer {my $duration = $EVTPART1*10; 'cmnd/CMNDTOPIC/Backlog POWER1 1; delay '.$duration.'; POWER1 0'}
See the "Praxisbeispiele" in the wiki for "pulseTime1" alternative option and it's restrictions.
attr DEVICE autocreate 0
attr DEVICE model tasmota_basic_state_power1


tasmota_set_lowercase_texts_and_state1-Template:

set IO_DEV publish CMNDTOPIC/Backlog StateText1 off; StateText2 on; StateText3 toggle; StateText4 hold; SetOption26 1; SaveData 1

Gruß

Thomas

binford6000

ZitatAus Interesse, das mit dem eventMap ist aber schon ein Weilchen (knappes Jahr) her, oder ?

Jo, das ist tatsächlich schon eine Weile her. Funktioniert aber noch bestens  ;)
Ein zweiter Sonoff basic ist schon up-to-date  8)

VG Sebastian