Kaffeemaschine & Bewegungsmelder: Nur einmalig; bestimmte Uhrzeit und Wochentage

Begonnen von d0m2011, 09 Dezember 2016, 14:45:12

Vorheriges Thema - Nächstes Thema

d0m2011

Hallo zusammen,

mein kleines FHEM Projekt wächst und wächst.
Vor wenigen Tagen habe ich meine Kaffeemaschine (mittels 433 MHz Relais) eingebunden.

Nun zu meiner Idee:
Ich möchte, wenn ich morgens in einem bestimmten Zeitfenster durch den Gang laufe, dass meine Kaffeemaschine anspringt.
Jedoch nur unter der Woche bzw. würde ich das Zeitfenstern am Wochenende dann verschieben / aufweiten.
Das Signal zur Kaffeemaschine darf nur einmal erfolgen. Beim zweiten Impuls wird sie wieder ausgeschaltet.

Mein Lösungsansatz wäre:
Ich würde das Ganze mit einem Notify aufbauen. Wenn Bewegungsmelder sich meldet -> Schalte Kaffeemaschine ein.
Den Notify würde ich mit einem AT Befehl für den gewünschten Zeitraum auf "aktiv" setzen (oder eben inaktiv).
Direkt nach dem Signal für die Kaffeemaschine würde ich diesen auch auf "inaktiv" setzen um eine weitere Bestätigung zu vermeiden.
Wie ich das mit den Wochentagen umsetzte weiß ich noch nicht.

Ist der Ansatz sinnvoll oder gibt es eine andere evtl. elegantere Möglichkeit?


Danke im Voraus und viele Grüße

Icinger

Meine Kaffeemaschine schaltet sich abhängig vom eingestellten Wecker meines Andriod-Phones ein (15 min. vorher) bzw. wenn kein Wecker eingestellt ist, dann fix um 06:30 morgens.

Weckerdaten kommen per AMAD ins FHEM.

lg, Stefan
Verwende deine Zeit nicht mit Erklärungen. Die Menschen hören (lesen) nur, was sie hören (lesen) wollen. (c) Paulo Coelho

d0m2011

Ah okay, auch eine geniale Idee.
Aber die Weckzeit und der "Aufstehzeitpunkt" ist immer etwas unterschiedlich ;)
Ich würde es gern mit dem Bewegungsmelder probieren. Zudem soll er später noch ein paar mehr Funktionen bekommen.
Wie findest Du meine Lösung?

Brice

Wenn über einen Bewegungsmelder eingeschaltet werden soll und der Zustand der Kaffeemaschine in FHEM bekannt ist, dann per notify in etwa so:
Bewegungsmelder <abhängig vom Device> {
{
if (ReadingsVal("<deine Kaffeemaschine>","state","0") eq "off"))
{fhem ("set <deine Kaffeemaschine> on")}
}
}

Abhängig von den Readings, die deine Kaffeemaschine liefert. Eingeschaltet wird nur dann, wenn bei Bewegung die Kaffeemaschine nicht eingeschaltet ist. Das ganze dann per "disabledForIntervalls" auf den gewünschten Zeitraum einschränken.
FHEM auf RPi 4 4GB (Buster) | produktiv) CUL 868 für FS20 | S300TH | KS300 | Max!Cube als CUN 868 für TechemWZ | HM-MOD-RPI-PCB für HM | Z-Wave ZME_UZB1 | FRITZ!DECT 200 | HUE | Lightify | Echo Dot | WS3080

d0m2011

Hi Brice,
danke für die Lösung. Zwecks der Kaffeemaschine gibt es nur ein Problem:
Da ich einen Relais einbauen musste, kennt FHEM den Status nicht zu 100%.
Jede Betätigung vom Relais schaltet entweder ein oder aus (Einschaltknopf = Ausschaltknopf -> mit Relais "umgangen")


Brice

Das ist dann wohl ein ko-Kriterium.

Es muss ja nicht alles automatisiert werden. Hier läuft vieles über Bewegungsmelder, aber die Idee zum Einschalten des Kaffeeautomat habe ich verworfen. Sonst würde meine Frau noch auf die Idee kommen, ich soll mir etwas einfallen lassen, wie der Milchbehälter automatisiert aus dem Kühlschrank kommt und in den Vollautomaten angedockt wird  ;D
FHEM auf RPi 4 4GB (Buster) | produktiv) CUL 868 für FS20 | S300TH | KS300 | Max!Cube als CUN 868 für TechemWZ | HM-MOD-RPI-PCB für HM | Z-Wave ZME_UZB1 | FRITZ!DECT 200 | HUE | Lightify | Echo Dot | WS3080

d0m2011

Hab ich ein Glück, ich hab' nur eine Siebträger ;)
Jetzt benötige ich aber dennoch Hilfe...

Ich arbeite aktuell am Code:
Notify: Wenn Bewegung -> Schalte Kaffeemaschine ein und deaktiviere Notify (Es wird nur ein Signal zur Kaffeemaschine geschickt).

Diesen notify würde ich unter der Woche und am Wochenende zu einer bestimmten Zeit wieder aktiv setzen (Vermeidung: Nachts Toilette -> Kaffeemaschine springt an).

-> If Befehlt für Wochentage:
define n_espresso_week at *06:45:00 { if ($wday == 1 || $wday == 2 || $wday == 3 || $wday == 4 || $wday == 5) { fhem (,,attr n_espresso_beweg1 disable 0") } }

Stimmt das?
Kann ich im gleichen Zug per myAT at +01:00:00 wieder ausschalten?

igami

Zitat von: d0m2011 am 09 Dezember 2016, 15:48:45
Hab ich ein Glück, ich hab' nur eine Siebträger ;)
Was denn für einen? Habe eine Gaggia Classic und bin auch schon am überlegen die umzubauen :D
Pi3 mit fhem.cfg + DbLog/logProxy
Komm vorbei zum FHEM Treffen im Kreis Gütersloh! Das nächste Mal im April 2020.

MAINTAINER: archetype, LuftdatenInfo, monitoring, msgDialog, Nmap, powerMap
ToDo: AVScene, FluxLED

Icinger

Schau dir mal DOIF an, damit kannst du das alles auf einmal erschlagen.
Verwende deine Zeit nicht mit Erklärungen. Die Menschen hören (lesen) nur, was sie hören (lesen) wollen. (c) Paulo Coelho

Brice

Zitat-> If Befehlt für Wochentage:
define n_espresso_week at *06:45:00 { if ($wday == 1 || $wday == 2 || $wday == 3 || $wday == 4 || $wday == 5) { fhem (,,attr n_espresso_beweg1 disable 0") } }
disabledForIntervals kann seit kurzem auch Tag. Schau mal in die commandref
Zitat
Kann ich im gleichen Zug per myAT at +01:00:00 wieder ausschalten?
du könntest das notify auch mit einem on-for-timer 3600 definieren.
FHEM auf RPi 4 4GB (Buster) | produktiv) CUL 868 für FS20 | S300TH | KS300 | Max!Cube als CUN 868 für TechemWZ | HM-MOD-RPI-PCB für HM | Z-Wave ZME_UZB1 | FRITZ!DECT 200 | HUE | Lightify | Echo Dot | WS3080

d0m2011

Aktuell habe ich es so gelöst, stimmt das?

*06:45:00 { if ($wday == 1 || $wday == 2 || $wday == 3 || $wday == 4 || $wday == 5) { fhem (,,attr n_espresso_beweg1 disable 0 ; define myAT at +01:00:00 attr n_espresso_beweg1 disable 1,,) } }


Ah perfekt, wie geht das mit dem on for timer?


@igami: Ein Gastroback Siebträger, schon paar Jahre alt.
Relais parallel zum Einschaltknopf einbauen war jedoch kein Problem.

Brice

Das solltest du mal testen :)
und Code zwecks Lesbarkeit bitte per Code-Tag (# in der Formatierung) einbinden.

Grundsätzlich musst du dich nach Tests entscheiden für at (zu bestimmten Zeiten), notify (auf Bewegungsmelder, Einschränkung per disableForIntervals, etc) oder DOIF (nutze ich nicht, ist mir zu komplex, funktioniert bei mir alles per notify). Alles hat Vor- und Nachteile.


  • dein Beispiel at um 06:45: falls du um 06:39 aufstehst, musst du deine Kaffeemaschine manuell einschalten
  • mein produktives notify (bei mir disabledForIntervals ohne Beachtung des Wochentags): falls z.B. am Sonntag die Küche nach 05:30 betreten wird, laufen bestimmte Aktionen ab. Wenn man dann wieder schlafen geht, ist ebenfalls manuelles ausschalten angesagt

Die perfekte Lösung ist schwierig. Ich könnte mir natürlich einen Taster/Fernbedienung neben das Bett legen und das notify deaktivieren. Meine Frau lässt Licht, Weihnachtsbeleuchtung und Radio an. Ist für mich akzeptabel und ich muss nicht alle möglichen Sonderfälle abfangen.

on-for-timer: set <Device> on-for-timer <time>. Funktioniert für vieles, aber nicht für alles.
FHEM auf RPi 4 4GB (Buster) | produktiv) CUL 868 für FS20 | S300TH | KS300 | Max!Cube als CUN 868 für TechemWZ | HM-MOD-RPI-PCB für HM | Z-Wave ZME_UZB1 | FRITZ!DECT 200 | HUE | Lightify | Echo Dot | WS3080

d0m2011

Ich hab's nun auch per AT und Notify gelöst.
Das verstehe ich wenigstens ;)

Die perfekte Lösung ist schwierig, das stimmt.
Ich werde es nun einmal testen bzw. morgen früh sehen ob sich etwas tut.
Der Testlauf vorhin ging soweit gut.

Allerdings habe ich erst einmal nur eingestellt, dass der Notify am Morgen angehen soll.
Nicht wieder aus (falls keiner aufsteht) denn aktuell weiß ich noch nicht ob ich das Feature benötige.
Werde das die Tage mal beobachten.