Hauptmenü

S300TH Werte als Mail

Begonnen von horschd, 17 April 2013, 19:14:40

Vorheriges Thema - Nächstes Thema

horschd

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

kud

Vielleicht so:

define Temp_humidor at *11:00:00 { fhem("my $Tempwert = ReadingsVal("Name_des_S300TH","state","");; Mail schicken mit $tempwert ;;}


 

horschd

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!

kud

Beim fhem-Befehl fehlen doch die Anführungszeichen vor der letzten Klammer.

horschd

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 ";}"

Rohan

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
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

horschd

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"

kud

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

Rohan

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
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

horschd

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")"))}

Rohan

Hast du auch seinen 2. Vorschlag probiert?

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

horschd

Jetzt ja, da kommt folgendes bei raus:

2013.04.18 15:39:00 3: syntax error at (eval 86) line 1, near ""ReadingsVal("Humidor"

Rohan

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
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

horschd

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

Rohan

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));;}
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