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
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 (http://heinz-otto.blogspot.com/2017/07/einbindung-von-espeasy-schaltern-in-fhem.html)dazu.
Gruß Otto
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
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.
Mach mal bitte:
list esp_speckpumpe
list esp_speckpumpe_sw
Mit den Raw Def sieht man keine Readings.
Gruß Otto
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
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 ...
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
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
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.
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"
Ich weiß es nicht.
Nach meinem Verständnis muss setState auf 0 stehen.