title: Raspberry Pi A+ Bluetooth with DS18B20 not working when script runs on boot
body: <p>I wrote a python script to be run on a Raspberry Pi A+ to connect with a Raspberry Pi B+ via bluetooth and send temperature data with a DS18B20 sensor. When I run the script manually from the A+, it runs perfectly fine, but when I try to set the script to run when the Pi boots up, it is unable to connect via bluetooth. Here is the script:</p>
  
  <pre><code>import socket
  import time
  import os
  
  #time.sleep(10)
  serverMACAddress = '00:15:83:12:1A:39'
  port = 3
  connected = False
  while connected == False:
      try:
  
          s = socket.socket(socket.AF_BLUETOOTH, socket.SOCK_STREAM, socket.BTPROTO_RFCOMM)
          s.connect((serverMACAddress,port))
          connected=True
          print("connected")
      except Exception as e:
          print('failed')
  os.system('modprobe w1-gpio')
  os.system('modprobe w1-therm')
  
  temp_sensor = '/sys/bus/w1/devices/28-000006773191/w1_slave'
  current_time = time.time()
  UPDATE_THRESHOLD = 5
  newTemp = False
  def temp_raw():
      f = open(temp_sensor,'r')
      lines = f.readlines()
      f.close()
      return lines
  
  def read_temp():
      lines = temp_raw()
      temp_output = lines[1].find('t=')
      if temp_output != -1:
          temp_string = lines[1].strip()[temp_output+2:]
          temp_c = float(temp_string)/1000.0
          temp_f = temp_c*9.0/5.0+32.0
          return temp_c
  
  waterTemp = read_temp()
  
  while True:
  
      nextWaterTemp = read_temp()
      current_time = time.time()
      newTemp = True
      if nextWaterTemp != waterTemp:
          waterTemp = nextWaterTemp
      try:
          s.send(bytes(str(waterTemp),'UTF-8'))
          time.sleep(30)
          connected = True
          print(waterTemp)
      except Exception as e:
          print("Fail")
          connected = False
  
      while connected == False:
          try:
              s = socket.socket(socket.AF_BLUETOOTH, socket.SOCK_STREAM, socket.s.connect((serverMACAddress,port)))
              s.send(bytes(str(waterTemp),'UTF-8'))
              connected = True
              print("Connected")
          except Exception as e:
              print("Fail")
              time.sleep(.5)
  </code></pre>
  
  <p>This code also has trouble reconnecting to the B+ if the connection fails. I have to restart the code on both the B+ and the A+ to get them to connect again for some reason. But this is a different problem. I just want this code to run when it boots.</p>
  
  <p>The method I used to get the script to run on boot is putting this code in the /etc/rc.local file:
  <code>/usr/bin/python /home/pi/Desktop/client.py &gt;/tmp.client.out 2&gt;/tmp/client.err</code></p>
  
  <p>Any ideas?</p>
  
  <p>UPDATE:</p>
  
  <p>It will either always print out "failed" in the client.out file.</p>
  
  <p>OR</p>
  
  <p>Nothing gets logged in the client.err or the client.out files and the bluetooth icon in the top of the screen shows that it is connected but I only receive a value of 0 for the temperature it should be sending. But when I try manually running the script without running it on boot, the temperature works fine.</p>