| Author | 
         | 
         
      
        
         
         krommetje Super User 
          
  
  Joined: December 29 2004 Location: Netherlands
 Online Status: Offline Posts: 695
          | 
        
         
          
           | Posted: March 16 2016 at 05:24 | IP Logged
		     | 
                    
            		  
           | 
           
          
           
  | 
           
          
Hi all,
 
 I am working on a raspberry pi to measure temperatures and want 
 python to send the measurements to ph. I have an examplescript:
 I am unable to read multple sensors (DS18b20) for some reason so I 
 have to connect all 4 sensors to seperate GPIO's....  
 
 first I want to make it work with 1 sensor....
 
 
Code: 
   
    
    
      
       
 import os
 import glob
 import time
  
 os.system('modprobe w1-gpio')
 os.system('modprobe w1-therm')
  
 base_dir = '/sys/bus/w1/devices/'
 device_folder = glob.glob(base_dir + '28*')[0]
 device_file = device_folder + '/w1_slave'
  
 def read_temp_raw():
     f = open(device_file, 'r')
     lines = f.readlines()
     f.close()
     return lines
  
 def read_temp():
     lines = read_temp_raw()
     while lines[0].strip()[-3:] != 'YES':
         time.sleep(0.2)
         lines = read_temp_raw()
     equals_pos = lines[1].find('t=')
     if equals_pos != -1:
         temp_string = lines[1][equals_pos+2:]
         temp_c = float(temp_string) / 1000.0
         temp_f = temp_c * 9.0 / 5.0 + 32.0
         return temp_c, temp_f
      
 while True:
         print(read_temp())
      time.sleep(10)
  | 
       
       | 
    
    | 
 
 
 
 this code reads gpio4 and takes a temperature measurement every 10 
 seconds but can be altered for A longer time. Can the code  
 print(read_temp() be replaced by a method to send this to ph using 
 an eval formula e.g or another method? I am a newbie on python so 
 sorry if the question is "too simple" so to speak....
  
   sorry for the typos
  Edited by krommetje - March 16 2016 at 05:26
         | 
       
       
        | Back to Top | 
         
          
          
         | 
       
       
       
        |   | 
      
        
         
         nick7920 Senior Member 
          
 
  Joined: March 04 2008 Location: United States
 Online Status: Offline Posts: 193
          | 
        
         
          
           | Posted: March 20 2016 at 11:52 | IP Logged
		     | 
                    
            		  
           | 
           
          
           
  | 
           
          
I dont know much about python but cant you just send 
 data to PH by web access from it.
 
 just an idea you will have to see how to play with 
 following have not tried it- look into ph_macroparmret 
 it will load your data into LOCAL variable and you can 
 take it from their.
 
 http://testuser:testpass@123.456.789.1 23:5555/ph-
 cgi/eval?formula=ph_macroparmret("TEST1",read_temp())
 
 
 Nick
         | 
       
       
        | Back to Top | 
         
          
         | 
       
       
       
        |   | 
      
        
         
         dhoward Admin Group 
          
  
  Joined: June 29 2001 Location: United States
 Online Status: Offline Posts: 4447
          | 
        
         
          
           | Posted: March 23 2016 at 15:58 | IP Logged
		     | 
                    
            		  
           | 
           
          
           
  | 
           
          
Peter,
 
 Never really dabbled with Python so cant offer much 
 but like Nick says, I would just replace the Python 
 "Print" statement with whatever the equivalent call is 
 for Python to make a web call (probably the easiest 
 way to get data into PowerHome from the Pi).
 
 If the Pi is going to be on the same network as the 
 PowerHome machine and has access to a shared "drive" 
 or file location, you could then also just have the Pi 
 write the value to the shared drive and then use the 
 PowerHome File Monitor plugin to trigger on a file 
 change and get the data that way.
 
 Dave.
 
         | 
       
       
        | Back to Top | 
         
          
          
         | 
       
       
       
        |   |