FHEM Forum

FHEM => Anfängerfragen => Thema gestartet von: chq am 14 Oktober 2018, 09:27:23

Titel: Events erzeugen [gelöst]
Beitrag von: chq am 14 Oktober 2018, 09:27:23
Hallo,

ich stehe grad mal wieder wirklich vollkommen auf dem Schlauch. Bisher habe ich Devices erstellt, die lediglich auf Events reagieren oder Readings abfragen.

Nun möchte ich, dass ein Device selber Events erzeugen, so dass andere Devices darauf reagieren können.

Wie macht "man" das für gewöhnlich? Mit setreading und dann Readings des sendenden Devices ändern, so dass hierbei Events entstehen?

Gruß Chris
Titel: Antw:Events erzeugen
Beitrag von: CoolTux am 14 Oktober 2018, 09:42:01
Die meisten Devices erzeugen Events. Verstehe Deine Frage nicht. Um was für ein Device geht es denn? Gib mal ein list von so einem Device bevor hier großes raten an fängt.
Titel: Antw:Events erzeugen
Beitrag von: chq am 14 Oktober 2018, 09:47:34
Ach so, Du meinst, dass ich nicht erst ein bestimmtes Event über ein extra erzeugtes Reading erstellen muss, sondern bereits ohnehin erzeugt Events verwende.

Ein list von dem betreffenden Device sprengt vermutlich den Rahmen der in einem Posting möglichen Anzahl an Zeichen.

Hier aber zumindest mal ein Ausschnitt der ersten Zeilen:

DEF        ([00:00]) () ## idle

## Tageshöchsttemperatur über 17 Grad (Ausführung jederzeit):

DOELSEIF ([HM_markise:state] eq "closed" and [Wetterstation:luminosity] >= "36000" and [Wetterstation:UVR] >= "350" and [wettervorhersage:fc1_high_c] >= "17" and [twilight:azimuth] >= "219" and [twilight:azimuth] < "265" and [twilight:elevation:d1] <= "28.7" and [twilight:elevation:d1] > "23.3" and [?HM_rolloEsszimmer:control] > "92" and [HM_drehgriffEsszimmer:state] ne "open") (setreading $SELF doifState fhemCmd) (set HM_rolloEsszimmer pct 92) ## L11
DOELSEIF ([HM_markise:state] eq "closed" and [Wetterstation:luminosity] >= "36000" and [Wetterstation:UVR] >= "350" and [wettervorhersage:fc1_high_c] >= "17" and [twilight:azimuth] >= "265" and [twilight:azimuth] < "292" and [twilight:elevation:d1] <= "30.3" and [twilight:elevation:d1] > "24.5" and [?HM_rolloEsszimmer:control] > "92" and [HM_drehgriffEsszimmer:state] ne "open") (setreading $SELF doifState fhemCmd) (set HM_rolloEsszimmer pct 92) ## L12
DOELSEIF ([HM_markise:state] eq "closed" and [Wetterstation:luminosity] >= "36000" and [Wetterstation:UVR] >= "350" and [wettervorhersage:fc1_high_c] >= "17" and [twilight:azimuth] >= "292" and [twilight:azimuth] < "301" and [twilight:elevation:d1] <= "22.3" and [twilight:elevation:d1] > "18.7" and [?HM_rolloEsszimmer:control] > "92" and [HM_drehgriffEsszimmer:state] ne "open") (setreading $SELF doifState fhemCmd) (set HM_rolloEsszimmer pct 92) ## L13
DOELSEIF ([HM_markise:state] eq "closed" and [Wetterstation:luminosity] >= "36000" and [Wetterstation:UVR] >= "350" and [wettervorhersage:fc1_high_c] >= "17" and [twilight:azimuth] >= "202" and [twilight:azimuth] < "229" and [twilight:elevation:d1] <= "23.7" and [twilight:elevation:d1] > "18.4" and [?HM_rolloEsszimmer:control] > "92" and [HM_drehgriffEsszimmer:state] ne "open") (setreading $SELF doifState fhemCmd) (set HM_rolloEsszimmer pct 92) ## R11
DOELSEIF ([HM_markise:state] eq "closed" and [Wetterstation:luminosity] >= "36000" and [Wetterstation:UVR] >= "350" and [wettervorhersage:fc1_high_c] >= "17" and [twilight:azimuth] >= "229" and [twilight:azimuth] < "265" and [twilight:elevation:d1] <= "30.5" and [twilight:elevation:d1] > "26.2" and [?HM_rolloEsszimmer:control] > "92" and [HM_drehgriffEsszimmer:state] ne "open") (setreading $SELF doifState fhemCmd) (set HM_rolloEsszimmer pct 92) ## R12
DOELSEIF ([HM_markise:state] eq "closed" and [Wetterstation:luminosity] >= "36000" and [Wetterstation:UVR] >= "350" and [wettervorhersage:fc1_high_c] >= "17" and [twilight:azimuth] >= "265" and [twilight:azimuth] < "288" and [twilight:elevation:d1] <= "30.1" and [twilight:elevation:d1] > "25.5" and [?HM_rolloEsszimmer:control] > "92" and [HM_drehgriffEsszimmer:state] ne "open") (setreading $SELF doifState fhemCmd) (set HM_rolloEsszimmer pct 92) ## R13


Ich möchte erreichen, dass bei allen Kommandos außer dem ersten ein bestimmtes Event erzeugt wird.

Ich habe das mangels Kenntnissen zunächst mit (setreading $SELF doifState fhemCmd) gelöst.

Mein Problem wird sein, dass ich dieses Event auch von anderen Devices erzeugen wollen werde.

Gruß Chris

Edit:

In der Commandref habe ich das hier gefunden:

Bespiele für Event(abfragen):

["FS"] triggert auf alle Devices, die "FS" im Namen beinhalten.
["^FS"] triggert auf alle Devices, die mit "FS" im Namen anfangen.
["FS:temp"] triggert auf alle Devices, die "FS" im Namen und "temp" im Event beinhalten
([":^temp"]) triggert auf beliebige Devices, die im Event mit "temp" beginnen.
(["^FS$:^temp$"] trigger auf Devices, die genau "FS" heißen und im Event genau "temp" vorkommt.
[""] triggert auf alles.


Leider ist da triggert auf ein bestimmtes Event, unabhängig davon, welches Device dieses erzeugte.
Titel: Antw:Events erzeugen
Beitrag von: CoolTux am 14 Oktober 2018, 09:53:04
Zitat von: chq am 14 Oktober 2018, 09:47:34
Ach so, Du meinst, dass ich nicht erst ein bestimmtes Event über ein extra erzeugtes Reading erstellen muss, sondern bereits ohnehin erzeugt Events verwende.

Ein list von dem betreffenden Device sprengt vermutlich den Rahmen der in einem Posting möglichen Anzahl an Zeichen.

Hier aber zumindest mal ein Ausschnitt der ersten Zeilen:

DEF        ([00:00]) () ## idle

## Tageshöchsttemperatur über 17 Grad (Ausführung jederzeit):

DOELSEIF ([HM_markise:state] eq "closed" and [Wetterstation:luminosity] >= "36000" and [Wetterstation:UVR] >= "350" and [wettervorhersage:fc1_high_c] >= "17" and [twilight:azimuth] >= "219" and [twilight:azimuth] < "265" and [twilight:elevation:d1] <= "28.7" and [twilight:elevation:d1] > "23.3" and [?HM_rolloEsszimmer:control] > "92" and [HM_drehgriffEsszimmer:state] ne "open") (setreading $SELF doifState fhemCmd) (set HM_rolloEsszimmer pct 92) ## L11
DOELSEIF ([HM_markise:state] eq "closed" and [Wetterstation:luminosity] >= "36000" and [Wetterstation:UVR] >= "350" and [wettervorhersage:fc1_high_c] >= "17" and [twilight:azimuth] >= "265" and [twilight:azimuth] < "292" and [twilight:elevation:d1] <= "30.3" and [twilight:elevation:d1] > "24.5" and [?HM_rolloEsszimmer:control] > "92" and [HM_drehgriffEsszimmer:state] ne "open") (setreading $SELF doifState fhemCmd) (set HM_rolloEsszimmer pct 92) ## L12
DOELSEIF ([HM_markise:state] eq "closed" and [Wetterstation:luminosity] >= "36000" and [Wetterstation:UVR] >= "350" and [wettervorhersage:fc1_high_c] >= "17" and [twilight:azimuth] >= "292" and [twilight:azimuth] < "301" and [twilight:elevation:d1] <= "22.3" and [twilight:elevation:d1] > "18.7" and [?HM_rolloEsszimmer:control] > "92" and [HM_drehgriffEsszimmer:state] ne "open") (setreading $SELF doifState fhemCmd) (set HM_rolloEsszimmer pct 92) ## L13
DOELSEIF ([HM_markise:state] eq "closed" and [Wetterstation:luminosity] >= "36000" and [Wetterstation:UVR] >= "350" and [wettervorhersage:fc1_high_c] >= "17" and [twilight:azimuth] >= "202" and [twilight:azimuth] < "229" and [twilight:elevation:d1] <= "23.7" and [twilight:elevation:d1] > "18.4" and [?HM_rolloEsszimmer:control] > "92" and [HM_drehgriffEsszimmer:state] ne "open") (setreading $SELF doifState fhemCmd) (set HM_rolloEsszimmer pct 92) ## R11
DOELSEIF ([HM_markise:state] eq "closed" and [Wetterstation:luminosity] >= "36000" and [Wetterstation:UVR] >= "350" and [wettervorhersage:fc1_high_c] >= "17" and [twilight:azimuth] >= "229" and [twilight:azimuth] < "265" and [twilight:elevation:d1] <= "30.5" and [twilight:elevation:d1] > "26.2" and [?HM_rolloEsszimmer:control] > "92" and [HM_drehgriffEsszimmer:state] ne "open") (setreading $SELF doifState fhemCmd) (set HM_rolloEsszimmer pct 92) ## R12
DOELSEIF ([HM_markise:state] eq "closed" and [Wetterstation:luminosity] >= "36000" and [Wetterstation:UVR] >= "350" and [wettervorhersage:fc1_high_c] >= "17" and [twilight:azimuth] >= "265" and [twilight:azimuth] < "288" and [twilight:elevation:d1] <= "30.1" and [twilight:elevation:d1] > "25.5" and [?HM_rolloEsszimmer:control] > "92" and [HM_drehgriffEsszimmer:state] ne "open") (setreading $SELF doifState fhemCmd) (set HM_rolloEsszimmer pct 92) ## R13


Ich möchte erreichen, dass bei allen Kommandos außer dem ersten ein bestimmtes Event erzeugt wird.

Gruß Chris

Ok verstehe.
Ich gebe zu das so gut wie alles unter FHEM ein Device ist. Dennoch sprechen meistens nur von ein Device wenn es etwas ist was den Zustand eines physikalischen Gerätes anzeigt oder verändern kann.
Was Du hast in ein DOIF. Deine Frage ist also besser im Forum für DOIF auf gehoben. Und wenn Deine DOIF Definition den Ramen des Forumeditors sprengt, stimmt etwas mit Deiner Herangehensweise nicht.



Grüße
Titel: Antw:Events erzeugen
Beitrag von: chq am 14 Oktober 2018, 09:56:59
Meine DOIF-Definition sprengt nicht die Zeichenanzahl des Foreneditors, vermutlich aber ein list des Devices.

Bitte schau Dir das hier noch an:

In der Commandref habe ich das hier gefunden:

Bespiele für Event(abfragen):

["FS"] triggert auf alle Devices, die "FS" im Namen beinhalten.
["^FS"] triggert auf alle Devices, die mit "FS" im Namen anfangen.
["FS:temp"] triggert auf alle Devices, die "FS" im Namen und "temp" im Event beinhalten
([":^temp"]) triggert auf beliebige Devices, die im Event mit "temp" beginnen.
(["^FS$:^temp$"] trigger auf Devices, die genau "FS" heißen und im Event genau "temp" vorkommt.
[""] triggert auf alles.

Leider ist da triggert auf ein bestimmtes Event, unabhängig davon, welches Device dieses erzeugte.

Gruß Chris
Titel: Antw:Events erzeugen
Beitrag von: CoolTux am 14 Oktober 2018, 10:02:56
Es gibt aber auch Beispiele auf das triggern von bestimmten Device und Readings.
Und es werden Events nicht abgefragt sondern darauf reagiert (triggern)

Bitte verschiebe Deinen Thread in das richtige Forum, da kann man Dir besser helfen. Ich kenne mich zu wenig mit DOIF aus.
Mal davon ab ist das
(["^FS$:^temp$"] trigger auf Devices, die genau "FS" heißen und im Event genau "temp" vorkommt.
doch genau das was Du suchst.
Titel: Antw:Events erzeugen
Beitrag von: chq am 14 Oktober 2018, 10:04:45
Das hat mir geholfen. 1000 Dank!

Gruß Chris
Titel: Antw:Events erzeugen
Beitrag von: CoolTux am 14 Oktober 2018, 10:06:33
ok, dann bitte noch auf gelöst setzen. Danke Dir