Verständnisfrage: "state","STATE"

Begonnen von akw, 09 März 2014, 13:55:37

Vorheriges Thema - Nächstes Thema

akw

Hi,

ich habe ein kleines Verständnisproblem mit dem default-state. Die Beschreibung im FHEMwiki hat da leider auch nicht weitergeholfen.

Angenommen ich habe ein Modul geschrieben, dass mittels "readingsBulkUpdate" u.a. einen Wert names "power" schreibt.
Was sollte ich tun, damit er als Default-Reading genommen wird?
a) $hash->{STATE} setzen
b) das reading auch nach "state" schreiben.
c) .. ?


Vielen Dank für die Hilfe!

Ciao, Arno
FHEM-SVN auf MacMini OSX 10.7.5

FS20,FHT,HMS,CUL_WS,CUL_HM,KS300,HUE,FB_DECT

FHEMobile: www.fhemobile.de

Loredo

Am flexibelsten bleibst du (und deine Nutzer), wenn du das Attribut stateFormat auf "power" setzt. wer möchte, kann es später dann noch abändern und dein STATE bleibt nicht statisch.


Gruß
Julian
Hat meine Arbeit dir geholfen? ⟹ https://paypal.me/pools/c/8gDLrIWrG9

Maintainer:
FHEM-Docker Image, https://github.com/fhem, Astro(Co-Maintainer), ENIGMA2, GEOFANCY, GUEST, HP1000, Installer, LaMetric2, MSG, msgConfig, npmjs, PET, PHTV, Pushover, RESIDENTS, ROOMMATE, search, THINKINGCLEANER

akw

Hi Loredo,

Du meinst also etwas wie:

$attr{$name}{"stateFormat"} = "power";

Das klingt sehr gut für mich! "stateFormat" kannte ich noch nicht.

Ciao, Arno
FHEM-SVN auf MacMini OSX 10.7.5

FS20,FHT,HMS,CUL_WS,CUL_HM,KS300,HUE,FB_DECT

FHEMobile: www.fhemobile.de

justme1968

#3
STATE solltest du nicht schreiben. damit verhinderst du das es der anwender konfigurieren kann

state kannst du mit etwas sinnvollem füllen. wenn es STATE und stateFormat nicht gibt wird state automatisch nach STATE kopiert. so hat der anwender einen vernünftigen default auch wenn er sich nicht weiter mit der konfiguration beschäftigt.

das automatische kopieren kann der anwender dann mit stateFormat konfigurieren wenn er sich mehr mit dem system beschäftigt hat.

gruss
  andre

edit: loredo war schneller :)
ob man aus dem modul direkt stateFormat setzt ist umstritten :) ich finde es auch keine schlechte lösung. du musst nur aufpassen das du nicht verhinderst das der anwender etwas anderes setzt. du kannst es also z.b. im define setzen.
hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

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

Loredo

ja ganz genau so  ;)
achte nur drauf, dass du es nur setzt, wenn es nicht schon gesetzt ist. sonst kann der User es nicht mehr dauerhaft ändern.
Hat meine Arbeit dir geholfen? ⟹ https://paypal.me/pools/c/8gDLrIWrG9

Maintainer:
FHEM-Docker Image, https://github.com/fhem, Astro(Co-Maintainer), ENIGMA2, GEOFANCY, GUEST, HP1000, Installer, LaMetric2, MSG, msgConfig, npmjs, PET, PHTV, Pushover, RESIDENTS, ROOMMATE, search, THINKINGCLEANER

rudolfkoenig

Der Modulautor schlaegt in state vor, was angezeigt werden soll.
fhem.pl kopiert state nach STATE, falls kein stateFormat existiert, sonst wird stateFormat genomen
Der Benutzer (und nicht der Modulautor) setzt stateFromat, falls er mit dem Vorschlag des Modulautors nicht einverstanden ist.
Angezeigt wird STATE (von FHEMWEB und list, usw).

akw

Okay,
also wenn ich Rudolf richtig verstanden habe, ist es doch besser, das "state" Attribut zu setzen und "stateFormat" komplett dem User zu überlassen.

Ciao, Arno
FHEM-SVN auf MacMini OSX 10.7.5

FS20,FHT,HMS,CUL_WS,CUL_HM,KS300,HUE,FB_DECT

FHEMobile: www.fhemobile.de

Loredo

Zitat von: akw am 09 März 2014, 18:30:05
also wenn ich Rudolf richtig verstanden habe, ist es doch besser, das "state" Attribut zu setzen und "stateFormat" komplett dem User zu überlassen.


Das sowieso. Ich nahm an du hättest deine Gründe so genau zu fragen, daher habe ich es nicht weiter hinterfragt.
Hat meine Arbeit dir geholfen? ⟹ https://paypal.me/pools/c/8gDLrIWrG9

Maintainer:
FHEM-Docker Image, https://github.com/fhem, Astro(Co-Maintainer), ENIGMA2, GEOFANCY, GUEST, HP1000, Installer, LaMetric2, MSG, msgConfig, npmjs, PET, PHTV, Pushover, RESIDENTS, ROOMMATE, search, THINKINGCLEANER

akw

Hi,


ich finde es halt nur irgendwie ungünstig, ein Attribut "power" anzulegen und den gleichen Wert in ein Attribut "state" zu schreiben. Deswegen schien das Vorgeben eines "stateFormat" beim define eine ganz nette Idee.
FHEM-SVN auf MacMini OSX 10.7.5

FS20,FHT,HMS,CUL_WS,CUL_HM,KS300,HUE,FB_DECT

FHEMobile: www.fhemobile.de

betateilchen

Ich finde den Messwert in "power" auf jeden Fall richtig aufgehoben. Warum willst Du den zusätzlich noch in STATE haben und das dem User auch noch vorschreiben wollen? Der User hat jederzeit die Möglichkeit, den Wert dort sichtbar zu machen, wenn er es möchte.

Einen entsprechenden Hinweis über die Vorgehensweise kannst Du jederzeit in die commandref packen.
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

Dr. Boris Neubert

Zitat von: rudolfkoenig am 09 März 2014, 14:24:35
Der Modulautor schlaegt in state vor, was angezeigt werden soll.
fhem.pl kopiert state nach STATE, falls kein stateFormat existiert, sonst wird stateFormat genomen
Der Benutzer (und nicht der Modulautor) setzt stateFromat, falls er mit dem Vorschlag des Modulautors nicht einverstanden ist.
Angezeigt wird STATE (von FHEMWEB und list, usw).

[OT]
Ist das schon irgendwo im fhemwiki.de dokumentiert? Falls nein, wer macht's?

Hatten wir nicht mal in Vorforumszeiten die Regel, daß in Entwicklungssachen der Fragesteller die Antwort dokumentiert?

Grüße
Boris
Globaler Moderator, Developer, aktives Mitglied des FHEM e.V. (Marketing, Verwaltung)
Bitte keine unaufgeforderten privaten Nachrichten!

rudolfkoenig

ZitatHatten wir nicht mal in Vorforumszeiten die Regel, daß in Entwicklungssachen der Fragesteller die Antwort dokumentiert?

Toller Vorschlag, bin dabei :)

akw

#12
hmmmph. Also gut, ich mach's  ;)

http://www.fhemwiki.de/wiki/DevelopmentState
FHEM-SVN auf MacMini OSX 10.7.5

FS20,FHT,HMS,CUL_WS,CUL_HM,KS300,HUE,FB_DECT

FHEMobile: www.fhemobile.de