FritzBox Temperaturalarm via Telefon: Unterschied zwischen den Versionen

Aus FHEMWiki
(→‎fhem.cfg: ersetzen von % mit $EVENT)
Zeile 4: Zeile 4:
== fhem.cfg ==
== fhem.cfg ==
<pre>
<pre>
define TempAlarmCall notify HMS100T_XXXX:temp.* { FritzBoxCallnr('**9') if("%" =~ m/ (.*)/ &amp;&amp; floor($1) &gt;= 9) }
define TempAlarmCall notify HMS100T_XXXX:temp.* { FritzBoxCallnr('**9') if("$EVENT" =~ m/ (.*)/ &amp;&amp; floor($1) &gt;= 9) }


# alternativ
# alternativ
define TempAlarmCall notify HMS100T_XXXX:temp.* { FritzBoxCallnr('**9') if (floor(SplitVar("%"," ",1)) &gt;= 9) }
define TempAlarmCall notify HMS100T_XXXX:temp.* { FritzBoxCallnr('**9') if (floor(SplitVar("$EVENT"," ",1)) &gt;= 9) }
</pre>
</pre>



Version vom 17. November 2015, 23:17 Uhr

20 sec. Alarm über alle internen Telefone, wenn Kühlschrank Temperatur > 8 Grd. Es können auch beliebige externe Telefone genutzt werden. Modified Code from Rudi (Tx) by JK

fhem.cfg

define TempAlarmCall notify HMS100T_XXXX:temp.* { FritzBoxCallnr('**9') if("$EVENT" =~ m/ (.*)/ && floor($1) >= 9) }

# alternativ
define TempAlarmCall notify HMS100T_XXXX:temp.* { FritzBoxCallnr('**9') if (floor(SplitVar("$EVENT"," ",1)) >= 9) }

Sub (z.B.99_myutils.pm)

(also inspired by Rudi)
 sub
 FritzBoxCallnr ($)
 {  
  my ($callnr) = @_;
  $callnr = "ATDT".$callnr."#";
  my $ret = "ATD: " . `echo $callnr | nc 127.0.0.1 1011` ;
  InternalTimer(gettimeofday()+20, "FritzBoxHangOn", "", 0); 
  return
 }
 sub
 FritzBoxHangOn ()
 {
  my $ret = " ATH: " . `echo "ATH" | nc 127.0.0.1 1011` ;
  $ret =~ s,[\r\n]*,,g;    # remove CR from return-string
  return
 }

sub
SplitVar($$$)
{
my @temparr;
@temparr = split(/@_[1]/,@_[0]);
return @temparr[@_[2]];
}

FritzBox

Um den Anruf auf internen Telefonen mit Hinweis im Telefondisplay zu signalisieren:

  1. in der FB ein Telefoniegerät anlegen,
  2. einen beliebigen Amts/VOIP Anschluss wählen,
  3. auf den Anschluss Fon 1 legen (sofern nicht benötigt)
  4. und eine geeignete Bezeichnung (Temperaturalarm...) geben.

Die Bezeichnung wird dann im Display angewählter intener Telefone angezeigt. Bei externen Telefonen allerdings nur die eigene Rufnummer...

Test

Testen kann man das durch Eingabe in fhem von:

trigger HMS100T_XXXX temperature 9.0       # Angabe in Celsius

Links