Rexxer

Some tips for me and other

My python 2.7 script to parse wheather data and speak it

# -*- coding: utf8
## encoding=utf8
import urllib
import re
from bs4 import BeautifulSoup
import os
import subprocess
import codecs
import sys

from setupcon import setup_console
setup_console(‘cp866’)

sys.getdefaultencoding()
reload(sys)
sys.setdefaultencoding(“cp866”)
# Get the page
sock = urllib.urlopen(“http://tvoj.kharkov.ua/help/weather/”)
htmlSource = sock.read()
sock.close()
#print htmlSource

#
soup = BeautifulSoup(htmlSource, “html5lib”)
string = soup.h1
results = soup.find_all(‘span’, limit=10)
for i in results:
print i.text
temp = results[1].text
humidity = results[4].text
pressure = results[6].text
pressure = pressure[0:3]
wind = results[7].text
speed = results[8].text
speed = speed[0:1]
activity = results[9].text

#NETATMO
import lnetatmo
authorization = lnetatmo.ClientAuth()
devList = lnetatmo.DeviceList(authorization)
theData = devList.lastData()
#print(‘Available modules : ‘, theData.keys() )
#print(‘In-house CO2 level : ‘, theData[‘Indoor’][‘CO2’] )
#print(‘Outside temperature : ‘, theData[‘Outdoor’][‘Temperature’] )
#print(‘External module battery : ‘, “OK” if int(theData[‘Outdoor’][‘battery_vp’]) > 5000 \
#                                     else “NEEDS TO BE REPLACED” )
print(theData[‘Indoor’][‘CO2’])
CO2 = theData[‘Indoor’][‘CO2’]
if int(CO2) > 1500:
message = u” Рекомендуется проветрить помещение ”
else:
message = u” В пределах нормы ”
print message

command = “C:/Progra~1/Govorilka/CP/govorilka_cp.exe”
command.encode(‘cp1251’).strip()
speech = u”Уровень углекислого газа ” + str(CO2) + message + u”, Температура воздуха ” + temp + u”, влажность ” + humidity + u” процентов, давление ” + pressure + u”миллиметров, ветер ” + wind + u”, скорость ветра ” + speed + u” метров в секунду, погодные явления ” + activity
print speech
speech.encode(‘cp866’)
cmd = “c://temp//out.cmd”
open(“c://temp//out.cmd”, “w”).write(‘ ‘.join([command,speech]))
subprocess.call([cmd])

Comments are currently closed.