[solved]ESPEasy state auf "opened" trotz anderem stateformat

Begonnen von gadget, 25 Februar 2018, 18:11:58

Vorheriges Thema - Nächstes Thema

gadget

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

dev0

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.

gadget

#2
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