[gelöst] FHEM ignoriert Gerätetaster an Sonoff S20 oder OBI Steckdose Tasmota

Begonnen von Bracew, 23 August 2019, 21:28:00

Vorheriges Thema - Nächstes Thema

Bracew

Hallo,

ich habe  eine Sonoff S20 und eine OBI Socket 2 Schaltsteckdose je mit Sonoff-Tasmota 6.6.0 geflasht. Beide funktionieren mit FHEM sehr gut. FHEM kann die Steckdosen an und ausschalten. Das jeweilige Symbol für An bzw. Aus wird in FHEM angezeigt (gelbes Birnchen bzw. graues Birnchen). Beim Klick auf das Birnchen Schaltsymbol wird auch zum jeweils anderen Schaltzustand getoggelt.

Leider bekommt FHEM aber nicht mit, wenn an der Steckdose der Gerätetaster betätigt wird.
Dies hat bei beiden Dosen schon mal funktioniert. Nach einem FHEM update in der vorletzen Woche jedoch nicht mehr.

Die Grundkonfiguration habe ich neu aus https://wiki.fhem.de/wiki/MQTT2-Module_-_Praxisbeispiele sinngemäß übernommen und wie folgt in fhem.cfg:

# ################################
#
define myBroker MQTT2_SERVER 1883 global
setuuid myBroker 5d1e4efa-f33f-8319-c525-xxxx
#
# ################################
#
define  ObiSteckdose MQTT2_DEVICE DVES_yyyyyy
setuuid ObiSteckdose 5d41bb22-f33f-8319-23ac-yyyy
attr    ObiSteckdose IODev myBroker
attr    ObiSteckdose readingList \
          DVES_yyyyyy:tele/Obi1/STATE:.* { json2nameValue($EVENT) }\
          DVES_yyyyyy:tele/Obi1/LWT:.* LWT\
          DVES_yyyyyy:cmnd/Obi1/POWER:.* POWER\
          DVES_yyyyyy:tele/Obi1/UPTIME:.* { json2nameValue($EVENT) }\
          DVES_yyyyyy:tele/Obi1/SENSOR:.* { json2nameValue($EVENT) }\
          DVES_yyyyyy:tele/Obi1/INFO1:.* { json2nameValue($EVENT) }\
          DVES_yyyyyy:tele/Obi1/INFO2:.* { json2nameValue($EVENT) }\
          DVES_yyyyyy:tele/Obi1/INFO3:.* { json2nameValue($EVENT) }\
          DVES_yyyyyy:stat/Obi1/RESULT:.* { json2nameValue($EVENT) }\
          DVES_yyyyyy:stat/Obi1/STATE:.* { json2nameValue($EVENT) }\
          DVES_yyyyyy:stat/Obi1/POWER:.* POWER
attr    ObiSteckdose setList \
           on cmnd/Obi1/POWER on\
          off cmnd/Obi1/POWER off
attr    ObiSteckdose webCmd on:off
attr    ObiSteckdose icon hue_filled_br30
attr    ObiSteckdose room Test

angelegt.

Lieder bekommt FHEM nicht mit, wenn die Steckdose mit dem Geräteschalter oder über die Weboberfläche der Steckdose geschaltet wird.

Wie kann ich es hinbekommen, dass FHEM den Schaltzustand auch anzeigt, wenn die Steckdose per Knopf oder per  Tasmota-Weboberfläche geschaltet wird?

Mit lieben Grüßen Bracew
FHEM auf Raspberry Pi
für z.B. Lichtsteuerung, Temperaturmessung, Balkonkraftwerk,
Öltankfüllstandsmessung und für Hühnerstall Hühnerklappe

schwatter

Tasmota hat mal das Topic für Power geändert. Es gibt jetzt
Power und Power1. Hast du vielleicht auch Tasmota geupdatet?

edit:

In der Tasmota-Konsole mal
SetOption26 0
eingeben.

Bracew

Hallo schwatter,

das FHEM Update habe ich letzte Woche gemacht. Das Tasmota Update auf 6.6.0 vor ca. drei Wochen.
Nach dem FHEM Update hat das Schalten der Steckdosen gar nicht mehr funktioniert, so dass ich mit der Vorlage aus https://wiki.fhem.de/wiki/MQTT2-Module_-_Praxisbeispiele:
Zitat
Manuelle Anpassungen

Die RAW-Definition kann dann beispielsweise wie folgt ergänzt werden:

defmod MQTT2_DVES_9B01BD MQTT2_DEVICE DVES_9B01BD
attr MQTT2_DVES_9B01BD IODev m2server
attr MQTT2_DVES_9B01BD readingList DVES_9B01BD:tele/DVES_9B01BD/STATE:.* { json2nameValue($EVENT) }\
   DVES_9B01BD:tele/DVES_9B01BD/LWT:.* LWT\
   DVES_9B01BD:cmnd/DVES_9B01BD/POWER:.* POWER\
   DVES_9B01BD:tele/DVES_9B01BD/UPTIME:.* { json2nameValue($EVENT) }\
   DVES_9B01BD:tele/DVES_9B01BD/SENSOR:.* { json2nameValue($EVENT) }\
   DVES_9B01BD:tele/DVES_9B01BD/INFO1:.* { json2nameValue($EVENT) }\
   DVES_9B01BD:tele/DVES_9B01BD/INFO2:.* { json2nameValue($EVENT) }\
   DVES_9B01BD:tele/DVES_9B01BD/INFO3:.* { json2nameValue($EVENT) }\
   DVES_9B01BD:stat/DVES_9B01BD/RESULT:.* { json2nameValue($EVENT) }\
   DVES_9B01BD:stat/DVES_9B01BD/STATE:.* { json2nameValue($EVENT) }
attr MQTT2_DVES_9B01BD room MQTT2_DEVICE
attr MQTT2_DVES_9B01BD setList on cmnd/DVES_9B01BD/POWER on\
   off cmnd/DVES_9B01BD/POWER off\
   reboot cmnd/DVES_9B01BD/Restart 1
attr MQTT2_DVES_9B01BD webCmd on:off:reboot

sinngemäß übernommen und neu angefangen habe.


Gruß Bracew
FHEM auf Raspberry Pi
für z.B. Lichtsteuerung, Temperaturmessung, Balkonkraftwerk,
Öltankfüllstandsmessung und für Hühnerstall Hühnerklappe

schwatter

Ich sehe bei mir, das state auf power endet

defmod Lampe1_WZ MQTT2_DEVICE DVES_93AB79
attr Lampe1_WZ IODev myFhembroker
attr Lampe1_WZ devStateIcon on:rc_GREEN:off off:rc_RED:on offline:rc_BLUE:off
attr Lampe1_WZ icon message_socket
attr Lampe1_WZ readingList DVES_93AB79:tele/Lampe1_WZ/LWT:.* LWT\
DVES_93AB79:tele/Lampe1_WZ/INFO1:.* { json2nameValue($EVENT) }\
DVES_93AB79:tele/Lampe1_WZ/INFO2:.* { json2nameValue($EVENT) }\
DVES_93AB79:tele/Lampe1_WZ/INFO3:.* { json2nameValue($EVENT) }\
DVES_93AB79:stat/Lampe1_WZ/RESULT:.* { json2nameValue($EVENT) }\
DVES_93AB79:tele/Lampe1_WZ/STATE:.* { json2nameValue($EVENT) }\
DVES_93AB79:tele/Lampe1_WZ/SENSOR:.* { json2nameValue($EVENT) }\
DVES_93AB79:tele/Lampe1_WZ/UPTIME:.* { json2nameValue($EVENT) }\
DVES_93AB79:cmnd/Lampe1_WZ/POWER:.* POWER\
DVES_93AB79:stat/Lampe1_WZ/POWER:.* POWER
attr Lampe1_WZ room 03.Wohnzimmer,MQTT2_DEVICE
attr Lampe1_WZ setList on cmnd/Lampe1_WZ/POWER on\
off cmnd/Lampe1_WZ/POWER off
attr Lampe1_WZ stateFormat POWER\
<a href='http://192.168.178.46' target='_blank'>192.168.178.46</a>
attr Lampe1_WZ subType Light
attr Lampe1_WZ webCmd on:off

Bracew

Hallo schwatter,

danke für deinen Code. Ich habe diesen auf meine Namen angepasst und übernommen.
FHEM protestiert als erstes:
ZitatERROR:
ObiSteckdose: unknown attribute subType. Type 'attr ObiSteckdose ?' for a detailed list.
nachdem ich das im Code:
Zitatdefine  ObiSteckdose MQTT2_DEVICE DVES_331931
attr    ObiSteckdose IODev myBroker
attr    ObiSteckdose devStateIcon on:rc_GREEN:off off:rc_RED:on offline:rc_BLUE:off
attr    ObiSteckdose icon message_socket
attr    ObiSteckdose readingList DVES_331931:tele/Obi1/LWT:.* LWT\
           DVES_331931:tele/Obi1/INFO1:.* { json2nameValue($EVENT) }\
           DVES_331931:tele/Obi1/INFO2:.* { json2nameValue($EVENT) }\
           DVES_331931:tele/Obi1/INFO3:.* { json2nameValue($EVENT) }\
           DVES_331931:stat/Obi1/RESULT:.* { json2nameValue($EVENT) }\
           DVES_331931:tele/Obi1/STATE:.* { json2nameValue($EVENT) }\
           DVES_331931:tele/Obi1/SENSOR:.* { json2nameValue($EVENT) }\
           DVES_331931:tele/Obi1/UPTIME:.* { json2nameValue($EVENT) }\
           DVES_331931:cmnd/Obi1/POWER:.* POWER\
           DVES_331931:stat/Obi1/POWER:.* POWER
attr    ObiSteckdose room Test
attr    ObiSteckdose setList on cmnd/Obi1/POWER on\
           off cmnd/Obi1/POWER off
attr    ObiSteckdose stateFormat POWER\
<a href='http://192.168.0.71' target='_blank'>192.168.0.71</a>
#attr    ObiSteckdose subType Light
attr    ObiSteckdose webCmd on:off
auskommentiert habe, hat es funktioniert.

Ich werde jetzt mal genauer vergleichen, auf meine Verhältnisse Schritt für Schritt anpassen und mich dann noch mal melden.

Vielen Dank von Bracew
FHEM auf Raspberry Pi
für z.B. Lichtsteuerung, Temperaturmessung, Balkonkraftwerk,
Öltankfüllstandsmessung und für Hühnerstall Hühnerklappe

Bracew

Hallo schwatter,

mir ist unterdessen noch aufgefallen, dass ich vermutlich ein anderes devStateIcon angezeigt bekomme als Du (Siehe Bild in der Anlage)
und, dass mit einem Klick darauf ich die Steckdose an aber nicht ausschalten kann. Der Klick toggelt nur in eine Richtung, von aus nach an.

Gruß Bracew
FHEM auf Raspberry Pi
für z.B. Lichtsteuerung, Temperaturmessung, Balkonkraftwerk,
Öltankfüllstandsmessung und für Hühnerstall Hühnerklappe

Bracew

Hi,

ich glaube ich habe den Fehler gefunden: Alle on und off müssen GROSS geschrieben werden, also ON und OFF:
define  ObiSteckdose MQTT2_DEVICE DVES_331931
attr    ObiSteckdose IODev myBroker
attr    ObiSteckdose devStateIcon ON:FS20.on:OFF OFF:FS20.off:ON
attr    ObiSteckdose readingList \
          DVES_331931:tele/Obi1/STATE:.* { json2nameValue($EVENT) }\
          DVES_331931:tele/Obi1/LWT:.* LWT\
          DVES_331931:cmnd/Obi1/POWER:.* POWER\
          DVES_331931:tele/Obi1/UPTIME:.* { json2nameValue($EVENT) }\
          DVES_331931:tele/Obi1/SENSOR:.* { json2nameValue($EVENT) }\
          DVES_331931:tele/Obi1/INFO1:.* { json2nameValue($EVENT) }\
          DVES_331931:tele/Obi1/INFO2:.* { json2nameValue($EVENT) }\
          DVES_331931:tele/Obi1/INFO3:.* { json2nameValue($EVENT) }\
          DVES_331931:stat/Obi1/RESULT:.* { json2nameValue($EVENT) }\
          DVES_331931:stat/Obi1/STATE:.* { json2nameValue($EVENT) }\
          DVES_331931:stat/Obi1/POWER:.* POWER
attr    ObiSteckdose setList \
           ON cmnd/Obi1/POWER ON\
          OFF cmnd/Obi1/POWER OFF
attr    ObiSteckdose stateFormat\
           POWER\
           <a href='http://192.168.0.71' target='_blank'>192.168.0.71</a>;
attr    ObiSteckdose webCmd ON:OFF
attr    ObiSteckdose icon hue_filled_br30
attr    ObiSteckdose room Test


So funktioniert bei mir jetzt das Schalten mit FHEM, mit der Tasmota-Weboberfläche und mit dem Knopf an der OBI Socket 2 Steckdose. Auch werden alle Schaltzustände in FHEM richtig angezeigt.

ABER an der Sonoff-S20 Steckdose ist wieder alles anders, dort müssen

  • alle on und off klein geschrieben werden, also on und off
  • statt POWER muss POWER1 verwendet werden
Meine zur Zeit funktionierende Konfiguration für die Sonoff-S20 ist:
define  Poolpumpe MQTT2_DEVICE DVES_B0B3EB
attr    Poolpumpe IODev myBroker
attr    Poolpumpe devStateIcon on:FS20.on:off off:FS20.off:on
attr    Poolpumpe readingList \
          DVES_B0B3EB:tele/sonoff/STATE:.* { json2nameValue($EVENT) }\
          DVES_B0B3EB:tele/sonoff/LWT:.* LWT\
          DVES_B0B3EB:cmnd/sonoff/POWER:.* POWER\
          DVES_B0B3EB:tele/sonoff/UPTIME:.* { json2nameValue($EVENT) }\
          DVES_B0B3EB:tele/sonoff/SENSOR:.* { json2nameValue($EVENT) }\
          DVES_B0B3EB:tele/sonoff/INFO1:.* { json2nameValue($EVENT) }\
          DVES_B0B3EB:tele/sonoff/INFO2:.* { json2nameValue($EVENT) }\
          DVES_B0B3EB:tele/sonoff/INFO3:.* { json2nameValue($EVENT) }\
          DVES_B0B3EB:stat/sonoff/RESULT:.* { json2nameValue($EVENT) }\
          DVES_B0B3EB:stat/sonoff/STATE:.* { json2nameValue($EVENT) }\
          DVES_B0B3EB:stat/sonoff/POWER:.* POWER\
          DVES_B0B3EB:stat/sonoff/POWER1:.* POWER1
attr    Poolpumpe setList \
           on cmnd/sonoff/POWER1 on\
          off cmnd/sonoff/POWER1 off
attr    Poolpumpe stateFormat\
           POWER1\
           <a href='http://192.168.0.70' target='_blank'>192.168.0.70</a>;
attr    Poolpumpe webCmd on:off
attr    Poolpumpe icon hue_filled_br30
attr    Poolpumpe room Test

So funktioniert bei mir jetzt das Schalten mit FHEM, mit der Tasmota-Weboberfläche und mit dem Knopf an der Sonoff-S20-Steckdose. Auch werden alle Schaltzustände in FHEM richtig angezeigt.
Auf beiden Steckdosen ist Tasmota Version 6.6.0(release-sonoff) installiert.

Auf der Weboberfläche, siehe Anlage, sieht das natürliche komisch aus, dass bei der einen Groß- und bei der anderen Kleinbuchstaben stehen.

Warum die Unterschiede in der FHEM Programmierung sind kann ich mir nicht erklären.

Danke und mit lieben Grüßen Bracew
FHEM auf Raspberry Pi
für z.B. Lichtsteuerung, Temperaturmessung, Balkonkraftwerk,
Öltankfüllstandsmessung und für Hühnerstall Hühnerklappe

schwatter

Stimmt, "on" und "off" habe ich in Tasmota auf klein geändert.
Ist besser wegen verwechseln. Siehe hier

https://forum.fhem.de/index.php/topic,90220.0.html

Bracew

Was mich ja irritiert ist, dass die
- eine Steckdose kleinbuchstaben
benötigt und die
- andere Steckdose GROSSBUCHSTABEN
benötigt,
obwohl beide dieselbe Tasmota Version laufen haben.

Woher soll man das denn wissen?
FHEM auf Raspberry Pi
für z.B. Lichtsteuerung, Temperaturmessung, Balkonkraftwerk,
Öltankfüllstandsmessung und für Hühnerstall Hühnerklappe

schwatter

Die, die Großbuchstaben benötigt. Öffne die Konsole in Tasmota und gib folgendes ein.

StateText1
StateText2
StateText3


Folgende Ausgabe habe ich.

19:21:36 CMD: StateText1
19:21:36 MQT: stat/Lampe1_WZ/RESULT = {"StateText1":"off"}
19:21:51 CMD: StateText2
19:21:52 MQT: stat/Lampe1_WZ/RESULT = {"StateText2":"on"}
19:22:02 CMD: StateText3
19:22:02 MQT: stat/Lampe1_WZ/RESULT = {"StateText3":"toggle"}

Bracew

Zitat18:36:30 CMD: StateText1
18:36:30 MQT: stat/Obi1/RESULT = {"StateText1":"OFF"}
18:36:44 CMD: StateText2
18:36:44 MQT: stat/Obi1/RESULT = {"StateText2":"ON"}
18:36:51 CMD: StateText3
18:36:51 MQT: stat/Obi1/RESULT = {"StateText3":"TOGGLE"}
FHEM auf Raspberry Pi
für z.B. Lichtsteuerung, Temperaturmessung, Balkonkraftwerk,
Öltankfüllstandsmessung und für Hühnerstall Hühnerklappe

schwatter

Da siehst du, das jeder Status Großbuchstaben hat.
Anpassen mit:

StateText1 off
StateText2 on
StateText3 toggle

Bracew

Ok, aber warum sind die beiden Installationen unterschiedlich?
Sind denn kleinbuchstaben richtig? oder Großbuchstaben? Was ist Standart und was ist abnormal?
FHEM auf Raspberry Pi
für z.B. Lichtsteuerung, Temperaturmessung, Balkonkraftwerk,
Öltankfüllstandsmessung und für Hühnerstall Hühnerklappe

schwatter

Der Standard in Tasmota sind Großbuchstaben. In Fhem ist "on" und "off" mit Kleinbuchstaben.
Deshalb passe ich Tasmota immer an.

Bracew

Hallo schwatter,

hat prima funktioniert. Vielen Dank für Deine Hilfe!

Weißt Du,
- ob die Anpassung auf Kleinbuchstaben in Tasmota von Dauer ist?
- warum Obi POWER aber Sonoff POWER1 verwenden?

Einen schönen Sonntag wünscht Bracew
FHEM auf Raspberry Pi
für z.B. Lichtsteuerung, Temperaturmessung, Balkonkraftwerk,
Öltankfüllstandsmessung und für Hühnerstall Hühnerklappe