Hauptmenü

bekomme keine Email

Begonnen von Sonic, 16 April 2013, 17:47:27

Vorheriges Thema - Nächstes Thema

Sonic

Hi Thomas,
nochmal vielen Dank. Ich brauch da nochmal deine Hilfe. Das Übersteigt meine Kenntnisse total.
Dir wird es die Haare zu Berge stellen. Aber sollte das dann in etwa so aussehen ?


define Tempalarm_high24WZ notify thermostat:measured-temp.* {\
if ( (ReadingsVal("thermostat","measured-temp",20) > 24) &&
$NewMailtime = 0;
if (time > $NewMailtime) {
schickeMail;
$NewMailtime = time + 14400;
}
FB_mail('test.test@@online.de' (@@online.de'),'Temperaturalarm


Kannst du mir bei den Klammern helfen ?
Bin sonst verloren

Rohan

Hi,


define Tempalarm_high24WZ notify thermostat:measured-temp.* {\
  if ( (ReadingsVal("thermostat","measured-temp",20) > 24) && (time > $NewMailtime) ){\
    Log (3,"Da grübel ich auch noch");;\
    FB_mail('test.test@@online.de','Temperaturalarm_high24','text 123');;\
    $NewMailtime = time + 14400;;\
  }\
}


Problem ist jetzt nur die fehlende Vorinitialisierung von $NewMailtime mit 0, weil ich nicht weiß, was passiert, wenn "time > $NewMailtime" geprüft wird und $NewMailtime noch nicht initialisiert ist.

Da wirst du - was mich anbelangt - bis heute Abend warten müssen, da ich dafür meine Umgebung brauche (hier atM nicht gegeben, da kein Fhem am Start). Evtl. meldet sich aber noch jemand anderes? ;)

Gibt hier nämlich ziemlich viele Fhem/Perl-Koniferen, die besser sind als ich!

Also bitte... wer sich angesprochen fühlt, bitte einen Schritt vortreten ... äääähhhh .... melden  8)

Gruß
Thomas
Fhem auf Mini-ITX mit Celeron 2-Core, HMLAN (> 55 Devices), CUL (FS20 und EM), RFXtrx 433E, Arduino (einige DS18B20), RPi mit 1-Wire (DS2423 für S0-Signale, DS18B20+), RPi/Arduino mit MQ-5 und MQ-9 (CO- und CNG/LPG-Sensor), CO-20 IAQ Sensor

Sonic

Hi Thomas,
jetzt dank ich dir aber wirklich nochmal herzlich.
Super, das du mir da hilfst.
Ich bin da völlig om OFF. Da reichen meine PEARL Kenntnisse weit nicht mehr.

Ich habe dein Script gerade eingefügt. Beim Speichern keine Fehlermeldung.
Jetzt wäre das Thema mit der Initialisierung zu lösen.
Gerne warte ich bis heute Abend oder länger. Hauptsache ich bekomme das noch hin.
Ich tüftel da schon 2 Monate rum. Da kommt es auf ein paar Tage auch nicht an

gruss
KLAUS


Sonic

und hier schon gleich die Meldung aus dem LOG

2013.04.17 16:17:38 3: Tempalarm_high24WZ return value: Global symbol "$NewMailtime" requires explicit package name at (eval 344) line 1.
Global symbol "$NewMailtime" requires explicit package name at (eval 344) line 1.


gruss
KLAUS

Puschel74

Hallo,

die Meldung ist logisch.

FHEM kennt die Variable noch nicht also muss diese erst bekannt gemacht werden.

Das geht normalerweise mit einem

my $Variable=Wert

Oder du machst das ganze wirklich mit einem Dummy den du nach versenden der Mail auf 1 setzt und wenn der Fehler
behoben ist quittierst.

Grüße
Zotac BI323 als Server mit DBLog
CUNO für FHT80B, 3 HM-Lan per vCCU, RasPi mit CUL433 für Somfy-Rollo (F2F), RasPi mit I2C(LM75) (F2F), RasPi für Panstamp+Vegetronix +SONOS(F2F)
Ich beantworte keine Supportanfragen per PM! Bitte im Forum suchen oder einen Beitrag erstellen.

Rohan

Hallo Klaus,

Puschel74 hat Recht mit beiden Anmerkungen und genau darin hatte ich das Problem gesehen, aber ...

;)

1. Falls noch nicht vorhanden, erzeuge dir eine 99_myUtils.pm nach dieser Anleitung.

Meine hat (für deinen Anwendungsfall reduziert) folgenden Inhalt:


package main;
use strict;
use warnings;
use POSIX;

sub
myUtils_Initialize($$)
{
  my ($hash) = @_;
  my $NewMailtime = time;
}

my $NewMailtime = time;

1;


Ich habe die $NewMailtime da zwar 2 Mal drin, aber es schadet nichts (kannst ja mal bei Gelegenheit testen, welches davon überflüssig ist ;) und mir Rückmeldung machen).

2. Erzeuge dein Notify wie folgt in der fhem.cfg:


define Tempalarm_high24WZ notify thermostat:measured-temp.* {\
  if ( (ReadingsVal("thermostat","measured-temp",20) > 24) && (time > $main::NewMailtime) ){\
    Log (3,"Da grübel ich auch noch");;\
    FB_mail('test.test@@online.de','Temperaturalarm_high24','text 123');;\
    $main::NewMailtime = time + 14400;;\
  }\
}


Wichtig ist das "$main::NewMailtime", denn sonst kommt es zu den besagten Fehlermeldungen

ZitatTempalarm_high24WZ return value: Global symbol "$NewMailtime" requires explicit package name at (eval 344) line 1.
Global symbol "$NewMailtime" requires explicit package name at (eval 344) line 1.

Das "$main::" sorgt dafür, dass die Variable aus der 99_myUtils.pm erkannt wird.

3. reload 99_myUtils.pm und rereadcfg in der Fhem-Kommandozeile "entern"

4. Bei mir funktionierte es mit einem HomeMatic-Wassermelder, desses Trocken/Nass-Zustandmeldungen ich bewusst über 40 Minuten (ich wusste nicht, ob der Wassermelder seine Nass-Meldungen regelmäßig wiederholt => tut er nicht, aber das ist eine andere Geschichte, die ich noch abklären muss) alle paar Minuten verändert habe. Dabei stand bei mir statt 14400 (für 4 Stunden) nur ein Erhöhungswert von 1800 (für 30 Minuten). Die nächste Mail nach der ersten wurde erst nach Ablauf von 30 Minuten nach der ersten Mail versandt.

Bitte teste und berichte.

Gruß
Thomas

Edith musste eingreifen, weil noch mein anders lautender Mail-Sub-Aufrufname drin stand.
Fhem auf Mini-ITX mit Celeron 2-Core, HMLAN (> 55 Devices), CUL (FS20 und EM), RFXtrx 433E, Arduino (einige DS18B20), RPi mit 1-Wire (DS2423 für S0-Signale, DS18B20+), RPi/Arduino mit MQ-5 und MQ-9 (CO- und CNG/LPG-Sensor), CO-20 IAQ Sensor

Sonic

Hi Thomas,

whoaw,, Klasse. Vielen Dank für deine Anleitung. Ich werde es gleich heute ausprobieren und dir berichten.

Ich freu mich dasß du mir da so hilfst.

Auch Puschel74

gruss aus Schongau
KLAUS

Sonic

Hallo Thomas,
ich habe alles verstanden und wie von die beschrieben gemacht. Folgende Meldung steht im Lofile:

2013.04.18 14:01:00 3: Da grübel ich auch noch
2013.04.18 14:01:00 3: Tempalarm_high24WZ return value: Undefined subroutine &main::BBxMMail called at (eval 761) line 1.

gruss
KLAUS



Rohan

Kann es sein, dass du dir den Code aus der Benachrichtigungsmail per copy&paste in deine fhem.cfg gepackt hast?

Darin stand nämlich noch etwas von BBxMMail, was ich aber in dem Post hier im Forum kurz darauf editiert habe nach FBMail. Nimm bitte das define hier aus dem Forenposting.

Dann sollte es passen.

Hintergrund: Meine Mailroutine heißt BBxMMail.

Gruß
Thomas
Fhem auf Mini-ITX mit Celeron 2-Core, HMLAN (> 55 Devices), CUL (FS20 und EM), RFXtrx 433E, Arduino (einige DS18B20), RPi mit 1-Wire (DS2423 für S0-Signale, DS18B20+), RPi/Arduino mit MQ-5 und MQ-9 (CO- und CNG/LPG-Sensor), CO-20 IAQ Sensor

Sonic

Hi Thomas,
alle Test sind abgeschlossen.
Grandios, ich freue mich sehr.
Alles funktioniert so wie du es gesagt hast.

Jetzt werde ich das gleich noch mit Tempalarm LOW machen und ich habe eine super Benachrichtigung.

Nochmal vielen Dank

gruss aus Bayern
KLAUS

Rohan

Hallo Klaus,

das freut mich, somit kann ich dieses Thema (E-Mail-Wiederholung erst nach einer bestimmten Zeit) ins Wiki einarbeiten, denn so etwas fehlt dort noch.

Hattest du noch geprüft, welche der beiden Variablen in 99_myUtils.pm denn nun die passende ist (sonst checke ich das noch)?

Btw: Was mir dazu noch eingefallen ist: Mal angenommen, du behebst den Grund der E-Mail kurz nach der 1. Mail und es passiert kurz darauf nochmal, erhälst du frühestens erst nach 4 Stunden eine erneute Mail. Das ist mM nicht zielführend. Ich werde noch einarbeiten (müssen), dass man den Time-Wert zurücksetzt bzw. setzen kann.

Man liest sich.

Gruß
Thomas
Fhem auf Mini-ITX mit Celeron 2-Core, HMLAN (> 55 Devices), CUL (FS20 und EM), RFXtrx 433E, Arduino (einige DS18B20), RPi mit 1-Wire (DS2423 für S0-Signale, DS18B20+), RPi/Arduino mit MQ-5 und MQ-9 (CO- und CNG/LPG-Sensor), CO-20 IAQ Sensor

Sonic

Hi Thomas,

ich habe noch nicht weiter getestet, welche der beiden variablen unnötig ist. Nach dem Motto "never touch the running system, trau ich mich gar nicht ran.  :)
Wenn du da ein Ergebnis hast, und vielleicht noch deine Verbesserung (Time Wert zurücksetzen) eingearbeitet hast, wäre Klasse wenn du mir kurz eine Nachricht schicken würdest.

By the way.
Ich würde mich für deine Hilfe gerne erkenntlich zeigen.

Schau doch mal bitte in unseren OnlineShop. (www.kirstein.de)
Solltes du in dem Musikalischen Bereich mal was benötigen, dann lasse es mich wissen.
Ich werde dir dann einen Sonder-Sonder Bonus Preis anbieten.
Oder wenn du möchtest, lass mich deine Email kurz wissen, dann brauche ich das nich im Forum posten und nehme es dann gleich wieder raus.

Noch eine Frage zum Schluss.
Kann ich die Log Zeile
Log (3,"Da grübel ich auch noch");;\

einfach rauslöschen ?


viele Grüße
KLAUS

Rohan

Hallo Klaus,

Zitat von: Sonic schrieb am Fr, 19 April 2013 10:22..."never touch the running system,..

Kann ich verstehen ;)

ZitatWenn du ...  wäre Klasse wenn du mir kurz eine Nachricht schicken würdest.

Selbstredend (mit Link zum Wiki dann ;) )

ZitatIch würde mich ...

Danke für das Angebot! Ich helfe zwar nicht aus solchen Gründen, aber soooo selbstlos bin ich nun auch nicht. Falls ich mal wieder Zeit habe mein E-Piano zu quälen .... :(

Zitat... Kann ich die Log Zeile
Log (3,"Da grübel ich auch noch");;\
einfach rauslöschen ?

Ja, aber bitte nur ganz bzw. restlos, sonst kann es wieder Probleme (Zeilenende usw.) geben. Aber warum trägst du nicht einfach einen sinnhaften Text zwischen den "" für die Log-Datei ein? Frisst kein Brot und wer weiß, wofür man/du das nochmal brauchst. Und wenn es nur zum Nachschauen ist für spätere Notifys .... wie war das doch gleich nochmal???? ;)

Zitatviele Grüße
KLAUS

Dito
Thomas

Edith hat noch ein "s" gekauft.
Fhem auf Mini-ITX mit Celeron 2-Core, HMLAN (> 55 Devices), CUL (FS20 und EM), RFXtrx 433E, Arduino (einige DS18B20), RPi mit 1-Wire (DS2423 für S0-Signale, DS18B20+), RPi/Arduino mit MQ-5 und MQ-9 (CO- und CNG/LPG-Sensor), CO-20 IAQ Sensor

Sonic

Hi Thomas,
ich nochmal kurz.

Alles klar. Sollten deine Piano oder Musik-Lust irgend was brauchen, lass es mich wissen.

Eine letzte Frage noch:
Ich kriege diese Meldung nicht in den Griff. Immer nach Update kommt:

File(s) skipped for an update! Error while writing:
Can't write ././CHANGED: Permission denied

Ich hab schon versucht einen eventuellen Schreibschutz aufzuheben.
Ich kann ohne Probleme von dem PC aus in das Verzeichnis FHEM schreiben.
Was könnte ich da noch tun ?
Oder einfach ignorieren ?

gruss

Rohan

Hallo Klaus,

sorry, aber da weiß ich jetzt nichts zu. Evtl. besser einen neuen Thread aufmachen. Die Frage dürfte/könnte sonst hier untergehen.

Man liest sich
Thomas
Fhem auf Mini-ITX mit Celeron 2-Core, HMLAN (> 55 Devices), CUL (FS20 und EM), RFXtrx 433E, Arduino (einige DS18B20), RPi mit 1-Wire (DS2423 für S0-Signale, DS18B20+), RPi/Arduino mit MQ-5 und MQ-9 (CO- und CNG/LPG-Sensor), CO-20 IAQ Sensor