FHEM Forum

FHEM => Automatisierung => Thema gestartet von: tboston am 03 Februar 2016, 19:22:16

Titel: Licht und Kaffeemaschine an wenn xxx
Beitrag von: tboston am 03 Februar 2016, 19:22:16
Hi,

könnte mir jemand mit etwas Code behilflich sein um meinem Ziel näher zu kommen?

Es soll folgendes passieren: FHEM soll 5min. nachdem mein Handy mich geweckt hat das Licht im Wohnzimmer anmachen, aber nur wenn Twilight sagt, dass es noch nicht hell ist. Die Kaffeemaschine soll so oder so 5 Minuten nach dem wecken geschalten werden. Das Ganze allerdings nur wenn mein Handy "present" ist,
Die checks vom Handy habe ich schon via AMAD realisiert. Die Schaltungen funktionieren auch. Nur habe ich absolut keinen Plan wie ich fhem die ganze Sache erkläre.

Danke euch im Voraus!

--
Tony
Titel: Antw:Licht und Kaffeemaschine an wenn xxx
Beitrag von: ujaudio am 03 Februar 2016, 20:17:59
...schon mal notify und/oder DOIF in der commandref gelesen? Um überhaupt weiter helfen zu können: anhand welcher Information weiß FHEM, dass dein Handy dich geweckt hat?
Titel: Antw:Licht und Kaffeemaschine an wenn xxx
Beitrag von: tboston am 03 Februar 2016, 20:19:38
Ja habe ich gelesen. Nur will ich da nix falsch machen. FHEM weiß das durch das AMAD Modul welches die Daten vom Handy zieht.
Titel: Antw:Licht und Kaffeemaschine an wenn xxx
Beitrag von: Wuppi68 am 03 Februar 2016, 20:30:27
na das ist doch relativ einfach logisch aufzudröseln

notify WeckerKlingeltGerade setzte Timer auf +5 Minuten Kaffeemaschine ein und Licht an

Titel: Antw:Licht und Kaffeemaschine an wenn xxx
Beitrag von: tboston am 03 Februar 2016, 20:31:51
Ich bin mir noch unsicher wie ich z.B. sage, dass er Twilight auf "isday" checken soll.
Titel: Antw:Licht und Kaffeemaschine an wenn xxx
Beitrag von: CoolTux am 03 Februar 2016, 20:32:16
Also um genau zu sein hält AMAD ein Reading vor in dem die Weckzeit drin steht.
Du kannst auf das Reading ein notify Triggern lassen welches wiederum ein at anlegt mit der Wegzeit + 5 Minuten. Darin kannst Du dann eine 99myUtils sub starten lassen für die ganzen Abfragen.

Am besten Du machst es Stück für Stück. Bau erstmal ein Notify was triggert und ein at mit der Weckzeit anlegt. Wenn Du das hast und nicht weiter kommst poste den Code hier.
Titel: Antw:Licht und Kaffeemaschine an wenn xxx
Beitrag von: CoolTux am 03 Februar 2016, 20:40:52
Du kannst es auch noch einfacher machen.
Ich verwende das Residents Modul, welches einen Wecker pro Bewohner hast. Du kannst auf die Weckzeit des Androiddevices triggern und den EVENT an den Residents Wecker weiter reichen. Der Wecker löst dann Skripte aus in denen Du Deine Abfragen machen kannst.

Bei Twilight Frage ich immer state in Verbindung mit Twilight_weather ab.

Zum Beispiel.


Value("DeviceName") < 6 && ReadingsVal("DeviceName","Twilight_weather", 0) < 55
Titel: Antw:Licht und Kaffeemaschine an wenn xxx
Beitrag von: tboston am 03 Februar 2016, 21:58:24
Kann ich dem RESIDENT Modul sagen, dass es sich die Weckzeit vom AMAD Modul/AndroidDevice holen soll?
Titel: Antw:Licht und Kaffeemaschine an wenn xxx
Beitrag von: CoolTux am 03 Februar 2016, 22:09:05
Nein. Du nimmst ein Notify welches auf des korrekte Reading Deines AMAD Devices triggert und schreibst dann das EVENT in den Wecker vom Residents Modul.


define notifySetWakeupTimer AMADdevice:nextAlarmTime.* set rr_NAME_wakeuptimer1 nextRun $EVENT


Eventuell musst Du $EVENT splitten. Also den Wert für $EVENT. Dann halt statt $EVENT $EVTPART1 oder 2. Musst mal im Eventmonitor schauen welcher Event genau ausgelöst wird wenn das nextAlarmTime Reading gesetzt wird.



Grüße
Titel: Antw:Licht und Kaffeemaschine an wenn xxx
Beitrag von: tboston am 04 Februar 2016, 06:48:41
Zitat von: CoolTux am 03 Februar 2016, 22:09:05


define notifySetWakeupTimer AMADdevice:nextAlarmTime.* set rr_NAME_wakeuptimer1 nextRun $EVENT



Habs jetzt mal so gemacht:

define notifySetWakeupTimer RESIDENTS androidPhone:nextAlarmTime.* set rr_Andreas_wakeuptimer1 nextRun $EVENT

ohne RESIDENTS ging das nicht.

Nun hat er allerdings ein neues Home State Device RESIDENTS angelegt
Titel: Antw:Licht und Kaffeemaschine an wenn xxx
Beitrag von: tboston am 04 Februar 2016, 07:04:46
define setWakeupTimer notify androidPhone:nextAlarmTime.* set rr_Andreas_wakeuptimer1 nextRun $EVENT

So sollte das passen oder?
Titel: Antw:Licht und Kaffeemaschine an wenn xxx
Beitrag von: CoolTux am 04 Februar 2016, 07:11:09
Guten Morgen

Halte mal kurz inne bitte. Mehr Text kommt gleich.
Titel: Antw:Licht und Kaffeemaschine an wenn xxx
Beitrag von: CoolTux am 04 Februar 2016, 07:31:52
Zitat von: tboston am 04 Februar 2016, 06:48:41
Habs jetzt mal so gemacht:

define notifySetWakeupTimer RESIDENTS androidPhone:nextAlarmTime.* set rr_Andreas_wakeuptimer1 nextRun $EVENT

ohne RESIDENTS ging das nicht.

Nun hat er allerdings ein neues Home State Device RESIDENTS angelegt

Bitte mal das angelegte Gerät löschen was man hier auf den Screen sieht. Ich weiß zwar nicht wie Du das hinbekommen hast, aber so ist das mehr wie falsch.

Memo an mich selbst. Lerne mehr auf die Anfänger ein zu gehen!!!

So! Nun aber. Also der Text oben ist nicht bös gemeint. Das ist echt nur was für mich. So wie ich die Lösung Dir geschrieben habe sollte man das auf keinen Fall einen Einsteiger präsentieren.

Als aller erstes möchte ich Dich bitten das Einsteiger PDF zu lesen. Das ist sehr wichtig. Es ist unabdingbar das Du verstehen lernst was genau der "Code" den ich geschrieben habe bewirkt.

Nun zu Deinen angelegten Geräten. Wie gesagt, lösche bitte das Residents Gerät und lösche auch das Notify vom zweiten Screen!!!

NOCH MAL UND DAS MEINE ICH WIRKLICH SO. Lese zu erst das Einsteiger PDF!!!!!!!


Ich erzähle Dir kurz wie es weiter gehen kann wenn Du das PDF gelesen hast.
Du legst ein Residents Gerät an. Wie das geht liest Du hier (http://fhem.de/commandref_DE.html#RESIDENTS) nach. Wenn Du das gemacht hast hast Du wie Du schon bemerkt hast ein Home State Device RESIDENTS. Das Device spiegelt quasi Deine Wohnung oder Dein Haus wieder. Was fehlt sind noch die Bewohner. Wie man die anlegt erfährst Du hier (http://fhem.de/commandref_DE.html#ROOMMATE).
Desweiteren wurden auch kleine Skripte angelegt welche im Namen sowas tragen wie sleep, asleep und wakeuptimer1. Dazu später mehr.

Wenn Du das hast, hast Du ein Residents Gerät für Deine Wohnung und 1-x Roommate Geräte für Deine Bewohner. Was passiert nun. Je nachdem wie der Status Deiner Bewohner ist, ändert sich der Status des Residents/Wohnung Gerät. Mal kurz ein Beispiel anhand Deiner Anforderung. Du hast am Tag davor alle Bewohner schlafen/asleep gelegt und hast den Residents Wecker für Deinen Bewohner gestellt. Dieser Wecker löst um die Weckzeit das Skript wakeuptimer1 aus in dem stehen kann. Spiele Musik am Tablet im Schlafzimmer ab und ändere nach 5 Minuten meinen Bewohnerstatus auf awoken. Wenn der Status auf awoken geändert wird, wird ein weiteres Skript gestartet, das awoken skript, in dem steht nun drin das die Kaffeemaschine angehen soll und das Licht angehen soll, in Abhängigkeit vom Tageslicht.

Du siehst wenn man erstmal die Voraussetzungen geschaffen hat, wird es einfacher. Und das beste, Du machst das ganze mit Residents und Co Zukunftsorientiert. Du hast virtuelle Bewohner und Wohnung womit Du in fhem arbeiten kannst.


Mach das bitte erstmal so und dann schauen wir weiter.
Und ganz dolle wichtig, bitte lese die Dokus




Grüße
Leon
Titel: Antw:Licht und Kaffeemaschine an wenn xxx
Beitrag von: tboston am 04 Februar 2016, 07:39:25
Guten Morgen und danke für die Mühe und Erläuterung.

RESIDENTS und dazugehörigen Bewohner habe ich schon siehe Screenshot.

Ja ich werde die Doku nochmal lesen.

Was ich schwierig finde, die Erklärungen zu z.B. Notify sind so ein Mix aus englisch und deutsch. Da weiß man als Laie nicht unbedingt wo denn nun ein fixes Modul genannt wird oder wo man selbst einen Namen vergeben muss. (Ich hoffe du weißt was ich damit meine)

Ich muss nun mal rausfinden wie die Syntax genau ist und wann, was erwartet wird in einem Befehl.

Danke dir nochmal

Grüße
Andreas
Titel: Antw:Licht und Kaffeemaschine an wenn xxx
Beitrag von: CoolTux am 04 Februar 2016, 07:52:12
Na das sieht doch schon mal gut aus.
Kleiner Tip, änder mal den Namen vom Residentsgerät. Vielleicht in Deine Strasse oder so. Ausserdem verwende bei Gerätenamen keine Leerzeichen. Nimm Unterstriche oder besser schreibe zusammen und fange mit kleinem Buchstaben an. Im Fall Deiner Straße kannst das gerne so machen


define AnniKraussStr residents bla bla


Wichtig!!! Wenn Du ein neues Dir unbekanntes Modul verwendest, lese immer zu erst die Commandref. Da steht alles wichtige drin, vorallem die Syntax zum anlegen des Gerätes.
In den meisten Fällen ist das so


define <vonDirGewählterGerätename> <MODULNAME> <OPTIONEN>


Auf jeden Fall ist Dein Residents und Roomate schon mal da. Mach mal bitte folgendes


list RESIDENTSNAME

list BEWOHNERNAME


und kopiere das Ergebnis hier rein. Bitte CODE TAGS verwenden.
Titel: Antw:Licht und Kaffeemaschine an wenn xxx
Beitrag von: tboston am 04 Februar 2016, 09:19:37
Hier mal der Output

list GrossenhainerStr

Internals:
   CFGFN
   CHANGED
   NAME       GrossenhainerStr
   NR         2984
   NTFY_ORDER 50-GrossenhainerStr
   ROOMMATES  rr_Andreas
   STATE      home
   TYPE       RESIDENTS
   Readings:
     2016-02-04 09:17:51   lastActivity    home
     2016-02-04 09:17:51   lastActivityBy  Andreas
     2016-02-04 09:17:51   lastActivityByDev rr_Andreas
     2016-02-04 09:17:51   lastArrival     2016-02-04 09:17:51
     2016-02-04 09:17:51   lastState       initialized
     2016-02-04 09:17:51   presence        present
     2016-02-04 09:17:51   residentsAbsent 0
     2016-02-04 09:17:51   residentsAbsentDevs -
     2016-02-04 09:17:51   residentsAbsentNames -
     2016-02-04 09:17:51   residentsAsleep 0
     2016-02-04 09:17:51   residentsAsleepDevs -
     2016-02-04 09:17:51   residentsAsleepNames -
     2016-02-04 09:17:51   residentsAwoken 0
     2016-02-04 09:17:51   residentsAwokenDevs -
     2016-02-04 09:17:51   residentsAwokenNames -
     2016-02-04 09:17:51   residentsGone   0
     2016-02-04 09:17:51   residentsGoneDevs -
     2016-02-04 09:17:51   residentsGoneNames -
     2016-02-04 09:17:51   residentsGotosleep 0
     2016-02-04 09:17:51   residentsGotosleepDevs -
     2016-02-04 09:17:51   residentsGotosleepNames -
     2016-02-04 09:17:51   residentsHome   1
     2016-02-04 09:17:51   residentsHomeDevs rr_Andreas
     2016-02-04 09:17:51   residentsHomeNames Andreas
     2016-02-04 09:17:51   residentsTotal  1
     2016-02-04 09:17:51   residentsTotalAbsent 0
     2016-02-04 09:17:51   residentsTotalAbsentDevs -
     2016-02-04 09:17:51   residentsTotalAbsentNames -
     2016-02-04 09:17:51   residentsTotalGuests 0
     2016-02-04 09:17:51   residentsTotalGuestsAbsent 0
     2016-02-04 09:17:51   residentsTotalGuestsAbsentDevs -
     2016-02-04 09:17:51   residentsTotalGuestsAbsentNames -
     2016-02-04 09:17:51   residentsTotalGuestsPresent 0
     2016-02-04 09:17:51   residentsTotalGuestsPresentDevs -
     2016-02-04 09:17:51   residentsTotalGuestsPresentNames -
     2016-02-04 09:17:51   residentsTotalPresent 1
     2016-02-04 09:17:51   residentsTotalPresentDevs rr_Andreas
     2016-02-04 09:17:51   residentsTotalPresentNames Andreas
     2016-02-04 09:17:51   residentsTotalRoommates 1
     2016-02-04 09:17:51   residentsTotalRoommatesAbsent 0
     2016-02-04 09:17:51   residentsTotalRoommatesAbsentDevs -
     2016-02-04 09:17:51   residentsTotalRoommatesAbsentNames -
     2016-02-04 09:17:51   residentsTotalRoommatesPresent 1
     2016-02-04 09:17:51   residentsTotalRoommatesPresentDevs rr_Andreas
     2016-02-04 09:17:51   residentsTotalRoommatesPresentNames Andreas
     2016-02-04 09:17:51   residentsTotalWakeup 0
     2016-02-04 09:17:51   residentsTotalWakeupDevs -
     2016-02-04 09:17:51   residentsTotalWakeupNames -
     2016-02-04 09:17:51   residentsTotalWayhome 0
     2016-02-04 09:17:51   residentsTotalWayhomeDelayed 0
     2016-02-04 09:17:51   residentsTotalWayhomeDelayedDevs -
     2016-02-04 09:17:51   residentsTotalWayhomeDelayedNames -
     2016-02-04 09:17:51   residentsTotalWayhomeDevs -
     2016-02-04 09:17:51   residentsTotalWayhomeNames -
     2016-02-04 09:17:51   state           home
Attributes:
   alias      Residents
   devStateIcon .*home:status_available:absent .*absent:status_away_1:home .*gone:status_standby:home .*none:control_building_empty .*gotosleep:status_night:asleep .*asleep:status_night:awoken .*awoken:status_available:home .*:user_unknown:home
   group      Home State
   icon       control_building_filled
   room       Residents
   webCmd     state


list Andreas

No device named Andreas found


Titel: Antw:Licht und Kaffeemaschine an wenn xxx
Beitrag von: CoolTux am 04 Februar 2016, 09:22:36
Zitat von: tboston am 04 Februar 2016, 09:19:37
Hier mal der Output

list Andreas

No device named Andreas found

Das kann auch nicht gehen. Du hast das Gerät ja auch rr_Andreas genannt


list rr_Andreas


Deine Residents sieht aber gut und sauber aus. Wunderbar.
Titel: Antw:Licht und Kaffeemaschine an wenn xxx
Beitrag von: tboston am 04 Februar 2016, 09:29:54
 :D

Internals:
   CFGFN
   DEF        GrossenhainerStr
   NAME       rr_Andreas
   NR         2986
   NTFY_ORDER 50-rr_Andreas
   RESIDENTGROUPS GrossenhainerStr,
   STATE      absent
   TYPE       ROOMMATE
   Readings:
     2016-02-04 09:29:12   durTimerAbsence 00:10:00
     2016-02-04 09:29:12   durTimerAbsence_cr 10
     2016-02-04 09:19:12   durTimerPresence 00:00:00
     2016-02-04 09:19:12   durTimerPresence_cr 0
     2016-02-04 09:17:51   durTimerSleep   00:00:00
     2016-02-04 09:17:51   durTimerSleep_cr 0
     2016-02-04 09:17:51   lastArrival     2016-02-04 09:17:51
     2016-02-04 09:19:12   lastDeparture   2016-02-04 09:19:12
     2016-02-04 09:19:12   lastDurPresence 00:01:21
     2016-02-04 09:19:12   lastDurPresence_cr 1
     2016-02-04 09:19:12   lastLocation    undefined
     2016-02-04 09:19:12   lastMood        calm
     2016-02-04 09:19:12   lastState       home
     2016-02-04 09:19:12   location        underway
     2016-02-04 09:19:12   mood            -
     2016-02-04 09:19:12   presence        absent
     2016-02-04 09:19:12   state           absent
     2016-02-04 09:17:51   wayhome         0
   Timer:
     Rr_andreas_autogone:
       HASH       rr_Andreas
       MODIFIER   AutoGone
       NAME       rr_Andreas_AutoGone
     Rr_andreas_durationtimer:
       HASH       rr_Andreas
       MODIFIER   DurationTimer
       NAME       rr_Andreas_DurationTimer
Attributes:
   alias      Status
   devStateIcon .*home:user_available:absent .*absent:user_away:home .*gone:user_ext_away:home .*gotosleep:scene_toilet:asleep .*asleep:scene_sleeping:awoken .*awoken:scene_sleeping_alternat:home .*:user_unknown:home
   group      Andreas
   icon       people_sensor
   room       Residents
   rr_realname group
   sortby     1
   webCmd     state
Titel: Antw:Licht und Kaffeemaschine an wenn xxx
Beitrag von: CoolTux am 04 Februar 2016, 09:36:34
Auch gut so wie ich das sehe.
Allerdings wundert es mich das Dein Residents auf home steht, Dein Roommate aber auf absent.

Es ist nämlich so, die Roommates steuern indirekt das Residents. Also nicht das Residents selbst ändern, nur immer die Roommates/Bewohner

Jetzt legst Du einen Wecker an.


set rr_Andreas create wakeuptimer


Grüße
Titel: Antw:Licht und Kaffeemaschine an wenn xxx
Beitrag von: tboston am 04 Februar 2016, 09:42:23
das erste listing habe ich Zuhause gemacht, mittlerweile bin ich aber schon auf Arbeit und habe dann das zweite listing gemacht :)

WakeUpTimer ist erledigt

Titel: Antw:Licht und Kaffeemaschine an wenn xxx
Beitrag von: CoolTux am 04 Februar 2016, 09:54:46
Super.

Nun müsstest Du im Room Residents einige Devices haben. rr_Andreas, GrossenhainerStr und rr_Andreas_wakeuptimer1.

Ausserdem einige Skripte. Macro_rr_Andreas_ und Macro_ GrossenhainerStr_, richtig?
Titel: Antw:Licht und Kaffeemaschine an wenn xxx
Beitrag von: tboston am 04 Februar 2016, 09:59:22
richtig
Titel: Antw:Licht und Kaffeemaschine an wenn xxx
Beitrag von: CoolTux am 04 Februar 2016, 10:43:37
Und weiste schon wie es nun weiter geht?
Titel: Antw:Licht und Kaffeemaschine an wenn xxx
Beitrag von: tboston am 04 Februar 2016, 11:13:09
nun sollte ich doch dem WakeUpTimer sagen, dass er die Weckzeit von AMAD bekommt denke ich. Vielleicht auch noch wie oft er das checken soll, falls es sich geändert hat.
Dann muss ich natürlich noch sagen, was denn dann getan werden soll wenn ich geweckt wurde. Also Licht an wenn noch nicht hell und Kaffeemaschine scharfschalten.
Titel: Antw:Licht und Kaffeemaschine an wenn xxx
Beitrag von: CoolTux am 04 Februar 2016, 11:35:04
Richtig.
Checken musst Du nicht, das Notify reagiert auf jeden Trigger welches das Reading auslöst. Und das erfolgt in der Regel alle 3 Minuten.
Gut wäre wenn Du Deinem AMAD Device nich ein Attibut Namens event-on-change-Reading mit Wert .* verpasst. Also


attr AMADDEVICE event-on-change-reading .*


Somit erfolgt lediglich ein Event wenn das Reading sich ändert.

Das notify wird dann so aussehen

define notifySetAndreasWakeUpTime notify HandyAndreas:nextAlarmTime.* set rr_Andreas_wakeuptimer1 nextRun $EVENT


In der Hoffnung das $EVENT wirklich nur die Zeit beinhaltet.
Das testen wir dann erstmal. Und dann schauen wir uns die Weckskripte an.



Grüße
Titel: Antw:Licht und Kaffeemaschine an wenn xxx
Beitrag von: Icinger am 04 Februar 2016, 11:41:58
Sorry, wenn ich mich hier kurz einmische, aber hier mal eine Version, wie's bei mir läuft:
define di_Kaffeemaschine_neu DOIF ([[di_Kaffeemaschine_neu:Einschaltzeit]-16:30] and [rr_Stefan:state] eq "home")
    (set KU_Wippschalter_Kaffee_Sw02_Kaffee on)
DOELSEIF ([01:00])
    (IF  ([Stefan_Handy:nextAlarmDayc] eq $wday)
({ fhem "setreading di_Kaffeemaschine_neu Einschaltzeit ".TU_Get_Decrement(ReadingsVal("Stefan_Handy","nextAlarmTimef","06:30:00"),"00:15:00")}),
IF ([Stefan_Handy:nextAlarmDayc] == -1)
    ({ fhem "setreading di_Kaffeemaschine_neu Einschaltzeit 06:30:00"}))
DOELSE (set KU_Wippschalter_Kaffee_Sw02_Kaffee off)


Damit wird 15 Minuten, BEVOR mein Wecker losgeht, die Kaffeemaschine eingeschaltet. Wenn ich für den aktuellen Tag keinen Wecker aktiv habe, wirds automatisch auf 06:30 gestellt.
Und das auch nur, wenn ich daheim bin.
AMAD liefert den Wochentag leider nur als Text und die Weckzeit nur im Format "hh:mm", daher habe ich im AMAD noch 2 Userreadings:
attr Stefan_Handy userReadings nextAlarmDayc:nextAlarmDay {my %d=("Mo"=>1,"Di"=>2,"Mi"=>3,"Do"=>4,"Fr"=>5,"Sa"=>6,"So"=>0,""=>-1);return $d{ReadingsVal("Stefan_Handy","nextAlarmDay",0)};},nextAlarmTimef:nextAlarmTime {my $a=ReadingsVal("Stefan_Handy","nextAlarmTime","00:00");return $a eq ""?-1:$a.":00"}

lg, Stefan
Titel: Antw:Licht und Kaffeemaschine an wenn xxx
Beitrag von: CoolTux am 04 Februar 2016, 11:49:49
Hallo Stefan,

Was hälst Du davon wenn ich das ändere. So das AMAD den Wochentag als Zahl liefert so wie andere Module das auch tun. Das selbige kann ich gerne auch für die Uhrzeit machen.


Grüße
Titel: Antw:Licht und Kaffeemaschine an wenn xxx
Beitrag von: Icinger am 04 Februar 2016, 11:56:10
Von mir aus gerne, wäre für die Weiterverarbeitung im DOIF zB hilfreich....
Kann aber auch ganz gut mit den Userreadings leben.
Nicht, dass es dann Probleme mit anderen gibt, die die bisherigen Werte schon so verarbeiten.
Alternativ vielleicht eben so wie ich's habe ein zweites Reading.

lg, Stefan
Titel: Antw:Licht und Kaffeemaschine an wenn xxx
Beitrag von: CoolTux am 04 Februar 2016, 12:07:25
Ich schaue es mir mal an. Wäre für mich wieder etwas neues was ich lernen würde.    ;D
Ich berichte dann im entsprechenden Thread.


Grüße
Titel: Antw:Licht und Kaffeemaschine an wenn xxx
Beitrag von: tboston am 04 Februar 2016, 19:15:43
Zitat von: CoolTux am 04 Februar 2016, 11:35:04
Richtig.
Checken musst Du nicht, das Notify reagiert auf jeden Trigger welches das Reading auslöst. Und das erfolgt in der Regel alle 3 Minuten.
Gut wäre wenn Du Deinem AMAD Device nich ein Attibut Namens event-on-change-Reading mit Wert .* verpasst. Also


attr AMADDEVICE event-on-change-reading .*


Somit erfolgt lediglich ein Event wenn das Reading sich ändert.

Das notify wird dann so aussehen

define notifySetAndreasWakeUpTime notify HandyAndreas:nextAlarmTime.* set rr_Andreas_wakeuptimer1 nextRun $EVENT


In der Hoffnung das $EVENT wirklich nur die Zeit beinhaltet.
Das testen wir dann erstmal. Und dann schauen wir uns die Weckskripte an.



Grüße

So...endlich Zuhause und ausgeführt. Danke für die Geduld!

Titel: Antw:Licht und Kaffeemaschine an wenn xxx
Beitrag von: CoolTux am 04 Februar 2016, 19:37:09
Gut. Hast Du event-on-change-reading gesetzt?
Hast mal getestet ob das Notify korrekt klappt und Dein FHEM Wecker entsprechend gestellt wird?
Titel: Antw:Licht und Kaffeemaschine an wenn xxx
Beitrag von: tboston am 04 Februar 2016, 19:39:14
Habe ich gesetzt, Wecker wird auch gestellt aber das macht RESIDENTS selbst ohne AMAD nach der zeit zu fragen wie es scheint. Eigentlicher Wecker ist 6:30, in RESIDENTS aber 5:00

edit: also der wakeUpTimer1 hat die korrekte Zeit. Nur im Room RESIDENTS steht halt 5:00, siehe Screenshots
Titel: Antw:Licht und Kaffeemaschine an wenn xxx
Beitrag von: CoolTux am 04 Februar 2016, 19:56:27
Nee das passt schon so. Das ist ja nur das at aber dein wakeuptimer steht auf off.

mach mal bitte ein list von Dein notify
Titel: Antw:Licht und Kaffeemaschine an wenn xxx
Beitrag von: tboston am 04 Februar 2016, 19:58:20
Internals:
   CFGFN
   DEF        androidPhone:nextAlarmTime.* set rr_Andreas_wakeuptimer1 nextRun $EVENT
   NAME       notifySetAndreasWakeUpTime
   NOTIFYDEV  androidPhone
   NR         4149
   NTFY_ORDER 50-notifySetAndreasWakeUpTime
   REGEXP     androidPhone:nextAlarmTime.*
   STATE      active
   TYPE       notify
   Readings:
     2016-02-04 19:14:20   state           active
Attributes:


ist das das richtige?
Titel: Antw:Licht und Kaffeemaschine an wenn xxx
Beitrag von: CoolTux am 04 Februar 2016, 20:06:09
Änder mal bitte in


set rr_Andreas_wakeuptimer1 nextRun $EVTPART4


und dann stell mal den wecker in deinem handy


hast event-on-change-reading beim AMAD Device gesetzt
Titel: Antw:Licht und Kaffeemaschine an wenn xxx
Beitrag von: tboston am 04 Februar 2016, 20:11:56
hmm...scheint bei Off zu bleiben
Titel: Antw:Licht und Kaffeemaschine an wenn xxx
Beitrag von: CoolTux am 04 Februar 2016, 20:16:45
gib mal list vom notify und vom wakeuptimer1
Titel: Antw:Licht und Kaffeemaschine an wenn xxx
Beitrag von: tboston am 04 Februar 2016, 20:20:09
Internals:
   CFGFN
   DEF        androidPhone:nextAlarmTime.* set rr_Andreas_wakeuptimer1 nextRun $EVENT
   NAME       notifySetAndreasWakeUpTime
   NOTIFYDEV  androidPhone
   NR         4149
   NTFY_ORDER 50-notifySetAndreasWakeUpTime
   REGEXP     androidPhone:nextAlarmTime.*
   STATE      2016-02-04 20:10:00
   TYPE       notify
   Readings:
     2016-02-04 19:14:20   state           active
Attributes:


Internals:
   CFGFN
   NAME       rr_Andreas_wakeuptimer1
   NR         3046
   STATE      nextRun nextAlarmTime: 07:30
   TYPE       dummy
   Readings:
     2016-02-04 11:19:57   nextRun         OFF
     2016-02-04 20:10:00   state           nextRun nextAlarmTime: 07:30
Attributes:
   alias      Wake-up Timer 1
   comment    Auto-created by ROOMMATE module for use with RESIDENTS Toolkit
   devStateIcon OFF:general_aus@red:reset running:general_an@green:stop .*:general_an@orange:nextRun%20OFF
   group      Andreas
   icon       time_timer
   room       Residents
   setList    nextRun:OFF,00:00,00:15,00:30,00:45,01:00,01:15,01:30,01:45,02:00,02:15,02:30,02:45,03:00,03:15,03:30,03:45,04:00,04:15,04:30,04:45,05:00,05:15,05:30,05:45,06:00,06:15,06:30,06:45,07:00,07:15,07:30,07:45,08:00,08:15,08:30,08:45,09:00,09:15,09:30,09:45,10:00,10:15,10:30,10:45,11:00,11:15,11:30,11:45,12:00,12:15,12:30,12:45,13:00,13:15,13:30,13:45,14:00,14:15,14:30,14:45,15:00,15:15,15:30,15:45,16:00,16:15,16:30,16:45,17:00,17:15,17:30,17:45,18:00,18:15,18:30,18:45,19:00,19:15,19:30,19:45,20:00,20:15,20:30,20:45,21:00,21:15,21:30,21:45,22:00,22:15,22:30,22:45,23:00,23:15,23:30,23:45 reset:noArg trigger:noArg start:noArg stop:noArg end:noArg
   sortby     2
   userattr   wakeupOffset:slider,0,1,120 wakeupDefaultTime:OFF,00:00,00:15,00:30,00:45,01:00,01:15,01:30,01:45,02:00,02:15,02:30,02:45,03:00,03:15,03:30,03:45,04:00,04:15,04:30,04:45,05:00,05:15,05:30,05:45,06:00,06:15,06:30,06:45,07:00,07:15,07:30,07:45,08:00,08:15,08:30,08:45,09:00,09:15,09:30,09:45,10:00,10:15,10:30,10:45,11:00,11:15,11:30,11:45,12:00,12:15,12:30,12:45,13:00,13:15,13:30,13:45,14:00,14:15,14:30,14:45,15:00,15:15,15:30,15:45,16:00,16:15,16:30,16:45,17:00,17:15,17:30,17:45,18:00,18:15,18:30,18:45,19:00,19:15,19:30,19:45,20:00,20:15,20:30,20:45,21:00,21:15,21:30,21:45,22:00,22:15,22:30,22:45,23:00,23:15,23:30,23:45 wakeupMacro wakeupUserdevice wakeupAtdevice wakeupResetSwitcher wakeupResetdays:multiple-strict,0,1,2,3,4,5,6 wakeupDays:multiple-strict,0,1,2,3,4,5,6 wakeupHolidays:andHoliday,orHoliday,andNoHoliday,orNoHoliday wakeupEnforced:0,1,2 wakeupWaitPeriod:slider,0,1,360
   wakeupAtdevice at_rr_Andreas_wakeuptimer1
   wakeupMacro Macro_rr_Andreas_wakeuptimer1
   wakeupUserdevice rr_Andreas
   webCmd     nextRun
Titel: Antw:Licht und Kaffeemaschine an wenn xxx
Beitrag von: CoolTux am 04 Februar 2016, 20:24:44
Du solltest doch das Notify ändern in


set rr_Andreas_wakeuptimer1 nextRun $EVTPART4
Titel: Antw:Licht und Kaffeemaschine an wenn xxx
Beitrag von: tboston am 04 Februar 2016, 20:25:23
 Hatte ich auch getan  :o
Titel: Antw:Licht und Kaffeemaschine an wenn xxx
Beitrag von: tboston am 04 Februar 2016, 20:27:49
set rr_Andreas_wakeuptimer1 nextRun $EVTPART4

scheint so nicht zu funktionieren
Titel: Antw:Licht und Kaffeemaschine an wenn xxx
Beitrag von: CoolTux am 04 Februar 2016, 20:29:03

FGFN
   DEF        androidPhone:nextAlarmTime.* set rr_Andreas_wakeuptimer1 nextRun $EVENT
   NAME       notifySetAndreasWakeUpTime
   NOTIFYDEV  androidPhone


Wie kommst darauf das es nicht geht?
sieht nicht so aus. Vergessen zu speichern? Ich hoffe du machst das alles schön über das webfrontend und nicht etwa direkt in der fhem.cfg datei
Titel: Antw:Licht und Kaffeemaschine an wenn xxx
Beitrag von: tboston am 04 Februar 2016, 20:30:43
Ja mache ich via Frontend
Also ich das so eingegeben habe kam einfach die Startseite danach, auch nix zu speichern

Laut screenshot hats wohl doch funktioniert?
Titel: Antw:Licht und Kaffeemaschine an wenn xxx
Beitrag von: CoolTux am 04 Februar 2016, 20:34:14
Also in meiner Testumgebung klappt das. Probier das noch mal
Titel: Antw:Licht und Kaffeemaschine an wenn xxx
Beitrag von: tboston am 04 Februar 2016, 20:36:25
hast du den screenshot gesehen?
Titel: Antw:Licht und Kaffeemaschine an wenn xxx
Beitrag von: CoolTux am 04 Februar 2016, 20:40:28
Gerade gesehen. Ok aber mir fehlt da der  richtige event. Er hat ja die Variable nicht ersetzt.
Stell mal noch mal den Wecker im Handy und beobachte den Eventmonitor. Linke Seite unten findest du den
Titel: Antw:Licht und Kaffeemaschine an wenn xxx
Beitrag von: tboston am 04 Februar 2016, 20:43:47
Im Log siehts gut aus möchte ich meinen

2016-02-04 20:43:02 dummy rr_Andreas_wakeuptimer1 nextRun nextAlarmTime: 06:20
2016-02-04 20:43:02 dummy rr_Andreas_wakeuptimer1 nextRun nextAlarmTime: 06:20
2016-02-04 20:43:02 AMAD androidPhone nextAlarmTime: 06:20
2016-02-04 20:43:02 AMAD androidPhone powerLevel: 38.0
Titel: Antw:Licht und Kaffeemaschine an wenn xxx
Beitrag von: tboston am 04 Februar 2016, 20:46:13
Sollte da aber nicht 'nextRun 06:20' anstatt 'nextRun nextAlarmTime: 06:20' stehen?
Titel: Antw:Licht und Kaffeemaschine an wenn xxx
Beitrag von: CoolTux am 04 Februar 2016, 20:47:27
nextAlarmTime: 06:20   das ist der EVENT.

Änder mal auf $EVTPART2    und ich brauche den Eventmonitor. Log ist erstmal unwichtig
Titel: Antw:Licht und Kaffeemaschine an wenn xxx
Beitrag von: tboston am 04 Februar 2016, 20:55:27
Habs auf $EVTPART2 geändert.
Ja ist das Event Log gewesen. Hier das neue

2016-02-04 20:52:00 dummy rr_Andreas_wakeuptimer1 nextRun nextAlarmTime: 07:20
2016-02-04 20:52:00 dummy rr_Andreas_wakeuptimer1 nextRun nextAlarmTime: 07:20
2016-02-04 20:52:00 AMAD androidPhone nextAlarmTime: 07:20
Titel: Antw:Licht und Kaffeemaschine an wenn xxx
Beitrag von: CoolTux am 04 Februar 2016, 20:57:37
setzt er denn jetzt richtig?
Titel: Antw:Licht und Kaffeemaschine an wenn xxx
Beitrag von: CoolTux am 04 Februar 2016, 20:58:39
Ich muß das mal bei mir nachstellen. Für heute mache ich erstmal Feierabend    ;D
Titel: Antw:Licht und Kaffeemaschine an wenn xxx
Beitrag von: tboston am 04 Februar 2016, 21:00:15
Ist immer noch OFF. Jo schönen Feierabend ^^
Titel: Antw:Licht und Kaffeemaschine an wenn xxx
Beitrag von: CoolTux am 04 Februar 2016, 21:06:59
Fehler gefunden. Habe mich verzählt. Sorry. Nimm $EVTPART1
Titel: Antw:Licht und Kaffeemaschine an wenn xxx
Beitrag von: tboston am 04 Februar 2016, 21:15:03
Also angeschalten wird der (siehe Screenshot) hatte den mal darüber ausgeschalten vorher. Zeit bleibt aber OFF
Titel: Antw:Licht und Kaffeemaschine an wenn xxx
Beitrag von: CoolTux am 04 Februar 2016, 21:19:34
Hast Du EVTPART1 genommen? Bei  mir hat das nämlich super geklappt
Titel: Antw:Licht und Kaffeemaschine an wenn xxx
Beitrag von: tboston am 04 Februar 2016, 21:20:01
jup, habe ich :(
Titel: Antw:Licht und Kaffeemaschine an wenn xxx
Beitrag von: CoolTux am 04 Februar 2016, 21:23:25
gib mal list vom notify und wecker.
und du hast auch die weckzeit verändert? nicht die selbe drin gelassen?
Titel: Antw:Licht und Kaffeemaschine an wenn xxx
Beitrag von: tboston am 04 Februar 2016, 21:29:53
There you go!

2016-02-04 21:28:56 at at_rr_Andreas_wakeuptimer1 Next: 06:30:00
2016-02-04 21:28:56 ROOMMATE rr_Andreas nextWakeupDev: rr_Andreas_wakeuptimer1
2016-02-04 21:28:56 ROOMMATE rr_Andreas nextWakeup: 06:30
2016-02-04 21:28:56 ROOMMATE rr_Andreas nextWakeupDev: rr_Andreas_wakeuptimer1
2016-02-04 21:28:56 ROOMMATE rr_Andreas nextWakeup: 06:30
2016-02-04 21:28:56 dummy rr_Andreas_wakeuptimer1 nextRun 06:30
2016-02-04 21:28:56 dummy rr_Andreas_wakeuptimer1 nextRun: 06:30
2016-02-04 21:28:56 dummy rr_Andreas_wakeuptimer1 06:30
2016-02-04 21:28:56 dummy rr_Andreas_wakeuptimer1 nextRun nextAlarmTime: 06:30
2016-02-04 21:28:56 AMAD androidPhone nextAlarmTime: 06:30


Habe das notify nochmal gelöscht und neu angelegt, nun gehts :D
Titel: Antw:Licht und Kaffeemaschine an wenn xxx
Beitrag von: CoolTux am 04 Februar 2016, 21:32:14
erster Schritt getan, Voraussetzungen geschaffen. Morgen machen wir weiter.

Guts Nächtle
Titel: Antw:Licht und Kaffeemaschine an wenn xxx
Beitrag von: tboston am 04 Februar 2016, 21:32:40
Super, guts nächtle!
Titel: Antw:Licht und Kaffeemaschine an wenn xxx
Beitrag von: CoolTux am 05 Februar 2016, 06:29:54
Guten Morgen,

So weiter geht es nun. Jetzt machen wir uns mal kurz Gedanken über unser Notify und was es eigentlich machen soll.
Es soll unseren FHEM Wecker entsprechend der Weckzeit unseres Handys setzen. Das tut er. Aber was soll passieren wenn keine Weckzeit vorhanden ist?
Unser FHEM Wecker sieht hierfür vor das er auf OFF gestellt wird. Wir müssen also prüfen ob unser Event ein Uhrzeitformat beinhaltet oder einen leeren Teilstring. Weil ja der gesamte Event noch nextAlarmTime beinhaltet. Es läuft also auf eine Bedingungsabfrage hinaus.



Grüße
Titel: Antw:Licht und Kaffeemaschine an wenn xxx
Beitrag von: tboston am 05 Februar 2016, 06:45:43
Guten Morgen,

nunja dann denke ich wird es so ein "DOIF nextAlarmTime = "" wakeUpTimer OFF" oder so ähnlich?
Titel: Antw:Licht und Kaffeemaschine an wenn xxx
Beitrag von: tboston am 05 Februar 2016, 06:57:57
Also ich hab das grad mal gecheckt, der Residents Wecker macht gar nix wenn ich den Wecker am Handy ausschalte.

define setWakeupTimerOffIf DOIF nextAlarmTime "" {set  rr_Andreas_wakeuptimer1 stop}
Titel: Antw:Licht und Kaffeemaschine an wenn xxx
Beitrag von: CoolTux am 05 Februar 2016, 07:17:45
Zitat von: tboston am 05 Februar 2016, 06:57:57
Also ich hab das grad mal gecheckt, der Residents Wecker macht gar nix wenn ich den Wecker am Handy ausschalte.

define setWakeupTimerOffIf DOIF nextAlarmTime "" {set  rr_Andreas_wakeuptimer1 stop}

Wie kommst Du auf Deine Definition. Woher hast Du die Syntax? Warum DOIF? Weißst Du was { macht?
Titel: Antw:Licht und Kaffeemaschine an wenn xxx
Beitrag von: tboston am 05 Februar 2016, 07:25:05
Da ich bisher nur Bash Script gemacht habe, wollte ich wenigstens zeigen dass ich mir Gedanken gemacht habe ^^ hatte auch in die Referenz geschaut

Eine andere Idee wäre
define setWakeUptimerOffIf (androidPhone:nextAlarmTime = "") (set rr_Andreas_wakeuptimer1 OFF)

define setKaffeeLichtOn DOIF  (androidPhone:nextalarmTime != "" and [Twilight:LichtWetter] < 6) (set lamp on) and (set Kaffeemaschine on) DOELSE (set lamp off) and (set Kaffeemaschine off)
Titel: Antw:Licht und Kaffeemaschine an wenn xxx
Beitrag von: CoolTux am 05 Februar 2016, 07:34:46
Ok. Machen wir es etwaas anders. Nicht um Dich zu ärgern sondern des lernes Willen. Hoffe es ist ok für Dich.

1. Wir verwenden unser notify weiter
2. wir erweitern es um Bedingungsabfrage
3. unser notify arbeitet auf FHEM Ebene. Wir müssen also das notify erweitern um auf Perl Ebene zu kommen.

Nachschlagen
Perlebene (http://www.fhemwiki.de/wiki/Notify)
Schalten von Ereignissen abhängig machen - notify (http://fhem.de/Heimautomatisierung-mit-fhem.pdf)
Titel: Antw:Licht und Kaffeemaschine an wenn xxx
Beitrag von: tboston am 05 Februar 2016, 07:38:22
Klar gerne. Ich fahr erstmal auf Arbeit und schau mir dort dann die Doku an.
Titel: Antw:Licht und Kaffeemaschine an wenn xxx
Beitrag von: CoolTux am 05 Februar 2016, 07:40:39
Und solltest Du fragen haben einfach fragen. Ist alles kein Problem
Titel: Antw:Licht und Kaffeemaschine an wenn xxx
Beitrag von: tboston am 06 Februar 2016, 10:24:39
Also das hier
androidPhone:nextAlarmTime.* set rr_Andreas_wakeuptimer1 nextRun $EVTPART1
erweitern?
Titel: Antw:Licht und Kaffeemaschine an wenn xxx
Beitrag von: CoolTux am 06 Februar 2016, 12:27:02
Ja genau das. Das erweitern wir um eine Bedingung und prüfen ob ein korrektes Uhrzeitformat da ist.
Bin erst heute Abend wieder voll da.


Gruße
Titel: Antw:Licht und Kaffeemaschine an wenn xxx
Beitrag von: CoolTux am 06 Februar 2016, 17:46:41
Na wie schauts aus? Hast Dich bisschen schlau gemacht wie man Bedingungen in notifys ab fragt?
Titel: Antw:Licht und Kaffeemaschine an wenn xxx
Beitrag von: tboston am 06 Februar 2016, 18:26:41
Jup, hatte aber erstmal mit meinem Sohn zu tun ^^

Ich verstehe noch nciht, warum ein DOIF nicht auch helfen würde
Titel: Antw:Licht und Kaffeemaschine an wenn xxx
Beitrag von: CoolTux am 06 Februar 2016, 18:37:19
Würde es sicherlich auch. Aber ich verwende hierfür notify und nur da kann ich Dir zu diesem Anliegen helfen. DOIF verwende ich meist wenn es um das beobachten von Zustandsänderungen geht.

Kannst ja bei Gelegenheit mal Code schreiben was Du so denkst. Mach Dir nicht so viel Kopf wegen Uhrzeit. Wichtig ist das Du weist wie man generell Bedingungen abfragt und was der Unterschied zwischen FHEM Ebene und Perlebene ist.
Titel: Antw:Licht und Kaffeemaschine an wenn xxx
Beitrag von: tboston am 06 Februar 2016, 20:25:59
Also Plan hab ich nun noch nicht wie man an das vorhandene notify noch was dranhängt.
Auf jeden Fall hab ich erstmal hin und her probiert fhem zu erklären, dass es die Wohnzimmerlampe ausschalten soll wenn Twilight sagt, dass es hell ist

define notifyLichtWzOffIfHell notify ([Twilight:LichtWetter] eq "6") and ([rr_Andreas:state] eq "home") set wz_Stehlampe off

Wobei das rr_Andreas:state ja nicht sein soll, da die Lampe gar nicht an sein soll wenn ich nicht da bin
Titel: Antw:Licht und Kaffeemaschine an wenn xxx
Beitrag von: CoolTux am 06 Februar 2016, 20:37:18
Wollen wir nicht erstmal eins fertig machen? Du hast nicht wirklich das Wiki zu Notify gelesen, oder?
Deine Syntax ist die von DOIF, Du gibst aber notify als Modulname an. So kann das nichts werden.

Du vermischst die Syntax zweier unterschiedlicher Module.
Titel: Antw:Licht und Kaffeemaschine an wenn xxx
Beitrag von: tboston am 09 Februar 2016, 16:08:07
Hi,

hatte erstmal anderweitig zu tun am WE. Ich schau mir das die Woche noch mal an.

---
Tony

Titel: Antw:Licht und Kaffeemaschine an wenn xxx
Beitrag von: CoolTux am 09 Februar 2016, 16:18:38
Mach ganz in Ruhe. Bisschen was gibt es ja noch zu tun   ;D



Grüße