Grüße.
Ich hab leider keine Ahnung, wie ich es bewerkstelligen kann, dass eine Lampe eingeschaltet wird, wenn ein Anruf eingeht
Wäre jemand so nett, mir diesen hoffentlich kleinen Codeschnipsel einsatzbereit zur Verfügung zu stellen?
Ich bin Rootuser, weil ich über die IP m eine Anwesenheit teste.
FHEM: von hier,
Fritte: 7390
Name des Schalters: Licht
Danke im Voraus für die Mühe.
Wie wäre es mit diesen Fundstellen ?
http://forum.fhem.de/index.php?t=msg&goto=79817&rid=932&srch=Anruf+Licht#msg_79817 (//forum.fhem.de/index.php?t=msg&goto=79817&rid=932&srch=Anruf+Licht#msg_79817)
Die Fundstelle ist brillant. Obwohl ich fast 2 Stunden gesucht hatte, bin ich leider nicht drauf gestossen.
Vielen Dank.
Ich hab das auch gleich probiert, aber es tut sich nichts. Absolut keine Reaktion.
Hat das vielleicht doch etwas mit Root zu tun?
ich abe einfach den Code übernommen und leicht abgeändert. Aber daran sollte es nicht liegen:
## Jemand ruft mich an
define TelefonAN notify Fritz_Box:event:.ring { \
fhem "set LED on";;\
fhem "set STV4 PAUSE";;\
}
## anruf beendet
define TelefonAUS notify Fritz_Box:event:.disconnect { \
fhem "define Latenz at +00:00:10 set LED off";;\
fhem "define Latenz2 at +00:00:10 set STV4 PLAY";;\
}
fhem muss bei Dir als root laufen, siehe http://www.fhemwiki.de/wiki/FritzBox_Parameter_in_fhem_anzeigen#Wichtig (//www.fhemwiki.de/wiki/FritzBox_Parameter_in_fhem_anzeigen#Wichtig)
sonst kannst Du auf keine der fFB-Funktionen zugreifen.
So, ich habe nun lange herumprobiert. Erwartungsgemäss klappt gar nichts.
Der Callmonitor liefert einfach keine Ergebnisse.
Da ich leider nur seeeehr wenig Ahnung habe, bitte ich noch einmal um Eure Hilfe in der Hoffnung, dass ihr noch nicht die Nase voll habt.
Ich wäre dankbar, wenn ihr euch mal die Config ansehen würdet, um Fehler zu entdecken. Die unwichtigen Sachen (Steckdosen und Thermometer) habe ich rausgelassen, die laufen ja auch. Die Anwesenheitsnachweise laufen nun nicht mehr, weil Root raus ist (denke ich).
Wie gesagt, es geht um die Anrufsignalisierung der Fritzbox (Callmonitor).
Falls ihr zufällig über weiter, böse Fehler stolpern solltet und mir das sagt, bin ich auch dafür dankbar.
Die Codes habe ich alle zusammengeklickt, bis auf wenige Ausnahmen und dann natürlich angepasst.
Hier also die Dateien:
Auszug aus dem Logfile:
(Fehler Can't connect to 192.168.0.1:1012: Connection timed out)
2013.07.19 08:27:21 3: telnetPort: port 7072 opened
2013.07.19 08:27:21 3: WEB: port 8083 opened
2013.07.19 08:27:21 3: WEBphone: port 8084 opened
2013.07.19 08:27:21 3: WEBtablet: port 8085 opened
2013.07.19 08:27:22 3: Opening CUL_0 device /dev/ttyACM0
2013.07.19 08:27:22 3: Setting CUL_0 baudrate to 9600
2013.07.19 08:27:22 3: CUL_0 device opened
2013.07.19 08:27:22 3: CUL_0: Possible commands: BCFiAZEGMRTVWXefmltux
2013.07.19 08:27:22 3: Opening fbaha device localhost:2002
2013.07.19 08:27:22 3: fbaha device opened
2013.07.19 08:27:22 1: FBAHA fbaha registered with handle: 00000006
2013.07.19 08:27:23 3: [STV] defined with host: 192.168.178.22 port: 55000 MAC: 9C:C7:A6:9A:C7:DF
2013.07.19 08:27:23 3: Opening FB7390 device 192.168.0.1:1012
2013.07.19 08:27:26 3: Can't connect to 192.168.0.1:1012: Connection timed out
2013.07.19 08:27:26 3: [STV] defined with host: 192.168.178.22 port: 52235 MAC:
2013.07.19 08:27:26 3: Opening MyCallMonitor device 192.168.0.1:1012
2013.07.19 08:27:29 3: Can't connect to 192.168.0.1:1012: Connection timed out
2013.07.19 08:27:29 1: Including ./log/fhem.save
2013.07.19 08:37:29 3: Watchdog watchdog_Abwesenheit triggered
fhem.cfg:
attr global autoload_undefined_devices 1
attr global logfile ./log/fhem-%Y-%m.log
attr global modpath .
attr global motd SecurityCheck:\\\\\
\\\\\
WEB,WEBphone,WEBtablet has no basicAuth attribute.\\\\\
telnetPort has no password/globalpassword attribute.\\\\\
\\\\\
Restart fhem for a new check if the problem is fixed,\\\\\
or set the global attribute motd to none to supress this message.\\\\\
attr global sendStatistics manually
attr global statefile ./log/fhem.save
attr global userattr devStateIcon devStateStyle icon sortby webCmd
attr global verbose 3
# attr global motd .
define telnetPort telnet 7072 global
define WEB FHEMWEB 8083 global
attr WEB stylesheetPrefix dark
define WEBphone FHEMWEB 8084 global
attr WEBphone stylesheetPrefix smallscreen
define WEBtablet FHEMWEB 8085 global
attr WEBtablet stylesheetPrefix dark
# Fake FileLog entry, to access the fhem log from FHEMWEB
define Logfile FileLog ./log/fhem-%Y-%m.log fakelog
define autocreate autocreate
attr autocreate autosave 1
attr autocreate device_room %TYPE
attr autocreate filelog ./log/%NAME-%Y.log
attr autocreate weblink 1
attr autocreate weblink_room Plots
# Disable this to avoid looking for new USB devices on startup
define initialUsbCheck notify global:INITIALIZED usb create
# If the above notify did not helped, then you probably have to enable some of
# the following lines. Verify first that /dev/xxx ist correct.
#define FHZ FHZ /dev/USB0
#define CUL CUL /dev/ttyACM0@9600 1234
#attr CUL rfmode HomeMatic
#define EUL TCM 310 /dev/ttyACM0@57600
#define BscBor TCM 120 /dev/ttyUSB0@9600
#define BscSmartConnect TCM 310 /dev/ttyUSB0@57600
#FB_checkPw does not for FB-OS > 5.22
#attr WEB basicAuth {use FritzBoxUtils;;FB_checkPw("localhost","$password") }
#attr WEBphone basicAuth {use FritzBoxUtils;;FB_checkPw("localhost","$password") }
#attr WEBtablet basicAuth {use FritzBoxUtils;;FB_checkPw("localhost","$password") }
#attr telnetPort globalpassword {use FritzBoxUtils;;FB_checkPw("localhost","$password") }
#---------------------------------------------------------
define CUL_0 CUL /dev/ttyACM0@9600 1034
define fbaha FBAHA localhost:2002
#=========================================================
# ------------- Anwesenheitskontrolle ------------------
define Handy PRESENCE lan-ping 192.168.178.21 60
define watchdog_Abwesenheit watchdog Handy:absent 00:10 Handy:present setstate watchdog_Anwesenheit defined;;\
set Uhr off
attr watchdog_Abwesenheit regexp1WontReactivate 1
define watchdog_Anwesenheit watchdog Handy:present 00:01 Handy:absent setstate watchdog_Abwesenheit defined;;\
set Uhr on
attr watchdog_Anwesenheit regexp1WontReactivate 1
# ------------- Twilieght für LED und Stehlampe ------------------
define myTwilight Twilight 52.53264390 13.60628510 1 638242
define LED_sunset_an at *{sunset("civil","-1200")} set LED on
attr LED_sunset_an room WZ
#define FileLog_LED FileLog ./log/LED-%Y.log LED
#attr FileLog_LED logtype text
#attr FileLog_LED room Logs
define Stehlampe_sunset_an at *{sunset("REAL","900")} set Stehlampe on
attr Stehlampe_sunset_an room WZ
#define FileLog_Stehlampe FileLog ./log/Stehlampe-%Y.log Stehlampe
#attr FileLog_Stehlampe logtype text
#attr FileLog_Stehlampe room Logs
# -------- Wetterdaten erfassen ---------
define MeinWetter Weather 638242 3600 de
attr MeinWetter room Wettervorhersage
# -- Logfile alle Wetter Daten --
define FileLog_MeinWetter FileLog ./log/meinwetter-%Y-%m.log MeinWetter
attr FileLog_MeinWetter logtype text
attr FileLog_MeinWetter room Logs
# attr MeinWetter localicons 1
# -- Wetter Icons hinzufügen --
define weblink_meinwetter weblink htmlCode {WeatherAsHtml("MeinWetter")}
attr weblink_meinwetter room Wettervorhersage
# IGNORE ---------------------------------------------------------
define CUL_TX_21 CUL_TX 21
attr CUL_TX_21 ignore 1
define CUL_TX_73 CUL_TX 73
attr CUL_TX_73 ignore 1
# Samsung TV -----------------------------------------------------
define STV1 dummy
attr STV1 group TV
attr STV1 webCmd HDMI:TV:CHUP:CHDOWN:POWEROFF
define STV2 dummy
attr STV2 group TV
attr STV2 webCmd MENU:UP:ENTER:VOLUP:VOLDOWN
define STV3 dummy
attr STV3 group TV
attr STV3 webCmd LEFT:DOWN:RIGHT:EXIT:VOLUME=20
define n_STV notify STV.* { samsungtv($EVENT);; fhem("setstate $NAME .");; -1;;}
define TV STV 192.168.178.22 55000
define rc1 remotecontrol
attr rc1 rc_iconpath icons/remotecontrol
attr rc1 rc_iconprefix black_btn_
attr rc1 room TestRemote
attr rc1 row00 POWEROFF,TV,HDMI
attr rc1 row01 :blank,:blank,:blank
attr rc1 row02 1,2,3
attr rc1 row03 4,5,6
attr rc1 row04 7,8,9
attr rc1 row05 :blank,0,PRECH
attr rc1 row06 :blank,:blank,:blank
attr rc1 row07 VOLUP:UP,MUTE,CHUP
attr rc1 row08 :VOL,:blank,:PROG
attr rc1 row09 VOLDOWN:DOWN,CH_LIST,CHDOWN
attr rc1 row10 MENU,:blank,GUIDE
attr rc1 row11 :blank,:blank,:blank
attr rc1 row12 TOOLS,UP,INFO
attr rc1 row13 LEFT,ENTER,RIGHT
attr rc1 row14 RETURN,DOWN,EXIT
define weblink_rc1 weblink htmlCode {fhem("get rc1 htmlcode", 1)}
attr weblink_rc1 group rc
attr weblink_rc1 room TestRemote
define FB7390 FB_CALLMONITOR 192.168.0.1:1012
#define CallMonitor_notify notify FB7390:event.*ring #{if(ReadingsVal("FB7390","internal_number","") eq "12345") { #FHTnominal("AZO_FHT80B") } }
## Jemand ruft mich an
define TelefonAN notify Fritz_Box:event:.ring { \
fhem "set LED on";;\
fhem "set STV4 PAUSE";;\
}
## anruf beendet
define TelefonAUS notify Fritz_Box:event:.disconnect { \
fhem "define Latenz at +00:00:10 set LED off";;\
fhem "define Latenz2 at +00:00:10 set STV4 PLAY";;\
}
define SamsungTV STV 192.168.178.22
#
# Test FB_CALLMONITOR....
#
define MyCallMonitor FB_CALLMONITOR 192.168.0.1:1012
attr MyCallMonitor event-on-change-reading event
attr MyCallMonitor group Wohnzimmer
attr MyCallMonitor room Haus
define n_MyCallMonitor notify MyCallMonitor {\
my $extNr = ReadingsVal("MyCallMonitor", "external_number", "none");;\
my $intNr = ReadingsVal("MyCallMonitor", "internal_number", "none");;\
my $conNr = ReadingsVal("MyCallMonitor", "used_connection", "none");;\
my $event = ReadingsVal("MyCallMonitor", "event", "none");;\
my $MSN = "" ;;\
SELECT:{\
if ($intNr eq "99902526"){$MSN = "MSN 1";; last SELECT;; }\
if ($intNr eq "99902528"){$MSN = "MSN 2";; last SELECT;; }\
if ($intNr eq "99499001"){$MSN = "MSN 3";; last SELECT;; }\
if ($intNr eq "99287621"){$MSN = "MSN 4";; last SELECT;; }\
}\
if($event eq "ring"){\
fhem "set SamsungTV mute on";;\
fhem "set SamsungTV call 'von:_'.$extNr.' '.$extNr.' '.$intNr";;\
} elsif($event eq "call"){\
;;\
} elsif($event eq "disconnect"){\
fhem "set SamsungTV mute off";;\
} else {\
;;\
}\
}
und die myUtils
##############################################
# $Id: 99_Utils.pm 3417 2013-07-14 09:15:15Z rudolfkoenig $
package main;
use strict;
use warnings;
use POSIX;
sub
Utils_Initialize($$)
{
my ($hash) = @_;
}
sub
time_str2num($)
{
my ($str) = @_;
my @a = split("[- :]", $str);
return mktime($a[5],$a[4],$a[3],$a[2],$a[1]-1,$a[0]-1900,0,0,-1);
}
sub
min($@)
{
my ($min, @vars) = @_;
for (@vars) {
$min = $_ if $_ lt $min;
}
return $min;
}
sub
max($@)
{
my ($max, @vars) = @_;
for (@vars) {
$max = $_ if $_ gt $max;
}
return $max;
}
sub
minNum($@)
{
my ($min, @vars) = @_;
for (@vars) {
$min = $_ if $_ < $min;
}
return $min;
}
sub
maxNum($@)
{
my ($max, @vars) = @_;
for (@vars) {
$max = $_ if $_ > $max;
}
return $max;
}
sub
abstime2rel($)
{
my ($h,$m,$s) = split(":", shift);
$m = 0 if(!$m);
$s = 0 if(!$s);
my $t1 = 3600*$h+60*$m+$s;
my @now = localtime;
my $t2 = 3600*$now[2]+60*$now[1]+$now[0];
my $diff = $t1-$t2;
$diff += 86400 if($diff <= 0);
return sprintf("%02d:%02d:%02d", $diff/3600, ($diff/60)%60, $diff%60);
}
#99_myUtils.pm
#am Anfang hinzugefügt:
use CGI qw(:standard);
use IO::Socket;
use MIME::Base64;
sub samsungtv($);
#### Samsung-TV steuern ########################################################################################################
# called by n_STV
sub
samsungtv($) {
my $cmd = shift;
my @ARGV = split(" ",$cmd);
#### Configuration
#Debug "samsungtv ARGV 0:".$ARGV[0]. ($ARGV[1] ? " 1:".$ARGV[1] : "");
my $tv = "UE55ES8090"; # Might need changing to match your TV type
my $port = "55000"; #TCP port of Samsung TV
my $tvip = "192.168.178.22"; # IP Address of TV
my $myip = "192.168.178.20"; # Doesn't seem to be really used
my $mymac = "1C:6F:65:C5:AD:FC"; # Used for the access control/validation
my $appstring = "iphone..iapp.samsung"; # What the iPhone app reports
my $tvappstring = "iphone.".$tv.".iapp.samsung"; # TV type
my $remotename = "Perl Samsung Remote"; # What gets reported when it asks for permission/also shows in General->Wireless Remote Control menu
# command-line help
if ($ARGV[0] eq "--help") {
print "Usage: samsungremote KEY [KEYS]\n";
print "Normal remote keys: 0 1 2 3 4 5 6 7 8 9 UP DOWN LEFT RIGHT ENTER MENU PRECH GUIDE INFO RETURN CH_LIST EXIT SOURCE AD PICTURE_SIZE VOLUP VOLDOWN MUTE TOOLS POWEROFF CHUP CHDOWN CONTENTS W_LINK RSS MTS SRS CAPTION TOPMENU SLEEP ESAVING PLAY PAUSE REWIND FF REC STOP TV HDMI PIP_ONOFF ASPECT \n";
exit;
}
my $sock = new IO::Socket::INET (
PeerAddr => $tvip,
PeerPort => '55000',
Proto => 'tcp',
);
die "Could not create socket: $!\n" unless $sock;
my $messagepart1 = chr(0x64) . chr(0x00) . chr(length(encode_base64($myip, ""))) . chr(0x00) . encode_base64($myip, "") . chr(length(encode_base64($mymac, ""))) . chr(0x00) . encode_base64($mymac, "") . chr(length(encode_base64($remotename, ""))) . chr(0x00) . encode_base64($remotename, "");
my $part1 = chr(0x00) . chr(length($appstring)) . chr(0x00) . $appstring . chr(length($messagepart1)) . chr(0x00) . $messagepart1;
print $sock $part1;
my $messagepart2 = chr(0xc8) . chr(0x00);
my $part2 = chr(0x00) . chr(length($appstring)) . chr(0x00) . $appstring . chr(length($messagepart2)) . chr(0x00) . $messagepart2;
print $sock $part2;
# Preceding sections all first time only
if (defined(param("text"))) {
# Send text, e.g. in YouTube app's search, N.B. NOT BBC iPlayer app.
my $text = param("text");
my $messagepart3 = chr(0x01) . chr(0x00) . chr(length(encode_base64($text, ""))) . chr(0x00) . encode_base64($text, "");
my $part3 = chr(0x01) . chr(length($appstring)) . chr(0x00) . $appstring . chr(length($messagepart3)) . chr(0x00) . $messagepart3;
print $sock $part3;
}
else {
foreach my $argnum (0 .. $#ARGV) {
# Send remote key(s)
# Debug "samsungtv.pl sending ".uc($ARGV[$argnum]);
my $key = "KEY_" . uc($ARGV[$argnum]);
my $messagepart3 = chr(0x00) . chr(0x00) . chr(0x00) . chr(length(encode_base64($key, ""))) . chr(0x00) . encode_base64($key, "");
my $part3 = chr(0x00) . chr(length($tvappstring)) . chr(0x00) . $tvappstring . chr(length($messagepart3)) . chr(0x00) . $messagepart3;
print $sock $part3;
# sleep(1);
select(undef, undef, undef, 0.5);
}
}
close($sock);
}
#### Samsung-TV remote frontend ########################################################################################################
# called by weblink htmlCode {samsungremote("<remotedevice>")}
sub
samsungremote_init() {
my @row;
$row[0]="POWEROFF,TV,HDMI";
$row[1]="---";
$row[2]="1,2,3";
$row[3]="4,5,6";
$row[4]="7,8,9";
$row[5]=",0,PRECH";
$row[6]="---";
$row[7]="VOLUP,MUTE,CHUP";
$row[8]="VOLDOWN,CH_LIST,CHDOWN";
$row[9]="MENU,,GUIDE";
$row[10]="---";
$row[11]="TOOLS,UP,INFO";
$row[12]="LEFT,ENTER,RIGHT";
$row[13]="RETURN,DOWN,EXIT";
# unused available commands
# AD PICTURE_SIZE SOURCE
# CONTENTS W_LINK
# RSS MTS SRS CAPTION TOPMENU SLEEP ESAVING
# PLAY PAUSE REWIND FF REC STOP
# PIP_ONOFF ASPECT
return @row;
}
sub
samsungremote($) {
my $stvdev = shift;
my $stvhtml;
my @row = samsungremote_init();
$stvhtml='<table border="2" rules="none">';
foreach my $rownr (0..$#row) {
if ( ($row[$rownr] eq "---") && !$FW_tp ) {
$stvhtml .= "<tr><td colspan=\"3\" style=\"height:6px\"></td></tr>\n";
next;
}
$stvhtml .= "<tr>\n";
my @btn = split (",",$row[$rownr]);
foreach my $btnnr (0..$#btn) {
$stvhtml .= "<td>";
if ($btn[$btnnr] ne "") {
# $stvhtml .= "<a href=\"$FW_ME$FW_subdir?cmd.$stvdev=set $stvdev $btn[$btnnr]\"><img src=\"$FW_ME/icons/black_btn_".$btn[$btnnr]."\"></a>";
my $cmd = "cmd.$stvdev=set $stvdev $btn[$btnnr]";
my $img = "<img src=\"$FW_ME/icons/black_btn_$btn[$btnnr]\">";
$stvhtml .= "<a onClick=\"FW_cmd('$FW_ME$FW_subdir?XHR=1&$cmd')\">$img</a>";
}
$stvhtml .= "</td>\n";
}
$stvhtml .= "</tr>\n";
}
$stvhtml .= "</table>\n";
return $stvhtml;
}
Hi Invers,
in diese Zeile: define MyCallMonitor FB_CALLMONITOR 192.168.0.1:1012 sollte die IP von deiner 7390 stehen, vermute ich mal: 192.168.178.1
Gerhard
Danke, Gerhard, für die schnelle Antwort.
Das hatte ich auch zuerst vermutet, aber das hat dann bewirkt, dass ich fhem nicht mehr aufrufen konnte. Ich musste die Box neu starten, dann ging es wieder und ich habe daraufhin die IP wieder geändert. Vielleicht war das ja ein Zufall. Man soll vielleicht nachts um 1 nicht mehr so viel probieren. Wenn du sicher bist, dass du richtig liegst, versuche ich es noch einmal damit.
So, Update:
@ Gerhard: Niemals wieder werde ich deine Worte anzweifeln. LOL Danke.
Der Callmonitor funktioniert nun. Es war gestern tatsächlich ein Zufall, dass sich die Fritte verabschiedet hatte.
Problem "Schalten bei Anruf" also gelöst.
Eine Sache musste ich umstellen:
Alles, was sich auf samsungTV bezog, musste ich in STV3 ändern, wo ich den Befehl MUTE über attr hinzugefügt habe. MUTE on oder off geht nicht.
Nun erhebt sich natürlich die Frage, warum alles mit samsungTV nicht geht, sondern nur mit STV1, STV2, STV3.
Da muss noch was sein.
Gibt es dazu noch Ideen?
Hi Invers,
also, es ist sicher daß da die ip deiner FB mit dem Port 1012 stehen nuß!
übrigens nicht vergessen:
In order to use this module with fhem you must enable the CallMonitor feature via telephone shortcode.
#96*5* - for activating
#96*4* - for deactivating
Just dial the shortcode for activating on one of your phones, after 3 seconds just hang up. The feature is now activated.
After activating the CallMonitor-Support in your FritzBox, this module is able to generate an event for each call.
Gruß, Gerhard
OK, Gerhard, der Callmonitor der Box ist an.
Port 1012 hab ich ja gesetzt und es geht ja nun auch. Es war die Korrektur der IP, die ich machen musste.
nur die Steuerung über
define SamsungTV STV 192.168.178.22
und zugehörige Routinen laufen gar nicht.
Auch die beiden Codeschnipsel
## Jemand ruft mich an
define TelefonAN notify Fritz_Box:event:.ring { \
fhem "set LED on";;\
fhem "set STV4 PAUSE";;\
}
und
## anruf beendet
define TelefonAUS notify Fritz_Box:event:.disconnect { \
fhem "define Latenz at +00:00:10 set LED off";;\
fhem "define Latenz2 at +00:00:10 set STV4 PLAY";;\
}
laufen nicht.
Ich hab dann statt samsungTV halt auf STV3 umgebastelt. Das läuft.
Invers,
wie ich in deinen fhem.cfg sehe ist STV zwei mal definiert:
1. define TV STV 192.168.178.22 55000
2. define SamsungTV STV 192.168.178.22
bitte nur einmal benutzen, und zwar mit 55000
;)
Danke Gerhard, wird sofort erledigt.
Hi Invers,
habe ich richtig verstanden, bei dir funktioniert die MsgBox? d.h. bei Anruf erscheint ein popup call?
Gerhard
Mensch, das wäre ja toll. Nö, hast du leider nicht richtig verstanden. Ich habe es probiert und nicht wieder gelöscht, weil ich ja nicht wusste, ob es falsch ist. Nun hau ich es aber raus, bis jemand eine Lösung hat. Sieht ja schlecht aus. Aber vielleicht hat Samsung mal erbarmen, was ich allerdings nicht glaube.
Hallo Invers,
morgen mochte ich an dem STV Modul ein paar Änderungen vornrhmen.
Wärst du bereit für mich ein paar tests zu machen?, da ich mur einen D-Serie Fehrnseher habe.
Wenn ja, berichte mir konkret, was mit dem STV Modul funktionierte und was nicht.
bis Morgen, Gerhard
Klar helfe ich gerne.
Aber was willst du genau wissen? Was bisher funktionierte, oder was nach deinem Update funktioniert.
den bisher funkionierenden Code kann ich dir geben, was geht kann ich erklären. Also was genau interessiert dich?
also define tv STV ip 55000
kontest du Kanäle schalten?, Lautstärke einstellen?, etc.
Ja, kann ich. Eigentlich komme ich an alle Funktionen, die so bekannt sind. Aber wie gesagt, nicht mit der wunderschönen Fernbedienung, sondern mit einer anderen Routine. Und Mute On und Mute Off funktionieren so nicht, sundern MUTE alleine triggert.
o.k. danke, dann Morgen über PM weiter.
Gerhard
Hallo, ich habe einen SAMSUNG UE55D6200, hier funktionieren bis auf HDMI1,HDMI2,HDMI3 so gut wie alle Befehle, leider auch nicht die MSBOX, ich kann keinen Text senden.
Ich habe es auch schon mit http://samsung.rainerullrich.de (//samsung.rainerullrich.de) getestet, leider keine Mesetsch. Würde mich auch interessieren wenn das für den UE55D6200 funktioniert.
Zitat von: mediastudio schrieb am Di, 23 Juli 2013 16:34keine Mesetsch. Würde mich auch interessieren ....
was die Bedeutung dieses Wortes sein könnte ?
Hi Ralph,
das soll MessageBox heißen.
@mediastudio: ich habe ein UE46D6200 und bei mir funktioniert call, sms, date also alles was mit service messages zu tun hat auch nicht.
bei der D-Serie wäre das möglich wenn man upgratet! wie das funktioniert steht irgendwo bei samygo
http://forum.samygo.tv/ (//forum.samygo.tv/)
ich habe momentan keine Zeit mich damit zu beschäftigen, aber solltest du lust und Zeit haben, könntest du hier posten ob du neue Erkenntnisse findest.
Gruß, gerhard
Hallo, sollte ich Erfolg haben, dann werde ich es posten.
Danke für die Antwort.
Gruß
Wilfried
Hallo,
Ich wollte das gerne nun so haben das ein Licht blinkt wenn ein Anruf eingeht.
Das ist auch nicht das Problem, doch wie schaffe ich es, dass das Licht wieder in die "Ausgangsposition geht/leuchtet?
Also wenn das Licht AN ist soll es nach dem Blinken wieder AN sein, bis jetzt geht es aus.
An bei mein Code aus der Config.
## Jemand ruft mich an
define TelefonAN notify fritzbox:event:.ring set Weihnachts_Beleuchtung3 blink 4 1
## anruf beendet
define TelefonAUS notify fritzbox:event:.disconnect { \
fhem "define Latenz at +00:00:10 set Weihnachts_Beleuchtung3 blink 1 1";;\
}
Vielen Dank
Oh oh,
ich glaube ich muss den Wiki Eintrag grundlegend überarbeiten :(
Am einfachsten würde sich das Problem imho mit dem Lightscene Modul lösen lassen:
Grob umrissen geht das so:
1. Du definierst eine Lightscene die die Lichter enthält, die davon betroffen sein sollen.
2. Du erstellst dafür zwei Szenarien
2a eines nennst du temp
2b eines nennst du Anruf
Bei Anruf stellst du es so ein, wie es sich beim klingeln eben verhalten soll. Das speicherst du in der Lightscene
3. Das notify beim ring änderst du so, dass der aktuelle Zustand deiner Lightscene in temp gespeichert wird
4. Dann lightsceene Anruf aktivieren
5. Das disconnect notify soll die temp Lightscene wieder laden
Das hat den Vorteil, dass alle states etc. gespeichert werden. Also auch Dimmer etc. Weiterhin ist die Lightscene nicht an 1 Lampe gebunden. Du kannst beliebig viele einbinden. Und, das Modul ist nicht auf Lampen beschränkt! Da geht so gut wie alles mit :)
Vielen Dank für die Antwort.
Ich habe, glaube ich, das LightScene erstellt. Ich weiß nun aber nicht wie ich das "einstellen" kann, in der Wiki
http://www.fhemwiki.de/wiki/LightScene
steht leider nicht viel.
Anbei ein Auszug meiner FHEM.cfg
Vielleicht kannst Du mir da etwas weiterhelfen.
define Tel_temp LightScene [<Weihnachts_Beleuchtung3>]
define Tel_Anruf LightScene [<Weihnachts_Beleuchtung3>]
## Jemand ruft mich an
define TelefonAN notify fritzbox:event:.ring set Weihnachts_Beleuchtung3 blink 4 1
## anruf beendet
define TelefonAUS notify fritzbox:event:.disconnect { \
fhem "define Latenz at +00:00:10 set Weihnachts_Beleuchtung3 blink 1 1";;\
}
Ich habe auch was anderes Probiert, doch damit klappt das irgendwie gar nicht. Ich mache aber auch viel mit Copy & Paste. Vielleicht schleicht sich so der ein oder andere Fehler ein.
define Licht_Alt dummy
define Licht_Neu dummy
define TelefonAN notify Fritz_Box:event:.ring { \my $number (ReadingsVal("Fritz_Box","internal_number",99));;\my $Licht_An=Value("Weihnachts_Beleuchtung3");;\if ($number == 3999572) {\ { \fhem ("set Licht_Alt on") if (($Licht_An) eq "on");;\ fhem ("set Weihnachts_Beleuchtung3 on") if (($Licht_An) ne "on");;\ } \ } \ }
define TelefonAUS notify Fritz_Box:event:.disconnect { \ my $number=(ReadingsVal("Fritz_Box","internal_number",99));;\ my $Licht_Neu=Value("Weihnachts_Beleuchtung3");;\ my $Licht_Alt=Value("Licht_Alt");;\ if ($number == 412100) { \ fhem "define Latenz2 at +00:00:10 set STV4 PLAY";;\ if ($Licht_Alt ne $Licht_Neu) { \ fhem "define Latenz at +00:00:10 set Weihnachts_Beleuchtung3 off";;\ }\ }\ }
Vielen Dank schon mal für Eure Hilfe
Frohe Weihnachten und ein Guten Rutsch
Thoffi
Sry,
hab es grade erst gesehen. Ich schau es mir nächstes Jahr gerne an :)
Das ist sehr nett von Dir.
Danke
Hallo,
ich wollte einmal nachfragen ob mir vielleicht einer bei der Telefonschaltung weiterhelfen kann.
Vielen Dank
Also ich habe die FritzBox durch den Callmonitor ersetzt. Funktioniert!
Wärst du so lieb und machst ein "list" von deinen Notifies
Hallo.
hier die List:
TelefonAN
Internals:
DEF Callmonitor:.ring {
my $number=(ReadingsVal("Callmonitor","internal_number",99));
my $Licht_An=Value("Schalter3");
if ($number == 412100) {
fhem "set STV4 PAUSE";
if ($Helligkeit <= 100) {
fhem ("set Licht_Alt on") if (($Licht_An) eq "on");
fhem ("set Schalter on") if (($Licht_An) ne "on");
}
}
}
NAME TelefonAN
NOTIFYDEV Callmonitor
NR 170
NTFY_ORDER 50-TelefonAN
REGEXP Callmonitor:.ring
STATE active
TYPE notify
Readings:
2016-02-22 12:03:22 state active
Attributes:
TelefonAUS:
Internals:
DEF Callmonitor:event:.disconnect {
my $number=(ReadingsVal("Callmonitor","internal_number",99));
my $Licht_Neu=Value("OG_wz_WS_LICHT");
my $Licht_Alt=Value("Licht_Alt");
if ($number == 1234567) {
fhem "define Latenz2 at +00:00:10 set STV4 PLAY";
if ($Licht_Alt ne $Licht_Neu) {
fhem "define Latenz at +00:00:10 set OG_wz_WS_LICHT off";
}
}
}
NAME TelefonAUS
NOTIFYDEV Callmonitor
NR 173
NTFY_ORDER 50-TelefonAUS
REGEXP Callmonitor:event:.disconnect
STATE 2016-02-22 12:09:04
TYPE notify
Readings:
2016-02-22 12:03:59 state active
Attributes:
Vielen Dank
Hoffi
Ok.
Ich denke der Ansatz über eine LightScene ist schlauer.
Wie heißt dein Lichtschalter?
Oben schreibst du Schalter3 unten steht was von OG_wz_WS_LICHT (das sieht schwer nach meinem ersten Notify aus ;) )
Mit welchem Befehl machst du das Licht an?
set Schalter3 on ?
Wenn ja, ersetze die <Name....> durch Schalter3
Los gehts:
define Telefon_Info_Beleuchtung LightScene <NameVonDeinemLichtaktor>
Bitte folgende Fragen beantworten: (am besten gleich ein list von den Geräten :) )
Benutzt du das fhem eigene Samsung Modul?
Soll dein Licht nur bei Anruf auf einer Nummer angehen, oder ist es egal?
Hast du ein Gerät, welches dir die Helligkeit im Raum angibt? (So einen HM Bewegungsmelder z.B.)
Weiter geht es wenn die Fragen beantwortet sind :)
Hallo Rince,
der Name des Gerätes ist Schalter3
List:
Internals:
DEF F1FFFF10FF FF 00
IODev CUL
NAME Schalter3
NR 125
STATE off
TYPE IT
XMIT f1ffff10ff
XMITdimdown 00
XMITdimup 00
XMIToff 00
XMITon ff
Code:
1 f1ffff10ff
Readings:
2016-01-14 10:10:15 protocol V1
2016-02-23 06:54:44 state off
Attributes:
IODev CUL
alias Beleuchtung WZ
model itswitch
room Steckdosen
userattr lightSceneParamsToSave lightSceneRestoreOnlyIfChanged:1,0
- mit Set Schalter3 on geht das Licht an.
- Das Samsungmodul kann raus"geschmissen" werden, da ich mittlerweile ein anderen TV habe.
- Das Licht soll im Prinzip bei allen anrufen angehen die auf external_connection SIP0,SIP1,Sip2
angenommen werden. Oder alternativ; 412100, 412111, 414315263 (internal_number)
- Ich greife die Helligkeit mittels HTTP von meiner Aussenkamera ab.
Internals:
BUSY 0
DEF http://Fhem:fhem1234@192.168.2.12/control/rcontrol?action=gettext&message=$(SEN.LXR) 120
GetSeq 0
HTTPHEADER
Interval 120
LASTSEND 1456210099.85394
MainURL http://Fhem:fhem1234@192.168.2.12/control/rcontrol?action=gettext&message=$(SEN.LXR)
NAME Helligkeit
NR 178
STATE 100.2
TRIGGERTIME 1456210219.85264
TRIGGERTIME_FMT 2016-02-23 07:50:19
TYPE HTTPMOD
addr http://192.168.2.12:80
auth Fhem:fhem1234
buf HTTP/1.0 200 OK
Content-type: text/plain
100.2
code 200
conn
data
displayurl http://Fhem:fhem1234@192.168.2.12/control/rcontrol?action=gettext&message=$(SEN.LXR)
header
host 192.168.2.12
httpheader HTTP/1.0 200 OK
Content-type: text/plain
hu_blocking 0
hu_filecount 427
ignoreredirects 0
loglevel 4
path /control/rcontrol?action=gettext&message=$(SEN.LXR)
protocol http
redirects 0
timeout 10
url http://Fhem:fhem1234@192.168.2.12/control/rcontrol?action=gettext&message=$(SEN.LXR)
QUEUE:
Readings:
2016-02-23 07:48:20 state 100.2
Request:
data
header
ignoreredirects 0
retryCount 0
type Update
url http://Fhem:fhem1234@192.168.2.12/control/rcontrol?action=gettext&message=$(SEN.LXR)
Sslargs:
Attributes:
reading01Name state
reading01Regex \n([\d\.]+)
room Haus
timeout 10
userattr reading01Name reading01Regex timeout
Vielen Dank
Hoffi
Gut.
Die Lightscene ist angelegt?
Dann schalte mall dein Licht an (set Schalter3 on) und speichere dies als Lichtszenario:
set Telefon_Info_Beleuchtung save AN
Dann mach das Licht aus (set Schalter3 off) und speichere dieses Szenario ebenfalls.
set Telefon_Info_Beleuchtung save AUS
(Zur Lightscene:
Das schöne daran ist, dass wir später ein weiteres Szenario anlegen lassen werden, welches den Lichtstatus beim Klingeln speichert)
Als nächstes bauen wir uns einen Dummy für den Schwellwert der Beleuchtung. Wenn du später den Schwellwert ändern willst, schreibst einfach in den Dummy die neue Zahl. Ist imho später einfacher zu warten denke ich.
define du_Licht_Schwellwert dummy
set du_Licht_Schwellwert 60
Frage:
Bezügl. der SIP Nummern: sind das alle? Oder andersrum gefragt: gibt es Anrufe auf die du NICHT reagieren willst? Weil in dem Fall brauchen wir nur einen Trigger auf das Klingeln, ohne jede weitere Filterung :)
Edit:
Zur Sicherheit:
Machst du ein list Callmonitor?
Mal ein Schnellschuss:
define di_Anruf_Licht DOIF ([Callmonitor:event] eq "ring" and [Helligkeit] < [[du_Licht_Schwellwert]])
(set Telefon_Info_Beleuchtung save TEMP)
(set Telefon_Info_Beleuchtung scene AN)
DOELSEIF ([Callmonitor:event] eq "disconnect") (set Telefon_Info_Beleuchtung scene TEMP)
(Vorausgesetzt dein Callmonitor heißt Callmonitor und du hast den Dummy du_Licht_Schwellwert mit einer Zahl gefüttert sowie die LightScene von oben angelegt)
Alles soweit angelegt wie oben beschrieben.
Ich teile mir den Anschluss mit meinem Nachbarn, von daher wären die auszuschließenden Nummern noch mehrere.
List Callmonitor:
Internals:
DEF 192.168.2.1:1012
DeviceName 192.168.2.1:1012
FD 13
NAME Callmonitor
NR 43
NTFY_ORDER 50-Callmonitor
PARTIAL
STATE opened
TYPE FB_CALLMONITOR
Readings:
2016-02-23 10:40:04 call_duration 14
2016-02-23 10:40:04 call_id 0
2016-02-23 10:40:04 direction incoming
2016-02-23 10:40:04 event disconnect
2016-02-23 10:40:04 external_connection SIP1
2016-02-23 10:40:04 external_name unknown
2016-02-23 10:40:04 external_number unknown
2016-02-23 10:40:04 internal_connection DECT_1
2016-02-23 10:40:04 internal_number 412100
2016-02-23 07:56:36 missed_call unknown
2016-02-22 17:36:04 state opened
Helper:
Temp:
Attributes:
room Telefon
Schalten tut Schalter3 jetzt aber noch nicht. Auch wenn ich den Schwellwert ändere.
Es wird nur der Anruf im Event Monitor angezeigt:
2016-02-23 10:45:36 FB_CALLMONITOR Callmonitor event: ring
2016-02-23 10:45:36 FB_CALLMONITOR Callmonitor external_number: unknown
2016-02-23 10:45:36 FB_CALLMONITOR Callmonitor call_id: 0
2016-02-23 10:45:36 FB_CALLMONITOR Callmonitor external_name: unknown
2016-02-23 10:45:36 FB_CALLMONITOR Callmonitor internal_number: 412100
2016-02-23 10:45:36 FB_CALLMONITOR Callmonitor direction: incoming
2016-02-23 10:45:36 FB_CALLMONITOR Callmonitor external_connection: SIP1
2016-02-23 10:45:40 FB_CALLMONITOR Callmonitor event: connect
2016-02-23 10:45:40 FB_CALLMONITOR Callmonitor external_number: unknown
2016-02-23 10:45:40 FB_CALLMONITOR Callmonitor call_id: 0
2016-02-23 10:45:40 FB_CALLMONITOR Callmonitor internal_connection: DECT_1
2016-02-23 10:45:40 FB_CALLMONITOR Callmonitor external_connection: SIP1
2016-02-23 10:45:40 FB_CALLMONITOR Callmonitor internal_number: 412100
2016-02-23 10:45:40 FB_CALLMONITOR Callmonitor direction: incoming
2016-02-23 10:45:40 FB_CALLMONITOR Callmonitor external_name: unknown
2016-02-23 10:45:47 FB_CALLMONITOR Callmonitor event: disconnect
2016-02-23 10:45:47 FB_CALLMONITOR Callmonitor external_number: unknown
2016-02-23 10:45:47 FB_CALLMONITOR Callmonitor call_id: 0
2016-02-23 10:45:47 FB_CALLMONITOR Callmonitor internal_number: 412100
2016-02-23 10:45:47 FB_CALLMONITOR Callmonitor external_connection: SIP1
2016-02-23 10:45:47 FB_CALLMONITOR Callmonitor internal_connection: DECT_1
2016-02-23 10:45:47 FB_CALLMONITOR Callmonitor external_name: unknown
2016-02-23 10:45:47 FB_CALLMONITOR Callmonitor direction: incoming
2016-02-23 10:45:47 FB_CALLMONITOR Callmonitor call_duration: 5
Ich sagte ja, Schnellschuss :)
Gut. Wir gehen nochmal einige Schritte zurück:
define du_Test dummy
Dann ändere bitte das DOIF folgendermaßen ab:
([Callmonitor:event] eq "ring")
(set du_Test es läutet)
DOELSEIF ([Callmonitor:event] eq "disconnect") (set du_Test aufgelegt)
Dann schaue dir den Dummy du_Test an, rufe dich an, hebe ab, und lege auf :)
Er sollte beim läuten auf "es läutet" stehen, beim abheben bleibt er auf "es läutet", beim auflegen sollte "aufgelegt" da stehen...
JA :)
soweit funktioniert das mit dem Dummy.
DOIF ändern:
([Callmonitor:event] eq "ring" and [Helligkeit] < [[du_Licht_Schwellwert]])
(set du_Test es läutet)
DOELSEIF ([Callmonitor:event] eq "disconnect") (set du_Test aufgelegt)
Hallo Rince,
ich habe den Helligkeitswert mal direkt über die STATE Abfrage eingebunden:
([Callmonitor:event] eq "ring" and [Helligkeit:state] < 1000)
(set du_Test es läutet)
DOELSEIF ([Callmonitor:event] eq "disconnect") (set du_Test aufgelegt)
Der Dummy funktioniert :D
Sofern der Schwellwert nicht für was anderes gebraucht wird, kann dieser sonst auch gern entfallen.
Hoffi
Hm. Na ja, gut.
Hast mal versucht die 1000 in dem Dummy zu lassen?
([Callmonitor:event] eq "ring" and [Helligkeit:state] < [[du_Licht_Schwellwert]])
Zitat von: DOIF_commandref
Anwendungsbeispiel: Lampe soll zu einer bestimmten Zeit eingeschaltet werden. Die Zeit soll über den Dummy time einstellbar sein:
define time dummy
set time 08:00
define di_time DOIF ([[time]])(set lamp on)
Wenn du das mal testen würdest?
Aber weiter:
Dann schaun wir als nächstes, ob der Schnellschuss mit der LightScene klappt ;)
([Callmonitor:event] eq "ring" and [Helligkeit:state] < 1000)
(set Telefon_Info_Beleuchtung save TEMP)
(set Telefon_Info_Beleuchtung scene AN)
DOELSEIF ([Callmonitor:event] eq "disconnect") (set Telefon_Info_Beleuchtung scene TEMP)
Die Abfragen bezügl. den Zielnummern basteln wir dann im Anschluss dazu.
Das mit dem Schwellwert funktioniert nicht.
mit Helligkeit:State schon.
2016-02-24 13:22:58 LightScene Telefon_Info_Beleuchtung save TEMP
2016-02-24 13:22:58 DOIF di_Anruf_Licht cmd_nr: 1
2016-02-24 13:22:58 DOIF di_Anruf_Licht cmd_seqnr: 1
2016-02-24 13:22:58 DOIF di_Anruf_Licht cmd_event: Callmonitor
2016-02-24 13:22:58 DOIF di_Anruf_Licht cmd_1_1
2016-02-24 13:22:58 LightScene Telefon_Info_Beleuchtung AN
2016-02-24 13:22:58 DOIF di_Anruf_Licht cmd_nr: 1
2016-02-24 13:22:58 DOIF di_Anruf_Licht cmd_seqnr: 2
2016-02-24 13:22:58 DOIF di_Anruf_Licht cmd_event: Callmonitor
2016-02-24 13:22:58 DOIF di_Anruf_Licht cmd_1
2016-02-24 13:22:58 FB_CALLMONITOR Callmonitor event: ring
2016-02-24 13:22:58 FB_CALLMONITOR Callmonitor direction: incoming
2016-02-24 13:22:58 FB_CALLMONITOR Callmonitor external_connection: SIP1
2016-02-24 13:22:58 FB_CALLMONITOR Callmonitor call_id: 0
2016-02-24 13:22:58 FB_CALLMONITOR Callmonitor external_name: unknown
2016-02-24 13:22:58 FB_CALLMONITOR Callmonitor internal_number: 412100
2016-02-24 13:22:58 FB_CALLMONITOR Callmonitor external_number: unknown
2016-02-24 13:23:02 FB_CALLMONITOR Callmonitor event: connect
2016-02-24 13:23:02 FB_CALLMONITOR Callmonitor external_number: unknown
2016-02-24 13:23:02 FB_CALLMONITOR Callmonitor call_id: 0
2016-02-24 13:23:02 FB_CALLMONITOR Callmonitor external_name: unknown
2016-02-24 13:23:02 FB_CALLMONITOR Callmonitor internal_connection: DECT_1
2016-02-24 13:23:02 FB_CALLMONITOR Callmonitor internal_number: 412100
2016-02-24 13:23:02 FB_CALLMONITOR Callmonitor direction: incoming
2016-02-24 13:23:02 FB_CALLMONITOR Callmonitor external_connection: SIP1
2016-02-24 13:23:06 LightScene Telefon_Info_Beleuchtung Schalter3.state:
2016-02-24 13:23:06 IT Schalter3 off
2016-02-24 13:23:06 LightScene Telefon_Info_Beleuchtung TEMP
2016-02-24 13:23:06 DOIF di_Anruf_Licht cmd_nr: 2
2016-02-24 13:23:06 DOIF di_Anruf_Licht cmd_event: Callmonitor
2016-02-24 13:23:06 DOIF di_Anruf_Licht cmd_2
2016-02-24 13:23:06 FB_CALLMONITOR Callmonitor event: disconnect
2016-02-24 13:23:06 FB_CALLMONITOR Callmonitor external_connection: SIP1
2016-02-24 13:23:06 FB_CALLMONITOR Callmonitor direction: incoming
2016-02-24 13:23:06 FB_CALLMONITOR Callmonitor internal_connection: DECT_1
2016-02-24 13:23:06 FB_CALLMONITOR Callmonitor internal_number: 412100
2016-02-24 13:23:06 FB_CALLMONITOR Callmonitor external_name: unknown
2016-02-24 13:23:06 FB_CALLMONITOR Callmonitor call_id: 0
2016-02-24 13:23:06 FB_CALLMONITOR Callmonitor external_number: unknown
2016-02-24 13:23:06 FB_CALLMONITOR Callmonitor call_duration: 3
Sorry, viel Spielzeug heute bekommen ;)
Also Lightscene wird richtig geschaltet bei Anruf?
Ja, lightscene funktioniert.
Callmonitor external_connection: SIP1
Dann versuchen wir mal die Nummernerkennung:
([Callmonitor:event] eq "ring" and [Helligkeit:state] < 1000 and [Callmonitor:external_connection] eq "SIP1")
(set Telefon_Info_Beleuchtung save TEMP)
(set Telefon_Info_Beleuchtung scene AN)
DOELSEIF ([Callmonitor:event] eq "disconnect") (set Telefon_Info_Beleuchtung scene TEMP)
Danke.
Auf SIP1 wird geschaltet, auf den anderen nicht.
Jetzt wäre das noch gut wenn auf SIP0 und SIP2 auch reagiert wird.
Hoffi
Dann basteln wir die mal dazu :)
Zitat
([Callmonitor:event] eq "ring" and [Helligkeit:state] < 1000 and [Callmonitor:external_connection] eq "SIP0" or [Callmonitor:external_connection] eq "SIP1" or [Callmonitor:external_connection] eq "SIP2" )
(set Telefon_Info_Beleuchtung save TEMP)
(set Telefon_Info_Beleuchtung scene AN)
DOELSEIF ([Callmonitor:event] eq "disconnect") (set Telefon_Info_Beleuchtung scene TEMP)
Geht das?
Alternativ:
Ist SIP3 dein Nachbar?
Dann könnten man kürzer schreiben:
([Callmonitor:event] eq "ring" and [Helligkeit:state] < 1000 and [Callmonitor:external_connection] ne "SIP3")
(set Telefon_Info_Beleuchtung save TEMP)
(set Telefon_Info_Beleuchtung scene AN)
DOELSEIF ([Callmonitor:event] eq "disconnect") (set Telefon_Info_Beleuchtung scene TEMP)
Hallo.
Ich bin heute zu nicht viel gekommen.
Nun ist aber folgendes passiert.
Ich habe jemanden angerufen, ja das passiert mal :D. Als ich aufgelegt habe, ging die Lampe aus.
([Callmonitor:event] eq "disconnect") (set Telefon_Info_Beleuchtung scene TEMP)
Vorher wurde ja kein TEMP gesetzt, der letzte Status war wohl off.
Ja, das habe ich befürchtet.
Das wäre wohl auch Passiert, wenn dich wer angerufen hätte, ohne das du rangegangen wärst ???
Darum kümmern wir uns später.
Schaust trotzdem mal ob das mit den or beim angerufen werden klappt? Also SIP0, SIP1 und SIP2?
Guten Morgen,
das klappt nicht ganz. Wenn ich auf SIP0 anrufe wird TEMP gesetzt und nach disconnect wieder abgerufen.
List von "SIP0":
Internals:
DEF ([Callmonitor:event] eq "ring" and [Helligkeit:state] < 1000 and [Callmonitor:external_connection] eq "SIP0" or [Callmonitor:external_connection] eq "SIP1" or [Callmonitor:external_connection] eq "SIP2" )(set Telefon_Info_Beleuchtung save TEMP)
(set Telefon_Info_Beleuchtung scene AN)
DOELSEIF
([Callmonitor:event] eq "disconnect") (set Telefon_Info_Beleuchtung scene TEMP)
NAME di_Anruf_Licht
NR 276
NTFY_ORDER 50-di_Anruf_Licht
STATE cmd_1
TYPE DOIF
Readings:
2016-02-26 07:51:16 Device Callmonitor
2016-02-26 07:51:16 cmd_event Callmonitor
[color=red] 2016-02-26 07:51:16 cmd_nr 1
2016-02-26 07:51:16 cmd_seqnr 2 [/color]
2016-02-26 07:51:16 e_Callmonitor_event ring
2016-02-26 07:51:16 e_Callmonitor_external_connection SIP0
2016-02-26 07:49:50 e_Helligkeit_state 83.3
2016-02-26 07:51:16 state cmd_1
Condition:
0 ReadingValDoIf($hash,'Callmonitor','event','','',AttrVal($hash->{NAME},'notexist',undef)) eq "ring" and ReadingValDoIf($hash,'Helligkeit','state','','',AttrVal($hash->{NAME},'notexist',undef)) < 1000 and ReadingValDoIf($hash,'Callmonitor','external_connection','','',AttrVal($hash->{NAME},'notexist',undef)) eq "SIP0" or ReadingValDoIf($hash,'Callmonitor','external_connection','','',AttrVal($hash->{NAME},'notexist',undef)) eq "SIP1" or ReadingValDoIf($hash,'Callmonitor','external_connection','','',AttrVal($hash->{NAME},'notexist',undef)) eq "SIP2"
1 ReadingValDoIf($hash,'Callmonitor','event','','',AttrVal($hash->{NAME},'notexist',undef)) eq "disconnect"
Devices:
0 Callmonitor Helligkeit
1 Callmonitor
all Callmonitor Helligkeit
Do:
0:
0 set Telefon_Info_Beleuchtung save TEMP
1 set Telefon_Info_Beleuchtung scene AN
1:
0 set Telefon_Info_Beleuchtung scene TEMP
2:
Helper:
event event: ring,external_name: unknown,internal_number: 414315262,direction: incoming,call_id: 0,external_number: unknown,external_connection: SIP0
globalinit 1
last_timer 0
sleeptimer -1
timerdev Callmonitor
timerevent event: ring,external_name: unknown,internal_number: 414315262,direction: incoming,call_id: 0,external_number: unknown,external_connection: SIP0
triggerDev Callmonitor
timerevents:
event: ring
external_name: unknown
internal_number: 414315262
direction: incoming
call_id: 0
external_number: unknown
external_connection: SIP0
triggerEvents:
event: ring
external_name: unknown
internal_number: 414315262
direction: incoming
call_id: 0
external_number: unknown
external_connection: SIP0
Internals:
Itimer:
Readings:
0 Callmonitor:event Helligkeit:state Callmonitor:external_connection
1 Callmonitor:event
all Callmonitor:event Helligkeit:state Callmonitor:external_connection
Regexp:
0:
1:
All:
State:
Trigger:
Attributes:
room Telefon
Nach dem Auflegen:
Readings:
2016-02-26 07:51:50 Device Helligkeit
2016-02-26 07:51:48 cmd_event Callmonitor
2016-02-26 07:51:48 cmd_nr 2
2016-02-26 07:51:48 e_Callmonitor_event disconnect
2016-02-26 07:51:48 e_Callmonitor_external_connection SIP0
2016-02-26 07:51:50 e_Helligkeit_state 95.7
2016-02-26 07:51:48 state cmd_2
Bei den Anderen wird TEMP nicht gesezt bzw. abgerufen:
Beim Klingeln:
nternals:
DEF ([Callmonitor:event] eq "ring" and [Helligkeit:state] < 1000 and [Callmonitor:external_connection] eq "SIP0" or [Callmonitor:external_connection] eq "SIP1" or [Callmonitor:external_connection] eq "SIP2" )(set Telefon_Info_Beleuchtung save TEMP)
(set Telefon_Info_Beleuchtung scene AN)
DOELSEIF
([Callmonitor:event] eq "disconnect") (set Telefon_Info_Beleuchtung scene TEMP)
NAME di_Anruf_Licht
NR 276
NTFY_ORDER 50-di_Anruf_Licht
STATE cmd_1
TYPE DOIF
Readings:
2016-02-26 07:59:50 Device Helligkeit
2016-02-26 07:57:28 cmd_event Callmonitor
2016-02-26 07:57:28 cmd_nr 1
2016-02-26 07:57:28 cmd_seqnr 2
2016-02-26 07:59:44 e_Callmonitor_event ring
2016-02-26 07:59:44 e_Callmonitor_external_connection SIP2
2016-02-26 07:59:50 e_Helligkeit_state 116.4
2016-02-26 07:57:28 state cmd_1
Condition:
0 ReadingValDoIf($hash,'Callmonitor','event','','',AttrVal($hash->{NAME},'notexist',undef)) eq "ring" and ReadingValDoIf($hash,'Helligkeit','state','','',AttrVal($hash->{NAME},'notexist',undef)) < 1000 and ReadingValDoIf($hash,'Callmonitor','external_connection','','',AttrVal($hash->{NAME},'notexist',undef)) eq "SIP0" or ReadingValDoIf($hash,'Callmonitor','external_connection','','',AttrVal($hash->{NAME},'notexist',undef)) eq "SIP1" or ReadingValDoIf($hash,'Callmonitor','external_connection','','',AttrVal($hash->{NAME},'notexist',undef)) eq "SIP2"
1 ReadingValDoIf($hash,'Callmonitor','event','','',AttrVal($hash->{NAME},'notexist',undef)) eq "disconnect"
Devices:
0 Callmonitor Helligkeit
1 Callmonitor
all Callmonitor Helligkeit
Do:
0:
0 set Telefon_Info_Beleuchtung save TEMP
1 set Telefon_Info_Beleuchtung scene AN
1:
0 set Telefon_Info_Beleuchtung scene TEMP
2:
Helper:
event 116.4
globalinit 1
last_timer 0
sleeptimer -1
timerdev Helligkeit
timerevent 116.4
triggerDev Helligkeit
timerevents:
116.4
triggerEvents:
116.4
Internals:
Itimer:
Readings:
0 Callmonitor:event Helligkeit:state Callmonitor:external_connection
1 Callmonitor:event
all Callmonitor:event Helligkeit:state Callmonitor:external_connection
Regexp:
0:
1:
All:
State:
Trigger:
Attributes:
room Telefon
nach dem Auflegen:
Readings:
2016-02-26 08:00:28 Device Callmonitor
2016-02-26 07:57:28 cmd_event Callmonitor
2016-02-26 07:57:28 cmd_nr 1
2016-02-26 07:57:28 cmd_seqnr 2
2016-02-26 08:00:28 e_Callmonitor_event disconnect
2016-02-26 08:00:28 e_Callmonitor_external_connection SIP2
2016-02-26 07:59:50 e_Helligkeit_state 116.4
2016-02-26 07:57:28 state cmd_1
Hoffi
Dann eben so :)
([Callmonitor:event] eq "ring" and [Helligkeit:state] < 1000 and [Callmonitor:external_connection] eq "SIP0")
(set Telefon_Info_Beleuchtung save TEMP)
(set Telefon_Info_Beleuchtung scene AN)
DOELSEIF ([Callmonitor:event] eq "ring" and [Helligkeit:state] < 1000 and [Callmonitor:external_connection] eq "SIP1")
(set Telefon_Info_Beleuchtung save TEMP)
DOELSEIF ([Callmonitor:event] eq "ring" and [Helligkeit:state] < 1000 and [Callmonitor:external_connection] eq "SIP2")
(set Telefon_Info_Beleuchtung save TEMP)
(set Telefon_Info_Beleuchtung scene AN)
(set Telefon_Info_Beleuchtung scene AN)
DOELSEIF ([Callmonitor:event] eq "disconnect") (set Telefon_Info_Beleuchtung scene TEMP)
Löst noch nicht das selber anrufen, aber jetzt müsste auf SIP, SIP1 und SIP2 ein save ausgelöst werden :)
Ich habe da ein
(set Telefon_Info_Beleuchtung scene AN)
weiter nach oben verschoben.
Nun läuft es wenn jemand anruft.
Gut. Ist eine Dummy Lösung für das angerufen werden vs anrufen ok?
Ja, warum nicht.?
Bau doch mal eine Abfrage von:
and [Callmonitor:direction] ne "outgoing"
Ein.
Bei allen 4 Fällen.
Hallo Rince.
tut mir leid das ich jetzt erst Antworte. Durch Schichtdienst klappt das nicht immer so.
Das Funktioniert. Lampe schaltet nicht wenn ich raustelefoniere.
Jetzt schaltet aber die Lampe erst wieder wenn aufgelegt wurde. Wenn ich nun auch im Hellen Telefonieren möchte kann ich dann
([Callmonitor:event] eq "disconnect" and [Callmonitor:direction] ne "outgoing") (set Telefon_Info_Beleuchtung scene TEMP)
gegen
([Callmonitor:event] ne "ring" and [Callmonitor:direction] ne "outgoing") (set Telefon_Info_Beleuchtung scene TEMP)
austauschen?
Edit:
Ja das geht.
Nun aber eine weitere Frage. Ich habe Schalter3 als IT Steckdose. Wenn ich nun on gegen set blink 4 1 austausche,
dann bleibt die Lampe zum Schluß immer Dunkel.
Kann man das so machen, das die Lampe trotz blink 4 1 den TEMP Status wieder zugewiesen wird?
Wenn ich innerhalb der 4 Blinks das telefonat annehme, dann kommt der TEMP Befehl "dazwischen" und der Status wird nicht richtig gesetzt.
Vielen Dank für die Hilfe
Hoffi
Zitat von: Rince am 22 Februar 2016, 10:38:47
Wärst du so lieb und machst ein "list" von deinen Notifies
Ich habe den hier:
Recht einfach. Die Leute ist allerdings eine Philips Hue und blinkt immer ca. 5 Sekunden, ob ich abnehme oder nicht. Dert alte Zustand der Lampe wird danach aber wieder angenommen:
define CM_HUE_Signal_Flur notify Callmonitor:event:.ring set HUEDevice2 alert lselect
Hallo,
ich habe nun selbst etwas "gebastelt" so wie es aussieht funktioniert das.
Wenn Dir noch etwas auffällt sag bitte bescheid.
DOIF:
([Callmonitor:event] eq "ring" and [?Helligkeit:state] < 1000 and [Callmonitor:direction] ne "outgoing" and [Callmonitor:external_connection] eq "SIP0")
(set Telefon_Info_Beleuchtung save TEMP)
(set Telefon_Info_Beleuchtung scene AN)
DOELSEIF ([Callmonitor:event] eq "ring" and [?Helligkeit:state] < 1000 and [Callmonitor:direction] ne "outgoing" and [Callmonitor:external_connection] eq "SIP1")
(set Telefon_Info_Beleuchtung save TEMP)
(set Telefon_Info_Beleuchtung scene AN)
DOELSEIF ([Callmonitor:event] eq "ring" and [?Helligkeit:state] < 1000 and [Callmonitor:direction] ne "outgoing" and [Callmonitor:external_connection] eq "SIP2")
(set Telefon_Info_Beleuchtung save TEMP)
(set Telefon_Info_Beleuchtung scene AN)
DOELSEIF ([Callmonitor:event] ne "ring" and [Callmonitor:direction] ne "outgoing")
(set Telefon_Info_Beleuchtung scene Aus)
(set Telefon_Info_Beleuchtung scene TEMP)
Damit die Lampe mit "blink" geschaltet werden kann und auch wieder in die entsprechende Ausgansstatus
mit folgendem Attribut:
wait 0,1:0,1:0,1:0,1
Lieben Gruß
Hoffi