at mit Perl und fhem Befehlen mischen

Begonnen von DerMatze, 24 Oktober 2016, 00:03:18

Vorheriges Thema - Nächstes Thema

DerMatze

Guten Abend,
seit einigen Tagen versuche ich mir in meiner Anlage eine Status Mail zuschicken. Ich habe jetzt schon diverse Beiträge gelesen und lange probiert, aber leider bis jetzt keine funktionierende Lösung gefunden. Deshalb hier mein Code, ihr könnt mir sicher helfen. Danke!


define StatusMail at *12:00:00 {\
if ($wday == 7){\
my $alarmstatus=ReadingsVal("led_garage_l", "state", "--");;;;\
DebianMail('mailadresse@provider.com','Status','!!!!'.$alarmstatus);;;;\
}\
}

DeeSPe

Zitat von: DerMatze am 24 Oktober 2016, 00:03:18
Guten Abend,
seit einigen Tagen versuche ich mir in meiner Anlage eine Status Mail zuschicken. Ich habe jetzt schon diverse Beiträge gelesen und lange probiert, aber leider bis jetzt keine funktionierende Lösung gefunden. Deshalb hier mein Code, ihr könnt mir sicher helfen. Danke!


define StatusMail at *12:00:00 {\
if ($wday == 7){\
my $alarmstatus=ReadingsVal("led_garage_l", "state", "--");;;;\
DebianMail('mailadresse@provider.com','Status','!!!!'.$alarmstatus);;;;\
}\
}


Als Einzeiler:

define StatusMail at *12:00:00 {DebianMail('mailadresse@provider.com',"Status","!!!! ".ReadingsVal("led_garage_l","state","--")) if($wday == 7)}


Gruß
Dan
MAINTAINER: 22_HOMEMODE, 98_Hyperion, 98_FileLogConvert, 98_serviced

Als kleine Unterstützung für meine Programmierungen könnt ihr mir gerne einen Kaffee spendieren: https://buymeacoff.ee/DeeSPe

DerMatze

Danke für die schnelle Antwort. Funktioniert auch wunderbar. Allerdings wollte ich die StatusMail noch um einige Werte erweitern und wollte mit Variablen für die bessere Übersichtlichkeit arbeiten. Vielleicht habt ihr da noch einen Tip für mich.

DeeSPe

Zitat von: DerMatze am 24 Oktober 2016, 11:27:09
Danke für die schnelle Antwort. Funktioniert auch wunderbar. Allerdings wollte ich die StatusMail noch um einige Werte erweitern und wollte mit Variablen für die bessere Übersichtlichkeit arbeiten. Vielleicht habt ihr da noch einen Tip für mich.

Würde an dieser Stelle ohne Variablen arbeiten.
Erweiterbar wäre es z.B. so:
define StatusMail at *12:00:00 {DebianMail('mailadresse@provider.com',"Status","!!!! state: ".ReadingsVal("led_garage_l","state","").", rgb: ".ReadingsVal("led_garage_l","rgb","").", dim: ".ReadingsVal("led_garage_l","dim","")) if($wday == 7)}

Oder wenn unbedingt mit Variable(n) dann evtl. so (Status vorher zusammenbauen):
define StatusMail at *12:00:00 {my $status="!!!! state: ".ReadingsVal("led_garage_l","state","").", rgb: ".ReadingsVal("led_garage_l","rgb","").", dim: ".ReadingsVal("led_garage_l","dim","");;DebianMail('mailadresse@provider.com',"Status","$status") if($wday == 7)}

Gruß
Dan
MAINTAINER: 22_HOMEMODE, 98_Hyperion, 98_FileLogConvert, 98_serviced

Als kleine Unterstützung für meine Programmierungen könnt ihr mir gerne einen Kaffee spendieren: https://buymeacoff.ee/DeeSPe