Hallo zusammen, ich hab schon hin und her versucht und leider fehlt mir noch einiges an wissen.
Edit meint ich sollte noch schreiben was ich überhaupt will und was das Problem ist :-D
Das Problem ist, es passiert schlicht nix. Kein Logeintrag, keine Fehler. Was läuft falsch?
Ich möcht gern eine Mail versenden wenn ein Fenster geöffnet wird. Das wird später noch abhängig von presence sein.
In dieser Mail sollen alle offenen Fenster aufgelistet werden.
Schön wäre es wenn mir jemand noch diese Variablen erklären könnte. Z.b was ist das $_ oder my ($hash) = @_ ??
Folgendes habe ich mir zusammenkopiert, bzw. versucht die zwei zusammenzuführen.
Quellen:
http://forum.fhem.de/index.php?t=msg&goto=60040&rid=0 (//forum.fhem.de/index.php?t=msg&goto=60040&rid=0)
http://www.fhemwiki.de/wiki/FHTTK:_Benachrichtigung_bei_offenem_Fenster (//www.fhemwiki.de/wiki/FHTTK:_Benachrichtigung_bei_offenem_Fenster)
Erstmal habe ich ein neues attr in Global angelegt:
attr global userattr devStateIcon icon sortby webCmd alarm
Danach eine 99_myUtils.pm erstellt wo folgendes drin ist:
##############################################
# $Id: 99_myUtils.pm
package main;
use strict;
use warnings;
use POSIX;
sub
MyUtils_Initialize($$)
{
my ($hash) = @_;
}
sub handlewindow_alarm {
my @devicelist = devspec2array("alarm=yes");
my @wopen = ();
foreach(@devicelist) {
my $sens_window = ReadingsVal($_, "state", "??");
push (@wopen,$_) if ($sens_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, "handlewindow_alarm: ". $_. "noch offen";
Log 1, "ACHTUNG Alarm ausgelöst";
}
}
else {
$resultstring="alle Fenster sind derzeit geschlossen.";
}
return $resultstring;
}
1;
########################################################################
Folgendes steht in meiner fhem.cfg nur mit korrekter E-Mailadresse.
define SensorAlarm notify .*:(open) {\
my $status = ReadingsVal("@", "state", "nn");;\
my $deftype=$attr{@}{alarm};;\
return if ($deftype ne "alarm");;\
if ($defs{@}{PREVSTATE} ne $status) {\
my $HandleWindow_Alarm=handlewindow_alarm;;\
my $subject="FHEM: Fenster @ ".$status;;\
fb_mail('XXXXX@@asdfasasfemail.com',$subject,$HandleWindow_Alarm);;\
Log 3, "@: state ".$status;;\
Log 1, "@: state ".$status;;\
}\
}
Ich sag schonmal Danke an den jenigen der sich da Zeit für nimmt. ;)
Hallo,
Fehlermeldungen im Logfile?
Das
ZitatHardware FHEM:
Fritzbox 7390
Rest folgt...
aus deiner Signatur ist etwas dürftig.
Fehler kann sein ...
Rest folgt
Grüße
P.S.: Bitte erst deine Signatur fertig stellen bevor du Hilfe erwartest.
FB7390 = ok
FHEM von wo?
AVM Labor oder fhem.de? (Nein, die Erstinstallation ist gemeint)
Also erst die Labor von AVM auf die FB gespielt dann bitte Anfrage an AVM stellen oder die Labor wieder entfernen und die fhem.de Version aufspielen.
Servus,
so, fhem erst die Laborversion danach von hier drueberkopiert. Hmlan fuer die Kommunikation.
Fhem wird als root ausgefuehrt.
Mails versenden generell funktioniert.
Die Signatur aktualisieren, puh. Mittlerweile einige Aktoren. Sensoren. Rauchmelder.
Mit keine Logs mein ich was das hier angeht. Generell.
Vllt. ist irgendwo nen Syntaxfehler?
MfG
Hallo,
das
Zitatso, fhem erst die Laborversion danach von hier drueberkopiert.
impliziert das du die AVM-Labor als Grundinstallation auf deiner FB hast.
Was macht dich da
ZitatFhem wird als root ausgefuehrt.
so sicher?
Wie Rudi schonmal in einem Beitrag geschrieben hat
Zitat aus dem Kopf:
Das Update spielt die neuesten Dateien ein - die Restriktionen der AVM-Labor können! aber dennoch vorhanden sein
Zitat aus dem Kopf Ende:
Das heisst für mich das deine FHEM-Version immer noch als chroot läuft und nicht als root (sonst wäre es ja keine Labor).
Grüße
In der prozessliste steht root. Ergo wird das fuer mich auch als root ausgefuehrt. Oder denke ich zu Windows?
Mit chroot kann man mit FB_Mail keine Mails versenden. Das laueft ja auch.
Warum deiner Meinung nach, soll das nicht laufen? Welcher Berechtigungsfehler koennte vorliegen, warum was nicht geht?
mfg
Hallo,
naja
ZitatDas Problem ist, es passiert schlicht nix. Kein Logeintrag, keine Fehler. Was läuft falsch?
Ich möcht gern eine Mail versenden wenn ein Fenster geöffnet wird. Das wird später noch abhängig von presence sein.
Dazu gibt es schon genug Beiträge hier - und evtl. auch im Wiki.
Das
ZitatIn der prozessliste steht root.
kann sein - die Einschränkungen der Labor können! nach wie vor greifen (chroot - kein Zugriff auf alle Funktionen).
Das
ZitatHardware FHEM:
Fritzbox 7390
Rest folgt...
ermuntert nicht unbedingt zur (Mit)Hilfe - nach wie vor nicht.
Also nochmal:
Bitte die Labor sauber entfernen und die fhem.de-Version einspielen (fhem.cfg bitte vorher sichern und danach einfach wieder einspielen).
Grüße
P.S.: Es gibt sogar einen eigenen Beitrag im Anfängerbereich wie man FHEM sauber auf einer 7390 installiert.
Hi,
als tip du könntest einen Structure (damit was anspricht egal welches fenster aufgeht) mit einer Watchdog (damit die Meldung nur einmal bei einer Statusänderung von Zu nach Offen kommt) kombinieren.
Auf die Art hast du die Problematik erschlagen das offene Fenster abzufangen. Wie du jetz die Liste der fenster in eine Mail bekommst kann ich dir leider nicht sagen da ich (noch) kein Perl kann.
Warum wurd das ganze auch nicht in pascal geschrieben <fg>
Hallo,
einfache Version, war aber nicht mein Ziel:
define notify_Fenster_open notify sens.*open.* {\
FB_mail ('mailadresse@@keinedomain.com','Fenster geöffnet','Der Sensor @ ist offen!!');;\
}
Da wird nur für den offenen Sensor eine Mail generiert.
sens_GaesteWC z.B. würde dann z.B. erfasst.
Am Wochenende mach ich dann FHEM neu drauf.
Das mit dem Watchdog muß ich dann wohl noch erst verstehen. ;)
@puschel74
Ich hab gestern vom Tablet aus geschrieben, da motiviert es einen nicht die Signatur zu aktualisieren ;)