FS20 - state vs STATE - setstate und set

Begonnen von roli, 19 Februar 2019, 19:34:12

Vorheriges Thema - Nächstes Thema

roli

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 .
FHEM auf Debian (RASPI), 2 * CUL868/433 *  FS20 STR, 2 * HMS100 T, 2 * , 1* FS20 SU, 2 *  FS20 SM8, 2 ; 1-wire Temp,i2c Bus; ESP32 WROOM; ESP8266; Arduino
Sonnenbatterie Eco8;Elektro  Nachspeicher-Ofen Ladesteuerung,
Haus Lüftung,
Integration von HardwareAlarmanlag

CoolTux

setstate wirft kein Event. Das sollte so eigentlich nie geklappt haben.
Du musst nicht wissen wie es geht! Du musst nur wissen wo es steht, wie es geht.
Support me to buy new test hardware for development: https://www.paypal.com/paypalme/MOldenburg
My FHEM Git: https://git.cooltux.net/FHEM/
Das TuxNet Wiki:
https://www.cooltux.net

roli

HAbe ich was von Event gesagt ?  Es geht  um STATE  und userreading state  sync
FHEM auf Debian (RASPI), 2 * CUL868/433 *  FS20 STR, 2 * HMS100 T, 2 * , 1* FS20 SU, 2 *  FS20 SM8, 2 ; 1-wire Temp,i2c Bus; ESP32 WROOM; ESP8266; Arduino
Sonnenbatterie Eco8;Elektro  Nachspeicher-Ofen Ladesteuerung,
Haus Lüftung,
Integration von HardwareAlarmanlag

Otto123

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

CoolTux

userReadings braucht ein Event vom Device sonst passiert gar nix. Und setstate gibt kein Event.
Du musst nicht wissen wie es geht! Du musst nur wissen wo es steht, wie es geht.
Support me to buy new test hardware for development: https://www.paypal.com/paypalme/MOldenburg
My FHEM Git: https://git.cooltux.net/FHEM/
Das TuxNet Wiki:
https://www.cooltux.net

Otto123

wie so oft wäre ein list vom Device etwas gegen weiteres Rätseln :)
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

justme1968

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
hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

https://github.com/sponsors/justme-1968

CoolTux

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.
Du musst nicht wissen wie es geht! Du musst nur wissen wo es steht, wie es geht.
Support me to buy new test hardware for development: https://www.paypal.com/paypalme/MOldenburg
My FHEM Git: https://git.cooltux.net/FHEM/
Das TuxNet Wiki:
https://www.cooltux.net