FRITZBOX-Modul und Anrufbeantworter geschalten im Notify

Begonnen von kblc, 19 Januar 2017, 17:36:19

Vorheriges Thema - Nächstes Thema

kblc

Hallo,

nach langem versuchen, lesen und probieren, muss ich mich nun doch mit meiner Frage an Euch wenden:

Ich habe eine Fritzbox, einen Raspberry Pi und einiges an Zubehör. Außerdem ist in meinem System auch noch eine CCU1 von Homematic verbaut.
Ich möchte mit FHEM (vom RasPi aus) den Anrufbeantworter der Fritzbox Ein- und Ausschalten. Er soll immer dann eingehen, wenn Lampe1 On ist. Die Lampe1 geht dann auf ON, wenn die Homematic eine Abwesenheit meldet. Das funktioniert auch zuversichtlich. Es funktioniert über die HomematicApp PocketControl. Leider kann ich den Anrufbeantworter über das Modul FRITZBOX (in den Readings) mit der Lampe1 über ein Notify nicht steuern. Wenn ich den Code:
set FritzBox78 tam 1 on
in das FHEM Eingabefeld eingebe, schaltet sich der AB ein. Bei off am Ende des Codes freilich auch aus. Aber im Notify klappt es nicht. ich habe auch schon versucht mit setreadings zu arbeiten, aber das klappt nicht.

Folgender Code aus fhem.cfg:


define Lampe1 dummy
attr Lampe1 room FritzBox
attr Lampe1 webCmd on:off

define Lampe1Notifyoff notify Lampe1:off set FritzBox78 tam 1 on
define Lampe1Notifyon notify Lampe1:on set FritzBox78 tam 1 off

define Lampe1Notify2off notify AllesAus:off set Lampe2 on
define Lampe1Notify2on notify AllesAus:on set Lampe2 off


Hier noch ein paar Infos:

  • Die Lampe2 geht mit der Lampe1 ein. Das klappt
  • Wenn ich in das FHEM-Eingabefeld "set FritzBox78 tam 1 on" eingebe geht der AB auch an. Bei off auch aus. Das klappt auch.


Hier ein Auszug aus den Readings des von FRITZBOX erzeugten Eintrages:

tam1
Anrufbeantworter 1
2017-01-19 17:28:25
tam1_newMsg
3
2017-01-19 17:28:25
tam1_oldMsg
180
2017-01-19 17:28:25
tam1_state
off
2017-01-19 17:29:48


Ich würde mich echt riesig freuen, wenn mir jemand einen Tipp geben könnte der mir weiter hilft.

Vielen Dank auch für alle Gedanken.

Kai aus Oberfranken
SPS, Arduino, Controllino, Sensortechnik, Elektronik

kblc

Die Lösung ist recht einfach:
Da es sich um das setzen von Readings handelt, habe ich als erstes mit dem Code:
define ntfy_setreading notify d_.* { if( ($EVENT ~~ / /) and ($EVENT !~ /: /) ) {fhem("setreading $NAME $EVENT")} }
die Readings global zur Verfügung gesetzt. Weiter habe ich mit setreading probiert. Das hat alles nicht geklappt (Leider).

Plan B war es dann den Code, der ja im Eingabefeld funktionierte, in Perl zu schreiben:

define AllesAus dummy
attr AllesAus room FritzBox
attr AllesAus webCmd on:off
define AllesAusNotifyoff notify AllesAus { fhem "set FritzBox78 tam 1 $EVENT" }


Und siehe da, es klappte. Manchmal hilft es vermutlich schon alleine ein Thema im Forum zu öffnen und zu warten, um die Knoten auf den Gehirnwindungen zu bekommen. Auf jeden Fall klappt es.

Kurze Info zu meinem Projekt:

Ich habe eine Homematic CCU1. Diese erkennt anhand der PocketControl-App die Anwesenheit (über GPS). Das ganze läuft bereits zuverlässig 2-3 Monate. (Ohne Fehler oder Ausfälle). Mit der Anwesenheit lasse ich nun meinen Anrufbeantworter bei Abwesenheit Ein- bzw. bei Anwesenheit Ausschalten. Außerdem soll in Zukunft das Lan ebenfalls durch die Anwesenheit EIN bzw  AUS gehen.

Vielleicht kennt jemand noch eine gute Anwendung für das Ganze.

Vielen Dank und noch einen schönen Sonntag.

Kai aus Oberfranken.
SPS, Arduino, Controllino, Sensortechnik, Elektronik