ESP Relais - Anzeige des Schaltzustands funktioniert nicht

Begonnen von Charles, 30 Juni 2020, 23:25:44

Vorheriges Thema - Nächstes Thema

Charles

Hallo,
habe zur Relaissteuerung einen ESP verwendet. Funktioniert hervorragend. Leider funktioniert die Zustands nzeige des Schalters nicht. Er zeigt immer "unbestimmt" an.
So hab ich das Relais eingebunden:
#----------------- Zirkulationspumpe schalten -----------------
define esp_ww_pumpe ESPEasy 192.168.0.67 80 espBridge ESP_Easy_Relais2
setuuid esp_ww_pumpe 5eee8721-f33f-aa06-7336-af380d02370b5898
attr esp_ww_pumpe IODev espBridge
attr esp_ww_pumpe Interval 180
attr esp_ww_pumpe devStateIcon on:ios-on-green:off off:ios-off:on .*:ios-NACK:check
attr esp_ww_pumpe eventMap /gpio 14 on:off/gpio 14 off:on/gpio 14 gpio:on/gpio 14 output:on/
attr esp_ww_pumpe group ESPEasy
attr esp_ww_pumpe presenceCheck 0
attr esp_ww_pumpe readingSwitchText 1
attr esp_ww_pumpe room FS20
attr esp_ww_pumpe setState 3
attr esp_ww_pumpe webCmd on:off


Diese Zeile bestimmt den Schalterzustand:
attr esp_ww_pumpe devStateIcon on:ios-on-green:off off:ios-off:on .*:ios-NACK:check

Habs auch so versucht:
attr esp_ww_pumpe devStateIcon on:ios-on-green:off off:ios-off:on
Da war der Schalter ganz weg.

Wer weiß was?

Danke
Gunther
Raspberry · FB 7590 · CUL · FS20 · MAX · ESP

Otto123

#1
Hi,

Auszug aus der Doku:
ZitatsetState
Summarize received values in state reading.
A positive number determines the number of characters used for abbreviated reading names. Only readings with an age less than interval will be considered. If your are not satisfied with format or behavior of setState then disable this attribute (set to 0) and use global attributes userReadings and/or stateFormat to get what you want.
Possible values: integer >=0
Default: 3 (enabled with 3 characters abbreviation)
Ich würde noch stateFormat setzen, so z.B.:
attr esp_ww_pumpe setState 0
attr esp_ww_pumpe stateFormat {ReadingsVal($name,"presence","") eq "absent" ? "absent" : ReadingsVal($name,"Switch","")}

Meine Notiz dazu.

Gruß Otto
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

Klaus0815


Gab es da icht mal was, das Du im ESP eine Rule erstellen musst? Oder zumindest ein Device anlegen musst?

Gibt ja auch Devices, die einen eigenen zusätzlichen Taster haben

Charles

Hallo,
hab einen extra Schalter in ESPEasy nach der Anleitung auf Ottos Technik Blog angelegt (siehe Bild), aber es funktioniert noch nicht.
Hier meine fhem-Definitionen (raw Definition):
defmod esp_speckpumpe ESPEasy 192.168.0.67 80 espBridge ESP_Easy_Relais1
attr esp_speckpumpe IODev espBridge
attr esp_speckpumpe Interval 180
attr esp_speckpumpe devStateIcon on:ios-on-green:off off:ios-off:on .*:ios-NACK:check
attr esp_speckpumpe eventMap /gpio 12 on:off/gpio 12 off:oo/gpio 12 gpio:on/gpio 12 output:on/
attr esp_speckpumpe group ESPEasy
attr esp_speckpumpe presenceCheck 0
attr esp_speckpumpe readingSwitchText 1
attr esp_speckpumpe room FS20
attr esp_speckpumpe setState 0
attr esp_speckpumpe stateFormat {ReadingsVal($name,"presence","") eq "absent" ? "absent" : ReadingsVal($name,"Switch","")}
attr esp_speckpumpe webCmd on:off

setstate esp_speckpumpe 2020-07-01 20:36:44 RSSI -68.00
setstate esp_speckpumpe 2020-07-01 20:32:53 Zustand off
setstate esp_speckpumpe 2020-07-01 20:29:20 state Initialized


Zugehöriger Schalter:
defmod esp_speckpumpe_sw ESPEasy 192.168.0.67 80 espBridge ESP_Easy_Relais1
attr esp_speckpumpe_sw IODev espBridge
attr esp_speckpumpe_sw group ESPEasy
attr esp_speckpumpe_sw presenceCheck 1
attr esp_speckpumpe_sw readingSwitchText 1
attr esp_speckpumpe_sw room FS20
attr esp_speckpumpe_sw setState 3

setstate esp_speckpumpe_sw RSS: -69.00
setstate esp_speckpumpe_sw 2020-07-01 20:37:44 RSSI -69.00
setstate esp_speckpumpe_sw 2020-07-01 12:58:03 Zustand off
setstate esp_speckpumpe_sw 2020-07-01 20:34:33 presence present
setstate esp_speckpumpe_sw 2020-07-01 20:37:44 state RSS: -69.00


Vielleicht hab ichs nicht richtig zusammengebracht.
Raspberry · FB 7590 · CUL · FS20 · MAX · ESP

Otto123

Mach  mal bitte:
list esp_speckpumpe
list esp_speckpumpe_sw

Mit den Raw Def sieht man keine Readings.

Gruß  Otto
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

Charles

Hier das listig für esp_speckpumpe:
Internals:
   DEF        192.168.0.67 80 espBridge ESP_Easy_Relais1
   FUUID      5ef86caa-f33f-aa06-9cc1-431b0a5b984ccd81
   HOST       192.168.0.67
   IDENT      ESP_Easy_Relais1
   INTERVAL   180
   IODev      espBridge
   MAX_CMD_DURATION 1
   NAME       esp_speckpumpe
   NOTIFYDEV  global
   NR         368
   NTFY_ORDER 50-esp_speckpumpe
   PORT       80
   STATE     
   SUBTYPE    device
   TYPE       ESPEasy
   VERSION    2.18
   READINGS:
     2020-07-01 21:00:53   RSSI            -69.00
     2020-07-01 20:45:04   Zustand         off
     2020-07-01 21:02:05   state           Initialized
   helper:
     pm:
       Encode     1
       JSON       1
     received:
   sec:
     admpwd     
Attributes:
   IODev      espBridge
   Interval   180
   devStateIcon on:ios-on-green:off off:ios-off:on .*:ios-NACK:check
   eventMap   /gpio 12 on:off/gpio 12 off:oo/gpio 12 gpio:on/gpio 12 output:on/
   group      ESPEasy
   presenceCheck 0
   readingSwitchText 1
   room       FS20
   setState   3
   stateFormat {ReadingsVal($name,"presence","") eq "absent" ? "absent" : ReadingsVal($name,"Switch","")}
   webCmd     on:off


und hier das andere Lifting:
Internals:
   DEF        192.168.0.67 80 espBridge ESP_Easy_Relais1
   FUUID      5efc3d9c-f33f-aa06-59d9-544a4b35232a6962
   HOST       192.168.0.67
   IDENT      ESP_Easy_Relais1
   INTERVAL   300
   IODev      espBridge
   MAX_CMD_DURATION 1
   NAME       esp_speckpumpe_sw
   NOTIFYDEV  global
   NR         498
   NTFY_ORDER 50-esp_speckpumpe_sw
   PORT       80
   STATE      present
   SUBTYPE    device
   TYPE       ESPEasy
   VERSION    2.18
   READINGS:
     2020-07-01 20:57:53   RSSI            -69.00
     2020-07-01 20:44:36   Zustand         off
     2020-07-01 20:59:00   presence        present
     2020-07-01 21:02:09   state           present
   helper:
     fpc        1593630129
     pm:
       Encode     1
       JSON       1
     received:
   sec:
     admpwd     
Attributes:
   IODev      espBridge
   devStateIcon on:ios-on-green:off off:ios-off:on
   group      ESPEasy
   presenceCheck 1
   readingSwitchText 1
   room       FS20
   setState   3


Viele Grüße
Gunther
Raspberry · FB 7590 · CUL · FS20 · MAX · ESP

Charles

Wenn ich die Zeile
attr esp_speckpumpe stateFormat {ReadingsVal($name,"presence","") eq "absent" ? "absent" : ReadingsVal($name,"Switch","")}
auskommentiere tauchen zumindest wieder die Schalter im roten Modus auf.
Wenn ich darauf klicke erscheint eine Fehlermeldung:
Unknown argument check, choose one of active ...
Raspberry · FB 7590 · CUL · FS20 · MAX · ESP

Otto123

Ich bin da jetzt etwas überfragt. Ich habe das mit ESPEasy seit langem nicht gemacht. Vielleicht stimmt das alles nicht mehr was ich damals aufgeschrieben habe.
Es fehlt das readings Switch, damit geht mein stateFormat Vorschlag nicht.

Aber du hast das Reading Zustand. Das kannst Du nehmen. Probier mal:
attr <> stateFormat Zustand

Gruß Otto
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

Charles

Hallo Otto,

Danke auf jeden Fall mal für die Hilfe. Das Reading "Zustand" hab ich schon vor zwei Stunden durchs Originalreading "State" ersetzt.
Ich glaube, da sind zu viele "States" unterwegs und der Button erscheint nicht, weil das Falsche verwendet wird und grade den Wert "present" oder "initialized" hat. Wie das aber zu lösen ist weiß ich nicht.
stateFormat Zustand hab ich ausprobiert. Es erschien der ausgeschaltete Schalter. Ich konnte aber nicht schalten - hat nicht reagiert.

Viele Grüße
Gunther
Raspberry · FB 7590 · CUL · FS20 · MAX · ESP

Otto123

Du meinst er schaltet gar nicht?
Du meinst er schaltet nicht wenn Du auf das devStateIcon klickst?

In deinem Bild von der ESP Konfiguration steht GPIO 14
In deinem Schalter steht in der eventMap GPIO 12.
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

Charles

Er schaltet nicht, wenn ich auf das SchalterIcon klicke. Auf "on" oder "off" reagiert das Relais sofort.
Ich hab zwei Relais - eins auf 12 das andere auf 14.
Wenn ich mit der Maus über dem roten Schalter bin, sagt mir der Browser auch den Wert von State
Er sagt: "RSS: -68.00"
Raspberry · FB 7590 · CUL · FS20 · MAX · ESP

Otto123

Ich weiß es nicht.
Nach meinem Verständnis muss setState auf 0 stehen.
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