updating configuration
This commit is contained in:
@@ -2,10 +2,6 @@
|
|||||||
|
|
||||||
ARGS = `arg="$(filter-out $@,$(MAKECMDGOALS))" && echo $${arg:-${1}}`
|
ARGS = `arg="$(filter-out $@,$(MAKECMDGOALS))" && echo $${arg:-${1}}`
|
||||||
|
|
||||||
lint:
|
|
||||||
@echo "Checking python syntax with pyflakes"
|
|
||||||
@pyflakes appdaemon
|
|
||||||
|
|
||||||
update_secrets_sample:
|
update_secrets_sample:
|
||||||
@echo "Masking passwords..."
|
@echo "Masking passwords..."
|
||||||
#hass
|
#hass
|
||||||
@@ -27,14 +23,17 @@ update_secrets_sample:
|
|||||||
@sed -i "s/modbus_port:.*/modbus_port: 9977/g" hass/settings/secrets.yaml.sample #must be valid
|
@sed -i "s/modbus_port:.*/modbus_port: 9977/g" hass/settings/secrets.yaml.sample #must be valid
|
||||||
@sed -i "s/xiaomi_remote_token:.*/xiaomi_remote_token: xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx/g" hass/settings/secrets.yaml.sample #must be valid
|
@sed -i "s/xiaomi_remote_token:.*/xiaomi_remote_token: xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx/g" hass/settings/secrets.yaml.sample #must be valid
|
||||||
|
|
||||||
|
|
||||||
@echo "Masking env files..."
|
@echo "Masking env files..."
|
||||||
@find . -name *.env | xargs -I{} cp {} {}.sample
|
@find . -name *.env | xargs -I{} cp {} {}.sample
|
||||||
@find . -name *.env.sample | xargs -I{} sed -i "s/\=.*/\=xxxxxxxxx/g" {}
|
@find . -name *.env.sample | xargs -I{} sed -i "s/\=.*/\=xxxxxxxxx/g" {}
|
||||||
|
|
||||||
@cat zigbee2mqtt/settings/configuration.yaml | sed "s/\:.*/\: xxxxxxxxx/g" > zigbee2mqtt/settings/configuration.yaml.sample #mask passwords
|
@cat zigbee2mqtt/settings/configuration.yaml | sed "s/\:.*/\: xxxxxxxxx/g" > zigbee2mqtt/settings/configuration.yaml.sample #mask passwords
|
||||||
|
|
||||||
commit: update_secrets_sample
|
copy_secrets:
|
||||||
|
@echo "Copying secrets"
|
||||||
|
@cp hass/settings/secrets.yaml secrets/hass/settings/secrets.yaml
|
||||||
|
|
||||||
|
commit: copy_secrets update_secrets_sample
|
||||||
git add .
|
git add .
|
||||||
git commit -m "$(call ARGS,\"updating configuration\")"
|
git commit -m "$(call ARGS,\"updating configuration\")"
|
||||||
git push
|
git push
|
||||||
|
|||||||
@@ -38,10 +38,6 @@ class AliceScenes(hass.Hass):
|
|||||||
self.night_mode()
|
self.night_mode()
|
||||||
if (entity_name == "away_mode"):
|
if (entity_name == "away_mode"):
|
||||||
self.away_mode()
|
self.away_mode()
|
||||||
# if (entity_name == "turn_on_coffeemachine"):
|
|
||||||
# self.turn_on_coffeemachine()
|
|
||||||
# if (entity_name == "make_coffee"):
|
|
||||||
# self.make_coffee()
|
|
||||||
|
|
||||||
def terminate(self):
|
def terminate(self):
|
||||||
if self.listen_event_handle_list != None:
|
if self.listen_event_handle_list != None:
|
||||||
@@ -54,15 +50,12 @@ class AliceScenes(hass.Hass):
|
|||||||
def night_mode(self):
|
def night_mode(self):
|
||||||
self.turn_off('switch.plug_158d0001104a0c') #tv
|
self.turn_off('switch.plug_158d0001104a0c') #tv
|
||||||
self.turn_off('group.all_lights')
|
self.turn_off('group.all_lights')
|
||||||
|
self.turn_on('light.wled', brightness=5)
|
||||||
self.call_service("cover/close_cover", entity_id = 'cover.curtain_158d0002b0c46a')
|
self.call_service("cover/close_cover", entity_id = 'cover.curtain_158d0002b0c46a')
|
||||||
|
|
||||||
def away_mode(self):
|
def away_mode(self):
|
||||||
self.call_service("alarm_control_panel/alarm_arm_away", entity_id = self.args['ha_panel'])
|
self.call_service("alarm_control_panel/alarm_arm_away", entity_id = self.args['ha_panel'])
|
||||||
|
|
||||||
def turn_on_coffeemachine(self):
|
|
||||||
self.log('Turn on coffeemachine')
|
|
||||||
self.call_service("mqtt/publish", topic = 'home/coffee/coffee/power/set', payload = 'on')
|
|
||||||
|
|
||||||
def make_coffee(self):
|
def make_coffee(self):
|
||||||
self.log('Make coffee')
|
self.log('Make coffee')
|
||||||
self.call_service("mqtt/publish", topic = 'home/coffee/coffee/power/set', payload = 'on')
|
self.call_service("mqtt/publish", topic = 'home/coffee/coffee/power/set', payload = 'on')
|
||||||
|
|||||||
@@ -1,73 +1,65 @@
|
|||||||
import appdaemon.plugins.hass.hassapi as hass
|
import appdaemon.plugins.hass.hassapi as hass
|
||||||
|
import requests
|
||||||
|
import json
|
||||||
|
|
||||||
class TelegramTest(hass.Hass):
|
class TelegramTest(hass.Hass):
|
||||||
def initialize(self):
|
def initialize(self):
|
||||||
"""Listen to Telegram Bot events of interest."""
|
"""Listen to Telegram Bot events of interest."""
|
||||||
self.listen_event(self.receive_telegram_text, 'telegram_text')
|
self.listen_event(self.receive_telegram_text, 'telegram_text')
|
||||||
self.listen_event(self.receive_telegram_callback, 'telegram_callback')
|
|
||||||
|
|
||||||
def receive_telegram_text(self, event_id, payload_event, *args):
|
def receive_telegram_text(self, event_id, payload_event, *args):
|
||||||
"""Text repeater."""
|
"""Text repeater."""
|
||||||
assert event_id == 'telegram_text'
|
assert event_id == 'telegram_text'
|
||||||
user_id = payload_event['user_id']
|
user_id = payload_event['user_id']
|
||||||
msg = 'You said: ``` %s ```' % payload_event['text']
|
msg = payload_event['text']
|
||||||
keyboard = [[("Edit message", "/edit_msg"),
|
self.log('got msg: {}'.format(msg))
|
||||||
("Don't", "/do_nothing")],
|
if msg.startswith('https://www.youtube.com/watch') or msg.startswith('https://youtube.com/watch'):
|
||||||
[("Remove this button", "/remove button")]]
|
self.sendToScreen(payload_event['text'])
|
||||||
self.call_service('telegram_bot/send_message',
|
|
||||||
title='*Dumb automation*',
|
|
||||||
target=user_id,
|
|
||||||
message=msg,
|
|
||||||
disable_notification=True,
|
|
||||||
inline_keyboard=keyboard)
|
|
||||||
|
|
||||||
def receive_telegram_callback(self, event_id, payload_event, *args):
|
def sendToScreen(self, video_url):
|
||||||
"""Event listener for Telegram callback queries."""
|
auth_data = {
|
||||||
assert event_id == 'telegram_callback'
|
'login': self.args.get('alice_login', ''),
|
||||||
data_callback = payload_event['data']
|
'passwd': self.args.get('alice_pwd', '')
|
||||||
callback_id = payload_event['id']
|
}
|
||||||
chat_id = payload_event['chat_id']
|
# self.log('auth_data: {}'.format(auth_data))
|
||||||
self.log(payload_event)
|
|
||||||
# keyboard = ["Edit message:/edit_msg, Don't:/do_nothing",
|
|
||||||
# "Remove this button:/remove button"]
|
|
||||||
keyboard = [[("Edit message", "/edit_msg"),
|
|
||||||
("Don't", "/do_nothing")],
|
|
||||||
[("Remove this button", "/remove button")]]
|
|
||||||
|
|
||||||
if data_callback == '/edit_msg': # Message editor:
|
s = requests.Session()
|
||||||
# Answer callback query
|
s.get("https://passport.yandex.ru/")
|
||||||
self.call_service('telegram_bot/answer_callback_query',
|
s.post("https://passport.yandex.ru/passport?mode=auth&retpath=https://yandex.ru", data=auth_data)
|
||||||
message='Editing the message!',
|
|
||||||
callback_query_id=callback_id,
|
|
||||||
show_alert=True)
|
|
||||||
|
|
||||||
# Edit the message origin of the callback query
|
Session_id = s.cookies["Session_id"]
|
||||||
msg_id = payload_event['message']['message_id']
|
self.log('session: {}'.format(Session_id))
|
||||||
user = payload_event['from_first']
|
|
||||||
title = '*Message edit*'
|
|
||||||
msg = 'Callback received from %s. Message id: %s. Data: ``` %s ```'
|
|
||||||
self.call_service('telegram_bot/edit_message',
|
|
||||||
chat_id=chat_id,
|
|
||||||
message_id=msg_id,
|
|
||||||
title=title,
|
|
||||||
message=msg % (user, msg_id, data_callback),
|
|
||||||
inline_keyboard=keyboard)
|
|
||||||
|
|
||||||
elif data_callback == '/remove button': # Keyboard editor:
|
# Getting x-csrf-token
|
||||||
# Answer callback query
|
token = s.get('https://frontend.vh.yandex.ru/csrf_token').text
|
||||||
self.call_service('telegram_bot/answer_callback_query',
|
self.log('token: {}'.format(token))
|
||||||
message='Callback received for editing the '
|
|
||||||
'inline keyboard!',
|
|
||||||
callback_query_id=callback_id)
|
|
||||||
|
|
||||||
# Edit the keyboard
|
# Detting devices info TODO: device selection here
|
||||||
new_keyboard = keyboard[:1]
|
devices_online_stats = s.get("https://quasar.yandex.ru/devices_online_stats").text
|
||||||
self.call_service('telegram_bot/edit_replymarkup',
|
devices = json.loads(devices_online_stats)["items"]
|
||||||
chat_id=chat_id,
|
self.log('devices: {}'.format(devices))
|
||||||
message_id='last',
|
if not devices[0].get('screen_present', False):
|
||||||
inline_keyboard=new_keyboard)
|
self.log('Device has no screen present.')
|
||||||
|
return
|
||||||
|
|
||||||
elif data_callback == '/do_nothing': # Only Answer to callback query
|
# Preparing request
|
||||||
self.call_service('telegram_bot/answer_callback_query',
|
headers = {
|
||||||
message='OK, you said no!',
|
"x-csrf-token": token,
|
||||||
callback_query_id=callback_id)
|
}
|
||||||
|
|
||||||
|
data = {
|
||||||
|
"msg": {
|
||||||
|
"provider_item_id": video_url
|
||||||
|
},
|
||||||
|
"device": devices[0]["id"]
|
||||||
|
}
|
||||||
|
|
||||||
|
if "https://www.youtube" in video_url:
|
||||||
|
data["msg"]["player_id"] = "youtube"
|
||||||
|
|
||||||
|
self.log('sending data: {}'.format(data))
|
||||||
|
|
||||||
|
# Sending command with video to device
|
||||||
|
res = s.post("https://yandex.ru/video/station", data=json.dumps(data), headers=headers)
|
||||||
|
|
||||||
|
return res.text
|
||||||
@@ -1,3 +1,5 @@
|
|||||||
telegram_test:
|
telegram_test:
|
||||||
module: telegram_test
|
module: telegram_test
|
||||||
class: TelegramTest
|
class: TelegramTest
|
||||||
|
alice_login: !secret alice_login
|
||||||
|
alice_pwd: !secret alice_pwd
|
||||||
@@ -25,11 +25,15 @@ class Curtain(hass.Hass):
|
|||||||
|
|
||||||
def on_timer_tick(self, kwargs):
|
def on_timer_tick(self, kwargs):
|
||||||
self.log('on_timer')
|
self.log('on_timer')
|
||||||
|
if 'constraint' in self.args and not self.constrain_input_boolean(self.args['constraint']):
|
||||||
|
return
|
||||||
if 'entity' in self.args:
|
if 'entity' in self.args:
|
||||||
self.call_service("cover/open_cover", entity_id = self.args['entity'])
|
self.call_service("cover/open_cover", entity_id = self.args['entity'])
|
||||||
|
|
||||||
def off_timer_tick(self, kwargs):
|
def off_timer_tick(self, kwargs):
|
||||||
self.log('off_timer')
|
self.log('off_timer')
|
||||||
|
if 'constraint' in self.args and not self.constrain_input_boolean(self.args['constraint']):
|
||||||
|
return
|
||||||
if 'entity' in self.args:
|
if 'entity' in self.args:
|
||||||
self.call_service("cover/close_cover", entity_id = self.args['entity'])
|
self.call_service("cover/close_cover", entity_id = self.args['entity'])
|
||||||
|
|
||||||
|
|||||||
@@ -1,43 +1,17 @@
|
|||||||
led_timer:
|
# led_timer:
|
||||||
module: entity_timer
|
|
||||||
class: EntityTimer
|
|
||||||
on_time: "09:00:00"
|
|
||||||
off_time: "22:00:00"
|
|
||||||
entity: switch.ledstrip
|
|
||||||
global_dependencies:
|
|
||||||
- globals
|
|
||||||
|
|
||||||
# led_window_timer:
|
|
||||||
# module: entity_timer
|
# module: entity_timer
|
||||||
# class: EntityTimer
|
# class: EntityTimer
|
||||||
# on_time: "09:00:00"
|
# on_time: "09:00:00"
|
||||||
# off_time: "23:00:00"
|
# off_time: "22:00:00"
|
||||||
# entity: switch.wifi_socket
|
# entity: switch.ledstrip
|
||||||
# global_dependencies:
|
# global_dependencies:
|
||||||
# - globals
|
# - globals
|
||||||
|
|
||||||
xmas_tree_timer:
|
# fitolamp_timer:
|
||||||
module: entity_timer
|
|
||||||
class: EntityTimer
|
|
||||||
on_time: "09:00:00"
|
|
||||||
off_time: "23:00:00"
|
|
||||||
entity: switch.broadlink_switch
|
|
||||||
global_dependencies:
|
|
||||||
- globals
|
|
||||||
|
|
||||||
fitolamp_timer:
|
|
||||||
module: entity_timer
|
|
||||||
class: EntityTimer
|
|
||||||
on_time: "00:00:00"
|
|
||||||
off_time: "03:00:00"
|
|
||||||
entity: switch.plug_158d0002924779
|
|
||||||
global_dependencies:
|
|
||||||
- globals
|
|
||||||
# tv_timer:
|
|
||||||
# module: entity_timer
|
# module: entity_timer
|
||||||
# class: EntityTimer
|
# class: EntityTimer
|
||||||
# on_time: "09:00:00"
|
# on_time: "00:00:00"
|
||||||
# off_time: "22:30:00"
|
# off_time: "03:00:00"
|
||||||
# entity: switch.plug_158d0001104a0c
|
# entity: switch.plug_158d0002924779
|
||||||
# global_dependencies:
|
# global_dependencies:
|
||||||
# - globals
|
# - globals
|
||||||
@@ -0,0 +1,113 @@
|
|||||||
|
import appdaemon.plugins.hass.hassapi as hass
|
||||||
|
import datetime
|
||||||
|
import random
|
||||||
|
#
|
||||||
|
# Entity timer
|
||||||
|
# Turn on and off this entities
|
||||||
|
#
|
||||||
|
# Args:
|
||||||
|
#
|
||||||
|
# None
|
||||||
|
#
|
||||||
|
# Release Notes
|
||||||
|
#
|
||||||
|
# Version 1.0:
|
||||||
|
# Initial Version
|
||||||
|
|
||||||
|
class XmasTreeTimer(hass.Hass):
|
||||||
|
effects = []
|
||||||
|
def initialize(self):
|
||||||
|
self.effects = ['[FX=00] Solid',
|
||||||
|
'[FX=01] Blink',
|
||||||
|
'[FX=02] Breathe',
|
||||||
|
'[FX=03] Wipe',
|
||||||
|
'[FX=04] Wipe Random',
|
||||||
|
'[FX=05] Random Colors',
|
||||||
|
'[FX=06] Sweep',
|
||||||
|
'[FX=07] Dynamic',
|
||||||
|
'[FX=08] Colorloop',
|
||||||
|
'[FX=09] Rainbow',
|
||||||
|
'[FX=10] Scan',
|
||||||
|
'[FX=11] Dual Scan',
|
||||||
|
'[FX=12] Fade',
|
||||||
|
'[FX=13] Chase',
|
||||||
|
'[FX=14] Chase Rainbow',
|
||||||
|
'[FX=15] Running',
|
||||||
|
'[FX=16] Saw',
|
||||||
|
'[FX=17] Twinkle',
|
||||||
|
'[FX=18] Dissolve',
|
||||||
|
'[FX=19] Dissolve Rnd',
|
||||||
|
'[FX=20] Sparkle',
|
||||||
|
'[FX=21] Dark Sparkle',
|
||||||
|
'[FX=22] Sparkle+',
|
||||||
|
'[FX=23] Strobe',
|
||||||
|
'[FX=24] Strobe Rainbow',
|
||||||
|
'[FX=25] Mega Strobe',
|
||||||
|
'[FX=26] Blink Rainbow',
|
||||||
|
'[FX=27] Android',
|
||||||
|
'[FX=28] Chase',
|
||||||
|
'[FX=29] Chase Random',
|
||||||
|
'[FX=30] Chase Rainbow',
|
||||||
|
'[FX=31] Chase Flash',
|
||||||
|
'[FX=32] Chase Flash Rnd',
|
||||||
|
'[FX=33] Rainbow Runner',
|
||||||
|
'[FX=34] Colorful',
|
||||||
|
'[FX=35] Traffic Light',
|
||||||
|
'[FX=36] Sweep Random',
|
||||||
|
'[FX=37] Running 2',
|
||||||
|
'[FX=38] Red & Blue',
|
||||||
|
'[FX=39] Stream',
|
||||||
|
'[FX=40] Scanner',
|
||||||
|
'[FX=41] Lighthouse',
|
||||||
|
'[FX=42] Fireworks',
|
||||||
|
'[FX=43] Rain',
|
||||||
|
'[FX=44] Merry Christmas',
|
||||||
|
'[FX=45] Fire Flicker',
|
||||||
|
'[FX=46] Gradient',
|
||||||
|
'[FX=47] Loading',
|
||||||
|
'[FX=48] In Out',
|
||||||
|
'[FX=49] In In',
|
||||||
|
'[FX=50] Out Out',
|
||||||
|
'[FX=51] Out In',
|
||||||
|
'[FX=52] Circus',
|
||||||
|
'[FX=53] Halloween',
|
||||||
|
'[FX=54] Tri Chase',
|
||||||
|
'[FX=55] Tri Wipe',
|
||||||
|
'[FX=56] Tri Fade',
|
||||||
|
'[FX=57] Lightning',
|
||||||
|
'[FX=58] ICU',
|
||||||
|
'[FX=59] Multi Comet',
|
||||||
|
'[FX=60] Dual Scanner',
|
||||||
|
'[FX=61] Stream 2',
|
||||||
|
'[FX=62] Oscillate',
|
||||||
|
'[FX=63] Pride 2015',
|
||||||
|
'[FX=64] Juggle',
|
||||||
|
'[FX=65] Palette',
|
||||||
|
'[FX=66] Fire 2012',
|
||||||
|
'[FX=67] Colorwaves',
|
||||||
|
'[FX=68] BPM',
|
||||||
|
'[FX=69] Fill Noise',
|
||||||
|
'[FX=70] Noise 1',
|
||||||
|
'[FX=71] Noise 2',
|
||||||
|
'[FX=72] Noise 3',
|
||||||
|
'[FX=73] Noise 4',
|
||||||
|
'[FX=74] Colortwinkle',
|
||||||
|
'[FX=75] Lake',
|
||||||
|
'[FX=76] Meteor',
|
||||||
|
'[FX=77] Smooth Meteor',
|
||||||
|
'[FX=78] Railway',
|
||||||
|
'[FX=79] Ripple',
|
||||||
|
'[FX=80] Twinklefox',
|
||||||
|
'[FX=81] Twinklecat',
|
||||||
|
'[FX=82] Halloween Eyes']
|
||||||
|
# self.effects = ['FX=00','FX=01','FX=02']
|
||||||
|
# self.on_timer = self.run_every(self.on_timer_tick, on_time)
|
||||||
|
# self.off_timer = self.run_daily(self.off_timer_tick, off_time)
|
||||||
|
self.run_every(self.run_every_c, datetime.datetime.now(), 15)
|
||||||
|
|
||||||
|
def run_every_c(self, kwargs):
|
||||||
|
effect = random.choice(self.effects)
|
||||||
|
# rand = random.randint(0, 82)
|
||||||
|
# effect = "FX={}".format(rand)
|
||||||
|
self.log('random: {}'.format(effect))
|
||||||
|
self.call_service("mqtt/publish", topic = 'wled/d85df2/api', payload = effect)
|
||||||
@@ -0,0 +1,6 @@
|
|||||||
|
xmas-tree:
|
||||||
|
module: xmas-tree
|
||||||
|
class: XmasTreeTimer
|
||||||
|
global_dependencies:
|
||||||
|
- globals
|
||||||
|
|
||||||
@@ -1,7 +1,7 @@
|
|||||||
# ----------- User configutaion ------------------
|
# ----------- User configutaion ------------------
|
||||||
substitutions:
|
substitutions:
|
||||||
devicename: domofon
|
devicename: watercontrol
|
||||||
upper_devicename: Domofon
|
upper_devicename: Watercontrol
|
||||||
pin_cold: D1
|
pin_cold: D1
|
||||||
init_cold: '210.29'
|
init_cold: '210.29'
|
||||||
pin_hot: D2
|
pin_hot: D2
|
||||||
@@ -81,12 +81,14 @@ sensor:
|
|||||||
|
|
||||||
- platform: template
|
- platform: template
|
||||||
name: "counter_hot"
|
name: "counter_hot"
|
||||||
|
accuracy_decimals: 2
|
||||||
lambda: |-
|
lambda: |-
|
||||||
return id(counter_hot_value);
|
return id(counter_hot_value);
|
||||||
update_interval: 60s
|
update_interval: 60s
|
||||||
|
|
||||||
- platform: template
|
- platform: template
|
||||||
name: "counter_cold"
|
name: "counter_cold"
|
||||||
|
accuracy_decimals: 2
|
||||||
lambda: |-
|
lambda: |-
|
||||||
return id(counter_cold_value);
|
return id(counter_cold_value);
|
||||||
update_interval: 60s
|
update_interval: 60s
|
||||||
|
|||||||
@@ -58,7 +58,7 @@ input_datetime: !include_dir_merge_named configuration/input/input_datetime
|
|||||||
#input_number: !include_dir_merge_named configuration/input/input_number
|
#input_number: !include_dir_merge_named configuration/input/input_number
|
||||||
light: !include_dir_merge_list configuration/light
|
light: !include_dir_merge_list configuration/light
|
||||||
notify: !include_dir_merge_list configuration/notify
|
notify: !include_dir_merge_list configuration/notify
|
||||||
media_player: !include_dir_merge_list configuration/media_player
|
# media_player: !include_dir_merge_list configuration/media_player
|
||||||
script: !include_dir_merge_named configuration/script
|
script: !include_dir_merge_named configuration/script
|
||||||
sensor: !include_dir_merge_list configuration/sensor
|
sensor: !include_dir_merge_list configuration/sensor
|
||||||
switch: !include_dir_merge_list configuration/switch
|
switch: !include_dir_merge_list configuration/switch
|
||||||
|
|||||||
@@ -1,6 +1,5 @@
|
|||||||
filter:
|
filter:
|
||||||
include_domains:
|
include_domains:
|
||||||
- alarm_control_panel
|
|
||||||
- climate
|
- climate
|
||||||
- switch
|
- switch
|
||||||
- light
|
- light
|
||||||
@@ -20,6 +19,14 @@ filter:
|
|||||||
- switch.domofon_mode
|
- switch.domofon_mode
|
||||||
- switch.domofon_open
|
- switch.domofon_open
|
||||||
- light.gateway_light_f0b429aa1463
|
- light.gateway_light_f0b429aa1463
|
||||||
|
- switch.domofon_automatically_open
|
||||||
|
- switch.domofon_automatically_open_once
|
||||||
|
- switch.domofon_force_open
|
||||||
|
- switch.wled_sync_receive
|
||||||
|
- switch.wled_sync_send
|
||||||
|
- switch.airfresher_fresh
|
||||||
|
- switch.airfresher_reset
|
||||||
|
|
||||||
|
|
||||||
entity_config:
|
entity_config:
|
||||||
input_boolean.alice_away_mode:
|
input_boolean.alice_away_mode:
|
||||||
@@ -103,3 +110,6 @@ entity_config:
|
|||||||
switch.water_valve:
|
switch.water_valve:
|
||||||
name: "Подача воды"
|
name: "Подача воды"
|
||||||
room: "Дом"
|
room: "Дом"
|
||||||
|
light.wled:
|
||||||
|
name: "Ёлка"
|
||||||
|
room: "Гостиная"
|
||||||
@@ -3,4 +3,5 @@
|
|||||||
allowed_chat_ids:
|
allowed_chat_ids:
|
||||||
- !secret telegram_group_chat
|
- !secret telegram_group_chat
|
||||||
- !secret telegram_monster_chat
|
- !secret telegram_monster_chat
|
||||||
|
- !secret telegram_sveta_chat
|
||||||
proxy_url: !secret proxy_url
|
proxy_url: !secret proxy_url
|
||||||
|
|||||||
@@ -5,8 +5,3 @@
|
|||||||
payload_on: "ON"
|
payload_on: "ON"
|
||||||
payload_off: "OFF"
|
payload_off: "OFF"
|
||||||
optimistic: false
|
optimistic: false
|
||||||
|
|
||||||
- platform: xiaomi_miio
|
|
||||||
name: "Свет2"
|
|
||||||
host: !secret philips_downlight_ip
|
|
||||||
token: !secret philips_downlight_token
|
|
||||||
@@ -1,2 +0,0 @@
|
|||||||
- platform: mpd
|
|
||||||
host: 192.168.1.125
|
|
||||||
@@ -0,0 +1,4 @@
|
|||||||
|
- platform: telegram
|
||||||
|
name: telegram_sveta
|
||||||
|
chat_id: !secret telegram_sveta_chat
|
||||||
|
parse_mode: html
|
||||||
@@ -1,4 +1,4 @@
|
|||||||
- platform: xiaomi_miio
|
# - platform: xiaomi_miio
|
||||||
name: xiaomi_remote
|
# name: xiaomi_remote
|
||||||
host: !secret xiaomi_remote_host
|
# host: !secret xiaomi_remote_host
|
||||||
token: !secret xiaomi_remote_token
|
# token: !secret xiaomi_remote_token
|
||||||
|
|||||||
@@ -1,3 +0,0 @@
|
|||||||
# - platform: mqtt
|
|
||||||
# state_topic: 'home/presence/controller/balcony'
|
|
||||||
# name: 'presence_balcony'
|
|
||||||
@@ -1,3 +0,0 @@
|
|||||||
# - platform: mqtt
|
|
||||||
# state_topic: 'home/presence/controller/hall'
|
|
||||||
# name: 'presence_hall'
|
|
||||||
@@ -1,3 +0,0 @@
|
|||||||
# - platform: mqtt
|
|
||||||
# state_topic: 'home/presence/controller/kitchen'
|
|
||||||
# name: 'presence_kitchen'
|
|
||||||
@@ -1,10 +0,0 @@
|
|||||||
- platform: mqtt
|
|
||||||
state_topic: 'home/sensor_ht/balcony/temperature'
|
|
||||||
name: 'temperature_158d000117d37a'
|
|
||||||
unit_of_measurement: '°C'
|
|
||||||
value_template: '{{ float(value_json) / 100 }}'
|
|
||||||
- platform: mqtt
|
|
||||||
state_topic: 'home/sensor_ht/balcony/humidity'
|
|
||||||
name: 'humidity_158d000117d37a'
|
|
||||||
unit_of_measurement: '%'
|
|
||||||
value_template: '{{ float(value_json) / 100 }}'
|
|
||||||
@@ -1,10 +0,0 @@
|
|||||||
- platform: mqtt
|
|
||||||
state_topic: 'home/sensor_ht/bath/temperature'
|
|
||||||
name: 'temperature_158d00012d9ad7'
|
|
||||||
unit_of_measurement: '°C'
|
|
||||||
value_template: '{{ float(value_json) / 100 }}'
|
|
||||||
- platform: mqtt
|
|
||||||
state_topic: 'home/sensor_ht/bath/humidity'
|
|
||||||
name: 'humidity_158d00012d9ad7'
|
|
||||||
unit_of_measurement: '%'
|
|
||||||
value_template: '{{ float(value_json) / 100 }}'
|
|
||||||
@@ -1,10 +0,0 @@
|
|||||||
- platform: mqtt
|
|
||||||
state_topic: 'home/sensor_ht/mainroom/temperature'
|
|
||||||
name: 'temperature_158d0001149b3c'
|
|
||||||
unit_of_measurement: '°C'
|
|
||||||
value_template: '{{ float(value_json) / 100 }}'
|
|
||||||
- platform: mqtt
|
|
||||||
state_topic: 'home/sensor_ht/mainroom/humidity'
|
|
||||||
name: 'humidity_158d0001149b3c'
|
|
||||||
unit_of_measurement: '%'
|
|
||||||
value_template: '{{ float(value_json) / 100 }}'
|
|
||||||
@@ -1,10 +0,0 @@
|
|||||||
- platform: mqtt
|
|
||||||
state_topic: 'home/sensor_ht/outside/temperature'
|
|
||||||
name: 'temperature_158d000149c128'
|
|
||||||
unit_of_measurement: '°C'
|
|
||||||
value_template: '{{ float(value_json) / 100 }}'
|
|
||||||
- platform: mqtt
|
|
||||||
state_topic: 'home/sensor_ht/outside/humidity'
|
|
||||||
name: 'humidity_158d000149c128'
|
|
||||||
unit_of_measurement: '%'
|
|
||||||
value_template: '{{ float(value_json) / 100 }}'
|
|
||||||
@@ -1,4 +0,0 @@
|
|||||||
# - platform: mqtt
|
|
||||||
# state_topic: 'home/bath/bath/distance'
|
|
||||||
# name: 'toilet_distance'
|
|
||||||
# unit_of_measurement: 'cm'
|
|
||||||
@@ -1,13 +0,0 @@
|
|||||||
#################################################
|
|
||||||
# WATER #
|
|
||||||
#################################################
|
|
||||||
# - platform: mqtt
|
|
||||||
# state_topic: 'home/bath/bath/cold'
|
|
||||||
# name: 'counter_cold'
|
|
||||||
# value_template: '{{ (value | float ) / 1000 }}'
|
|
||||||
# unit_of_measurement: 'm3'
|
|
||||||
# - platform: mqtt
|
|
||||||
# state_topic: 'home/bath/bath/hot'
|
|
||||||
# name: 'counter_hot'
|
|
||||||
# value_template: '{{ (value | float ) / 1000 }}'
|
|
||||||
# unit_of_measurement: 'm3'
|
|
||||||
@@ -1,8 +0,0 @@
|
|||||||
# - platform: mqtt
|
|
||||||
# name: water_valve
|
|
||||||
# state_topic: "home/bath/bath/valve"
|
|
||||||
# command_topic: "home/bath/bath/valve/set"
|
|
||||||
# payload_on: "open"
|
|
||||||
# payload_off: "close"
|
|
||||||
# optimistic: false
|
|
||||||
# retain: false
|
|
||||||
@@ -80,6 +80,7 @@ nest_client_secret: xxxxxxxxx
|
|||||||
telegram_key: xxxxxxxxx
|
telegram_key: xxxxxxxxx
|
||||||
telegram_group_chat: 0
|
telegram_group_chat: 0
|
||||||
telegram_monster_chat: 0
|
telegram_monster_chat: 0
|
||||||
|
telegram_sveta_chat: xxxxxxxxx
|
||||||
|
|
||||||
###################################
|
###################################
|
||||||
# TAGS #
|
# TAGS #
|
||||||
@@ -151,3 +152,8 @@ amazon_pass: xxxxxxxxx
|
|||||||
alexa_client_id: xxxxxxxxx
|
alexa_client_id: xxxxxxxxx
|
||||||
alexa_client_secret: xxxxxxxxx
|
alexa_client_secret: xxxxxxxxx
|
||||||
|
|
||||||
|
###################################
|
||||||
|
# Yandex Alice #
|
||||||
|
###################################
|
||||||
|
alice_login: xxxxxxxxx
|
||||||
|
alice_pwd: xxxxxxxxx
|
||||||
|
|||||||
@@ -16,6 +16,7 @@ views:
|
|||||||
- vacuum.xiaomi_vacuum_cleaner
|
- vacuum.xiaomi_vacuum_cleaner
|
||||||
- switch.domofon_force_open
|
- switch.domofon_force_open
|
||||||
- switch.wifi_socket
|
- switch.wifi_socket
|
||||||
|
- light.wled
|
||||||
- type: entities
|
- type: entities
|
||||||
title: "Гостиная"
|
title: "Гостиная"
|
||||||
show_header_toggle: false
|
show_header_toggle: false
|
||||||
@@ -23,7 +24,7 @@ views:
|
|||||||
- sensor.temperature_158d0001149b3c
|
- sensor.temperature_158d0001149b3c
|
||||||
- sensor.humidity_158d0001149b3c
|
- sensor.humidity_158d0001149b3c
|
||||||
- sensor.xiaomi_airpurifier_air_quality_pm25
|
- sensor.xiaomi_airpurifier_air_quality_pm25
|
||||||
- sensor.senseair_co2_value
|
# - sensor.senseair_co2_value
|
||||||
- light.yeelight_color1_34ce008fe328
|
- light.yeelight_color1_34ce008fe328
|
||||||
- light.yeelight_color1_286c071065c7
|
- light.yeelight_color1_286c071065c7
|
||||||
- light.yeelight_mono1_34ce0087ff33
|
- light.yeelight_mono1_34ce0087ff33
|
||||||
@@ -33,7 +34,7 @@ views:
|
|||||||
- cover.curtain_158d0002b0c46a
|
- cover.curtain_158d0002b0c46a
|
||||||
- switch.plug_158d0001104a0c
|
- switch.plug_158d0001104a0c
|
||||||
- switch.plug_158d00010dd98d
|
- switch.plug_158d00010dd98d
|
||||||
- fan.xiaomi_miio_device
|
# - fan.xiaomi_miio_device
|
||||||
- climate.living_room
|
- climate.living_room
|
||||||
- type: entities
|
- type: entities
|
||||||
title: "Кухня"
|
title: "Кухня"
|
||||||
@@ -54,7 +55,6 @@ views:
|
|||||||
- sensor.temperature_158d00012d9ad7
|
- sensor.temperature_158d00012d9ad7
|
||||||
- sensor.humidity_158d00012d9ad7
|
- sensor.humidity_158d00012d9ad7
|
||||||
- light.bath
|
- light.bath
|
||||||
- light.philips_led
|
|
||||||
- sensor.airfresher_remain
|
- sensor.airfresher_remain
|
||||||
- type: entities
|
- type: entities
|
||||||
title: "Прихожая"
|
title: "Прихожая"
|
||||||
@@ -322,7 +322,6 @@ views:
|
|||||||
refresh_interval: 60
|
refresh_interval: 60
|
||||||
entities:
|
entities:
|
||||||
- sensor.xiaomi_airpurifier_air_quality_pm25
|
- sensor.xiaomi_airpurifier_air_quality_pm25
|
||||||
- sensor.senseair_co2_value
|
|
||||||
- title: "Настройки"
|
- title: "Настройки"
|
||||||
icon: mdi:settings
|
icon: mdi:settings
|
||||||
cards:
|
cards:
|
||||||
@@ -388,7 +387,7 @@ views:
|
|||||||
- sensor.memory_free
|
- sensor.memory_free
|
||||||
- sensor.swap_use_percent
|
- sensor.swap_use_percent
|
||||||
- sensor.disk_use_percent
|
- sensor.disk_use_percent
|
||||||
- sensor.ssl_certificate_expiry_2
|
- sensor.ssl_certificate_expiry
|
||||||
- type: entities
|
- type: entities
|
||||||
title: "Сеть"
|
title: "Сеть"
|
||||||
show_header_toggle: false
|
show_header_toggle: false
|
||||||
|
|||||||
Reference in New Issue
Block a user