Autor Thema: Status mehrer Sensoren senden  (Gelesen 5596 mal)

Offline Kiter192

  • Jr. Member
  • **
  • Beiträge: 61
Status mehrer Sensoren senden
« am: 14 März 2013, 12:25:56 »
Hallo zusammen,

ich verwende prowl für gewisse Statusmeldungen.
Das funktioniert auch für´s erste.

define Mail1 notify Tuer1:contact.*(open).*{prowl("Tür%%20im%%20Keller%%20wurde%%20geöffnet","Tür","1")}

Nun möchte ich aber eine Mail für "alles" erstellen.

Das heißt anstatt den Text "Tür im Keller wurde geöffnet" möchte ich den Status mehrer geräte einfügen, so das dann in der Mail z.B. folgendes steht:

Betreff: Tür 1
Nachricht: Tuer1 open
           Beleuchtung_XY ein
           Dimmer_ab 10%

Nun weiß ich leider nicht wie ich das in die oben beschriebene notify Anweisung einbaue .... .*{prowl(????????????)}








nsky

  • Gast
Aw: Status mehrer Sensoren senden
« Antwort #1 am: 14 März 2013, 17:14:31 »
Ich hätte die Nachricht so definiert(verwende aber Pushover statt Prowl):
"Tür 1 $value{Tuer1}\nBeleuchtung_XY $value{Beleuchtung_XY}\nDimmer_ab $value{Dimmer_ab}"

Offline Kiter192

  • Jr. Member
  • **
  • Beiträge: 61
Aw: Status mehrer Sensoren senden
« Antwort #2 am: 15 März 2013, 23:23:26 »
Hallo,

erstmal danke,

leider haut das so nicht hin.

Hier der code der klappt:

define Mail_AAA notify Alarm.*(on).* {prowl("Alarmanlage%%20hat%%20ausgelöst","Alarmanlage","2")}

Und hier dein Lösungsvorschlag der leider nicht klappt.

define Mail_AAA notify Alarm.*(on).* {prowl("Tuer1 $value{Tuer1}\nTuer2 $value{Tuer2}","2")}

was mache ich falsch?

Offline gelberlemmy

  • Jr. Member
  • **
  • Beiträge: 61
Aw: Status mehrer Sensoren senden
« Antwort #3 am: 16 März 2013, 08:55:28 »
Guten morgen,

ich habe dies so gelöst:

in der 99_myutils.pm folgendes:[/b]

#################eMail wenn Fenster auf############

sub FHTTK_status {
my @fhttks = devspec2array("TYPE=CUL_FHTTK");
my @wopen = ();
foreach(@fhttks) {
my $fhttk_window = ReadingsVal($_, "Window", "nA");
push (@wopen,$_) if ($fhttk_window eq "Open" );
}
my $num_wopen = @wopen;
my $resultstring='';
if ( $num_wopen gt 0 ) {
$resultstring="folgende Fenster sind noch offen:\n\n";
foreach(@wopen) {
$resultstring.="- ".$_."\n";
Log 4, "FHTTK_status: ". $_. "noch offen";
}
} else {
$resultstring="alle Fenster sind derzeit geschlossen.";
}
return $resultstring;
}


in der fhem.cfg:[/b]

#############Alarmanlage######################

define Alarm_zu_Hause notify .*:Window.*(Open|Closed) { \
my $window_state=ReadingsVal("@", "Window", "nA");;\
my $deftype=$defs{@}{TYPE};;\
return if ( $deftype ne "CUL_FHTTK" );;\
if ( $defs{@}{PREVSTATE} ne $window_state ) { \
my $fhttk_status=FHTTK_status;;\
my $subject="FHEM: Fenster @ ".$window_state;; \
DebianMail('ProwlAPI+2@@api.prowlapp.com',$subject,$fhttk_status);;\
Log 3, "@: Window ".$window_state;;\
}\
}
attr Alarm_zu_Hause disable 1
attr Alarm_zu_Hause icon icoMail
attr Alarm_zu_Hause room Alarmanlage

###########Alarmanlage Ein_Ausschalten###########

define EMA FS20 11114444 1a
attr EMA fm_type on-off
attr EMA fm_view 0,1
attr EMA icon black_down
attr EMA model fs20
attr EMA room Alarmanlage

define EMA_Schalten notify EMA:.* { if ("%" eq "on") {fhem ("attr Alarm_zu_Hause disable 0");;\
}\
else {fhem ("attr Alarm_zu_Hause disable 1");;\
}\
}

Dies also also Alarmanlage gelöst. Hab einen Schalter womit ich diese Meldungen ein bzw ausschalten kann.
Als Meldung bekomme ich dann den gesamten Status meiner Fenster und Türen wie zB

Und Sie werden natürlich einzeln angezeigt welche offen sind. Dies geht mit meinen ganzen Kontakten die bei mir im Hause sind

Vorraussetzung sind natürlich fhttk Kontakte.

Hoffe euch geholfen zu haben

Gruß Gelberlemmy

nsky

  • Gast
Aw: Status mehrer Sensoren senden
« Antwort #4 am: 18 März 2013, 14:51:08 »
Zitat von: Kiter192 schrieb am Fr, 15 März 2013 23:23

define Mail_AAA notify Alarm.*(on).* {prowl("Tuer1 $value{Tuer1}\nTuer2 $value{Tuer2}","2")}
 
was mache ich falsch?


Soweit ich weiß benötigt prowl 3 Argumente:
define Mail_AAA notify Alarm.*(on).* {prowl("Tuer1 $value{Tuer1}\nTuer2 $value{Tuer2}","Alarmanlage","2")}

Gruß

Offline Kiter192

  • Jr. Member
  • **
  • Beiträge: 61
Aw: Status mehrer Sensoren senden
« Antwort #5 am: 20 März 2013, 19:00:26 »
Hallo,

vielen Dank für alle Antworten, leider hat es bei mir bisher nicht funktioniert.

Meine 99utils sieht so aus:


sub prowl
{
  my $subject = $_[0];
  my $event = $_[1];
  my $priority = $_[2];
  my $ret = "";
  $ret .=  system("wget -q -O /dev/null 'http://api.prowlapp.com/publicapi/add?apikey=MEINE_APIKEY\&application=Home\&event=$event\&priority=$priority\&description=$subject'");
  $ret =~ s,[\r
]*,,g;
  Log 1, "prowl returned: $ret";
}

##--------------------  End sub Prowl   ---------------------------------##


Der Eintrag in der cfg ist folgender


define Mail_AAA1 notify Alarm.*(on).* {prowl("ALARM","Alarmanlage hat ausgelöst","2")}   # => Funktioniert

#define Mail_AAA1 notify Alarm.*(on).* {prowl("ALARM","Tuer2 {Value("Tuer2")},"2")}   # => Funktioniert nicht


Hat jemand noch eine Idee, ich bin der Programmierung nicht ganz mächtig, aber ich habe das gefühl, das der Funktion prowl ein "Text" übergeben wird und an der Stelle keine weitere "Funktion" ausgeführt werden kann.


Offline Kiter192

  • Jr. Member
  • **
  • Beiträge: 61
Aw: Status mehrer Sensoren senden
« Antwort #6 am: 08 April 2013, 21:56:29 »
soooo, habe lange rumgebastelt.

Mit diesem Code kann ich zumindest einen Status abfragen:

define Mail_TT notify Tuer3_1E283B.*(contact:.open).* {prowl("Tuer3",Value("Tuer3_1E283B"),"2")}

nun möchte ich gern aber auch den Status der anderen beiden Türen mit in diese pushmail stecken und wenn es geht, sollte nicht nur der Status dort stehen  sondern vorher auch noch welche Tüer den Status hat.

Jetzt:

Betreff = Tuer3
Text    = open

so hätte ich es gern ;)

Betreff = Status Tueren
Text    = Tuer1: open
          Tuer2: closed
          Tuer3: closed

Es scheitert wohl an meinen Perl Kenntnissen. Wenn mir da jemand behilflich sein könnte wäre ich ihm / euch sehr verbunden.

Danke Vorab.

Offline Ralph

  • Sr. Member
  • ****
  • Beiträge: 664
  • ... mit RegExp auf Kriegsfuß.
    • DC5UN
Aw: Status mehrer Sensoren senden
« Antwort #7 am: 09 April 2013, 15:40:48 »
FHEM auf RaspberryPi3 mit Geekworm USV und SignalDUINO 433MHz und HM-MOD-RPI-PCB mit 3 HM-Sec-SD-2, 5 FHT, 2 RM 100-2 Uni S, 2 HMS100, 6 CUL_WS, 6 CUL_FHTTK, 11 FS20 und 7 FS20V Spannungsüberwachungen

 

decade-submarginal