Page 1 of 2 12 LastLast
Results 1 to 10 of 12

Thread: Monitoring EvoHome Room Temperatures over time

  1. #1
    Automated Home Guru
    Join Date
    Jan 2013
    Location
    Glasgow
    Posts
    199

    Default Monitoring EvoHome Room Temperatures over time

    Hi there,

    I can now run a script that can monitor and output the room temperatures of all the devices in an EvoHome over a period of time. I have it setup just now to run for a day and give me the values at 5 minute intervals. Running this, I could see that my livingroom was heating up when it shouldn't, probably a sign that I've got old sticky valves that need replaced.

    A quick example of a chart made using the data in Excel:

    Capture.jpg

  2. #2
    Automated Home Jr Member
    Join Date
    Mar 2014
    Posts
    16

    Default

    what's feeding these Roy, HR92s?

  3. #3
    Automated Home Guru
    Join Date
    Jan 2013
    Location
    Glasgow
    Posts
    199

    Default

    Dt92 for upstairs and downstairs hallways and the rest are hr80s just now.

    Roy

  4. #4
    Automated Home Guru
    Join Date
    Jan 2013
    Location
    Glasgow
    Posts
    199

    Default

    This is the code that I've used to monitor all the temperature sensors on my EvoHome network. It is written in python and outputs a csv type file. I'd recommend running it like:

    python comfortmonitor.py > temperaturelog.csv

    then hit CTRL-C when you are done and import the .csv file into Excel or another spreadsheet app.

    ----------

    # Script to monitor and read temperatures from Honeywell EvoHome Web API

    # Load required libraries
    import requests
    import json
    import datetime
    import time

    # Ser your login details in the 2 fields below
    USERNAME = 'Your UserName'
    PASSWORD = 'Your Password'

    # Initial JSON POST to the website to return your userdata
    url = 'https://rs.alarmnet.com/TotalConnectComfort/WebAPI/api/Session'
    postdata = {'Username':USERNAME, 'Password':PASSWORD, 'ApplicationId':'91db1612-73fd-4500-91b2-e63b069b185c'}
    headers = {'content-type':'application/json'}
    response = requests.post(url,data=json.dumps(postdata),header s=headers)
    userinfo = json.loads(response.content)

    # Extract the sessionId and your userid from the response
    userid = userinfo['userInfo']['userID']
    sessionId = userinfo['sessionId']

    # Next, using your userid, get all the data back about your site
    # Print out the headers for our temperatures, this let's us input to .csv file easier for charts
    url = 'https://rs.alarmnet.com/TotalConnectComfort/WebAPI/api/locations?userId=%s&allData=True' % userid
    headers['sessionId'] = sessionId
    response = requests.get(url,data=json.dumps(postdata),headers =headers)
    fullData = json.loads(response.content)[0]
    print ' ,',
    for device in fullData['devices']:
    print device['name'],',',
    print
    time.sleep (5)

    # Infinite loop every 5 minutes output temperatures
    while True:
    # Next, using your userid, get all the data back about your site
    url = 'https://rs.alarmnet.com/TotalConnectComfort/WebAPI/api/locations?userId=%s&allData=True' % userid
    headers['sessionId'] = sessionId
    response = requests.get(url,data=json.dumps(postdata),headers =headers)
    fullData = json.loads(response.content)[0]

    # Get current time and then print all thermostat readings out
    from datetime import datetime
    print datetime.now().strftime('%H:%M:%S'),',',
    for device in fullData['devices']:
    print device['thermostat']['indoorTemperature'],',',
    print
    time.sleep(300)

  5. #5
    Automated Home Jr Member
    Join Date
    Mar 2014
    Posts
    16

    Default

    Thanks Roy - will give it a try. The controller has a stat too - does it pick up readings from that too?

    M

  6. #6
    Automated Home Guru
    Join Date
    Jan 2013
    Location
    Glasgow
    Posts
    199

    Default

    Should do as it is just another sensor as far as it is concerned. I don't have the power to my hall stair location to put it up there yet, but I intend to use it also shortly.

    Roy
    Last edited by roydonaldson; 6th April 2014 at 08:56 PM.

  7. #7
    Automated Home Jr Member
    Join Date
    Apr 2006
    Posts
    22

    Default

    This is fantastic work Roy thanks for sharing

  8. #8
    Automated Home Jr Member
    Join Date
    Nov 2014
    Posts
    10

    Default

    Hello,

    I'm trying to get the same script running, but i'm getting a:

    KeyError: '(device)'

    error.

    Can you tell me what i'm doing wrong?

  9. #9
    Automated Home Lurker
    Join Date
    Nov 2014
    Posts
    3

    Default

    Thanks to Roy I made a python script that sends the data to Plotly.
    So you can easily view online how the temperature changes because the graphs are automatically plotted.

    http://github.com/PieterVO/EvohomeTemperature

  10. #10
    Automated Home Jr Member
    Join Date
    Nov 2014
    Posts
    10

    Default

    Pieter,

    It works! Now only to insert all this data into a graph in my Domoticz Raspberry Pi and i would be happy!

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •