Guten Abend zusammen ;)
Ich glaube ich habe ein Problem.
Habe schon das Wiki durchforstet.
Konnte aber nichts finden.
Ich glaube es ist klar, was ich vorhabe:
z.B.:
attr 433sensor_Temp_.* userReadings Temperatur { ReadingsVal($NAME, "temperature", 0) }, Luftfeuchte { ReadingsVal($NAME, "humidity", 0) }
attr 433.* userReadings aactivity { return "alive" if ( (ReadingsAge($NAME,"state","0") / 60) < 60 );; return "dead";; }
So, beim Schreiben kam mir dann (glaube ich) die Erleuchtung:
list 433sensor_Temp_.* und
list 433.*
geben teilweise die selben Devices zurück.
Heißt, ich verpasse einigen Devices mehrere userReadings...
Was dann aber nur wie im ersten Beispiel funktioniert (Auflistung durch Komma getrennt).
Richtig?
Dadurch stellt sich eine neue Frage:
Gibt es soetwas wie "addUserReading" ?
Um einem Device mal eben schnell ein userReading hinzuzufügen,
statt gewünschte userReadings initial per attr auflisten zu müssen?
Quasi als Manipulation...
Grüße
Ich habe noch nicht verstanden, was Du eigentlich tun willst.
Aber als Alternative zu userReadings kann man auch immer setreading in Betracht ziehen, damit kann man beliebige readings in beliebige devices schreiben, ohne vorher irgendwas definieren zu müssen.
Zitat von: remo am 10 Mai 2023, 20:41:44Guten Abend zusammen ;)
Ich glaube ich habe ein Problem.
Habe schon das Wiki durchforstet.
Konnte aber nichts finden.
Ich glaube es ist klar, was ich vorhabe:
z.B.:
attr 433sensor_Temp_.* userReadings Temperatur { ReadingsVal($NAME, "temperature", 0) }, Luftfeuchte { ReadingsVal($NAME, "humidity", 0) }
attr 433.* userReadings aactivity { return "alive" if ( (ReadingsAge($NAME,"state","0") / 60) < 60 );; return "dead";; }
So, beim Schreiben kam mir dann (glaube ich) die Erleuchtung:
list 433sensor_Temp_.* und
list 433.*
geben teilweise die selben Devices zurück.
Heißt, ich verpasse einigen Devices mehrere userReadings...
Was dann aber nur wie im ersten Beispiel funktioniert (Auflistung durch Komma getrennt).
Richtig?
a) Mir ist auch nicht klar, was du willst. Welchem höheren Zweck dient es, eingedeutschte Namen zu verwenden? Für Anzeigezwecke könnte man es mit stateFormat oder devStateIcon aufhübschen und "lesbar" darstellen...
b) Warum verwendest du keine (einschränkenden) trigger, wenn du schon sowas vorhast? (Oder werden zwingend immer alle Werte der betroffenen Devices in einer Event-Loop gesetzt...?)
c) Das mit dem ReadingsAge() wird vermutlich so nicht funktionieren, weil es keinen trigger gibt, wenn das Device tot ist...
Für sowas könnte man z.B. verwenden:
help readingsWatcher
ZitatDadurch stellt sich eine neue Frage:
Gibt es soetwas wie "addUserReading" ?
Um einem Device mal eben schnell ein userReading hinzuzufügen,
statt gewünschte userReadings initial per attr auflisten zu müssen?
Quasi als Manipulation...
Grüße
help attr
würde hier ggf. weiterhelfen ;) .