Einfache Hilfsvariable fuer beliebiges Device

Begonnen von pc1246, 14 Dezember 2015, 15:59:45

Vorheriges Thema - Nächstes Thema

pc1246

Hallo zusammen
Ich gebe jetzt auf! Ich wollte mir eine einfache Hilfsvariable anlegen, die ich beliebig beschreiben kann. Ob nun mit "on/off", einem Zahlenwert oder einem Text sollte dabei zweitrangig sein. Dann dachte ich "userReading" ist das Hilfsmittel der Wahl. Weit gefehlt, ich habe, glaube ich, drei Stunden gebraucht um das bei dem Device "harmony" zu bewerkstelligen. Ok, dabei auch 'ne Menge gelernt, besonders das am Ende der CommandRef interessante Dinge stehen. Aber am Ende ist es nicht das was ich moechte. Gibt es irgendwie eine einfache Moeglichkeit, so etwas zu gestalten? Ich stelle mir vor, dass ich ein Flag anlegen kann, welches ich dann beschreiben kann wie ich moechte, ohne vorher gross ueber irgendwelche Konventionen nachdenken zu muessen. Dieses Flag koennte ich dann aufgrund eines notofy/at/Doif ect. mit einem x-beliebigen Wert befuellen und auch wieder abfragen!? Ich will nicht an allem vorbei, aber es sollte moeglichst einfach sein. CustomReadings ist fast das was ich wollte, funzt aber auch nicht so ganz, da das Reading selbst ja eine Funktion sein muss?
Kann mir jemand einen Tipp geben, wie ich zum Ziel kommen kann?
Danke und Gruss
Christoph
HP T610
Onkyo_AVR;Enigma2; SB_Server; SB_Player; HM-USB; PhilipsTV; harmony hub; Jeelink mit PCA301; Somfy; S7-300; LGW; HUE; HM-IP auf Charly; div

marvin78

Du kannst jedem Device per setreading eigene Readings verpassen (UserReadings ist dazu nicht notwendig, wenn es nicht passt - Warum gebau passt es denn nicht?).

Außerdem gibt es noch userattr zum setzen eigener Attribute. Es kommt immer auf den Zweck an, was man am besten macht.

betateilchen

Zitat von: pc1246 am 14 Dezember 2015, 15:59:45
Kann mir jemand einen Tipp geben, wie ich zum Ziel kommen kann?


define hilfsvariable dummy
set hilfsvariable irgendwas


Und dann staune...
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

betateilchen

Zitat von: marvin78 am 14 Dezember 2015, 16:01:39
Du kannst jedem Device per setreading

Nicht alles, was man in fhem tun KANN ist auch wirklich sinnvoll.
Für mich ist setreading einfach nur bäh.
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

marvin78

#4
Da du keinen Grund dafür nennst, ist es dann wohl eine persönliche Vorliebe. Eine Option für den Threadersteller ist es dennoch.

Edit: Warum man ein dummy (also ein zusätzliches Device) anlegen sollte, um Daten, die für ein anderes Device bestimmt sind, zu speichern, erschließt sich mir nicht. Solche Konstrukte finde ich nicht sehr elegant.

justme1968

und für andere ist eine flut von dummys mit jeweils nur einem reading und ohne zusammenhang zum device und das es geht einfach nur bäh.

kommt halt auf den anwendungsfall an.
hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

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

pc1246

Hallo zusammen
Wow so schnell hatte ich keine Antwort erwartet. Ich wollte nicht zig dummies anlegen, es sollte schon einen Bezug zum Device haben. Dummy waere nur eine Alternative wenn ich zum Beispiel ein DWORD anlegen kann und jedes BIT einzeln benutzen kann!
So jetzt schaue ich mal mit setreading!
Christoph
HP T610
Onkyo_AVR;Enigma2; SB_Server; SB_Player; HM-USB; PhilipsTV; harmony hub; Jeelink mit PCA301; Somfy; S7-300; LGW; HUE; HM-IP auf Charly; div

pc1246

Uaahhhhh
Ich bin so bloed! Ich hatte das mit dem Setreading schon probiert, aber den letzten Wert vergessen. Super danke und sorry, dass ich wirklich zu bloead war!
Gruss Christoph
HP T610
Onkyo_AVR;Enigma2; SB_Server; SB_Player; HM-USB; PhilipsTV; harmony hub; Jeelink mit PCA301; Somfy; S7-300; LGW; HUE; HM-IP auf Charly; div

betateilchen

niemand muss "zig Dummies" anlegen, es reicht EIN Dummy pro fhem Installation für beliebig viele Hilfsvariablen, die alle mit "set <dummyDevice> <Variablenname> <Wert>" befüllt werden können. "set" ist für mich einfach logischer und konsequenter als "setreading".
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

mcfly71

Hallo betateilchen,

kannst du das ein wenig mehr ausfüren ? ich habe das gemacht, was du meintest, aber das führt nur dazu, das das dummy device einen state hat z.B. "Var1 35" (mit z.B. set test Var1 35).
Ein!! dummy device, wo alle globalen Variablen bei mir drin stehen, würde mir schon helfen...


vg
mcfly
- HMLAN / Raspberry auf hmmode
- Homematic

marvin78

Das wird an einer alten FHEM Version liegen. Update machen, würde dann helfen.

betateilchen

Zitat von: mcfly71 am 15 Dezember 2015, 11:04:15
kannst du das ein wenig mehr ausfüren ?

klar...


define Variablenspeicher dummy
attr Variablenspeicher readingList Var1 Var2 Var3


Danach kannst Du mit

set Variablenspeicher Var1 Wert1

das reading "Var1" auf den Wert "Wert1" setzen. Gleiches gilt für Var2 und Var3

Übrigens: Ein Blick in die commandref würde manchmal Wunder wirken

ZitatAttributes
readingList
Space separated list of readings, which will be set, if the first argument of the set command matches one of them.
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!