Rauchmelder Problem

Begonnen von Blebbens, 06 Juni 2014, 21:41:12

Vorheriges Thema - Nächstes Thema

Mr. P

#30
Zitat von: Blebbens am 23 Juni 2014, 20:30:11
Mein Teamlead "Sdteam" listet nun die einzelnen SDs in der peerlist auf.
Das ist zwar gut, aber soweit warst du bereits. Das alleine genügt nicht.

Zitat von: Blebbens am 23 Juni 2014, 20:30:11
Der SD OG_Flur_RM3 meldet peerList self01, auch sagt er Teamcall from TeamDev... Aber ich höre keinen der Melder auf den CLl reagieren.
Weil es nicht passt. self01 bedeutet, dass du ihn mit sich selbst gepeert hast.

Zitat von: Blebbens am 23 Juni 2014, 20:30:11
Dahingegen ist ein weiterer SD namens DG_Flur_RM4 zum SD OG_Flur_RM3 gepeert lt. Peerlist.
Also immer noch untereinander gepeert, anstatt mit dem virtuellen Lead. Peering aufheben, bei beiden SDs mit getConfig kontrollieren, ob diese auch wirklich in den Registern entfernt wurden und erst dann mit dem virtuellen Lead peeren.

Zitat von: Blebbens am 23 Juni 2014, 20:30:11
So ganz verstehe ich noch nicht, was dann bei den einzelnen Meldern genau stehen muss unter PeerList und PeerID und was dort nicht stehen darf.
Bei den HM-Devices ist 00000000 immer bei den peerIDs vorhanden.
Die peerList bzw. die peerIDs bei deinem virtuellen Lead würden schon passen. Allerdings sind diese solange wertlos, bis auch entsprechende Rauchmelder davon wissen. Diese müssen dann alle in deinem Fall bei den peerIDs 00000000,10001001 und bei der peerList Sdteam stehen haben.

Edit:
Und nochmal: Versuch es erst einmal mit einem SD hinzubekommen. Wenn du diesen erfolgreich getestet hast, kannst du den Nächsten angehen.
Greetz,
   Mr. P

martinp876

ich versuche es auch noch einmal zu erklären:
in jeden realen SD sollte an Ende auftauchen:
attr peerIDs 10001001,00000000
(internal) peerList Sdteam
(readings) peerList Sdteam

Wichtig: nicht selbst schreiben sondern mit peerChan setzen und ggf getConfig lesen. Sollte etwas anders in peerIDs stehen muss es erst gelöscht werden  - in der Form:
set DG_FLUR_RM4 peerChan 0 OG_FLUR_RM3 single unset remote

um den self01 zu entpeeren kannst du auch dessen ID nehmen
set DG_FLUR_RM3 peerChan 0 2339DB01 single unset remote

danach sollte im attr peerIDs 00000000 stehen. Erst dann kannst du neu peeren.

dann kannst du peeren gemäß wiki:
http://www.fhemwiki.de/wiki/HM-SEC-SD_Rauchmelder#virtueller_TeamLead

ZitatOkay, im Beitrag der c't stand, dass man vor fhem die Melder untereinander peeren muss, falls fhem mal ausfällt.
was für ein quatsch - keine ahnung, wer was  in c't über fhem über fhem dokumentiert.


probiere am Ende HMInfo zu befragen
define hm HMInfo
set hm configCheck

Blebbens

Das gibt es doch gar nicht...
Auf den Befehl hin "set DG_FLUR_RM4 peerChan 0 OG_FLUR_RM3 single unset remote" möchte fhem, dass ich einen peer eingebe.
Nun habe ich "set DG_FLUR_RM4 peerChan 0 OG_FLUR_RM3 single unset actor" eingegeben, der Befehl wurde ausgeführt... "remote" akzeptiert fhem nicht.

Aber...
Nach einem set getConfig erhalte ich bei DG_FLUR_RM4:
Internals / Peerlist: OG_FLUR_RM3
Readings / Perlist: OG_FLUR_RM3
Attributes / PeerIDs: 00000000,2339DB01

Verhext, falls man das so sagen kann.






martinp876

drehe es einmal
set DG_FLUR_RM3 peerChan 0 OG_FLUR_RM4 single unset actor

Blebbens

So, alle Rauchmelder reagieren mit etwas Zeitaufwand auf den TeamCall.

Besten Dank an alle für die Hilfe...

Ich habe nun die App PushOver gekauft, die mir einen Alarm auf das iPhone pushen soll... mit:
define Noti_Rauchmelder1PushOn notify EG_WZ_RM1:smoke-Alarm.* { system ("curl -s -F 'token=XXX' -F$
define Noti_Rauchmelder2PushOn notify UG_FLUR_RM2:smoke-Alarm.* { system ("curl -s -F 'token=XXX' $
define Noti_Rauchmelder3PushOn notify OG_FLUR_RM3:smoke-Alarm.* { system ("curl -s -F 'token=XXX' $
define Noti_Rauchmelder4PushOn notify DG_FLUR_RM4:smoke-Alarm.* { system ("curl -s -F 'token=XXX' $

Nun frage ich mich zum Schluss noch, wie ich es möglichst einfach hinbekomme, eine leere Batterie rechtzeitig gemeldet zu bekommen.

Mr. P

Freut mich, dass es nun endlich klappt!

Bezüglich deines Batterie-"Problems glaube ich, dass dir folgender Beitrag ein wenig weiterhelfen wird! :-)

http://www.fhemwiki.de/wiki/Batterie%C3%BCberwachung
Greetz,
   Mr. P

Blebbens

Ohje, sendMail scheint mit dem Test bereits nicht zu funktionieren...

sendEmail -f 'Epfänger@me.com' -t 'Absender@gmail.com' -u 'subject' -m 'body' -s 'smtp.gmail.com' -xu 'fhemmailer' -xp 'PAsswort' -o tls=auto

Daraufhin kommt die Fehlermeldung:  invalid SSL_version specified at /usr/share/perl5/IO/Socket/SSL.pm line 332

Um sicherzugehen, dass ich die Configdetails korrekt verstanden habe... in 99_Utils.pm habe ich folgende Routine hinzugefügt:

######## DebianMail  Mail auf dem RPi versenden ############
sub
DebianMail
{
my $rcpt = shift;
my $subject = shift;
my $text = shift;
my $ret = "";
my $sender = "Absender\@gmail.com";
my $konto = "Absender\@gmail.com";
my $passwrd = "Password";
my $provider = "smtp.provider.de:465";
Log 1, "sendEmail RCP: $rcpt";
Log 1, "sendEmail Subject: $subject";
Log 1, "sendEmail Text: $text";

$ret .= qx(sendEmail -f '$sender' -t '$rcpt' -u '$subject' -m '$text' -s '$provider' -xu '$konto' -xp '$passwrd' -o tls=auto -o message-charset=utf-8);
$ret =~ s,[\r\n]*,,g;    # remove CR from return-string
Log 1, "sendEmail returned: $ret";
}


Ich möchte über ein Gmail-Konto absenden, also per SSL eigentlich auf Port 465 (lt. meinem iPad).

Der fhem.cfg habe ich hinzugefügt:
define n_batt_chk notify .*:[Bb]attery.* { if($EVENT !~ m/ok$/mi/) { \
  { FB_mail('Empfänger@gmail.com', 'FHEM Batteriewarnung', $NAME.': '.$EVENT)};; \
   Log 3, "$NAME : Batteriewarnung $EVENT";; \
  } \
}


Heisst, ich würde den jeweiligen "Absender" mit bspw. "HansFranz\gmail.com" ersetzen...

Was mach ich denn da falsch und wie bekomme ich den SSL-Fehler oben weg ?
Kann da noch jemand helfen ?

Mr. P

Hej Blebbens,

das liegt an einer fehlerhaften Version von sendEmail.
Der folgende Link sollte Abhilfe schaffen. ;-)

http://danielthat.blogspot.co.at/2012/10/how-to-send-email-from-command-line.html
Greetz,
   Mr. P

Blebbens

Klasse, der Versand per Console funktioniert...

Aber, lt. fhem.log beim Triggern:
trigger EG_WZ_RM1 Battery:low

2014.06.27 23:36:26 3: n_batt_chk return value: syntax error at (eval 94) line 1, near "/) "
syntax error at (eval 94) line 4, near ";
  }"

Diesen Fehler erhalte ich für eval 75 -94.

Dabei habe ich der fhem.cfg hinzugefügt:
define n_batt_chk notify .*:[Bb]attery.* { if($EVENT !~ m/ok$/mi/) { \
  { DebianMail('Test@gmail.com', 'FHEM Batteriewarnung', $NAME.': '.$EVENT)};; \
   Log 3, "$NAME : Batteriewarnung $EVENT";; \
  } \
}


Ist hier "DebianMail" überhaupt korrekt ? Das müsste doch sendemail sein, oder ?

Mr. P

Probier es einmal damit:
define n_batt_chk notify (.*:[Bb]attery.*) { if( "%EVENT" !~ m/ok/ ) { \
  { DebianMail('Test@@gmail.com', 'FHEM Batteriewarnung', %NAME.': '.%EVENT)};; \
   Log 3, "%NAME : Batteriewarnung %EVENT";; \
  } \
}


Zitat von: Blebbens am 27 Juni 2014, 23:40:46
Ist hier "DebianMail" überhaupt korrekt ? Das müsste doch sendemail sein, oder ?
DebianMail ist schon in Ordnung. Das ist der entsprechende Funktionsaufruf für die Zeilen, die du in der myUtils.pm gemacht hast.
Und pass bei der Mailadresse auf. Du musst zwei @-Zeichen eingeben, damit es auch als solches erkannt wird.
Greetz,
   Mr. P

Blebbens

Und leider wieder ein neuer Fehler:
2014.06.28 12:19:37 3: n_batt_chk return value: syntax error at (eval 28) line 2, near "battery:"

2014.06.28 12:19:37 3: n_batt_chk return value: syntax error at (eval 29) line 2, near "battery:"

2014.06.28 12:19:37 3: n_batt_chk return value: syntax error at (eval 30) line 2, near "battery:"

2014.06.28 12:19:37 3: n_batt_chk return value: syntax error at (eval 31) line 2, near "battery:"

2014.06.28 12:21:02 3: n_batt_chk return value: syntax error at (eval 37) line 2, near "Battery:"




Blebbens

Weiß da vielleicht doch jemand Rat ?

Der low-Battery notify per Mail funktioniert nicht:
# define n_batt_chk notify (.*:[Bb]attery.*) { if( "%EVENT" !~ m/ok/ ) { \
  { DebianMail('test@@gmail.com', 'FHEM Batteriewarnung', %NAME.': '.%EVENT)};; \
   Log 3, "%NAME : Batteriewarnung %EVENT";; \
  } \
}


Obiges ist auch in der fhem.cfg über mehrere Zeilen niedergeschrieben... hoffe, es ist korrekt so.

Daraufhin schmeisst fhem den Fehler:
"n_batt_chk return value: syntax error at (eval 37) line 2, near "Battery:"

Mr. P

Versuch dein Glück damit:
# define n_batt_chk notify (.*:[Bb]attery:.*) { if( "%EVENT" !~ m/ok/ ) { \
  { DebianMail('test@@gmail.com', 'FHEM Batteriewarnung', '%NAME: %EVENT')};; \
   Log 3, "%NAME : Batteriewarnung %EVENT";; \
  } \
}
Greetz,
   Mr. P

Blebbens

Hi,

Auf deinen Code hin erscheint folgender Fehler:
n_batt_chk return value: Undefined subroutine &main::DebianMail called at (eval 104) line 2.

Warum funktionieren diese Standard-Wiki-Codes bei mir nahezu nie ?

Puschel74

Hallo,

ZitatWarum funktionieren diese Standard-Wiki-Codes bei mir nahezu nie ?
Weil du die Fehlermeldungen dazu nie liest vermutlich.

Hast du überhaupt eine sub DebianMail in einer deiner 99_wasweißich.pm?

Du solltest nach Möglichkeit auch die Mailroutine einbauen - so wie die Fehlermeldung besagt gibt es diese bei dir nicht.

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.