Callmonitor: Notification auf XBMC

Begonnen von bt25, 24 April 2015, 09:52:15

Vorheriges Thema - Nächstes Thema

bt25

Moin,
mein Ziel ist es eine Notification auf mein XBMC/Kodi zu schicken wenn Jemand anruft.
Dies habe ich gefunden:

## Anruf-Monitor
define TelefonAnruf notify FritzBoxMonitor:event:.(connect|ring) { \
my $internalNumber = (ReadingsVal("FritzBoxMonitor","internal_number",99));;\
my $externalNumber = (ReadingsVal("FritzBoxMonitor","external_number",99));;\
my $externalName = (ReadingsVal("FritzBoxMonitor","external_name",99));;\
if ($EVTPART1 eq "ring")\
{ \
fhem 'set WoZi msg "Anruf von '.$externalNumber.'" "'.$externalName .'" 5000 info';;\
}\
}


aber der Syntax scheint mit dem aktuellen FHEM nicht mehr zu funktionieren:

ZitatTelefonAnruf return value: Unknown command :event:.(connect|ring), try help.

Kann man das so lösen oder brauche ich unbedingt eine 99_myUtilsTelefon.pm?

Otto123

Hallo,

bei mir funktioniert FBMon:.*ring set ... nach wie vor im notify.

Gruß Otto
Viele Grüße aus Leipzig  ⇉  nächster Stammtisch an der Lindennaundorfer Mühle
RaspberryPi B B+ B2 B3 B3+ ZeroW,HMLAN,HMUART,Homematic,Fritz!Box 7590,WRT3200ACS-OpenWrt,Sonos,VU+,Arduino nano,ESP8266,MQTT,Zigbee,deconz

bt25

Also dann so?

## Anruf-Monitor
define TelefonAnruf notify FritzBoxMonitor:.*ring { \
my $internalNumber = (ReadingsVal("FritzBoxMonitor","internal_number",99));;\
my $externalNumber = (ReadingsVal("FritzBoxMonitor","external_number",99));;\
my $externalName = (ReadingsVal("FritzBoxMonitor","external_name",99));;\
if ($EVTPART1 eq "ring")\
{ \
fhem 'set WoZi msg "Anruf von '.$externalNumber.'" "'.$externalName .'" 5000 info';;\
}\
}


Das funktioniert bei mir ins soweit das kein Fehler mehr kommt... aber auch keine Notification und das Log ist auch leer :-/

Paul

Cubietruck, HM-USB, CUL, FS20, FHT, HUE, Keymatic

bt25

#4
Okay dass gar nichts im Log stand war mein Fehler...
Jetzt bekomme ich folgendes:

Zitat
2015.04.24 16:31:54 5: Triggering TelefonAnruf
2015.04.24 16:31:54 4: TelefonAnruf exec {
   my $internalNumber = (ReadingsVal("AnrufMonitor","internal_number",99));;
   my $externalNumber = (ReadingsVal("AnrufMonitor","external_number",99));;
   my $externalName = (ReadingsVal("AnrufMonitor","external_name",99));;
   Fhem 'set WoZi msg "Anruf von '.$externalNumber.'" "'.$externalName .'" 5000 info';;
   Fhem 'set XBMC msg "Anruf von '.$externalNumber.'" "'.$externalName .'" 5000 info';;
}
2015.04.24 16:31:54 1: PERL WARNING: String found where operator expected at (eval 1501) line 5, near "Fhem 'set WoZi msg "Anruf von '"
2015.04.24 16:31:54 3: eval: {
   my $internalNumber = (ReadingsVal("AnrufMonitor","internal_number",99));
   my $externalNumber = (ReadingsVal("AnrufMonitor","external_number",99));
   my $externalName = (ReadingsVal("AnrufMonitor","external_name",99));
   Fhem 'set WoZi msg "Anruf von '.$externalNumber.'" "'.$externalName .'" 5000 info';
   Fhem 'set XBMC msg "Anruf von '.$externalNumber.'" "'.$externalName .'" 5000 info';
}
2015.04.24 16:31:54 1: PERL WARNING:    (Do you need to predeclare Fhem?)
2015.04.24 16:31:54 1: PERL WARNING: String found where operator expected at (eval 1501) line 6, near "Fhem 'set XBMC msg "Anruf von '"
2015.04.24 16:31:54 3: eval: {
   my $internalNumber = (ReadingsVal("AnrufMonitor","internal_number",99));
   my $externalNumber = (ReadingsVal("AnrufMonitor","external_number",99));
   my $externalName = (ReadingsVal("AnrufMonitor","external_name",99));
   Fhem 'set WoZi msg "Anruf von '.$externalNumber.'" "'.$externalName .'" 5000 info';
   Fhem 'set XBMC msg "Anruf von '.$externalNumber.'" "'.$externalName .'" 5000 info';
}
2015.04.24 16:31:54 3: TelefonAnruf return value: syntax error at (eval 1501) line 5, near "Fhem 'set WoZi msg "Anruf von '"

anfichtn

die funktion heisst "fhem". nicht "Fhem" oder irgendwie anders.

:)

Grüße

anfichtn
FHEM 5.6 + Pilight + Pimatic auf BananaPro mit Bananian 15.04 r01
FB7270 v2 & FB7412
LDA382A mit WifiLight
MAX-Cube (aculfw), 6 Fensterkonstakte, 5 HK-Thermostate, 3 WandThermostate
[...]

carzl

Ich grab das Thema mal wieder aus... Die Anrufinfo von Fhem nach Kodi klappt bei mir gut, ein Notify auf den FB_Callmonitor macht bei mir

Anrufmonitor:event:.ring {my $name=(ReadingsVal("Anrufmonitor","external_name",0));my $nummer=(ReadingsVal("Anrufmonitor","external_number",0));fhem ("set WZ_Kodi msg 'Anruf von' '$name ($nummer)' 20000 http://192.168.178.28:8083/fhem/www/pictures/Telefon.jpg");}

Statt des "info"-Symbols lasse ich in Kodi also ein Foto meines Festnetztelefons anzeigen, was physisch auf dem RPi liegt, soweit so gut.

Nun würde ich aber das Foto gern dynamisch machen und durch ein Foto des Anrufers ersetzen. Man könnte also die Kontaktfotos in einen Ordner kippen (bei mir "fhem/www/pictures") und mit den selben Namen benennen, wie sie der Callmonitor als "external_name" rausgibt. Nur - wie kann ich den Aufruf der .jpg dynamisch bauen, dort müsste ja dann entweder direkt "external_name" rein oder eine Variable, die man immer mit dem gerade reinkommenden "external_Name" betankt.

Hat jemand eine Idee oder sowas mal gebaut?

Danke!
Carsten
Fhem 6.0 auf RPi3: CUL, JeeLink, Hue Bridge v2, HarmonyHub, Fritzbox7590+7412, 6x FHT80b, 2x FS20S6A, FS20S4A, S300TH, 4x FritzDECT200/210, 4x TX29DTH, 4x Hue LightStripe, 5x Hue Smart Plug, Sonos mit 5x Play:1, Beam und Sub; 3x Lenovo Tab M10 mit FTUI

nils_

du setzt doch den $name schon in deinem notify (ganz am anfang)

jetzt kannst du dir doch den string/pfad zu dem bild zusammenbauen.
versuch mal:
Anrufmonitor:event:.ring {my $name=(ReadingsVal("Anrufmonitor","external_name",0));my $nummer=(ReadingsVal("Anrufmonitor","external_number",0));fhem ("set WZ_Kodi msg 'Anruf von' '$name ($nummer)' 20000 http://192.168.178.28:8083/fhem/www/pictures/". $name .".jpg");}

bild muss dann unter fhem/www/pictures mit entsprechendem $name.jpg liegen

ausnahmefälle für nicht gesetzten external-name und damit evtl. nicht vorhandenes bild musst du noch einbauen.
viele Wege in FHEM es gibt!

carzl

Hallo nils,

danke für deine Hilfe! Klappt aber leider nicht  :(

Ein Leerzeichen im dynamischen Dateinamen führt dazu, dass statt "Anruf von" der Teil "http://192~" als Titel in der Kodi-Benachrichtigung durch. Bist du sicher, dass ". $name .".jpg die richtige Def ist, um den Dateinamen zu generieren?

Danke.
Fhem 6.0 auf RPi3: CUL, JeeLink, Hue Bridge v2, HarmonyHub, Fritzbox7590+7412, 6x FHT80b, 2x FS20S6A, FS20S4A, S300TH, 4x FritzDECT200/210, 4x TX29DTH, 4x Hue LightStripe, 5x Hue Smart Plug, Sonos mit 5x Play:1, Beam und Sub; 3x Lenovo Tab M10 mit FTUI

nils_

nein sicher bin ich mir natürlich nicht :D


bei $name hab ich nicht an leerzeichen gedacht. sorry.
vielleicht legst du die dateien mit der nummer ab.

dann musst du natürlich $nummer.jpg zusammen bauen im notify.

so?
Anrufmonitor:event:.ring {my $name=(ReadingsVal("Anrufmonitor","external_name",0));my $nummer=(ReadingsVal("Anrufmonitor","external_number",0));fhem ("set WZ_Kodi msg 'Anruf von' '$name ($nummer)' 20000 http://192.168.178.28:8083/fhem/www/pictures/". $nummer.".jpg");}


//edit
letztlich ginge der name natürlich auch. da muss dann halt nur was gemacht werden wegen den leerzeichen (ersetzen, escapen, ...).

viele Wege in FHEM es gibt!