mehrmalige Tonausgabe nach Ereignis

Begonnen von matt_matt, 24 Februar 2017, 00:54:31

Vorheriges Thema - Nächstes Thema

matt_matt

Hallo,

ich habe hier einige MAX! Sensoren für Fenster im Einsatz, die mir anzeigen, ob Fenster offen oder geschlossen sind. Das wird mir auf einem Tablet angezeigt. Wenn sich ein Fenster öffnet soll nach einer gewissen Zeit ein Warnton auf dem Tablet ausgegeben werden. Wenn das Fenster geschlossen wird soll der Ton aufhören. So ist die Idee. Als Oberfläche benutzte ich Tablet-ui, das auch gut funktioniert, gesteuert wird es mit AMADCommBridge. Darüber kann ich auch eine Sounddatei abspielen. Das blöde daran ist nur, dass die Datei nur einmal abgespielt wird, ich hätte es gerne als Dauerschleife, jedenfalls bis das Fenster geschlossen wird.
WC_Fenster:opened  {
  fhem "delete WC_Fenster_timer";
  fhem "define WC_Fenster_timer at +00:01:00 set Flur_Tablet notifySndFile wabbernschnell.mp3";
}


[WC_Fenster:closed {
  fhem "delete WC_Fenster_timer";
}/code]

Der Code ist aus dem Forum, aber ich habe leider keine Idee, wie ich weiter vorgehe.  Eine einmalige Tonausgabe ist leider nicht nervig genug, um die Familie zu überreden, das Fenster wieder zu schließen. Dafür gibt es bestimmt auch eine einfache Lösung, aber welche?


ArduPino

Wie man das lösen kann weiß ich nicht. Wenn du aber mehrere Dinge hast die so ablaufen sollen oder überwachen möchtest, dann schau dir mal das Modul Alarm an.

https://wiki.fhem.de/wiki/Modul_Alarmanlage

Damit habe ich z.B. auch so was erstellt. Es läuft ein Timer von 16 Minuten, ist dieser abgelaufen ertönt ein Hinweis per Soundausgabe. Nach 20 Minuten wird das ganze zurück gesetzt und der Timer wird neu gestartet.

Gesendet von meinem Wileyfox Swift mit Tapatalk


Wuehler

Hallo,

Ich habe AMAD jetzt selbst nicht im Einsatz, aber man kann damit anscheinend einen Alarm starten und über sendIntent auch wieder stoppen. Vielleicht ist das eine Alternative?
Evtl. Gibt es auch intents für Wiederholungen eines soundfiles.
Oder ganz unschön: das AT als Interval definieren, also alle 20sekunden wieder den sound starten.

ArduPino

Ach ja genau
at *+00:01:00 ....
Oder at +*00:01:00 ...
weiß ich grad nicht...und dann beim schließen des Fensters das at löschen. Dafür muss das erste delete aber raus, das at muss ja aktiv bleiben.

Gesendet von meinem Wileyfox Swift mit Tapatalk

matt_matt

#4
at +*00:01:00  Danke, genau das ist es. Ganz einfache Lösung, habe ich im Einsteigerleitfaden gelesen, ja irgendwie aber nicht geschnallt.
WC_Fenster:opened  {
  fhem "delete WC_Fenster_timer";
  fhem "define WC_Fenster_timer at +00:05:00 define ton at +*00:00:03 set Flur_Tablet notifySndFile wabbernschnell.mp3";
}


Wenn das Fenster geöffnet wird dauert es 5 Minuten, dann wird alle 3 Sekunden der Ton abgespielt(Länge 1 Sekunde).

WC_Fenster:closed {
  fhem "delete ton";
  fhem "delete WC_Fenster_timer";
}


Wird das Fenster geschlossen, wird timer ton, anschließend  timer WC_Fenster gelöscht. Das Tablet gibt Ruhe. So habe ich mir das vorgestellt.Es funkioniert so mit einem Fenster. Jetzt überlege ich mir, wie es mit mehreren Fenstern klappt. Modul Alarmanlage wurde als
Stichwort genannt, schaue ich mir morgen an. Vieleicht ist das die Lösung.

Wuehler

Das ist schön 👍🏼
Für mehrere Fenster könnte sructure helfen.

sinus61

Ja,z.b.so:

define gz_Fenster_Tuer structure Fenster gz_Tuer_Balkon gz_Fenster
attr gz_Fenster_Tuer clientstate_behavior relative
attr gz_Fenster_Tuer clientstate_priority open tilted closed


So kannst du beliebig viele Fenster zusammenfassen, sobald eines auf open geht meldet die structure open. Das kannst du dann genauso wie bei einem Fenster mit einem notify auswerten.

ArduPino

Oh das muss ich mir anschauen! Kenne ich gar nicht, das kann man bestimmt gut gebrauchen.

Gesendet von meinem Wileyfox Swift mit Tapatalk


matt_matt

Das hört sich gut an, werde ich gleich mal testen. Da habe ich mir schon eine komplizierte Funktion ausgedacht, dabei scheint es ganz einfach zu gehen.