Hallo,
ich habe auf meinem Raspberry-Pi über einem Dummy und notify einen Schalter erstellt, der mein HDMI-Signal zum Monitor ein bzw. ausschaltet.
Klappt wunderbar ohne Probleme.
Ebenso habe ich an der Fritzbox mehrere DECT-Geräte angeschlossen diese werden über FBDECT angesteuert.
Klappt auch super.
Nun folgendes....
wenn ich in der UI meiner FritzBox die Schaltzeit einer Gerätegruppe verändere und abspeichere bekomme ich im FHEM-LOG des Raspberry-Pi folgende Fehlermeldungen:
(http://img5.fotos-hochladen.net/uploads/2015092419036n8wmbt7kv.png)
10 Meldungen hintereinander, obwohl der HDMI-Schalter rein gar nichts mit den FritzBox-Geräten zu tun hat.
Zum besseren Verständnis hier noch der Schalter für das HDMI-Signal:
define RPi_Monitor dummy
attr RPi_Monitor setList on off
# ===== Dummy schaltet Notifys =============================================
define TV_on_notify notify RPi_Monitor { if ( Value("RPi_Monitor") eq "on"){system ("/opt/vc/bin/tvservice -p 1> /dev/null;; fbset -depth 8;; fbset -depth 16;; omxplayer /opt/fhem/Sound/computerbeep_55.mp3 1> /dev/null &")}}
attr TV_on_notify verbose 0
define TV_off_notify notify RPi_Monitor { if ( Value("RPi_Monitor") eq "off"){system ("/opt/vc/bin/tvservice -o 1> /dev/null;; omxplayer /opt/fhem/Sound/computerbeep_74.mp3 1> /dev/null &")}}
attr TV_off_notify verbose 0
# ===== Dummy State-Datei im Ordner /tmp schreiben/lesen ===================
define n1 notify global:SHUTDOWN {my $v = Value("RPi_Monitor");; `echo $v > /tmp/RPi_Monitor.status`}
define n2 notify global:INITIALIZED {my $v = `cat /tmp/RPi_Monitor.status`;; if($v) {chomp($v);; fhem("setstate RPi_Monitor $v")}}
Hier die FBAHA sowie ein Schalter bei der dieses Verhalten auftritt (es ist ein Gruppenschalter der 2 Geräte zusammenfasst):
define fb1 FBAHA 192.168.178.1:2002
# ============ virtueller Gruppenschalter Kamera 3 u. 4 ===================
#
define DECT_Group_CAM FBDECT 900 switch
attr DECT_Group_CAM IODev fb1
alles unnötige (Gruppen / Räume / Icons etc habe ich wg. einer besseren Übersicht entfernt)!
Dieser Fehler hat aber keine Auswirkung, es sieht halt nur komisch aus und da ich (wie ja zu sehen ist) ein akustisches Signal ausgebe, beim Schalten
des HDMI-Signals, ist das etwas nervig wenn 10 mal der gleiche Ton abgespielt wird. :)
Ehrlich gesagt rechne ich nicht mit einer Lösung, aber wer weiß.
Gruß
Tom
Lauf FHEM jetzt auf dem RasPi oder auf der FritzBox?
Steht so nicht eindeutig in Deinem Beitrag ...
Edit:
Und ein etwas besserer Thread-Titel wäre auch angebracht ..
Zitat von: Wernieman am 25 September 2015, 09:03:11
Lauf FHEM jetzt auf dem RasPi oder auf der FritzBox?
Steht so nicht eindeutig in Deinem Beitrag ...
doch, tut es >>Zitat von: Tom111 am 24 September 2015, 19:31:27
ich habe auf meinem Raspberry-Pi.....
Mit anderen Worten:
UI meiner FritzBox
Du meinst, wenn Du unabhängig in der Fritzbox was einstellt, bekommt dein FHEM ein Problem?
Wie sind die Geräte miteinander "Verheiratet"?
P.S. Der Thread-Titel ist immer noch etwas "blöde" ..
Zitat von: Wernieman am 25 September 2015, 11:43:34
Du meinst, wenn Du unabhängig in der Fritzbox was einstellt, bekommt dein FHEM ein Problem?
ganz genau! (das bezieht sich auf den genannten Gruppenschalter, der in der FritzBox definiert wurde)
Zitat von: Wernieman am 25 September 2015, 11:43:34
Wie sind die Geräte miteinander "Verheiratet"?
Raspberry Pi und FritzBox sind über LAN angeschlossen!
Zitat von: Wernieman am 25 September 2015, 11:43:34
P.S. Der Thread-Titel ist immer noch etwas "blöde" ..
habs geändert!
Mhh .. meinte jetzt nicht Netzwerktechnisch, sondern wie Dein FHEM im RasPi und Deine FritzBox miteinander verheiratet sind ..
Wenn ja:
Könntest Du uns ein list von den Geräten geben?
Eigentlich nur so wie auch im ersten Post angegeben wurde (es hängen am FBAHA-Server noch ein paar mehr DECT -Geräte dran,
aber die erzeugen keine Fehler und sind meines Erachtens uninteressant).
Hier noch mal:
define fb1 FBAHA 192.168.178.1:2002
# ============ virtueller Gruppenschalter Kamera 3 u. 4 ===================
#
define DECT_Group_CAM FBDECT 900 switch
attr DECT_Group_CAM IODev fb1
Zitat von: Wernieman am 25 September 2015, 12:25:14
Könntest Du uns ein list von den Geräten geben?
kann ich machen wenn ich wieder zu Hause bin.
Was mir beim nochmaligen Durchlesen aufgefallen ist:
"tvservice-client" woher kommpt der String? Steht nirgendwo in Deiner Beschreibung
BTW:
Und noch eine kleine Optimierung:
define TV_on_notify notify RPi_Monitor { if ( Value("RPi_Monitor") eq "on")
Warum schreibst Du ein notify, wo Du anschließend den Status abfragst? Mach doch ein notify, gleich zum Status?
define TV_on_notify notify RPi_Monitor:on
Siehe Doku zu notify
(Analog übrigens auch für das "off")
ok, habs geändert !
Zitat von: Wernieman am 25 September 2015, 15:15:58
Was mir beim nochmaligen Durchlesen aufgefallen ist:
"tvservice-client" woher kommpt der String? Steht nirgendwo in Deiner Beschreibung
keine Ahnung, alles was irgendwie mit "tvservice" zu tun hat ist halt dieses an und abschalten des HDMI-Signals ( Code im ersten Post ).
Kannst Du im Script nachsehen, was dieses für Ausgaben bringt?
Oder Du hast noch irgendwo ein tvservice-client ...
Edit:
Google sei Dank, es kommt von "/opt/vc/bin/tvservice"
Habe ich es richtig verstanden, das Du auch 10 mal einen Ton bekommst?
Das also TV_on_notify auch 10 mal Trickert??
Zitat von: Wernieman am 25 September 2015, 20:58:07
Habe ich es richtig verstanden, das Du auch 10 mal einen Ton bekommst?
Das also TV_on_notify auch 10 mal Trickert??
ja, so ist das, 10 mal LOG-Eintrag und 10 mal der Ton!
Die gute Frage:
Bekommst Du vom "On" oder "Off" Tricker den Ton?
Zitat von: Wernieman am 26 September 2015, 18:41:45
Die gute Frage:
Bekommst Du vom "On" oder "Off" Tricker den Ton?
Das war eine sehr gute Frage,... ich habe jetzt mal beide Notifys deaktiviert und der Fehler im LOG wird weiterhin angezeigt und auch der Ton wird abgespielt.
Der Ton wird aber noch an anderer Stelle abgespielt ..... und zwar hier:
(mit dieser Anweisung wird meine Standuhr bei Abwesenheit deaktiviert bzw. bei Anwesenheit aktiviert)
define Standuhr_dummy dummy
attr Standuhr_dummy setList on off
# ==========================
# ====== Standuhr ausschalten wenn DECT_Group_CAM (Security) an ist und umgekehrt.
#
define Standuhr_off_notify notify DECT_Group_CAM {if ( Value("DECT_Group_CAM") eq "on"){ fhem("set Standuhr_dummy off")}}
define Standuhr_on_notify notify DECT_Group_CAM {if ( Value("DECT_Group_CAM") eq "off"){ fhem("set Standuhr_dummy on")}}
# ==========================
# ====== Bestätigungston einschalten/ausschalten
#
define Standuhr_EIN notify Standuhr_dummy { if ( Value("Standuhr_dummy") eq "on"){system ("omxplayer /opt/fhem/Sound/computerbeep_55.mp3 1> /dev/null &")}}
attr Standuhr_EIN verbose 0
define Standuhr_AUS notify Standuhr_dummy { if ( Value("Standuhr_dummy") eq "off"){system ("omxplayer /opt/fhem/Sound/computerbeep_74.mp3 1> /dev/null &")}}
attr Standuhr_AUS verbose 0
Wenn ich diese Zeilen heraus nehme:define Standuhr_EIN notify Standuhr_dummy { if ( Value("Standuhr_dummy") eq "on"){system ("omxplayer /opt/fhem/Sound/computerbeep_55.mp3 1> /dev/null &")}}
attr Standuhr_EIN verbose 0
define Standuhr_AUS notify Standuhr_dummy { if ( Value("Standuhr_dummy") eq "off"){system ("omxplayer /opt/fhem/Sound/computerbeep_74.mp3 1> /dev/null &")}}
attr Standuhr_AUS verbose 0
bekomme ich keine Fehler mehr im LOG und auch der 10malige Ton bleibt weg.
Nur, wieso ist das so ??
Dürfte also bei DECT_Group_CAM (Security) liegen ...
übrigens gilt auch hier der Hinweis von weiter oben:
Warum machst Du ein Notify mit anschließender If-Abfrage, wenn Du es schon im Notify erledigen kannst?
Zitat von: Wernieman am 27 September 2015, 10:24:37
übrigens gilt auch hier der Hinweis von weiter oben:
Warum machst Du ein Notify mit anschließender If-Abfrage, wenn Du es schon im Notify erledigen kannst?
OK, hab ich geändert und gleich auch nochmal die FritzBox-UI aufgerufen und getestet, was soll ich sagen.... der Fehler kommt nicht mehr. ???
Es lag an der
IF-Abfrage !
Ich möchte den Thread aber nicht als gelöst kennzeichnen, weil es muss ja dann ein Fehler im Modul sein denn die Codezeile war ja ansonsten korrekt!
Das ganze sieht nun so aus:define Standuhr_dummy dummy
attr Standuhr_dummy setList on off
# ==========================
# ====== Standuhr ausschalten wenn DECT_Group_CAM (Security) an ist und umgekehrt.
#
define Standuhr_off_notify notify DECT_Group_CAM:on set Standuhr_dummy off
define Standuhr_on_notify notify DECT_Group_CAM:off set Standuhr_dummy on
# ==========================
# ====== Bestätigungston einschalten/ausschalten
#
define Standuhr_EIN notify Standuhr_dummy:on {system ("omxplayer /opt/fhem/Sound/computerbeep_55.mp3 1> /dev/null &")}
attr Standuhr_EIN verbose 0
define Standuhr_AUS notify Standuhr_dummy:off {system ("omxplayer /opt/fhem/Sound/computerbeep_74.mp3 1> /dev/null &")}
attr Standuhr_AUS verbose 0
Na dann, danke nochmals, ich werde es erst mal so belassen!
Gruß
Tom
Sorry, dazu kann ich nichts mehr sagen ;o)