RESTful sensor, parsing json

I modified the code and this works for me. I now know on which days you can put out garden waste, refuse, bulk items, etc. :slight_smile:

#!/usr/bin/python3
import requests
import json
from datetime import datetime
import sys

if len(sys.argv) == 2:
  days = {'Mandag':'Monday', 'Tirsdag':'Tuesday', 'Onsdag':'Wednesday', 'Torsdag':'Thursday', 'Fredag':'Friday'}
  types = {'Dagrenovation':0, 'MadamSkrald':2, 'Storskrald':3, 'Haveaffald':5 }
  body = {'adrid': 24750,'common': False}
  headers = {'content-type': 'application/json'}
  url = 'https://herlev.renoweb.dk/Legacy/JService.asmx/GetAffaldsplanMateriel_mitAffald'

  response = requests.post(url,data=json.dumps(body),headers=headers)
  cleaned = ((response.content.decode('utf-8').replace('"d":"{', '"d":{')).replace('}]}"', '}]}')).replace('\\','')
  j = json.loads(cleaned)
  t = types.get(sys.argv[1])

  if t != None:
    d = j['d']['list'][t]['toemningsdato']
    for k, v in days.items():
      d = d.replace(k, v)
    datetime_object = datetime.strptime(d, '%A den %d-%m-%Y')
    print(datetime_object.date())
  else:
    print('unknown')
else:
  print('error')

Sensor definition (my python file is located in a sub-directory):

  - platform: command_line
    name: garden waste
    command: "python3 /config/python_scripts/test.py Haveaffald"

Screenshot%20from%202019-05-04%2020-52-58

1 Like