Python, email temperature

KarlE ranstam at gmail.com
Sat Dec 22 21:54:45 CET 2012


On Saturday, December 22, 2012 9:44:39 PM UTC+1, Joel Goldstick wrote:
> On Sat, Dec 22, 2012 at 3:36 PM, Alexander Ranstam <ran... at gmail.com> wrote:
> 
> Hi!
> 
> 
> 
> Im totally new to Python, and im using it on my Raspberry pi. I found a program that sends an email, and one that checks the temperature of my CPU, but i cant seem to combine the to into the funktion that i want, sending me the CPU temp via Email.
> 
> 
> 
> 
> The two programs work very well on their own, but this doesnt work.
> 
> 
> 
> this works: server.sendmail(fromaddr, toaddrs, msg)
> 
> but this doesnt: server.sendmail(fromaddr, toaddrs, cpu_temperature)
> 
> 
> 
> despite the command "print cputemp" working in the same program.
> 
> 
> 
> When i run the program i get the error:
> 
> 
> 
> Traceback (most recent call last):
> 
>   File "sendcpu.py", line 36, in <module>
> 
>     msg = cpu_temperature
> 
> NameError: name 'cpu_temperature' is not defined
> 
> 
> 
> Does anyone know why the program claims that cpu_temperature isnt defined, when it is?
> 
> 
> 
> You should copy and paste the code here including the context around the error.  You say print cputemp works, but cpu_temperature is not defined.  They are spelled differently.  Start there 
> 
> 
> 
> 
> Thanx!
> 
> 
> 
> //Alexander
> 
> 
> 
> --
> 
> http://mail.python.org/mailman/listinfo/python-list
> 
> 
> 
> 
> -- 
> Joel Goldstick

Hi!

I made a typing error, and couldnt edit the post :( this is the code:


#!/usr/bin/env python
from __future__ import division
from subprocess import PIPE, Popen
import psutil
import smtplib

def get_cpu_temperature():
    process = Popen(['vcgencmd', 'measure_temp'], stdout=PIPE)
    output, _error = process.communicate()
    return float(output[output.index('=') + 1:output.rindex("'")])


def main():
    cpu_temperature = get_cpu_temperature()
    cpu_usage = psutil.cpu_percent()

    ram = psutil.phymem_usage()
    ram_total = ram.total / 2**20       # MiB.
    ram_used = ram.used / 2**20
    ram_free = ram.free / 2**20
    ram_percent_used = ram.percent

    disk = psutil.disk_usage('/')
    disk_total = disk.total / 2**30     # GiB.
    disk_used = disk.used / 2**30
    disk_free = disk.free / 2**30
    disk_percent_used = disk.percent
    #
    # Print top five processes in terms of virtual memory usage.
    #
    print 'CPU temperature is: ',  cpu_temperature

fromaddr = 'myemailadress'
toaddrs  = 'myemailadress'
#msg = 'There was a terrible error that occured and I wanted you to know!'
msg = cpu_temperature

# Credentials (if needed)
username = 'myusername'
password = 'mypassword'

# The actual mail send
server = smtplib.SMTP('smtp.gmail.com:587')
server.starttls()
server.login(username,password)
server.sendmail(fromaddr, toaddrs, cpu_temperature)
server.quit()




if __name__ == '__main__':
    main()

running it gives the following error:

pi at raspberrypi /home/python $ python sendcpu.py
Traceback (most recent call last):
  File "sendcpu.py", line 36, in <module>
    msg = cpu_temperature
NameError: name 'cpu_temperature' is not defined
pi at raspberrypi /home/python $


isnt cpu_temperature defined?





More information about the Python-list mailing list