clean code
This commit is contained in:
		
							parent
							
								
									6679f2b22b
								
							
						
					
					
						commit
						0d8db4077d
					
				@ -1,14 +1,9 @@
 | 
			
		||||
import json
 | 
			
		||||
import sys
 | 
			
		||||
import os
 | 
			
		||||
 | 
			
		||||
# Homematic IP
 | 
			
		||||
import homematicip
 | 
			
		||||
from homematicip.home import Home
 | 
			
		||||
from homematicip.device import ShutterContact,HeatingThermostat,PlugableSwitchMeasuring,WallMountedThermostatPro
 | 
			
		||||
from homematicip.group import HeatingCoolingProfile,HeatingGroup
 | 
			
		||||
from homematicip.device import ShutterContact, WallMountedThermostatPro
 | 
			
		||||
# Import MQTT client.
 | 
			
		||||
import paho.mqtt.publish as publish
 | 
			
		||||
# import paho.mqtt.publish as publish
 | 
			
		||||
import paho.mqtt.client as paho
 | 
			
		||||
 | 
			
		||||
# MQTT credentials
 | 
			
		||||
@ -18,7 +13,6 @@ import paho.mqtt.client as paho
 | 
			
		||||
mqtt_broker = "raspberrypi"  # broker address, usually your HASS IP address
 | 
			
		||||
 | 
			
		||||
# create the MQTT client
 | 
			
		||||
global client
 | 
			
		||||
client = paho.Client(protocol=paho.MQTTv31)  # * set a random string (max 23 chars)
 | 
			
		||||
 | 
			
		||||
# client connection
 | 
			
		||||
@ -32,44 +26,29 @@ home = Home()
 | 
			
		||||
home.set_auth_token(config.auth_token)
 | 
			
		||||
home.init(config.access_point)
 | 
			
		||||
 | 
			
		||||
def write_shutter(room,device):
 | 
			
		||||
 | 
			
		||||
def write_shutter(room, device):
 | 
			
		||||
    print(room, " ", device.label, " ", device.lastStatusUpdate, " ", device.windowState)
 | 
			
		||||
        #print(device)
 | 
			
		||||
    # print(device)
 | 
			
		||||
 | 
			
		||||
def write_plugableswitchmeasuring(room,device):
 | 
			
		||||
        print(room, " ", device.label, " ", device.lastStatusUpdate, " ", device.currentPowerConsumption, " ", device.energyCounter)
 | 
			
		||||
 | 
			
		||||
def write_heatingthermostat(room,device):
 | 
			
		||||
        print(room, " ", device.label, " ", device.lastStatusUpdate)
 | 
			
		||||
def write_wallmountedthermostatpro(room, device):
 | 
			
		||||
    topic = 'weathersensors/' + room
 | 
			
		||||
 | 
			
		||||
def write_wallmountedthermostatpro(room,device):
 | 
			
		||||
    global time
 | 
			
		||||
    global deviceName
 | 
			
		||||
    global actualTemperature
 | 
			
		||||
    global setPointTemperature
 | 
			
		||||
    global humidity
 | 
			
		||||
 | 
			
		||||
    time = device.lastStatusUpdate
 | 
			
		||||
    deviceName = device.label
 | 
			
		||||
    actualTemperature = device.actualTemperature
 | 
			
		||||
    setPointTemperature = device.setPointTemperature
 | 
			
		||||
    humidity = device.humidity
 | 
			
		||||
 | 
			
		||||
    topic  = 'weathersensors/'+room
 | 
			
		||||
 | 
			
		||||
    #print(topic)
 | 
			
		||||
 | 
			
		||||
    client.publish(topic + "/time", "" + str(time))
 | 
			
		||||
    client.publish(topic + "/actualTemperature", "" + str(actualTemperature))
 | 
			
		||||
    client.publish(topic + "/setPointTemperature", "" + str(setPointTemperature))
 | 
			
		||||
    client.publish(topic + "/humidity", "" + str(humidity))
 | 
			
		||||
    client.publish(topic + "/time", "" + str(device.lastStatusUpdate))
 | 
			
		||||
    client.publish(topic + "/actualTemperature", "" + str(device.actualTemperature))
 | 
			
		||||
    client.publish(topic + "/setPointTemperature", "" + str(device.setPointTemperature))
 | 
			
		||||
    client.publish(topic + "/humidity", "" + str(device.humidity))
 | 
			
		||||
    client.publish(topic + "/availability", "ON")
 | 
			
		||||
 | 
			
		||||
    print({"Room":room, "Device Name":device.label, "Last Status Update" : device.lastStatusUpdate, "Actual Temperature":device.actualTemperature, "Set Point Temperature":device.setPointTemperature,"Humidity":device.humidity})
 | 
			
		||||
    print({"Room": room, "Device Name": device.label, "Last Status Update": device.lastStatusUpdate,
 | 
			
		||||
           "Actual Temperature": device.actualTemperature, "Set Point Temperature": device.setPointTemperature,
 | 
			
		||||
           "Humidity": device.humidity})
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
def heating_profile(group):
 | 
			
		||||
    #heatingGroup=homematicip.group.HeatingGroup(group)
 | 
			
		||||
    #heatingGroup.__init__(home)
 | 
			
		||||
    # heatingGroup=homematicip.group.HeatingGroup(group)
 | 
			
		||||
    # heatingGroup.__init__(home)
 | 
			
		||||
    print("Heating Profiles")
 | 
			
		||||
    print("Group Label: " + group.label)
 | 
			
		||||
    print("Group Type: " + group.groupType)
 | 
			
		||||
@ -77,31 +56,27 @@ def heating_profile(group):
 | 
			
		||||
    for profile in group.profiles:
 | 
			
		||||
        if profile.name != "":
 | 
			
		||||
            print("Group Profile Name: " + profile.name)
 | 
			
		||||
            #print("Profile ID: " + profile.id)
 | 
			
		||||
            #print("Profile Index: " + profile.index)
 | 
			
		||||
            # print("Profile ID: " + profile.id)
 | 
			
		||||
            # print("Profile Index: " + profile.index)
 | 
			
		||||
            if profile.name == "Home Office":
 | 
			
		||||
                print("Profile Index" + profile.index)
 | 
			
		||||
                print(group)
 | 
			
		||||
                heatingGroup=HeatingGroup(group)
 | 
			
		||||
#                print(heatingGroup.profiles[0])
 | 
			
		||||
                group.set_active_profile(profile.index)
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
def main():
 | 
			
		||||
    global home
 | 
			
		||||
    home.get_current_state()
 | 
			
		||||
    for group in home.groups:
 | 
			
		||||
#        if group.groupType=="HEATING":
 | 
			
		||||
#            heating_profile(group)
 | 
			
		||||
        if group.groupType=="META":
 | 
			
		||||
        #        if group.groupType=="HEATING":
 | 
			
		||||
        #            heating_profile(group)
 | 
			
		||||
        if group.groupType == "META":
 | 
			
		||||
            for device in group.devices:
 | 
			
		||||
                if isinstance(device,ShutterContact):
 | 
			
		||||
                    write_shutter(group.label,device)
 | 
			
		||||
                elif isinstance(device,HeatingThermostat):
 | 
			
		||||
                    write_heatingthermostat(group.label,device)
 | 
			
		||||
                elif isinstance(device,PlugableSwitchMeasuring):
 | 
			
		||||
                    write_plugableswitchmeasuring(group.label,device)
 | 
			
		||||
                elif isinstance(device,WallMountedThermostatPro):
 | 
			
		||||
                    write_wallmountedthermostatpro(group.label,device)
 | 
			
		||||
                if isinstance(device, ShutterContact):
 | 
			
		||||
                    write_shutter(group.label, device)
 | 
			
		||||
                elif isinstance(device, WallMountedThermostatPro):
 | 
			
		||||
                    write_wallmountedthermostatpro(group.label, device)
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
if __name__ == "__main__":
 | 
			
		||||
    main()
 | 
			
		||||
 | 
			
		||||
		Loading…
	
		Reference in New Issue
	
	Block a user