Skip to content
This repository has been archived by the owner on Feb 16, 2024. It is now read-only.

Commit

Permalink
Merge pull request #137 from DewGew/beta
Browse files Browse the repository at this point in the history
Merge beta
  • Loading branch information
DewGew authored Mar 16, 2020
2 parents 7a20415 + 2f7cb0d commit 51bd656
Show file tree
Hide file tree
Showing 9 changed files with 435 additions and 162 deletions.
3 changes: 2 additions & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -34,7 +34,8 @@ Just open a terminal window and execute this command. Then set up [Actions on Go
bash <(curl -s https://raw.githubusercontent.com/DewGew/dzga-installer/master/install.sh)
```

### [Installation and configuration](https://github.com/DewGew/Domoticz-Google-Assistant/wiki)
### [Installation and configuration wiki](https://github.com/DewGew/Domoticz-Google-Assistant/wiki)
### [Docker install](https://github.com/DewGew/Domoticz-Google-Assistant/wiki/DZGA-with-Docker)
<!--stackedit_data:
eyJoaXN0b3J5IjpbNjY2NTI2ODUyXX0=
-->
2 changes: 2 additions & 0 deletions config/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
### Put config.yaml and smart-home-key.json file here
During first install config.yaml is created
129 changes: 78 additions & 51 deletions const.py
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
# -*- coding: utf-8 -*-

"""Constants for Google Assistant."""
VERSION = '1.6.3'
VERSION = '1.6.5'
PUBLIC_URL = 'https://[your public url]'
CONFIGFILE = 'config/config.yaml'
LOGFILE = 'dzga.log'
Expand All @@ -21,103 +21,130 @@
DOMOTICZ_GET_SCENES_URL = '/json.htm?type=scenes'
DOMOTICZ_GET_SETTINGS_URL = '/json.htm?type=settings'
DOMOTICZ_GET_CAMERAS_URL = '/json.htm?type=cameras'
DOMOTICZ_GET_VERSION = '/json.htm?type=command&param=getversion'

# https://developers.google.com/actions/smarthome/guides/
PREFIX_TYPES = 'action.devices.types.'
TYPE_AC_UNIT = PREFIX_TYPES + 'AC_UNIT'
TYPE_BATHTUB = PREFIX_TYPES + 'BATHTUB'
TYPE_BLINDS = PREFIX_TYPES + 'BLINDS'
TYPE_CAMERA = PREFIX_TYPES + 'CAMERA'
TYPE_COFFEE = PREFIX_TYPES + 'COFFEE_MAKER'
TYPE_COOKTOP = PREFIX_TYPES + 'COOKTOP'
TYPE_CURTAIN = PREFIX_TYPES + 'CURTAIN'
TYPE_DISHWASHER = PREFIX_TYPES + 'DISHWASHER'
TYPE_DOOR = PREFIX_TYPES + 'DOOR'
TYPE_DRYER = PREFIX_TYPES + 'DRYER'
TYPE_FAN = PREFIX_TYPES + 'FAN'
TYPE_GARAGE = PREFIX_TYPES + 'GARAGE'
TYPE_GATE = PREFIX_TYPES + 'GATE'
TYPE_HEATER = PREFIX_TYPES + 'HEATER'
TYPE_KETTLE = PREFIX_TYPES + 'KETTLE'
TYPE_LIGHT = PREFIX_TYPES + 'LIGHT'
TYPE_LOCK = PREFIX_TYPES + 'LOCK'
TYPE_MEDIA = PREFIX_TYPES + 'TV'
TYPE_MICRO = PREFIX_TYPES + 'MICROWAVE'
TYPE_MOWER = PREFIX_TYPES + 'MOWER'
TYPE_OUTLET = PREFIX_TYPES + 'OUTLET'
TYPE_OVEN = PREFIX_TYPES + 'OVEN'
TYPE_RADIATOR = PREFIX_TYPES + 'RADIATOR'
TYPE_SCENE = PREFIX_TYPES + 'SCENE'
TYPE_SCREEN = PREFIX_TYPES + 'SCREEN'
TYPE_SECURITY = PREFIX_TYPES + 'SECURITYSYSTEM'
TYPE_SENSOR = PREFIX_TYPES + 'SENSOR'
TYPE_SMOKE_DETECTOR = PREFIX_TYPES + 'SMOKE_DETECTOR'
TYPE_SPEAKER = PREFIX_TYPES + 'SPEAKER'
TYPE_SPRINKLER = PREFIX_TYPES + 'SPRINKLER'
TYPE_SWITCH = PREFIX_TYPES + 'SWITCH'
TYPE_THERMOSTAT = PREFIX_TYPES + 'THERMOSTAT'
TYPE_MEDIA = PREFIX_TYPES + 'TV'
TYPE_VACUUM = PREFIX_TYPES + 'VACUUM'
TYPE_VALVE = PREFIX_TYPES + 'VALVE'
TYPE_WATERHEATER = PREFIX_TYPES + 'WATERHEATER'
TYPE_WASHER = PREFIX_TYPES + 'WASHER'
TYPE_WATERHEATER = PREFIX_TYPES + 'WATERHEATER'
TYPE_WINDOW = PREFIX_TYPES + 'WINDOW'

# Error codes used for SmartHomeError class
# https://developers.google.com/actions/smarthome/create-app#error_responses
ERR_DEVICE_OFFLINE = "deviceOffline"
ERR_ALREADY_IN_STATE = 'alreadyInState'
ERR_CHALLENGE_NEEDED = 'challengeNeeded'
ERR_DEVICE_NOT_FOUND = "deviceNotFound"
ERR_VALUE_OUT_OF_RANGE = "valueOutOfRange"
ERR_DEVICE_OFFLINE = "deviceOffline"
ERR_FUNCTION_NOT_SUPPORTED = 'functionNotSupported'
ERR_NOT_SUPPORTED = "notSupported"
ERR_PROTOCOL_ERROR = 'protocolError'
ERR_UNKNOWN_ERROR = 'unknownError'
ERR_FUNCTION_NOT_SUPPORTED = 'functionNotSupported'
ERR_CHALLENGE_NEEDED = 'challengeNeeded'
ERR_VALUE_OUT_OF_RANGE = "valueOutOfRange"
ERR_WRONG_PIN = 'pinIncorrect'
ERR_ALREADY_IN_STATE = 'alreadyInState'

groupDOMAIN = 'Group'
sceneDOMAIN = 'Scene'
lightDOMAIN = 'Light'
switchDOMAIN = 'Switch'
outletDOMAIN = 'Outlet'
blindsDOMAIN = 'Blinds'
screenDOMAIN = 'Screen'
climateDOMAIN = 'Thermostat'
tempDOMAIN = 'Temp'
lockDOMAIN = 'DoorLock'
invlockDOMAIN = 'DoorLockInverted'
colorDOMAIN = 'ColorSwitch'
mediaDOMAIN = 'Media'
securityDOMAIN = 'Security'
pushDOMAIN = 'Push'
speakerDOMAIN = 'Speaker'
cameraDOMAIN = 'Camera'
sensorDOMAIN = 'Sensor'
doorDOMAIN = 'DoorSensor'
selectorDOMAIN = 'Selector'
fanDOMAIN = 'Fan'
hiddenDOMAIN = 'Hidden'
domains = {
'blinds': 'Blinds',
'camera': 'Camera',
'climate': 'Thermostat',
'coffe': 'Coffemaker',
'color': 'ColorSwitch',
'cooktop': 'Cooktop',
'door': 'DoorSensor',
'fan': 'Fan',
'group': 'Group',
'heater': 'Heater',
'hidden': 'Hidden',
'invlock': 'DoorLockInverted',
'kettle': 'Kettle',
'light': 'Light',
'lock': 'DoorLock',
'media': 'Media',
'merged': 'Merged(Idx:',
'microwave': 'Microwave',
'outlet': 'Outlet',
'oven': 'Oven',
'push': 'Push',
'radiator': 'Radiator',
'scene': 'Scene',
'screen': 'Screen',
'security': 'Security',
'selector': 'Selector',
'sensor': 'Sensor',
'smoke': 'SmokeDetektor',
'speaker': 'Speaker',
'switch': 'Switch',
'temp': 'Temp',
}

ATTRS_BRIGHTNESS = 1
ATTRS_THERMSTATSETPOINT = 1
ATTRS_COLOR = 2
ATTRS_COLOR_TEMP = 3
ATTRS_PERCENTAGE = 1
ATTRS_FANSPEED = 1

DOMOTICZ_TO_GOOGLE_TYPES = {
groupDOMAIN: TYPE_SWITCH,
sceneDOMAIN: TYPE_SCENE,
lightDOMAIN: TYPE_LIGHT,
switchDOMAIN: TYPE_SWITCH,
outletDOMAIN: TYPE_OUTLET,
blindsDOMAIN: TYPE_BLINDS,
screenDOMAIN: TYPE_SCREEN,
climateDOMAIN: TYPE_THERMOSTAT,
tempDOMAIN: TYPE_THERMOSTAT,
lockDOMAIN: TYPE_LOCK,
invlockDOMAIN: TYPE_LOCK,
colorDOMAIN: TYPE_LIGHT,
mediaDOMAIN: TYPE_MEDIA,
securityDOMAIN: TYPE_SECURITY,
pushDOMAIN: TYPE_SWITCH,
speakerDOMAIN: TYPE_SPEAKER,
cameraDOMAIN: TYPE_CAMERA,
sensorDOMAIN: TYPE_SENSOR,
doorDOMAIN: TYPE_DOOR,
selectorDOMAIN: TYPE_SWITCH,
fanDOMAIN: TYPE_FAN,
domains['blinds']: TYPE_BLINDS,
domains['camera']: TYPE_CAMERA,
domains['climate']: TYPE_THERMOSTAT,
domains['coffe']: TYPE_COFFEE,
domains['color']: TYPE_LIGHT,
domains['door']: TYPE_DOOR,
domains['fan']: TYPE_FAN,
domains['group']: TYPE_SWITCH,
domains['heater']: TYPE_HEATER,
domains['invlock']: TYPE_LOCK,
domains['kettle']: TYPE_KETTLE,
domains['light']: TYPE_LIGHT,
domains['lock']: TYPE_LOCK,
domains['media']: TYPE_MEDIA,
domains['microwave']: TYPE_MICRO,
domains['outlet']: TYPE_OUTLET,
domains['oven']: TYPE_OVEN,
domains['push']: TYPE_SWITCH,
domains['scene']: TYPE_SCENE,
domains['screen']: TYPE_SCREEN,
domains['security']: TYPE_SECURITY,
domains['selector']: TYPE_SWITCH,
domains['sensor']: TYPE_SENSOR,
domains['smoke']: TYPE_SMOKE_DETECTOR,
domains['speaker']: TYPE_SPEAKER,
domains['switch']: TYPE_SWITCH,
domains['temp']: TYPE_THERMOSTAT,
}

TEMPLATE = """
Expand Down
3 changes: 1 addition & 2 deletions docker-compose.yaml
Original file line number Diff line number Diff line change
@@ -1,8 +1,7 @@
version: '3'
services:
dz-googleassistant:
build: '.'
image: domoticz-google-assistant
image: dewgew/domoticz-google-assistant
container_name: domoticz-google-assistant
environment:
- PUID=1010
Expand Down
5 changes: 4 additions & 1 deletion helpers.py
Original file line number Diff line number Diff line change
Expand Up @@ -59,7 +59,7 @@ def saveFile(filename, text):
except FileNotFoundError as err:
print('No config.yaml found...')
print('Loading default configuration...')
content = readFile(os.path.join(FILE_DIR, 'config/default_config'))
content = readFile(os.path.join(FILE_DIR, 'systemd/default_config'))
print('Create config.yaml...')
saveFile(CONFIGFILE, content)
with open(os.path.join(FILE_DIR, CONFIGFILE), 'r') as conf:
Expand Down Expand Up @@ -208,6 +208,9 @@ def __init__(self):
self.actual_temp_idx = None
self.hide = False
self.modes_idx = None
self.lastupdate = ''
self.selectorLevelName = ''
self.merge_thermo_idx = None


def uptime():
Expand Down
2 changes: 1 addition & 1 deletion login.html
Original file line number Diff line number Diff line change
Expand Up @@ -187,7 +187,7 @@ <h2 class="label">Domoticz Google Assistant</h2>
<div class="hr"></div>
<div class="foot-lnk">
<a href="https://github.com/DewGew/Domoticz-Google-Assistant">Google Assistant for Domoticz on Github</a>
<p class="label">Version 1.6.3</p>
<p class="label">Version 1.6.5</p>
</div>
</div>
</form>
Expand Down
Loading

0 comments on commit 51bd656

Please sign in to comment.