Access the Degree Days API using Wattics Ruby code

Access the Degree Days API using Wattics Ruby code

Degree days is a unit used to determine the heating requirements of buildings, representing a fall of one degree below a specified average outdoor temperature (usually 18°C or 65°F) for one day. It is a very important metric to be used when developing energy models and to validate savings in similar conditions.

For this reason, at Wattics we thought it would be useful to share with the community of energy analytics developers a sample code to show how to use Ruby to specify an XML request, send it to API servers (past the security system), and get an XML response back.

It’s not a full client library but it should work fine so long as you can specify your request in XML, and write some code to parse the XML response.

See the XML API docs for more information about how to specify the data you want in the XML request. There are lots of options, and the XML included in the Ruby code below is just a very simple example to get an API request working.

You can find the code also in the ruby page.

For any comment of feedbacks, contact Thiago Nuic:



require 'net/http'
require 'base64'

class DegreeDays
  @@account_key = 'test-test-test'
  @@security_key = 'test-test-test-test-test-test-test-test-test-test-test-test-test'
  @@url = ''

  def self.perform_call
    timestamp =
    random = SecureRandom.uuid

    request_xml = %{
                <DatedDataSpec key="dailyHDDForLast7Days">

    digest ='sha256')
    signature_bytes = OpenSSL::HMAC.digest(digest, @@security_key, request_xml)

    request_parameters = {
      request_encoding: 'base64url',
      signature_method: 'HmacSHA256',
      signature_encoding: 'base64url',
      encoded_request: Base64.urlsafe_encode64(request_xml),
      encoded_signature: Base64.urlsafe_encode64(signature_bytes)

    uri = URI(@@url)
    res = Net::HTTP.post_form(uri, request_parameters)
    return res.body

puts DegreeDays.perform_call


+353 1415 1242
Contact us

Sign up to our blog posts

Sign up to keep up-to-date with what’s happening within the industry

    Technology Update

    Check out our latest offering:

    “WatticsAir – Air Quality Monitoring and Analytics”
    Go to page