Guten Tag liebe Forengemeinde,
habe mein FHEM gerade mal wieder angeworfen, da ich in meinem Humidor die Temperatur und Luftfeuchtigkeit überwachen möchte.
Eine email mit Betreff und Text über FHEM senden ist kein Problem, das funktioniert.
Wie übermittle ich aber die Werte des S300TH?
Der S300TH heisst in meinem Fall passenderweise Humidor und ist im room Buero.
Am liebsten wäre mir eigentlich eine Tägliche mail z.B. um 11:00 Uhr mit den aktuellen Werten.
Würde mich sehr über eure Hilfe freuen.
Viele Grüße
Horschd
Vielleicht so:
define Temp_humidor at *11:00:00 { fhem("my $Tempwert = ReadingsVal("Name_des_S300TH","state","");; Mail schicken mit $tempwert ;;}
Schonmal danke,
habe nur noch das Problem wenn ich folgenden Code define Temp_humidor at *11:00:00 { fhem("my $Tempwert = ReadingsVal("Humidor","state",""));; FB_mail('xxx@xxxemail.com','Humidor','$Tempwert') ;;}
in die myutils packe bekomme ich folgende Fehlermeldung:
ERROR:
Can't find string terminator '"' anywhere before EOF at ./FHEM/99_myUtils.pm line 6.
zur Info sonst steht nix drin ;)
Danke schonmal!
Beim fhem-Befehl fehlen doch die Anführungszeichen vor der letzten Klammer.
Du meinst so:
define Temp_humidor at *11:00:00 { fhem("my $Tempwert = ReadingsVal("Humidor","state","")");; FB_mail('xxx@xxxmail.com','Humidor','$Tempwert') ;;}
dann bekomme ich den Fehler:
syntax error at ./FHEM/99_myUtils.pm line 14, near "11:" syntax error at ./FHEM/99_myUtils.pm line 14, near ";}"
Hi,
Zitat von: horschd schrieb am Do, 18 April 2013 09:23... wenn ich folgenden Code ... in die myutils packe bekomme ich folgende Fehlermeldung: ...
Was auch ansonsten nicht verwunderlich ist, denn dieser Code gehört so nicht in die 99_myUtils.pm, sondern in die fhem.cfg.
In die myUtils gehört Perlcode, da sind z.B. die doppelten ";" schon einer zuviel.
Gruß
Thomas
Okay, der Tipp mit der fhem.cfg war gut ;)
jetzt bekomm ich nur den Fehler:
2013.04.18 11:42:00 3: Global symbol "$Tempwert" requires explicit package name at (eval 80) line 1.
syntax error at (eval 80) line 1, near ""my $Tempwert = ReadingsVal("Humidor"
Ok.
Meine Readings laufen mit:
ReadingsVal("CUL_WS_2","state","0")
Ürigens kannst Du statt "state" auch "temperature" sowie "humidity" getrennt auslesen.
Hatte die Null oben vergessen. Was diese bedeutet kann ich nicht sagen .Leider kann ich die Reference zu Readingsval nicht interpretieren ;-((
Zu Deinem Eintrag:
define Temp_humidor at *11:00:00 { fhem("my $Tempwert = ReadingsVal("Humidor","state","0")");; FB_mail('xxx@xxxmail.com' ('xxx@xxxmail.com'),'Humidor','$Tempwert') ;;}
sollte klappen.
Vielleicht auch ein (probieren, bin auch nicht der Perlcrack):
define Temp_humidor at *11:00:00 {FB_mail('xxx@xxxmail.com' ('xxx@xxxmail.com'),'Humidor',fhem("ReadingsVal("Humidor","state","0")"))}
Gruss Kai-Uwe
Der Wert 0 ist hier der Rückgabewert von ReadingsVal, wenn ReadingsVal den state aus Humidor nicht lesen kann. Du kannst ihn auch auf einen anderen Wert setzen (wird manchmal benötigt).
Edith ergänzt:
...at *11:00:00 { fhem("my $Tempwert = ...
bereitet Probleme, weil durch "{" umgeschaltet wird auf Perl.
Dann kommt aber sofort wieder "fhem(", was wiederum Fhem-Code einleitet.
Und Fhem versteht aber den Perl-Code "my $Tempwert = ..." nicht.
Dein 2. Ansatz dürfte eher Erfolg haben.
Gruß
Thomas
Okay dann Versuche ich mal:
Zitatdefine Temp_humidor at *11:00:00 {FB_mail('xxx@xxxmail.com' ('xxx@xxxmail.com'),'Humidor',fhem("ReadingsVal("Humidor","state","0")"))}
Hast du auch seinen 2. Vorschlag probiert?
Gruß
Thomas
Jetzt ja, da kommt folgendes bei raus:
2013.04.18 15:39:00 3: syntax error at (eval 86) line 1, near ""ReadingsVal("Humidor"
Teste mal
define Temp_humidor at *11:00:00 {FB_mail([email]'xxx@xxxmail.com'[/email],'Humidor',fhem("ReadingsVal("Humidor","state",0)"));;}
evtl. musst du noch das "@" escapen, indem du da "@@" schreibst (also doppeltes @).
Und Vorsicht: die E-Mail-Addy dürfte jetzt verunstaltet sein.
Gruß
Thomas
Edith: Code war unvollständig, define ... fehlte
Klappt leider nicht. Probleme macht das " " um die ReadingsVal, denn wenn ich es weg mache sendet er ne mail, der Inhalt ist aber mist, denn er sendet keinen string :(
Fehler sieht dann so aus:
2013.04.18 15:50:00 3: T: 22.3 H: 73.6 : Unknown command T:, try help
Jetzt, wo du es sagst ;)
ReadingsVal ist hier nicht Fhem, sondern Perl, also:
define Temp_humidor at *11:00:00 {FB_mail('xxx@xxxmail.com' ('xxx@xxxmail.com'),'Humidor', ReadingsVal("Humidor","state",0));;}
Wollte ich gerade sagen... ;-)
Klappts jetzt mit den Zigarrentemperaturen?
PERFEKT,
der Code klappt. Danke vielmals!!!
Jetzt bin ich wieder motiviert weiter mit FHEM zu spielen.
Also sehe ich das richtig dass alles was in der fhem.cfg steht in Pearl sein muss?
Dann lese ich mich mal ein :D
Nein, in der fhem.cfg steht regulär fhem drin. Wenn du Perl in der fhem.cfg brauchst, musst du diesen Perlbereich durch "{" und "}" einklammern. Wenn du in dem Perlbereich wieder Fhem brauchst, musst du dies durch "fhem(" einleiten und durch ")" beenden.
Gruß
Thomas
Und immer gut Qualm ;)
Danke danke,
dann setz ich mich jetzt erstmal auf den Balkon und werde qualmen...