import java.util.*;
import java.lang.*;
import java.io.*;

//////////////////////////////////////////////////////////////

// Benutzt das C-Programm isdndial
//////////////////////////////////////////////////////////////

public class tempCheck

{
  static final String CmdMeasure ="/usr/local/bin/digitemp -a -r750";
  static final String CmdInit    ="/usr/local/bin/digitemp -s/dev/ttyS1 -i";
  FileWriter F;

  public tempCheck()

  {
    while(true)
    {
    try
        {
          String line;

          Process p = Runtime.getRuntime().exec(CmdMeasure);

          p.waitFor();
          BufferedReader input = new BufferedReader(
                                    new InputStreamReader(
                                         p.getInputStream()));
          F=new FileWriter("/usr/local/tmp/digitempLog.txt");
          while ((line = input.readLine()) != null)
          {
             System.out.println(line);
             F.write(line+"\n");
             // Heizungsrücklauf
             if (line.indexOf("Sensor 1")!=-1)
         {
           int   idx=line.indexOf("C:");
           String ts=line.substring(idx+2,idx+6);
           double td=Double.parseDouble(ts);
           if (td<10.0)
           createMail("Heizung", line);
         }

             if (line.indexOf("Sensor 2")!=-1)

         {
               ...
         }

             if (line.indexOf("Sensor 3")!=-1)

         {
           ...
         }

             // Raumtemperatur

         if (line.indexOf("Sensor 0")!=-1)
         {
           int   idx=line.indexOf("C:");
           String ts=line.substring(idx+2,idx+6);
           double td=Double.parseDouble(ts);
           ...
         }


          }
          input.close();
          Thread.sleep(180000);
         }
         catch (Exception err)
         {
           System.out.println("Fehler: " + err.toString());
           err.printStackTrace();
         }
        }
  }

  void createMail(String Subject,String Data)

  {
    try
    {
     Data+="\n.\n";
     Process P=Runtime.getRuntime().exec("isdndial ...");
     P.waitFor();
     System.out.println(Data);
     Process p2 = Runtime.getRuntime().exec("mail xxxxxxxxx@yyyyyyyy -s " + Sub + "\n");
     BufferedWriter InputP2=new BufferedWriter(new OutputStreamWriter(p2.getOutputStream()));
     InputP2.write(Data);InputP2.close();
     p2.waitFor();
     // wait 180000 ms 180 sec = 3 min
     Thread.sleep(180000);
     P=Runtime.getRuntime().exec("isdnhang ...");

    }catch (Exception e){System.out.println(e);}

  }


  public static void main(String args[])
  {
    try
    {
       Process p = Runtime.getRuntime().exec(CmdInit);
       p.waitFor();
       System.out.println("Init complete");
    } catch (Exception e){System.out.println(e);}
    tempCheck T=new tempCheck();
  }
}