#include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include using namespace std; int BTsocket=0; int mail(string mail_str) { struct tm * timeinfo; time_t rawtime; time ( &rawtime ); timeinfo= localtime ( &rawtime ); string recipient="lucas-f@live.at",cmd=string("printf \"Moist Sensor Alarm:\\n") + asctime(timeinfo) + string("\\n") + mail_str +string("\" | mail -s 'MS Alarm' " + recipient); if(system(cmd.c_str())!=0) cout << "Failed to send Mail" << endl; else cout << "Mail Sent" << endl; return 0; } void log(string log_str) { struct tm * timeinfo; time_t rawtime; time ( &rawtime ); timeinfo= localtime ( &rawtime ); ostringstream logname; logname << "/home/lucas/.LOG/MSlog" << setfill('0') <tm_mon+1 << setw(2) << timeinfo->tm_mday << ".txt"; system("find /home/lucas/.LOG/MSlog* -mtime +10 -type f -delete"); string filename=logname.str(); ofstream logfile(filename.c_str(), ios::app); if(logfile.is_open()) { logfile << timeinfo->tm_mon<<"."<tm_mday<<";"<tm_hour<<":"<tm_min<<":"<tm_sec<<": "< Mail/no Mail\n delay\n<0/1> BTdevice"< 0) { value = atoi(buf); cout << "Received " << value << endl; if(value>=limit&&value<1200) { cout << "Value exceeds Limit!"<< endl; if(msg) mail("Value exceeds Limit: " + to_string(value)); } log("MSValue: " + to_string(value)); sleep(sleeptime); } else { log("Read Error: " + to_string(bytes_read) + " [ Errno: " +to_string(errno) + " ] " + string(strerror(errno)) + "Socket: " + to_string(BTsocket)); cout << "Connection Lost" << endl; for(i=0;i