updating configuration

This commit is contained in:
Your Name
2019-06-21 20:03:30 +03:00
parent 3d01d1537b
commit 55bbcc91c9
8 changed files with 90 additions and 17 deletions
+2 -1
View File
@@ -6,6 +6,7 @@ class Climate(hass.Hass):
ir_topic = "home/remote/rm2/code/set"
split_state = "None"
timer = None
fan_speed = "4"
def initialize(self):
self.listen_event_handle_list = []
@@ -57,7 +58,7 @@ class Climate(hass.Hass):
code = ""
self.log('mode: {}'.format(args['mode']))
remote = Remote()
code = remote.set_mode(args['mode'], "2", args['temp'], args['state'])
code = remote.set_mode(args['mode'], self.fan_speed, args['temp'], args['state'])
code = code.decode("utf-8")
self.call_service("mqtt/publish", topic = self.ir_topic, payload = code)
@@ -1,4 +1,5 @@
import appdaemon.plugins.hass.hassapi as hass
import os
#
# App to send notification when doorbell is ringing
@@ -36,14 +37,15 @@ class Doorbell(hass.Hass):
self.log("doorbell call")
self.call_service("xiaomi_aqara/play_ringtone", gw_mac=self.gw_mac, ringtone_id=self.ringtone, ringtone_vol=100)
self.notify("Звонок в дверь!!!", name = self.args['notify'])
# for x in range(3):
# self.send_image()
self.send_video()
result = self.send_video()
def send_video(self):
file = '/config/www/doorbell_video.mp4'
if os.path.exists(file):
os.remove(file)
self.call_service("stream/record", stream_source=self.args['rtsp'], filename=file, duration=10)
self.timer = self.run_in(self.run_in_send_video, 12, file=file)
self.timer = self.run_in(self.run_in_send_video, 20, file=file)
def run_in_send_video(self, args):
extra_data = {'video': {'file': args['file'], 'caption': 'Видео звонившего.'}}
@@ -53,4 +55,4 @@ class Doorbell(hass.Hass):
def send_image(self):
self.call_service("camera/snapshot", entity_id=self.args['camera'], filename="/config/www/camera_image.jpg")
extra_data = {'photo': {'file':'/config/www/camera_image.jpg', 'capture': 'Фото звонившего.'}}
self.notify("Видео звонившего", name = self.args['notify'], data=extra_data)
self.notify("Фото звонившего", name = self.args['notify'], data=extra_data)
@@ -0,0 +1,51 @@
import appdaemon.plugins.hass.hassapi as hass
import globals
#
# Управление сценариями из алисы
#
# Args:
#
# None
#
# Release Notes
#
# Version 1.0:
# Initial Version
class AliceScenes(hass.Hass):
listen_event_handle_list = []
def initialize(self):
if not globals.check_args(self, ['alice_prefix']):
return
devices = self.get_state()
for device in devices:
if not device.startswith(self.args['alice_prefix']):
continue
self.log("Listening for changes: {}".format(device))
self.listen_event_handle_list.append(self.listen_state(self.alice_scene_trigger, device))
def alice_scene_trigger(self, entity, attribute, old, new, kwargs):
if new != 'on':
return
self.turn_off(entity)
entity_name = entity.replace(self.args['alice_prefix'], "")
self.log('Alice triggered scene: {}'.format(entity_name))
if (entity_name == "turn_off_light"):
self.turn_off_light()
if (entity_name == "night_mode"):
self.night_mode()
def terminate(self):
if self.listen_event_handle_list != None:
for listen_event_handle in self.listen_event_handle_list:
self.cancel_listen_event(listen_event_handle)
def turn_off_light(self):
self.turn_off('group.mainroom_light')
def night_mode(self):
self.turn_off('switch.plug_158d0001104a0c') #tv
self.turn_off('group.all_lights')
self.call_service("cover/close_cover", entity_id = 'cover.curtain_158d0002b0c46a')
@@ -0,0 +1,6 @@
alice_scenes:
module: alice_scenes
class: AliceScenes
alice_prefix: input_boolean.alice_
global_dependencies:
- globals
@@ -26,7 +26,7 @@ class ToiletPresence(hass.Hass):
if 'sensor' not in self.args:
self.error("Please provide sensor in config!")
return
self.set_value("off")
self.set_value("off", 0)
self.listen_state(self.distance_changed, self.args['sensor'])
def distance_changed(self, entity, attribute, old, new, kwargs):
@@ -37,22 +37,23 @@ class ToiletPresence(hass.Hass):
self.timers.append(self.run_in(self.run_in_presense_off, self.presence_timeout))
self.log('re-setting timer for {}s.'.format(self.presence_timeout))
if (self.state != "on"):
self.set_value("on")
self.set_value("on", distance)
def run_in_presense_off(self, args):
self.set_value("off")
self.set_value("off", 0)
def timers_off(self):
for timer in self.timers:
self.cancel_timer(timer)
def set_value(self, state):
def set_value(self, state, distance):
self.log('Toilet presense: {}'.format(state))
self.state = state
entity_id = "sensor.toilet_presence"
attributes = {}
attributes['distance'] = distance
attributes['description'] = 'Created and updated from appdaemon ({})'.format(__name__)
self.set_state(entity_id, state = state, attributes = attributes)
+8 -4
View File
@@ -6,6 +6,10 @@ filter:
- light
- vacuum
- cover
include_entities:
- input_boolean.alice_night_mode
- input_boolean.alice_turn_off_light
exclude_entities:
- switch.plug_158d00020f3a29
- switch.plug_158d00026ea017
@@ -14,10 +18,10 @@ filter:
- switch.domofon_mode
- switch.domofon_open
- light.gateway_light_f0b429aa1463
# include_entities:
# - media_player.tv
# entity_config:
# input_boolean.alice_night_mode:
# room: SCENES
# switch.kitchen:
# name: CUSTOM_NAME_FOR_YANDEX_SMART_HOME
# light.living_room:
# room: LIVING_ROOM
@@ -0,0 +1,8 @@
alice_night_mode:
name: Спокойной ночи
initial: off
alice_turn_off_light:
name: Выключи свет
initial: off
Submodule hass/settings/custom_components/yandex_smart_home updated: 19b012b1bb...d9ef78dfc5