Licht und Kaffeemaschine an wenn xxx

Begonnen von tboston, 03 Februar 2016, 19:22:16

Vorheriges Thema - Nächstes Thema

tboston

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
--
Proxmox Host -> Debian VM -> FHEM 5.9
CUL868 - CUL433
3x Max! Wand-Thermostat - 3x Max! Fenstersensoren - 3x Max! Heizthermostat - 3x Intertechno Funksteckdosen - 3x Brennenstuhl Funksteckdosen
Tradfri Zeugs

ujaudio

...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?
Einen lieben Gruß
Jürgen

tboston

Ja habe ich gelesen. Nur will ich da nix falsch machen. FHEM weiß das durch das AMAD Modul welches die Daten vom Handy zieht.
--
Proxmox Host -> Debian VM -> FHEM 5.9
CUL868 - CUL433
3x Max! Wand-Thermostat - 3x Max! Fenstersensoren - 3x Max! Heizthermostat - 3x Intertechno Funksteckdosen - 3x Brennenstuhl Funksteckdosen
Tradfri Zeugs

Wuppi68

na das ist doch relativ einfach logisch aufzudröseln

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

FHEM unter Proxmox als VM

tboston

Ich bin mir noch unsicher wie ich z.B. sage, dass er Twilight auf "isday" checken soll.
--
Proxmox Host -> Debian VM -> FHEM 5.9
CUL868 - CUL433
3x Max! Wand-Thermostat - 3x Max! Fenstersensoren - 3x Max! Heizthermostat - 3x Intertechno Funksteckdosen - 3x Brennenstuhl Funksteckdosen
Tradfri Zeugs

CoolTux

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.
Du musst nicht wissen wie es geht! Du musst nur wissen wo es steht, wie es geht.
Support me to buy new test hardware for development: https://www.paypal.com/paypalme/MOldenburg
My FHEM Git: https://git.cooltux.net/FHEM/
Das TuxNet Wiki:
https://www.cooltux.net

CoolTux

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
Du musst nicht wissen wie es geht! Du musst nur wissen wo es steht, wie es geht.
Support me to buy new test hardware for development: https://www.paypal.com/paypalme/MOldenburg
My FHEM Git: https://git.cooltux.net/FHEM/
Das TuxNet Wiki:
https://www.cooltux.net

tboston

Kann ich dem RESIDENT Modul sagen, dass es sich die Weckzeit vom AMAD Modul/AndroidDevice holen soll?
--
Proxmox Host -> Debian VM -> FHEM 5.9
CUL868 - CUL433
3x Max! Wand-Thermostat - 3x Max! Fenstersensoren - 3x Max! Heizthermostat - 3x Intertechno Funksteckdosen - 3x Brennenstuhl Funksteckdosen
Tradfri Zeugs

CoolTux

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
Du musst nicht wissen wie es geht! Du musst nur wissen wo es steht, wie es geht.
Support me to buy new test hardware for development: https://www.paypal.com/paypalme/MOldenburg
My FHEM Git: https://git.cooltux.net/FHEM/
Das TuxNet Wiki:
https://www.cooltux.net

tboston

#9
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
--
Proxmox Host -> Debian VM -> FHEM 5.9
CUL868 - CUL433
3x Max! Wand-Thermostat - 3x Max! Fenstersensoren - 3x Max! Heizthermostat - 3x Intertechno Funksteckdosen - 3x Brennenstuhl Funksteckdosen
Tradfri Zeugs

tboston

define setWakeupTimer notify androidPhone:nextAlarmTime.* set rr_Andreas_wakeuptimer1 nextRun $EVENT

So sollte das passen oder?
--
Proxmox Host -> Debian VM -> FHEM 5.9
CUL868 - CUL433
3x Max! Wand-Thermostat - 3x Max! Fenstersensoren - 3x Max! Heizthermostat - 3x Intertechno Funksteckdosen - 3x Brennenstuhl Funksteckdosen
Tradfri Zeugs

CoolTux

Guten Morgen

Halte mal kurz inne bitte. Mehr Text kommt gleich.
Du musst nicht wissen wie es geht! Du musst nur wissen wo es steht, wie es geht.
Support me to buy new test hardware for development: https://www.paypal.com/paypalme/MOldenburg
My FHEM Git: https://git.cooltux.net/FHEM/
Das TuxNet Wiki:
https://www.cooltux.net

CoolTux

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 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.
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
Du musst nicht wissen wie es geht! Du musst nur wissen wo es steht, wie es geht.
Support me to buy new test hardware for development: https://www.paypal.com/paypalme/MOldenburg
My FHEM Git: https://git.cooltux.net/FHEM/
Das TuxNet Wiki:
https://www.cooltux.net

tboston

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
--
Proxmox Host -> Debian VM -> FHEM 5.9
CUL868 - CUL433
3x Max! Wand-Thermostat - 3x Max! Fenstersensoren - 3x Max! Heizthermostat - 3x Intertechno Funksteckdosen - 3x Brennenstuhl Funksteckdosen
Tradfri Zeugs

CoolTux

#14
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.
Du musst nicht wissen wie es geht! Du musst nur wissen wo es steht, wie es geht.
Support me to buy new test hardware for development: https://www.paypal.com/paypalme/MOldenburg
My FHEM Git: https://git.cooltux.net/FHEM/
Das TuxNet Wiki:
https://www.cooltux.net