Wohnzimmer Uhr (Gong jede Stunde) über FHEM simulieren

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

Vorheriges Thema - Nächstes Thema

chr2k

Zitat von: Puschel74 am 21 September 2015, 20:20:45
Edith: Aber auch DAS steht im ersten Beitrag auf der ersten Seite.
Wie wäre es wenn du dir den Beitrag mal ab der ersten Seite durchlesen anfängst.

Ich habe mit dem ersten Beitrag meine Gehversuche mit der Wanduhr gemacht. Die ging mal kurzzeitig und dann auf einmal nicht mehr - keine Ahnung wieso.

Also alles was mit der Uhr zu tun hat gelöscht und neu angelegt und nun die "Probleme".

Ich denke, dass ich das DOIF nun richtig definiert und angelegt habe.

Wenn ich nun aber die Uhr mit {WandUhr()} testen will bekomme ich diese Meldung zurück:
Undefined subroutine &main::WandUhr called at (eval 11956) line 1.


Puschel74

Weil - wie die Meldung schon besagt
ZitatUndefined subroutine &main::WandUhr called at (eval 11956) line 1.
a) die sub Wanduhr in der 99_myUtils.pm nicht existiert oder
b) kein reload 99_myUtils gemacht wurde nachdem die sub eingetragen wurde.
Zotac BI323 als Server mit DBLog
CUNO für FHT80B, 3 HM-Lan per vCCU, RasPi mit CUL433 für Somfy-Rollo (F2F), RasPi mit I2C(LM75) (F2F), RasPi für Panstamp+Vegetronix +SONOS(F2F)
Ich beantworte keine Supportanfragen per PM! Bitte im Forum suchen oder einen Beitrag erstellen.

chr2k

Und "lustigerweise" bekomme ich, wenn ich den Code, der in die 99_myutil Datei rein gehört hinein kopiere beim speichern dieser folgende Meldung:

Unmatched right curly bracket at ./FHEM/99_myUtils.pm line 51, at end of line syntax error at ./FHEM/99_myUtils.pm line 51, near "}" syntax error at ./FHEM/99_myUtils.pm line 63, near "}"

Vorher gings auch.

Puschel74

Dann lösch das } vor sub WandUhr()

Edith: @Toto lösch bitte im ersten Beitrag das erste }
Anfänger können mit der resultierenden Fehlermeldung nichts anfangen.

Zitat von: chr2k am 21 September 2015, 20:37:51
Vorher gings auch.
Wetten das nicht.
Zotac BI323 als Server mit DBLog
CUNO für FHT80B, 3 HM-Lan per vCCU, RasPi mit CUL433 für Somfy-Rollo (F2F), RasPi mit I2C(LM75) (F2F), RasPi für Panstamp+Vegetronix +SONOS(F2F)
Ich beantworte keine Supportanfragen per PM! Bitte im Forum suchen oder einen Beitrag erstellen.

chr2k


Puschel74

#80
Zitat von: chr2k am 21 September 2015, 20:43:02
Muss das { nach sub WandUHr() auch weg?
Hab ich das geschrieben  :o

Tipp: Lies dir im Wiki mal den Beitrag durch wie man die 99_myUtils.pm anlegt und dann schau dir mal in der 99_Utils.pm an wie eine sub aufgebaut ist.
Zotac BI323 als Server mit DBLog
CUNO für FHT80B, 3 HM-Lan per vCCU, RasPi mit CUL433 für Somfy-Rollo (F2F), RasPi mit I2C(LM75) (F2F), RasPi für Panstamp+Vegetronix +SONOS(F2F)
Ich beantworte keine Supportanfragen per PM! Bitte im Forum suchen oder einen Beitrag erstellen.

chr2k


chr2k


Puschel74

Zitat von: chr2k am 21 September 2015, 20:50:56
Nein, aber ich werde doch Fragen dürfen?!
Und einen Beitrag der mit der Frage nichts zu tun hat unnötig aufblähen?
Klar darfst du das.
Mist, memo an mich. Nicht immer versuchen zu helfen.
Zotac BI323 als Server mit DBLog
CUNO für FHT80B, 3 HM-Lan per vCCU, RasPi mit CUL433 für Somfy-Rollo (F2F), RasPi mit I2C(LM75) (F2F), RasPi für Panstamp+Vegetronix +SONOS(F2F)
Ich beantworte keine Supportanfragen per PM! Bitte im Forum suchen oder einen Beitrag erstellen.

Toto1973

Den Fehler auf der ersten Seite hier im Beitrag habe ich berichtigt!
Danke für den Hinweis
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

Toto1973

#85
Hallo!
Ich habe meinen Wanduhr mal überarbeitet.
Jetzt ist es Möglich, der Wanduhr einen Parameter für die Lautstärke mit zu geben. Mir war der/die Gong(s) Abends zu laut. Daher nun diese Anpassung.
Der Code für die 99_MyUtils.pm sieht nun so aus:
sub WandUhr($)
{
my($volume)=@_;
my ($Sekunden, $Minuten, $Stunden, $Monatstag, $Monat,
    $Jahr, $Wochentag, $Jahrestag, $Sommerzeit) = localtime(time);
my $Stunde = "";
if(defined ($volume))
{
if($Sommerzeit == 1) { $Stunden + 1 };
if($Stunden <= 12) { $Stunde = $Stunden };
if($Stunden >= 13) { $Stunde = $Stunden - 12 };
if($Stunden == 0) { $Stunde = 12 };

if ($Minuten == 00) {system ("mplayer /opt/fhem/Sound/BigBen.mp3 -volume $volume /opt/fhem/Sound/BigBenStrikes.mp3 -loop $Stunde")};
if ($Minuten == 15) {system ("mplayer /opt/fhem/Sound/BigBen_15.mp3 -volume $volume")};
if ($Minuten == 30) {system ("mplayer /opt/fhem/Sound/BigBen_30.mp3 -volume $volume")};
if ($Minuten == 45) {system ("mplayer /opt/fhem/Sound/BigBen_45.mp3 -volume $volume")};

} }


Mit dieser Anpassung werden die Gong-Files alle mit der übergebenen Lautstärke abgespielt.
Zum Aufrufen einfach {WandUhr(Lautstärke)}, wobei Lautstärke durch einen Wert zwischen 0 und 100 zu ersetzen ist, in FHEM eingeben.
Des weiteren wird nun immer zur vollen Stunde der Stunden-Gong abgespielt, um 15 nach der Viertelgong, um 30 nach der Halbgong usw.


Um nun alle 15 Minuten einen Gong zu erhalten, kann man das folgende DOIF verwenden:'
define Wanduhr DOIF ([?10:00-19:59:59] and [+:15]) ({WandUhr(85)})
DOELSEIF ([?20:00-09:59:59] and [+:15]) ({WandUhr(75)})


Bei diesem Beispiel wird zwischen 10:00 und 19:59 Uhr die Wanduhr mit der Lautstärke 85, und von 20:00 bis 09:59 Uhr mit der Lautstärke 75, abgespielt.
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

Toto1973

#86
Da man ja im Moment die WandUhr nicht testen kann, habe ich noch eine Zeile hinzugefügt:
sub WandUhr($)
{
my($volume)=@_;
my ($Sekunden, $Minuten, $Stunden, $Monatstag, $Monat,
    $Jahr, $Wochentag, $Jahrestag, $Sommerzeit) = localtime(time);
my $Stunde = "";
if(defined ($volume))
{
if($Sommerzeit == 1) { $Stunden + 1 };
if($Stunden <= 12) { $Stunde = $Stunden };
if($Stunden >= 13) { $Stunde = $Stunden - 12 };
if($Stunden == 0) { $Stunde = 12 };

if ($volume == "TEST") {system ("mplayer /opt/fhem/Sound/BigBen.mp3 -volume 80 /opt/fhem/Sound/BigBenStrikes.mp3 -loop $Stunde < /dev/null >&0 2>&0 &")};
if ($Minuten == 00) {system ("mplayer /opt/fhem/Sound/BigBen.mp3 -volume $volume /opt/fhem/Sound/BigBenStrikes.mp3 -loop $Stunde")};
if ($Minuten == 15) {system ("mplayer /opt/fhem/Sound/BigBen_15.mp3 -volume $volume < /dev/null >&0 2>&0 &")};
if ($Minuten == 30) {system ("mplayer /opt/fhem/Sound/BigBen_30.mp3 -volume $volume < /dev/null >&0 2>&0 &")};
if ($Minuten == 45) {system ("mplayer /opt/fhem/Sound/BigBen_45.mp3 -volume $volume < /dev/null >&0 2>&0 &")};
} }


Gibt man nun in FHEM {WandUhr("TEST")} ein, kann man den Gong testen. Dieser wird dann mit der Lautstärke 80 abgespielt.

Weitere Änderung:
Ich habe es endlich geschafft, den mplayer in den Hintergrund zu schicken, so das FHEM nicht mehr blockiert wird, solange der Gong abgespielt wird! :-)
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

chr2k

Sehr schön!

Muss man das manuell updaten oder ist deine Uhr eingecheckt?

Toto1973

Da es sich ja um kein Modul handelt sondern um Code, muss diese Änderung natürlich manuell vorgenommen werden!

Anzupassen ist da natürlich der Code in der 99_MyUtils.pm, hier einfach die Sub für die Wanduhr löschen und die neue Sub einfügen, und die DOIF, bei welcher man am Besten genau so vorgeht!
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

idansch

Hallo,
kann mir einer sagen warum die Lautsärke sich nicht mehr anpassen lässt? Bis vor ca. 14 Tagen hat die Volume Absenkung in den Abendstunden problemlos funktioniert.
Ich habe keine Fehlermeldung gefunden und die Funktion ist vorhanden. Leider nur einheitlich "laut".
Raspberry PI3 mit Stretch-Raspbian | CUL V3 868Mhz | RFXtrx 433Mhz | ...