FHEM Forum

FHEM => Automatisierung => DOIF => Thema gestartet von: abc2006 am 09 November 2018, 00:51:10

Titel: DOIF_Readings auf dynamisches Device
Beitrag von: abc2006 am 09 November 2018, 00:51:10
Hi,
vielleicht liegts an der Uhrzeit, aber ich finde gerade keine befriedigende Lösung.
Ich versuch mal die Situation darzustellen:

Ich habe 10 Temperaturfühler, deren Name sich wie folgt aufbaut:

RE_TEMP_Speicher_01
RE_TEMP_Speicher_02
RE_TEMP_Speicher_03

usw ...
Diese haben ein Reading "temperature", welches die aktuell gemessene Temperatur beinhaltet.

Dann habe ich ein DOIF ("Vorhersage"), das mir vorhersagt, welcher Temperaturfühler beachtet werden soll.
In dem DOIF "Vorhersage" gibts dann ein Reading "grenzfuehler", welches den Inhalt "RE_TEMP_Speicher_01" haben kann, aber auch den Wert "RE_TEMP_Speicher_09", je nach Tag und Uhrzeit.

Mit einem zweiten DOIF ("Action") möchte ich auf den Inhalt des durch das Reading grenzfuehler definierten devices zugreifen.

Vielleicht wirds mit der (syntaktisch falschen) darstellung einfacher:
Ich möchte gerne diesen Wert prüfen:

...
DOELSEIF([[Vorhersage:grenzfuehler]:temperature:d] > 20)() usw...


Wird mit der Fehlermeldung
Zitattimer_01_c01
error: Wrong timespec RE_TEMP_Speicher_03: either HH:MM:SS or {perlcode}
beantwortet.
Auch Varianten wie

({ReadingsVal(ReadingsVal("Vorhersage","grenzfuehler",""),"temperature","")} > 20 )
## Triggert DOIF überhaupt generell bei durch "ReadingsVal()" geholten Werten?
## Meine mich erinnern zu können, dass nur auf [...] getriggert wird
({ReadingsVal([Vorhersage:grenzfuehler],""),"temperature","")} > 20 )
([{ReadingsVal("Vorhersage","grenzfuehler","")}:temperature] > 20 )


liefern nicht das gewünschte Ergebnis.
Wäre cool, wenn jemand ne Idee liefert, mit der ich weiterkomme...
Im Forum und Wiki hab ich bisher nix passendes gefunden... Weiss aber auch mal wieder nicht genau, nach was ich suchen soll ...

Danke,
Stephan

Titel: Antw:DOIF_Readings auf dynamisches Device
Beitrag von: abc2006 am 09 November 2018, 01:12:21
So, mithilfe des Einsteiger-Wikis :) bin ich jetzt zu

(ReadingsVal([Vorhersage:grenzfuehler],"temperature","error") > 20 )

gekommen.
Das liefert mir zwar schon den richtigen Wert, triggert aber leider noch nicht (naja, schon, aber eben auf "Vorhersage" und leider nicht (wie ichs bräuchte) auf RE_TEMP_Speicher_03.
Mit [+60] kann ich mir erstmal behelfen. Aber schön isses glaubich so noch nicht...

Grüße,
Stephan