Hallo,
Ich habe ein komischens Verhalten bei einem ESPEasy Device. Auf ESP Seite ist das ein simpler Switch an dem ein Reed-Kontakt hängt zum Auslesen eines Actaris G4RF1 Gaszählers.
Das reading "gas" wechselt auch bei jedem Umlauf des Zählerrades brav einmal kurz von on auf off und wieder zurück. Jetzt wollte ich das an HOURCOUNTER weiterleiten, aber da brauche ich das Reading im state.
Sollte eigentlich ganz einfach sein dachte ich:
attr <device> setState 0
attr <device> stateFormat gas
Danach ist state aber permament "opened" und wird nicht aktualisiert.
Das interne STATE wird richtig auf on/off gesetzt. Wo ist mein Denkfehler ?
Hier mal das list <device>:
Internals:
CFGFN
DEF 192.168.171.91 80 espBridge wemos1_gas
ESP_BUILD 20000
ESP_BUILD_NOTES - Mega
ESP_NODE_TYPE_ID 17: ESP Easy Mega
ESP_SLEEP 0
ESP_UNIT 201
ESP_VERSION 2
HOST 192.168.178.91
IDENT wemos1_gas
INTERVAL 300
IODev espBridge
LASTInputDev espBridge
MSGCNT 1561
NAME ESPEasy_wemos1_gas
NOTIFYDEV global
NR 20882
NTFY_ORDER 50-ESPEasy_wemos1_gas
PORT 80
STATE on
SUBTYPE device
TYPE ESPEasy
VERSION 1.35
espBridge_MSGCNT 1561
espBridge_TIME 2018-02-25 18:07:01
READINGS:
2018-02-25 18:07:01 gas on
2018-02-25 18:04:09 presence present
2018-02-25 15:22:58 state opened
helper:
fpc 1519490766
pm:
Encode 1
JSON 1
received:
gas 1519578421
Attributes:
IODev espBridge
Interval 300
devStateIcon on:euro@red:off off:euro@green:on absent:euro@grey:off
group Gas
presenceCheck 1
readingSwitchText 1
room ESPEasy
setState 0
stateFormat gas
webCmd :
Das soll einen HourCounter mit folgender Definition füttern:
defmod Gasverbrauch HourCounter ESPEasy_wemos1_gas:on ESPEasy_wemos1_gas:off
Grüße, gadget
Works as designed. Wenn Du das Attribut setState auf 0 setzt, dann wird kein Wert mehr in das Reading state geschrieben, bis auf das open/init beim Modulstart, darum mußt Du Dich dann selbst kümmern.
Das globale Attribut stateFormat beeinflusst nicht das Reading state, sondern das Internal STATE, siehe command ref.
Zum Modul HOURCOINTER kann ich nicht sagen, da ich es nicht kenne.
Hallo,
Zitat von: dev0 am 25 Februar 2018, 18:52:07
Wenn Du das Attribut setState auf 0 setzt, dann wird kein Wert mehr in das Reading state geschrieben, bis auf das open/init beim Modulstart, darum mußt Du Dich dann selbst kümmern.
in der commandref steht:
ZitatIf 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.
Drum hatte ich erwartet dass das dann mit stateFormat auch geht.
Habe jetzt
attr ESPEasy_wemos1_gas userReadings state {ReadingsVal($name,"gas","")}
Damit klappt´s.
Grüße, gadget