mirror of
https://github.com/esphome/esphome.git
synced 2025-03-15 15:18:16 +00:00
commit
45caa2dd3d
@ -41,11 +41,11 @@ stages:
|
|||||||
|
|
||||||
- |
|
- |
|
||||||
if [[ "${IS_HASSIO}" == "YES" ]]; then
|
if [[ "${IS_HASSIO}" == "YES" ]]; then
|
||||||
BUILD_FROM=esphome/esphome-hassio-base-${BUILD_ARCH}:1.4.1
|
BUILD_FROM=esphome/esphome-hassio-base-${BUILD_ARCH}:1.4.3
|
||||||
BUILD_TO=esphome/esphome-hassio-${BUILD_ARCH}
|
BUILD_TO=esphome/esphome-hassio-${BUILD_ARCH}
|
||||||
DOCKERFILE=docker/Dockerfile.hassio
|
DOCKERFILE=docker/Dockerfile.hassio
|
||||||
else
|
else
|
||||||
BUILD_FROM=esphome/esphome-base-${BUILD_ARCH}:1.4.1
|
BUILD_FROM=esphome/esphome-base-${BUILD_ARCH}:1.4.3
|
||||||
if [[ "${BUILD_ARCH}" == "amd64" ]]; then
|
if [[ "${BUILD_ARCH}" == "amd64" ]]; then
|
||||||
BUILD_TO=esphome/esphome
|
BUILD_TO=esphome/esphome
|
||||||
else
|
else
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
ARG BUILD_FROM=esphome/esphome-base-amd64:1.4.1
|
ARG BUILD_FROM=esphome/esphome-base-amd64:1.4.3
|
||||||
FROM ${BUILD_FROM}
|
FROM ${BUILD_FROM}
|
||||||
|
|
||||||
COPY . .
|
COPY . .
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
ARG BUILD_FROM=esphome/esphome-hassio-base-amd64:1.4.1
|
ARG BUILD_FROM=esphome/esphome-hassio-base-amd64:1.4.3
|
||||||
FROM ${BUILD_FROM}
|
FROM ${BUILD_FROM}
|
||||||
|
|
||||||
# Copy root filesystem
|
# Copy root filesystem
|
||||||
|
@ -16,11 +16,11 @@ echo "PWD: $PWD"
|
|||||||
|
|
||||||
if [[ ${IS_HASSIO} = "YES" ]]; then
|
if [[ ${IS_HASSIO} = "YES" ]]; then
|
||||||
docker build \
|
docker build \
|
||||||
--build-arg "BUILD_FROM=esphome/esphome-hassio-base-${BUILD_ARCH}:1.4.1" \
|
--build-arg "BUILD_FROM=esphome/esphome-hassio-base-${BUILD_ARCH}:1.4.3" \
|
||||||
--build-arg "BUILD_VERSION=${CACHE_TAG}" \
|
--build-arg "BUILD_VERSION=${CACHE_TAG}" \
|
||||||
-t "${IMAGE_NAME}" -f ../docker/Dockerfile.hassio ..
|
-t "${IMAGE_NAME}" -f ../docker/Dockerfile.hassio ..
|
||||||
else
|
else
|
||||||
docker build \
|
docker build \
|
||||||
--build-arg "BUILD_FROM=esphome/esphome-base-${BUILD_ARCH}:1.4.1" \
|
--build-arg "BUILD_FROM=esphome/esphome-base-${BUILD_ARCH}:1.4.3" \
|
||||||
-t "${IMAGE_NAME}" -f ../docker/Dockerfile ..
|
-t "${IMAGE_NAME}" -f ../docker/Dockerfile ..
|
||||||
fi
|
fi
|
||||||
|
@ -86,7 +86,7 @@ def lib_deps(config):
|
|||||||
if CORE.is_esp32:
|
if CORE.is_esp32:
|
||||||
return 'AsyncTCP@1.0.3'
|
return 'AsyncTCP@1.0.3'
|
||||||
if CORE.is_esp8266:
|
if CORE.is_esp8266:
|
||||||
return 'ESPAsyncTCP@1.1.3'
|
return 'ESPAsyncTCP@1.2.0'
|
||||||
raise NotImplementedError
|
raise NotImplementedError
|
||||||
|
|
||||||
|
|
||||||
|
24
esphome/components/binary_sensor/ttp229_lsf.py
Normal file
24
esphome/components/binary_sensor/ttp229_lsf.py
Normal file
@ -0,0 +1,24 @@
|
|||||||
|
import voluptuous as vol
|
||||||
|
|
||||||
|
from esphome.components import binary_sensor
|
||||||
|
from esphome.components.ttp229_lsf import TTP229LSFComponent, CONF_TTP229_ID
|
||||||
|
import esphome.config_validation as cv
|
||||||
|
from esphome.const import CONF_CHANNEL, CONF_NAME
|
||||||
|
from esphome.cpp_generator import get_variable
|
||||||
|
|
||||||
|
DEPENDENCIES = ['ttp229_lsf']
|
||||||
|
TTP229Channel = binary_sensor.binary_sensor_ns.class_(
|
||||||
|
'TTP229Channel', binary_sensor.BinarySensor)
|
||||||
|
|
||||||
|
PLATFORM_SCHEMA = cv.nameable(binary_sensor.BINARY_SENSOR_PLATFORM_SCHEMA.extend({
|
||||||
|
cv.GenerateID(): cv.declare_variable_id(TTP229Channel),
|
||||||
|
cv.GenerateID(CONF_TTP229_ID): cv.use_variable_id(TTP229LSFComponent),
|
||||||
|
vol.Required(CONF_CHANNEL): vol.All(vol.Coerce(int), vol.Range(min=0, max=15))
|
||||||
|
}))
|
||||||
|
|
||||||
|
|
||||||
|
def to_code(config):
|
||||||
|
for hub in get_variable(config[CONF_TTP229_ID]):
|
||||||
|
yield
|
||||||
|
rhs = TTP229Channel.new(config[CONF_NAME], config[CONF_CHANNEL])
|
||||||
|
binary_sensor.register_binary_sensor(hub.add_channel(rhs), config)
|
@ -46,7 +46,7 @@ def setup_text_sensor_core_(text_sensor_var, config):
|
|||||||
trigger = Pvariable(conf[CONF_TRIGGER_ID], rhs)
|
trigger = Pvariable(conf[CONF_TRIGGER_ID], rhs)
|
||||||
automation.build_automations(trigger, [(std_string, 'x')], conf)
|
automation.build_automations(trigger, [(std_string, 'x')], conf)
|
||||||
|
|
||||||
setup_mqtt_component(text_sensor_var.get_mqtt(), config)
|
setup_mqtt_component(text_sensor_var.Pget_mqtt(), config)
|
||||||
|
|
||||||
|
|
||||||
def setup_text_sensor(text_sensor_obj, config):
|
def setup_text_sensor(text_sensor_obj, config):
|
||||||
|
25
esphome/components/ttp229_lsf.py
Normal file
25
esphome/components/ttp229_lsf.py
Normal file
@ -0,0 +1,25 @@
|
|||||||
|
from esphome.components import binary_sensor
|
||||||
|
import esphome.config_validation as cv
|
||||||
|
from esphome.const import CONF_ID
|
||||||
|
from esphome.cpp_generator import Pvariable
|
||||||
|
from esphome.cpp_helpers import setup_component
|
||||||
|
from esphome.cpp_types import App, Component
|
||||||
|
|
||||||
|
DEPENDENCIES = ['i2c']
|
||||||
|
|
||||||
|
CONF_TTP229_ID = 'ttp229_id'
|
||||||
|
TTP229LSFComponent = binary_sensor.binary_sensor_ns.class_('TTP229LSFComponent', Component)
|
||||||
|
|
||||||
|
CONFIG_SCHEMA = cv.Schema({
|
||||||
|
cv.GenerateID(): cv.declare_variable_id(TTP229LSFComponent),
|
||||||
|
}).extend(cv.COMPONENT_SCHEMA.schema)
|
||||||
|
|
||||||
|
|
||||||
|
def to_code(config):
|
||||||
|
rhs = App.make_ttp229_lsf()
|
||||||
|
var = Pvariable(config[CONF_ID], rhs)
|
||||||
|
|
||||||
|
setup_component(var, config)
|
||||||
|
|
||||||
|
|
||||||
|
BUILD_FLAGS = '-DUSE_TTP229_LSF'
|
@ -28,7 +28,7 @@ import tornado.websocket
|
|||||||
from esphome import const
|
from esphome import const
|
||||||
from esphome.__main__ import get_serial_ports
|
from esphome.__main__ import get_serial_ports
|
||||||
from esphome.helpers import mkdir_p, get_bool_env, run_system_command
|
from esphome.helpers import mkdir_p, get_bool_env, run_system_command
|
||||||
from esphome.py_compat import IS_PY2
|
from esphome.py_compat import IS_PY2, decode_text
|
||||||
from esphome.storage_json import EsphomeStorageJSON, StorageJSON, \
|
from esphome.storage_json import EsphomeStorageJSON, StorageJSON, \
|
||||||
esphome_storage_path, ext_storage_path, trash_storage_path
|
esphome_storage_path, ext_storage_path, trash_storage_path
|
||||||
from esphome.util import shlex_quote
|
from esphome.util import shlex_quote
|
||||||
@ -223,8 +223,8 @@ class WizardRequestHandler(BaseHandler):
|
|||||||
def post(self):
|
def post(self):
|
||||||
from esphome import wizard
|
from esphome import wizard
|
||||||
|
|
||||||
kwargs = {k: ''.join(v) for k, v in self.request.arguments.items()}
|
kwargs = {k: u''.join(decode_text(x) for x in v) for k, v in self.request.arguments.items()}
|
||||||
destination = os.path.join(CONFIG_DIR, kwargs['name'] + '.yaml')
|
destination = os.path.join(CONFIG_DIR, kwargs['name'] + u'.yaml')
|
||||||
wizard.wizard_write(path=destination, **kwargs)
|
wizard.wizard_write(path=destination, **kwargs)
|
||||||
self.redirect('/?begin=True')
|
self.redirect('/?begin=True')
|
||||||
|
|
||||||
|
@ -195,7 +195,7 @@ def perform_ota(sock, password, file_handle, filename):
|
|||||||
send_check(sock, cnonce, 'auth cnonce')
|
send_check(sock, cnonce, 'auth cnonce')
|
||||||
|
|
||||||
result_md5 = hashlib.md5()
|
result_md5 = hashlib.md5()
|
||||||
result_md5.update(password.encode())
|
result_md5.update(password.encode('utf-8'))
|
||||||
result_md5.update(nonce.encode())
|
result_md5.update(nonce.encode())
|
||||||
result_md5.update(cnonce.encode())
|
result_md5.update(cnonce.encode())
|
||||||
result = result_md5.hexdigest()
|
result = result_md5.hexdigest()
|
||||||
|
@ -69,3 +69,13 @@ def indexbytes(buf, i):
|
|||||||
return buf[i]
|
return buf[i]
|
||||||
else:
|
else:
|
||||||
return ord(buf[i])
|
return ord(buf[i])
|
||||||
|
|
||||||
|
|
||||||
|
if IS_PY2:
|
||||||
|
def decode_text(data, encoding='utf-8', errors='strict'):
|
||||||
|
# type: (str, str, str) -> unicode
|
||||||
|
return unicode(data, encoding='utf-8', errors=errors)
|
||||||
|
else:
|
||||||
|
def decode_text(data, encoding='utf-8', errors='strict'):
|
||||||
|
# type: (bytes, str, str) -> str
|
||||||
|
return data.decode(encoding='utf-8', errors=errors)
|
||||||
|
@ -79,7 +79,7 @@ def wizard_write(path, **kwargs):
|
|||||||
kwargs['platform'] = 'ESP8266' if board in ESP8266_BOARD_PINS else 'ESP32'
|
kwargs['platform'] = 'ESP8266' if board in ESP8266_BOARD_PINS else 'ESP32'
|
||||||
platform = kwargs['platform']
|
platform = kwargs['platform']
|
||||||
|
|
||||||
with codecs.open(path, 'w') as f_handle:
|
with codecs.open(path, 'w', 'utf-8') as f_handle:
|
||||||
f_handle.write(wizard_file(**kwargs))
|
f_handle.write(wizard_file(**kwargs))
|
||||||
storage = StorageJSON.from_wizard(name, name + '.local', platform, board)
|
storage = StorageJSON.from_wizard(name, name + '.local', platform, board)
|
||||||
storage_path = ext_storage_path(os.path.dirname(path), os.path.basename(path))
|
storage_path = ext_storage_path(os.path.dirname(path), os.path.basename(path))
|
||||||
|
@ -290,7 +290,7 @@ def gather_lib_deps():
|
|||||||
lib_deps.add('AsyncTCP@1.0.1')
|
lib_deps.add('AsyncTCP@1.0.1')
|
||||||
lib_deps.add('ESPmDNS')
|
lib_deps.add('ESPmDNS')
|
||||||
elif CORE.is_esp8266:
|
elif CORE.is_esp8266:
|
||||||
lib_deps.add('ESPAsyncTCP@1.1.3')
|
lib_deps.add('ESPAsyncTCP@1.2.0')
|
||||||
lib_deps.add('ESP8266mDNS')
|
lib_deps.add('ESP8266mDNS')
|
||||||
|
|
||||||
# avoid changing build flags order
|
# avoid changing build flags order
|
||||||
|
Loading…
x
Reference in New Issue
Block a user