Ich möchte mir bei gewissen Aktionen eine E-Mail zusenden. Zum Testen habe ich folgenden at geschrieben. Leider passiert aber nichts! Von der Konsole kann ich mir aber eine Mail mit dem Aufru des Skripts (sudo /home/pi/smail.sh Text&) zusenden.
define MailTest at +*00:01:00 { system('sudo /home/pi/smail.sh Text&');;}
attr MailTest disable 0
attr MailTest room Haus_All
Im Logfile gibt nur aus:
2014.03.02 18:18:44 3: MailTest: -1
1. Wie kann ich den richtigen Grund dazu sehen?
2. Wenn es mal funktioneiren sollte, wie kann ich einen Parameter dynamisch an das Skript geben. Ich meine sowas wie
{ system('sudo /home/pi/smail.sh Temperatur: ReadingsVal("Thermostat_1","measured-temp",99)&');;}
Den ersten Teil habe ich heraus bekommen. Ich kann mein Skript starten und die Mail wird versendet.
Habe mit Hilfe von visudo für den User fhem die sudo-Rechte vergeben um das Skript ausführen zu dürfen:
Dazu habe ich mit sudo visudo -f /etc/sudoers.d/fhem eine Datei fhem angelegt. Diese wird zur Laufzeit zur sudoers inkludiert.
In der /etc/sudoers.d/fhem habe ich golgende Zeile hinzugefügt:
fhem ALL=(ALL) NOPASSWD:/home/pi/smail.sh
Danach den sudo Dienst neu gestartet.
sudo service sudo restart
Keine Lösung habe ich, wie ich ein ReadingsVal dem Skript als Parameter mitgeben kann. Hat jemand eine Lösung?
Also das Ergebnis von ReadingsVal("Thermostat_1","measured-temp",99) sollte in den PARAMETER.
{ system('sudo /home/pi/smail.sh PARAMETER&');;}
Habes es gelöst, aber schade, dass die Profis hier einem nicht helfen wollen! Wenigstenes einen Hinweis in die richtige Richtung wäre auch schon OK.
Habe einen stündlichen at definiert, welcher eine Funktion aus meiner 99_myUtils.pm aufruft.
fhem.cfg:
#*************************************
# Stündlich eine Mail mit den Thermostat-Werten schicken
#*************************************
define MailTest at +*01:00:00 {mysendmail('irgendwas');;}
attr MailTest disable 0
attr MailTest room Haus_All
99_myUtils.pm:
sub
mysendmail($)
{
my $temps = shift;
my $state = fhem('{ReadingsVal("Thermostat_1","state",99)}');
my $measured = fhem('{ReadingsVal("Thermostat_1","measured-temp",99)}');
my $humidity = fhem('{ReadingsVal("Thermostat_1","humidity",99)}');
system("sudo /home/pi/smail.sh 'Thermostat_1: Status $state \n Temperatur $measured \n Luftfeuchtigkeit $humidity \n'&");
}
Nun muss ich das Ganze noch abstrahieren, damit es wiederverwendbar wird.
ZitatHabes es gelöst, aber schade, dass die Profis hier einem nicht helfen wollen!
Hi Egmont,
lass dich nicht entmutigen! ;) Es gibt im Wiki schon eine Seite mit Lösungen zum Mailen (http://www.fhemwiki.de/wiki/E-Mail_senden). Besonders fürs RPi. In den Mailaufruf kannst du dann natürlich nach Herzenslust Variablen eintragen.
Gruß
Frank
Zitat von: egmontr am 04 März 2014, 09:39:12schade, dass die Profis hier einem nicht helfen wollen!
Gehts noch?
ZitatEs gibt im Wiki schon eine Seite mit Lösungen zum Mailen
Stimmt, aber ich habe sie nicht gefunden. Es gibt sehr viel Info hier und da und bis man die Richtige findet... Ist nicht einfach..
Aber danke für den Hinweis