Globaler Trigger eines Devices?!?

Begonnen von M_I_B, 06 Dezember 2017, 08:16:33

Vorheriges Thema - Nächstes Thema

M_I_B

Moin Kinnaz ;) Alle brav gewesen und ordentlich was vom Nikolausie bekommen?!?  8)

Ok, zum Thema...

Wenn ich mich recht erinnere und wenn ich nichts in der Doku übersehen habe ist es doch so, das ein Device ein DOIF immer triggert, wenn ich den Devicenamen in Anführungsstriche packe like ...

define BlaBlub DOIF (["Zwielicht"]) (set peng...

Daraus lässt sich schon erkennen, was bei mir nicht funktioniert... Ich habe das Twilight- Modul in Betrieb, wollte aber nun Werte aus diesem Modul via DOIF anderen Variablen / Dummys zuweisen. Dazu habe ich o.g. Definition verwendet und hinten dran jede Menge "set bla, set blub, set..."...

Aus mir unerfindlichen Gründen triggert aber das Modul nie das DOIF. Man sieht zwar schön, das im Twilight- Modul ab- und an Readings geändert werden, aber offensichtlich reicht das nicht aus, um hier einen Trigger zu generieren.
Im Übrigen habe ich das mit den Anführungsstrichen an anderen Stellen auch verbaut und da funktioniert das vollkommen makellos... Daher kann ich im Moment nicht nachvollziehen, wieso das hier nicht klappt...

Wat mache ich falsch?

Brockmann

Zitat von: M_I_B am 06 Dezember 2017, 08:16:33
Wenn ich mich recht erinnere und wenn ich nichts in der Doku übersehen habe ist es doch so, das ein Device ein DOIF immer triggert, wenn ich den Devicenamen in Anführungsstriche packe like ...
Die Anführungszeichen braucht es dafür nicht. ([Zwielicht]) reicht dafür schon. Dann triggert jedes Event, das vom Device Zwielicht generiert wird, das DOIF. Ggf. im Event-Monitor kontrollieren, welche Events Zwielicht tatsächlich generiert.

Da Du kein list des DOIF gemacht hast: Wenn Du nur das DOIF hast (und kein DOELSEIF usw.) fehlt eventuell einfach nur ein do always?

M_I_B

#2
Zitat von: Brockmann am 06 Dezember 2017, 08:35:51... fehlt eventuell einfach nur ein do always?
nope... das ist da nebst noch ein paar anderen Attributen...

Ok, ich checke das heute Abend mal, ob sich ohne Anführungszeichen was ändert (das mit den Anführungszeichen hatte ich übrigens von einem Profi hier aus dem Forum im Zusammenhang mit den PIR- Meldern vor längerer Zeit). Die Events vom Twilight sind auf jeden Fall da. Irgend ein Reading ändert sich fast immer minütlich in dem Device.

EDIT: Ganz vergessen, das ich aus der FA einen SSH Zugang zu meinem Server daheim habe  ::) Hier also mal das Okkinol, worum es geht, ohne Kommentare und die lange Zeile zwecks Lesbarkeit umgebrochen:

define Zwielicht Twilight 52.7218707 9.8526161 3 674654

define SUN_set DOIF (["Zwielicht"]) (set DAWN [Zwielicht:nextEvent], set DUSK [Zwielicht:nextEventTime] \
set DAWN r [Zwielicht:sr_indoor], set DAWN c [Zwielicht:sr_civil], set DAWN n [Zwielicht:sr_naut] \
set DAWN a [Zwielicht:sr_astro], set DUSK r [Zwielicht:ss_indoor], set DUSK c [Zwielicht:ss_civil] \
set DUSK n [Zwielicht:ss_naut], set DUSK a [Zwielicht:ss_astro])
attr SUN_set do always

define DAWN dummy
attr DAWN alias Sonnenaufgänge
attr DAWN icon scene_day@yellow
attr DAWN readingList r c n a
attr DAWN sortby 1

define DUSK dummy
attr DUSK alias Sonnenuntergänge
attr DUSK icon scene_night@blue
attr DUSK readingList r c n a
attr DUSK sortby 2

nils_

poste doch mal ein list der devices......
viele Wege in FHEM es gibt!

M_I_B

#4
... ähhh ja ... Euer Merkwürden  >:( :-\ ::)

Ich hatte das gerade noch etwas umgeschrieben und vereinfacht, sonst aber nix geändert. Nach FHEM- Neustart geht es nun, auch mit der alten u.s. Version... Bahnhof Kofferklau'n? Und neulich schrieb hier noch jemand, das es keine Geister in FHEM gäbe... Ich behaupte mal das Gegenteil  ;D

Noch mal was dazu gefragt... Im Wiki dazu steht u.a. ...

ZitatAnwendung der Funktion twilight zur Zeitsteuerung:
define morgens at *{twilight("myTL","sr_indoor","7:30","9:00")} set Rollo on
Dieses at wird morgens zum Zeitpunkt sr_indoor des Twilight Objekts myTL - aber frühestens um 7:30
und spätestens um 9:00 Uhr - dem Gerät Rollo einen on-Befehl schicken.

Da ich aber nicht mit "at" arbeite sondern ausschließlich mit DOIF, stellt sich mir die Frage, wie diese Funktion in einem DOIF definiert wird?!?