Beleuchtung zeitgesteuert automatisieren

Begonnen von Chris1540, 12 Februar 2015, 14:08:55

Vorheriges Thema - Nächstes Thema

Chris1540

Hallo zusammen,

seit einigen Wochen nutze ich nun Fhem und bin begeistert, wie Leistungsfähig das Programm ist.
Ich habe es auch geschafft (auch ohne Programierkenntnisse) das eine oder andere in Fhem zum laufen zu bringen. Nun fehlt mir aber der Ansatz, so das ich nicht mal weiß, nach was ich im Forum oder Wiki suchen soll.
Ich möchte eine kleine ablaufsteuerung machen. Soll heißen ich klicke im Webfrontend auf ein Symbol, dann soll z.b. nach 1 min der Fernseher ausgehen, das Licht im Wohnzimmer 30 sec danach auch ausgehen. Vorher geht im Bad und schlafzimmer das Licht an. Heizung im Wz fährt runter.
Das wäre so ein Beispiel, welches ich gerne umsetzen möchte.
Nun meine Frage, nach was muss ich suchen, bzw hat jemand einen Beispiel Code für mich?
Da ich im Programieren eine glatte null bin, aber das eine oder andere an Code anpassen oder ableiten kann würdet ihr mir damit sehr helfen.

Viele Grüße aus Hannover
Chris

betateilchen

Prinzipiell ist das recht einfach.

1. Im fhem Frontend ein notify definieren:

define s_sequenz1 notify <irgendEinEvent> {do_seq1}

2. In der Datei 99_myUtils.pm die Funktion do_seq1 anlegen:



sub do_seq1 {
fhem("sleep 60; set TV off");
fhem("set Bad,Schlafzimmer on; set Wohnzimmerheizung off");
fhem("sleep 90; set Wohnzimmerlich off");
}



-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

Chris1540

Hallo betateilchen,

danke für Deine schnelle Antwort. Wenn ich die define Zeile in die FHEM cfg einbaue, habe ich aber noch keinen Button.
Wie könnte ich den dazu realisieren?

Ich weiß, gaaaanz blöde Fragen :-(

Gruß Chris

betateilchen

Das eines notify erzeugt nie einen Button. Das notify reagiert auf irgendeine Aktivität, die Du in fhem auslöst.

Du könntest z.B. einen FS20 Dummy erzeugen und dort auf das entsprechende Symbol klicken, um einen event auszulösen. Diesen event musst Du dann im notify als "Starter" verwenden.

-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

Chris1540

Irgendwie bin ich zu blöd.... Ich begreife es nicht  :o
define schlafen dummy
set <irgendEinEvent>
attr schlafen alias Schlafen
attr schlafen group 2_Szenen
attr schlafen icon scene_sleeping
attr schlafen room 1_Home Status


define s_sequenz1 notify <irgendEinEvent> {do_seq1}

Ich habe mal das was ich "verzappft" habe mal angehangen
So habe alle was zu lachen  ::)

Gruß Chris

PS: Das funktioniert natürlich nicht....

Spezialtrick

Nun musst dein Notify auch auf deinen Dummy bzw. den State deines Dummys reagieren können.
FHEM - Debmatic - Zigbee2MQTT - Homekit

elfrinjo

Kurze Frage von der Seite:
Spricht etwas dagegen, die Steps direkt in das notify zu schreiben?

Chris1540

Zitat von: Spezialtrick am 12 Februar 2015, 17:13:31
Nun musst dein Notify auch auf deinen Dummy bzw. den State deines Dummys reagieren können.

Toll, könntest Du es mir bitte erklären, ich verstehe nur Bahnhof.
Tut mir leid das ich Dir nicht so folgen kann....

Chris

Chris1540

Guten morgen zusammen,

ich hole den Beitrag noch mal hoch, da ich hiermit leider immer noch nicht weiter gekommen bin.

Mit der Nachricht von Spezialtrick kann ich leider gar nichts anfangen....

Gruß Chris

Invers

Vielleicht hilft dir das:

define schlafen dummy
attr schlafen icon scene_sleeping
attr schlafen room 1_Home
attr schlafen setList on off


Wenn du mit dem Schalter nur an, aber nicht aus willst, dann reicht auch schon
attr schlafen setList on

Bei <irgendEinEvent> wird dann getestet, ob jemand on geklickt hat. Darauf würde dann das Notrify reagieren und einschalten.

Pi3B+ mit SSD/ Bullseye | FB7590 AX | 12 x Dect200 | CUL433+868 | SDuino | HM-LAN | 3 x Heizung FHT + FKontakte | KeyMatic + 4 FB | HM Wandtaster 2-fach m. LED | 6 x Türkont. TFK-TI | HM-Bew.-Melder innen | 3 x Smoked. HM-SEC-SD-2

Otto123

Zitat von: Chris1540 am 12 Februar 2015, 16:13:24
Irgendwie bin ich zu blöd.... Ich begreife es nicht  :o
define schlafen dummy
set <irgendEinEvent>
attr schlafen alias Schlafen
attr schlafen group 2_Szenen
attr schlafen icon scene_sleeping
attr schlafen room 1_Home Status


define s_sequenz1 notify <irgendEinEvent> {do_seq1}

Ich habe mal das was ich "verzappft" habe mal angehangen
So habe alle was zu lachen  ::)

Gruß Chris

PS: Das funktioniert natürlich nicht....

Hallo,

hast Du in deiner Definition wirklich <irgendEinEvent> drinstehen?

Gruß Otto
Viele Grüße aus Leipzig  ⇉  nächster Stammtisch an der Lindennaundorfer Mühle
RaspberryPi B B+ B2 B3 B3+ ZeroW,HMLAN,HMUART,Homematic,Fritz!Box 7590,WRT3200ACS-OpenWrt,Sonos,VU+,Arduino nano,ESP8266,MQTT,Zigbee,deconz

Chris1540

Zitat von: Otto123 am 15 Februar 2015, 12:32:40
Hallo,

hast Du in deiner Definition wirklich <irgendEinEvent> drinstehen?

Gruß Otto

Hallo Otto,

um die funktionen zu verstehen, "klaue" ich mir häufig erstmal ein wenig Code und lasse ihn dann erstmal so stehen. Meist verändere ich zum testen erstmal nur die Parameter, die in meiner Umgebung vorhanden sind. Namen oder z.B. Räume passe ich dann meist erst danach an.

Gruß Chris

Chris1540

Zitat von: Invers am 15 Februar 2015, 10:53:25
Vielleicht hilft dir das:

define schlafen dummy
attr schlafen icon scene_sleeping
attr schlafen room 1_Home
attr schlafen setList on off


Wenn du mit dem Schalter nur an, aber nicht aus willst, dann reicht auch schon
attr schlafen setList on

Bei <irgendEinEvent> wird dann getestet, ob jemand on geklickt hat. Darauf würde dann das Notrify reagieren und einschalten.

Wo ist bei Deinem Code oben die Verbindung zu <irgendEinEvent>?

Gruß Chris

Otto123

Hallo Chris,

naja wenn das so ist solltest Du vielleicht etwas genauer sagen was nicht geht. Ich kann das aus dem Wusel nicht erkennen.

Du findest für Deinen Fall eigentlich genug Beispiele in der Commandref.
Du solltest im Logfile nach Fehlermeldungen suchen.
Du solltest den Eventmonitor anschauen was da passiert.

Du kannst mit define nty_Test notify nty_Test <Befehle, Sub wie auch immer> auch ein notify definieren welches ein makro darstellt und Du kannst das mit trigger nty_Test auf der commandozeile anschubsen. Auch das steht in der Commandref und Wiki.

Gruß Otto
Viele Grüße aus Leipzig  ⇉  nächster Stammtisch an der Lindennaundorfer Mühle
RaspberryPi B B+ B2 B3 B3+ ZeroW,HMLAN,HMUART,Homematic,Fritz!Box 7590,WRT3200ACS-OpenWrt,Sonos,VU+,Arduino nano,ESP8266,MQTT,Zigbee,deconz