Wohnzimmer Uhr (Gong jede Stunde) über FHEM simulieren

Begonnen von Toto1973, 11 März 2015, 12:31:05

Vorheriges Thema - Nächstes Thema

Rince

#15
Und evtl. ist es schlau, den mplayer mit dem Parameter
−really−quiet
aufzurufen.

Sonst werden die Logfileeinträge doch recht lang...

Dann könnte man noch mit & den mplayer in den Hintergrund schicken, so dass fhem wärend der Soundausgabe nicht blockiert und ungehindert weiter läuft (jedenfalls unter Linux und OSX. Unter Windows könnte es in die Hose gehen, müsste wer testen)


Zusammen sähe es dann beispielsweise so aus:
system ("mplayer /opt/fhem/Sound/BigBen.mp3 -volume 120 −really−quiet &")
* ist immer noch ungünstig, siehe PPS weiter unten ;)


Oder so:
([Wanduhr_dummy:state] eq "on" and [{sprintf("%02d:00",$hour+1)}]) ({WandUhr()})
DOELSEIF ([{sprintf("%02d:15",$hour+1)}] and [Wanduhr_dummy:state] eq "on") ({system ("mplayer /opt/fhem/Sound/BigBen_15.mp3 -volume 90 −really−quiet &")})
DOELSEIF ([{sprintf("%02d:30",$hour+1)}] and [Wanduhr_dummy:state] eq "on") ({system ("mplayer /opt/fhem/Sound/BigBen_30.mp3 -volume 90 −really−quiet &")})
DOELSEIF ([{sprintf("%02d:45",$hour+1)}] and [Wanduhr_dummy:state] eq "on") ({system ("mplayer /opt/fhem/Sound/BigBen_45.mp3 -volume 90 −really−quiet &")})




PS:
Ich hab es noch nicht ausprobiert!


PPS:
Jetzt habe ich es selber mal probiert.
Folgende Verbesserung wäre noch sinnvoll:
sub WandUhr()
{
my ($Sekunden, $Minuten, $Stunden, $Monatstag, $Monat,
    $Jahr, $Wochentag, $Jahrestag, $Sommerzeit) = localtime(time);
my $Stunde = "";
if($Stunden >= 13) { $Stunde = $Stunden - 12 };
if($Stunden == 0) { $Stunde = $Stunden + 12 };
if($Stunden <= 12) { $Stunde = $Stunden };
    system ("mplayer /opt/fhem/Sound/BigBen.mp3 -volume 120 /opt/fhem/Sound/BigBenStrikes.mp3 -volume 120 -loop $Stunde −really−quiet &");
}



Habe also die beiden mplayer Aufrufe zu einem einzigen gemacht.
Ansonsten würde das zuerst gestartete BigBen dafür sorgen, dass das BigBenStrikes nicht abgespielt wird.

Ob man das 1. -volume 120 braucht, weiß ich nicht. Zumindest schadet es augenscheinlich nicht. (Ich könnte mir vorstellen, dass es sonst Ärger mit einem Text2Speech geben könnte, bzw. dessen Lautstärke)

Das -loop wiederholt nur den 2ten Sound (wie gewünscht)
Das -really-quiet unterbindet alle Logfileeinträge (wirkt also auf die ganze "Playlist")
Wer zu meinen Posts eine Frage schreibt und auf eine Antwort wartet, ist hiermit herzlich eingeladen mich per PN darauf aufmerksam zu machen. (Bitte mit Link zum betreffenden Thread)

harway2007

 8) Hallo
erhalte error reading does not exist: [Wanduhr_dummy:state]
Uhr kommt nicht zur erwarteten Uhrzeit ...
nur über manuelles  {WandUhr()}
MFG Harway

Rince

#17
Du musst den Dummy anlegen:

define Wanduhr_dummy dummy

Dann kannst du mit set Wanduhr_dummy on die Uhr sozusagen einschalten.

Der Vorteil dieser Variante ist, dass du den Gong so zeitgesteuert an/ausschalten kannst. Kann bei der Nachtruhe von Vorteil sein.
Entweder mit at, oder mit einem DOIF. Oder natürlich händisch...

Ein DOIF Besipiel sähe so aus:
define Wanduhr_Zeitschalter DOIF ([05:55]) (set Wanduhr_dummy on) DOELSEIF ([23:05]) (set Wanduhr_dummy off)
Wer zu meinen Posts eine Frage schreibt und auf eine Antwort wartet, ist hiermit herzlich eingeladen mich per PN darauf aufmerksam zu machen. (Bitte mit Link zum betreffenden Thread)

harway2007

 :) ok hab ich gemacht erste Ansage kam ..

wenn das hier keine Bedeutung hat .. ist alles ok

Meldung:

Bogus entry Wanduhr_dummy without TYPE

mfg

Toto1973

Hallo!
Da ich ja in Sachen Perl noch Anfänger bin, war ich froh, dass ich das mit der Uhr überhaupt hinbekommen habe.
Deshalb vielen Dank für die Verbesserungen, welche ich gleich mal bei mir übernommen habe.

Wenn ich darf, übernehme ich die Verbesserungen in den ersten Post!
Raspberry PI2, Rademacher DuoFern Stick, CUL, 2 x SCC,  JeeLink 868 Mhz, JeeLink 433 Mhz, 3x Magic UFO LED WiFi Controller, 4x MAX BC-RT-TRX-CyG, 2x MAX Fensterkontakt, 5x Rademacher Gurtwickler, 6x TX29DTH-it, 2x TX25-it als Helligkeitssensor, 1X HM-ES-PM, 6x Sonoff, 7x G-Homa, PIR-1000

Rince

Logisch darfst du.
Gemeinsam mehr erreichen :)


Die & Lösung hat noch einen Schönheitsfehler:
Es wird immer der Rückgabewert -1 gegeben, was für eine fehlerhafte Ausführung des Befehls steht. Auch wenn es rein kosmetischer Natur ist. Irgendwie ging die auch weg, ich weiß nur nicht, wie. Hatte was mit 0 zu tun.
Wer zu meinen Posts eine Frage schreibt und auf eine Antwort wartet, ist hiermit herzlich eingeladen mich per PN darauf aufmerksam zu machen. (Bitte mit Link zum betreffenden Thread)

Toto1973

Das mit der -1 war von Anfang an da. Ich habe auch mal recherchiert aber nichts dazu gefunden
Raspberry PI2, Rademacher DuoFern Stick, CUL, 2 x SCC,  JeeLink 868 Mhz, JeeLink 433 Mhz, 3x Magic UFO LED WiFi Controller, 4x MAX BC-RT-TRX-CyG, 2x MAX Fensterkontakt, 5x Rademacher Gurtwickler, 6x TX29DTH-it, 2x TX25-it als Helligkeitssensor, 1X HM-ES-PM, 6x Sonoff, 7x G-Homa, PIR-1000

volschin

Warum benutzt Du bei time nicht gleich %r und sparst dir die Umrechnung?
Intel NUC+Ubuntu 22.04+Docker+FHEM6
HomeMatic: HM-MOD-RPI-PCB+HM-USB-CFG2+hmland+diverse, HUE: Hue-Bridge, RaspBee+deCONZ+diverse
Amzn Dash-Buttons, Siro Rollos
4xRPi, 4xCO20, OWL+USB, HarmonyHub, FRITZ!Box 7590, Echo Dots+Show8, Logi Circle 2, HomeBridge
TIG Stack (Telegraf, InfluxDB, Grafana)

Toto1973

Danke für den Tip!
Ich kenne mich bis jetzt noch gar nicht wirklich mit Perl aus. Deshalb war ich froh, das mit der Uhr überhaupt hin zu bekommen.
Da muss ich mich mal schlau machen, wie das benutzt werden kann.
Raspberry PI2, Rademacher DuoFern Stick, CUL, 2 x SCC,  JeeLink 868 Mhz, JeeLink 433 Mhz, 3x Magic UFO LED WiFi Controller, 4x MAX BC-RT-TRX-CyG, 2x MAX Fensterkontakt, 5x Rademacher Gurtwickler, 6x TX29DTH-it, 2x TX25-it als Helligkeitssensor, 1X HM-ES-PM, 6x Sonoff, 7x G-Homa, PIR-1000

Rince

#24
Habe mal einige Takte "So lang der alte Peter" gemacht.
Könnten die älteren Semester kennen als Pausenzeichen der ARD. Wer mal Bayern 3 im Radio gehört hat, kennt es auch.

Gibt 30 Minuten, 60 Minuten und Glockenschlag...
(meiner Frau ist das Gebimmel 15 und 45 zu viel ;) )


Edit:
Und noch eine Slow-Version angehängt, falls die aus dem Archiv zu schnell ist ;)

Edit 2:
Noch die MIDI Datei, dann könnt ihr selber damit machen was ihr wollt :)
Andere Takte für die 4tel Schläge nehmen, Tempo verändern, anderes Instrument etc...
Wer zu meinen Posts eine Frage schreibt und auf eine Antwort wartet, ist hiermit herzlich eingeladen mich per PN darauf aufmerksam zu machen. (Bitte mit Link zum betreffenden Thread)

Toto1973

Eine sehr schöne Melodie!
Gefällt mir.

Eine weitere Idee wäre ja auch, das man zu jeder vollen Stunde eine andere Melodie abspielen lässt. Das benötigt zwar etwas mehr Code, wäre aber bestimmt auch eine ganz nette "Spielerei".
Raspberry PI2, Rademacher DuoFern Stick, CUL, 2 x SCC,  JeeLink 868 Mhz, JeeLink 433 Mhz, 3x Magic UFO LED WiFi Controller, 4x MAX BC-RT-TRX-CyG, 2x MAX Fensterkontakt, 5x Rademacher Gurtwickler, 6x TX29DTH-it, 2x TX25-it als Helligkeitssensor, 1X HM-ES-PM, 6x Sonoff, 7x G-Homa, PIR-1000

Rince

Hm ja.
Dann sollte man aber gleich die Dateinamen als Variablen setzen. Dann kann man die einfach per at oder so zur gewünschten Zeit setzen, was meinst?
Wer zu meinen Posts eine Frage schreibt und auf eine Antwort wartet, ist hiermit herzlich eingeladen mich per PN darauf aufmerksam zu machen. (Bitte mit Link zum betreffenden Thread)

Rince

ZitatAusserdem habe ich mal noch etwas wegen der Sommerzeit hinzugefügt. Allerdings kann ich das erst testen, wenn die Uhr auch umgestellt wird!

Also ich hab das nicht.
Es ging auch so wunderbar. Vermutlich stellt mein Debian selber die Zeit um, so dass hier ein händisches korrigieren unnötig ist.
Wer zu meinen Posts eine Frage schreibt und auf eine Antwort wartet, ist hiermit herzlich eingeladen mich per PN darauf aufmerksam zu machen. (Bitte mit Link zum betreffenden Thread)

Toto1973

Also bei mir funktioniert die Uhr auch richtig. Aber ich habe die Sommerzeitanpassung mit drin.
Raspberry PI2, Rademacher DuoFern Stick, CUL, 2 x SCC,  JeeLink 868 Mhz, JeeLink 433 Mhz, 3x Magic UFO LED WiFi Controller, 4x MAX BC-RT-TRX-CyG, 2x MAX Fensterkontakt, 5x Rademacher Gurtwickler, 6x TX29DTH-it, 2x TX25-it als Helligkeitssensor, 1X HM-ES-PM, 6x Sonoff, 7x G-Homa, PIR-1000

miggi

ich wollte mal deinen Code bei mir übertragen, jedoch will ich dass mein Tablet diese Sounds abspielt,

daher verwende ich anstatt den
system ("mplayer ... Befehlen diese:

  fhem ("set androidTablet audioPlay http://192.168.178.26/sounds/BigBen.mp3");
  fhem ("set androidTablet audioPlay http://192.168.178.26/sounds/BigBenStrikes.mp3");


nun funktioniert das oben aber leider nicht ganz so toll, da immer nur die erste Datei abgespielt wird, wie hier schon beschrieben wurde.
Hat mir jemand eine Idee wie ich das trotzdem lösen könnte? Da ich leider nicht weiter komme :(

Das Tablet selber ist mit der WebView App eingebunden. Und das abspielen funktioniert ansonsten auch sehr gut, nur halt das mit den Stundenschlägen bekomme ich wie oben gesagt nicht hin.