FHEM Forum

FHEM => Anfängerfragen => Thema gestartet von: roli am 19 Februar 2019, 19:34:12

Titel: FS20 - state vs STATE - setstate und set
Beitrag von: roli am 19 Februar 2019, 19:34:12
Keine Ahnung ob sich irgendwann in FHEm was geändert hat.
Ich verwende  FS20  Funkmodule und  um die Funklimits einzuhalten prüfe ich immer vorher den  Status ab um ein unnötigen Schaltbefehl zu vermeiden.
Mein Device hat  nach der  Definition ein  Internal "STATE"  und ein  userreading "state".

Verwende ich   set  device  on/off    so ist alles OK und   STATE und state  werden in sync gehalten.    Verwende ich allerdings

setstate  device on/off    so wird lediglich  STATE  gesetzt und der sync auf  state wird nicht gemacht.

Dies ist mir unerklärlich und auch nicht so dokumentiert bei  setstate.  Fehler ?

Da ich um den Status zu ermitteln ein  ReadingsVal( dev, "state", default )  ist dies so nicht  lustig  .    Müsste wohl dann  Value( device) nehmen

Aber erst wäre es gut zu wissen ob dies nicht ein Fehler   bei  setstate ist .
Titel: Antw:FS20 - state vs STATE - setstate und set
Beitrag von: CoolTux am 19 Februar 2019, 19:37:50
setstate wirft kein Event. Das sollte so eigentlich nie geklappt haben.
Titel: Antw:FS20 - state vs STATE - setstate und set
Beitrag von: roli am 19 Februar 2019, 19:48:41
HAbe ich was von Event gesagt ?  Es geht  um STATE  und userreading state  sync
Titel: Antw:FS20 - state vs STATE - setstate und set
Beitrag von: Otto123 am 19 Februar 2019, 19:53:05
Hi,

ist auch gut dokumentiert:
Zitatsetstate
[EN DE]
setstate <devspec> <value>

Set the STATE entry for the device specified by <devspec>, which is used for displaying the device state in different frontends. No signals will be sent to the device, no events will be generated, and no eventMap or stateFormat translation will be done either. This command is also used in the statefile. See the Device specification section for details on <devspec>.

Examples:
setstate lamp on
Es gibt keinen "sync" von STATE zu state. Dieses "sync" ist per default andersrum und auch gut dokumentiert:
ZitatstateFormat
Modifies the STATE of the device, shown by the list command or in the room overview in FHEMWEB. If not set, its value is taken from the state reading. If set, then every word in the argument is replaced by the value of the reading if such a reading for the current device exists. If the value of this attribute is enclused in {}, then it is evaluated. This attribute is evaluated each time a reading is updated.
The "set magic" described here is also applied.
Hat sich mit ziemlicher Sicherheit die letzten 4 Jahre nicht geändert :)

Gruß Otto
Titel: Antw:FS20 - state vs STATE - setstate und set
Beitrag von: CoolTux am 19 Februar 2019, 19:56:21
userReadings braucht ein Event vom Device sonst passiert gar nix. Und setstate gibt kein Event.
Titel: Antw:FS20 - state vs STATE - setstate und set
Beitrag von: Otto123 am 19 Februar 2019, 19:57:41
wie so oft wäre ein list vom Device etwas gegen weiteres Rätseln :)
Titel: Antw:FS20 - state vs STATE - setstate und set
Beitrag von: justme1968 am 19 Februar 2019, 19:59:33
da geht gerade einiges durcheinander.

STATE wird nicht gesetzt bzw. sollte nicht von einem modul gesetzt werden.
state ist normalerweise kein user reading
der sync erfolgt von state zu STATE und kann mit stateFormat beeinflusst werden
setstate sollte von keinem anweder verwendet werden. es setz nur ein reading und löst kein kommando aus.

wenn du vor dem schalten prüfen möchtest ist das meist am einfachstem mit FILTER. z.b.: set <name>:FILTER=state!=on on  oder set <name>:FILTER=state=on off
Titel: Antw:FS20 - state vs STATE - setstate und set
Beitrag von: CoolTux am 19 Februar 2019, 20:45:19
Ich wollte nicht fragen. Es gibt immer noch einige Module die state als Reading nicht setzen. Ging davon aus das es bei FS20 auch so ist da es so klang als gebe es da kein state Reading beim Fragenden.