FHEM Forum

FHEM => Anfängerfragen => Thema gestartet von: Spartacus am 29 Januar 2015, 21:27:34

Titel: Filtern von Werten
Beitrag von: Spartacus am 29 Januar 2015, 21:27:34
Hallo,
ich habe mal wieder einen Hänger:
ich habe diverse Dummy-Devices, die Start und Ende der Ferien anzeigen. Alle Dummies haben die gleiche Struktur und werden 1 x pro Tag berechnet. So entsteht eine Countdown-Übersicht in Tagen.

cnt.OS.start.Ferien.dum: Start der Osterferien
cnt.OS.end.Ferien.dum: Ende der Osterferien
cnt.SO.start.Ferien.dum: Start der Sommerferien
cnt.SO.end.Ferien.dum: Ende der Sommerferien
usw.


Jetzt möchte ich jeweils einen Tag vor dem Ferienstart bzw. vor dem Ferienende eine Aktion triggern. Jetzt kann man das alles "oder" verknüpfen:
if (Osterferienstart or Sommerferienstart or Herbstferienstart) =1
schalte Aktor an.


Gibt es nicht eine elegantere Lösung mit Perl? Irgendwie in dieser Form?

if (*.start.Ferien.dum) =1
schalte Aktor

Leider funzt das mit diesem Ausdruck nicht, wie ich dachte!
Hat jemand einen Tipp?
Spartacus
Titel: Antw:Filtern von Werten
Beitrag von: KernSani am 30 Januar 2015, 01:38:59
Perl hätte gerne ein .* statt einem einfachem Stern und die Klammer geht um die ganze Condition.

Grüße,

Oli
Titel: Antw:Filtern von Werten
Beitrag von: Spartacus am 30 Januar 2015, 13:52:34
Hi,
sorry, hätte es exakter aufschreiben sollen:
Diesen Code habe ich probiert, aber er läuft nicht Da alle Ferientermine (siehe Screenshot im vorherigen Post) größer als 10 Tage sind, hätte hier der "else" - Fall zutreffen müssen. Es wird aber der "if"-Fall ausgeführt. Wo ist mein Fehler?

{
if (ReadingsVal(".*.Ferien.dum", "state", "") <= 10)
{
fhem "set outdoorlight on"
}
else
{
  fhem "set outdoorlight off"
}
}

Christian
Titel: Antw:Filtern von Werten
Beitrag von: GrauesHaar am 30 Januar 2015, 13:55:58
Hallo Spartacus,

könnte es an dem oberen Eintrag liegen "Ferientag", welcher auf 0 steht ?
Titel: Antw:Filtern von Werten
Beitrag von: justme1968 am 30 Januar 2015, 13:57:35
das funktioniert so nicht. ReadingsVal kann nur ein reading aus einem device auslesen.

du kannst entweder deine dummys über eine structure zusammenfassen oder du musst alle einzelwerte per if of IF oder DOIF verknüpfen.

gruss
  andre
Titel: Antw:Filtern von Werten
Beitrag von: Spartacus am 30 Januar 2015, 15:45:45
Hallo Andre,
danke für die Aufklärung!
Ich probier es mal mit einer "structure "! Diese Funktion kenne ich noch nicht!
Christian
Titel: Antw:Filtern von Werten
Beitrag von: Spartacus am 30 Januar 2015, 18:28:44
Hallo,
ich brauche doch noch einmal Hilfe. Habe das mit der structure offenbar nicht richtig umgesetzt.
Ich habe jetzt alle  Ferien-Start-Dummy-Devices folgendermassen zusammengefasst:
define FerienStart structure cnt.OS.start.Ferien.dum cnt.PG.start.Ferien.dum cnt.SO.start.Ferien.dum cnt.HB.start.Ferien.dum cnt.WE.start.Ferien.dum
und dann den o.a. Code wir folgt abgeändert:
.....
{
if (ReadingsVal("FerienStart", "state", "") <= 10)
{
fhem "set outdoorlight on"
}
else
{
  fhem "set outdoorlight off"
}
}

..aber ändert nichts an der Situation!
Irgendwie habe ich nicht verstanden, wie die structure richtig eingesetzt wird.
Christian

Titel: Antw:Filtern von Werten
Beitrag von: Spartacus am 31 Januar 2015, 14:05:19
Hallo,
hat niemand einen Tipp für mich? Komme irgendwie nicht weiter...
Christian
Titel: Antw:Filtern von Werten
Beitrag von: nesges am 31 Januar 2015, 15:04:41
Deine Dummys nehmen 1 oder 0 an, richtig? Dann schau dir mal clientstate_behavior und clientstate_priority in http://fhem.de/commandref.html#structure an.
Titel: Antw:Filtern von Werten
Beitrag von: Spartacus am 31 Januar 2015, 23:37:15
Hallo,
Nein! Die Dummy-devices können alle möglichen Werte annehmen! Deshalb Frage ich ja <= 10 ab. Das ist quasi ein Countdown. Wenn einer der Werte kleiner al 10 wird, dann soll das outdoorlight schalten. Andernfalls bleibt es aus.
Christian
Titel: Antw:Filtern von Werten
Beitrag von: nesges am 01 Februar 2015, 01:09:46
Andre, korrigiere mich bitte, wenn ich mich irre, aber in dem Fall ist structure ungeeignet und es bleibt nur die lange oder-Kette.
Titel: Antw:Filtern von Werten
Beitrag von: justme1968 am 01 Februar 2015, 10:26:18
ja. dann wird es mit structure zumindest sehr unhandlich.
Titel: Antw:Filtern von Werten
Beitrag von: Spartacus am 01 Februar 2015, 13:41:39
Hallo,
ok, danke! Dann bleibt wohl nur der "herkömmliche Weg"!
Christian