1
0
mirror of https://github.com/esphome/esphome.git synced 2025-10-25 13:13:48 +01:00

Update for 1.4.0

This commit is contained in:
Otto Winter
2018-05-06 15:56:12 +02:00
parent 7915e420f4
commit 49736c8c6d
47 changed files with 437 additions and 128 deletions

View File

@@ -37,5 +37,4 @@ def to_code(config):
add(ads1115.set_rate(RawExpression(RATES[conf[CONF_RATE]])))
def build_flags(config):
return '-DUSE_ADS1115_SENSOR'
BUILD_FLAGS = '-DUSE_ADS1115_SENSOR'

View File

@@ -35,5 +35,4 @@ def setup_mqtt_binary_sensor(obj, config):
setup_mqtt_component(obj, config)
def build_flags(config):
return '-DUSE_BINARY_SENSOR'
BUILD_FLAGS = '-DUSE_BINARY_SENSOR'

View File

@@ -21,5 +21,4 @@ def to_code(config):
binary_sensor.setup_mqtt_binary_sensor(gpio.Pmqtt, config)
def build_flags(config):
return '-DUSE_GPIO_BINARY_SENSOR'
BUILD_FLAGS = '-DUSE_GPIO_BINARY_SENSOR'

View File

@@ -17,5 +17,4 @@ def to_code(config):
binary_sensor.setup_mqtt_binary_sensor(status.Pmqtt, config)
def build_flags(config):
return '-DUSE_STATUS_BINARY_SENSOR'
BUILD_FLAGS = '-DUSE_STATUS_BINARY_SENSOR'

View File

@@ -20,5 +20,4 @@ def to_code(config):
Pvariable(DALLAS_COMPONENT_CLASS, conf[CONF_ID], rhs)
def build_flags(config):
return '-DUSE_DALLAS_SENSOR'
BUILD_FLAGS = '-DUSE_DALLAS_SENSOR'

View File

@@ -11,5 +11,4 @@ def to_code(config):
add(App.make_debug_component())
def build_flags(config):
return '-DUSE_DEBUG_COMPONENT'
BUILD_FLAGS = '-DUSE_DEBUG_COMPONENT'

View File

@@ -38,5 +38,4 @@ def to_code(config):
add(deep_sleep.set_run_duration(config[CONF_RUN_DURATION]))
def build_flags(config):
return '-DUSE_DEEP_SLEEP'
BUILD_FLAGS = '-DUSE_DEEP_SLEEP'

View File

@@ -23,5 +23,4 @@ def setup_mqtt_fan(obj, config):
setup_mqtt_component(obj, config)
def build_flags(config):
return '-DUSE_FAN'
BUILD_FLAGS = '-DUSE_FAN'

View File

@@ -2,19 +2,23 @@ import voluptuous as vol
import esphomeyaml.config_validation as cv
from esphomeyaml import pins
from esphomeyaml.const import CONF_FREQUENCY, CONF_SCL, CONF_SDA
from esphomeyaml.helpers import App, add
from esphomeyaml.const import CONF_FREQUENCY, CONF_SCL, CONF_SDA, CONF_SCAN, CONF_ID
from esphomeyaml.helpers import App, add, Pvariable
CONFIG_SCHEMA = vol.Schema({
cv.GenerateID('i2c'): cv.register_variable_id,
vol.Required(CONF_SDA, default='SDA'): pins.input_output_pin,
vol.Required(CONF_SCL, default='SCL'): pins.input_output_pin,
vol.Optional(CONF_FREQUENCY): vol.All(cv.only_on_esp32, cv.positive_int),
vol.Optional(CONF_SCAN): cv.boolean,
})
def to_code(config):
add(App.init_i2c(config[CONF_SDA], config[CONF_SCL], config.get(CONF_FREQUENCY)))
rhs = App.init_i2c(config[CONF_SDA], config[CONF_SCL], config.get(CONF_SCAN))
i2c = Pvariable('I2CComponent', config[CONF_ID], rhs)
if CONF_FREQUENCY in config:
add(i2c.set_frequency(config[CONF_FREQUENCY]))
def build_flags(config):
return '-DUSE_I2C'
BUILD_FLAGS = '-DUSE_I2C'

View File

@@ -23,5 +23,4 @@ def to_code(config):
Pvariable(IR_TRANSMITTER_COMPONENT_CLASS, conf[CONF_ID], rhs)
def build_flags(config):
return '-DUSE_IR_TRANSMITTER'
BUILD_FLAGS = '-DUSE_IR_TRANSMITTER'

View File

@@ -12,5 +12,4 @@ def setup_light_component(obj, config):
add(obj.set_default_transition_length(config[CONF_DEFAULT_TRANSITION_LENGTH]))
def build_flags(config):
return '-DUSE_LIGHT'
BUILD_FLAGS = '-DUSE_LIGHT'

View File

@@ -6,15 +6,26 @@ import esphomeyaml.config_validation as cv
from esphomeyaml.const import CONF_BIRTH_MESSAGE, CONF_BROKER, CONF_CLIENT_ID, CONF_DISCOVERY, \
CONF_DISCOVERY_PREFIX, CONF_DISCOVERY_RETAIN, CONF_SSL_FINGERPRINTS, CONF_ID, CONF_LOG_TOPIC, \
CONF_MQTT, CONF_PASSWORD, CONF_PAYLOAD, CONF_PORT, CONF_QOS, CONF_RETAIN, CONF_TOPIC, \
CONF_TOPIC_PREFIX, CONF_USERNAME, CONF_WILL_MESSAGE
CONF_TOPIC_PREFIX, CONF_USERNAME, CONF_WILL_MESSAGE, CONF_KEEPALIVE
from esphomeyaml.helpers import App, ArrayInitializer, Pvariable, StructInitializer, add, \
exp_empty_optional, RawExpression
MQTT_WILL_BIRTH_SCHEMA = vol.Any(None, vol.Schema({
def validate_message_just_topic(value):
value = cv.publish_topic(value)
return {CONF_TOPIC: value}
MQTT_MESSAGE_BASE = vol.Schema({
vol.Required(CONF_TOPIC): cv.publish_topic,
vol.Required(CONF_PAYLOAD): cv.mqtt_payload,
vol.Optional(CONF_QOS, default=0): vol.All(vol.Coerce(int), vol.In([0, 1, 2])),
vol.Optional(CONF_RETAIN, default=True): cv.boolean,
})
MQTT_MESSAGE_TEMPLATE_SCHEMA = vol.Any(None, MQTT_MESSAGE_BASE, validate_message_just_topic)
MQTT_MESSAGE_SCHEMA = vol.Any(None, MQTT_MESSAGE_BASE.extend({
vol.Required(CONF_PAYLOAD): cv.mqtt_payload,
}))
@@ -47,12 +58,13 @@ CONFIG_SCHEMA = vol.Schema({
vol.Optional(CONF_DISCOVERY): cv.boolean,
vol.Optional(CONF_DISCOVERY_RETAIN): cv.boolean,
vol.Optional(CONF_DISCOVERY_PREFIX): cv.publish_topic,
vol.Optional(CONF_BIRTH_MESSAGE): MQTT_WILL_BIRTH_SCHEMA,
vol.Optional(CONF_WILL_MESSAGE): MQTT_WILL_BIRTH_SCHEMA,
vol.Optional(CONF_BIRTH_MESSAGE): MQTT_MESSAGE_SCHEMA,
vol.Optional(CONF_WILL_MESSAGE): MQTT_MESSAGE_SCHEMA,
vol.Optional(CONF_TOPIC_PREFIX): cv.publish_topic,
vol.Optional(CONF_LOG_TOPIC): cv.publish_topic,
vol.Optional(CONF_LOG_TOPIC): MQTT_MESSAGE_TEMPLATE_SCHEMA,
vol.Optional(CONF_SSL_FINGERPRINTS): vol.All(cv.only_on_esp8266,
cv.ensure_list, [validate_fingerprint]),
vol.Optional(CONF_KEEPALIVE): vol.All(cv.positive_time_period, cv.time_period_to_seconds)
})
@@ -62,7 +74,7 @@ def exp_mqtt_message(config):
exp = StructInitializer(
'mqtt::MQTTMessage',
('topic', config[CONF_TOPIC]),
('payload', config[CONF_PAYLOAD]),
('payload', config.get(CONF_PAYLOAD, "")),
('qos', config[CONF_QOS]),
('retain', config[CONF_RETAIN])
)
@@ -79,20 +91,34 @@ def to_code(config):
discovery_retain = config.get(CONF_DISCOVERY_RETAIN, True)
discovery_prefix = config.get(CONF_DISCOVERY_PREFIX, 'homeassistant')
add(mqtt.set_discovery_info(discovery_prefix, discovery_retain))
if CONF_BIRTH_MESSAGE in config:
add(mqtt.set_birth_message(config[CONF_BIRTH_MESSAGE]))
if CONF_WILL_MESSAGE in config:
add(mqtt.set_last_will(config[CONF_WILL_MESSAGE]))
if CONF_TOPIC_PREFIX in config:
add(mqtt.set_topic_prefix(config[CONF_TOPIC_PREFIX]))
if CONF_BIRTH_MESSAGE in config:
birth_message = config[CONF_BIRTH_MESSAGE]
if birth_message is None:
add(mqtt.disable_birth_message())
else:
add(mqtt.set_birth_message(exp_mqtt_message(birth_message)))
if CONF_WILL_MESSAGE in config:
will_message = config[CONF_WILL_MESSAGE]
if will_message is None:
add(mqtt.disable_last_will())
else:
add(mqtt.set_last_will(exp_mqtt_message(will_message)))
if CONF_CLIENT_ID in config:
add(mqtt.set_client_id(config[CONF_CLIENT_ID]))
if CONF_LOG_TOPIC in config:
add(mqtt.set_log_topic(config[CONF_LOG_TOPIC]))
log_topic = config[CONF_LOG_TOPIC]
if log_topic is None:
add(mqtt.disable_log_message())
else:
add(mqtt.set_log_topic(exp_mqtt_message(log_topic)))
if CONF_SSL_FINGERPRINTS in config:
for fingerprint in config[CONF_SSL_FINGERPRINTS]:
arr = [RawExpression("0x{}".format(fingerprint[i:i + 2])) for i in range(0, 40, 2)]
add(mqtt.add_ssl_fingerprint(ArrayInitializer(*arr, multiline=False)))
if CONF_KEEPALIVE in config:
add(mqtt.set_keep_alive(config[CONF_KEEPALIVE]))
def required_build_flags(config):

View File

@@ -45,5 +45,4 @@ def get_auth(config):
return config[CONF_OTA].get(CONF_PASSWORD, '')
def build_flags(config):
return '-DUSE_OTA'
BUILD_FLAGS = '-DUSE_OTA'

View File

@@ -25,5 +25,4 @@ def setup_output_platform(obj, config, skip_power_supply=False):
add(obj.set_max_power(config[CONF_MAX_POWER]))
def build_flags(config):
return '-DUSE_OUTPUT'
BUILD_FLAGS = '-DUSE_OUTPUT'

View File

@@ -28,5 +28,4 @@ def to_code(config):
output.setup_output_platform(gpio, config)
def build_flags(config):
return '-DUSE_ESP8266_PWM_OUTPUT'
BUILD_FLAGS = '-DUSE_ESP8266_PWM_OUTPUT'

View File

@@ -17,5 +17,4 @@ def to_code(config):
output.setup_output_platform(gpio, config)
def build_flags(config):
return '-DUSE_GPIO_OUTPUT'
BUILD_FLAGS = '-DUSE_GPIO_OUTPUT'

View File

@@ -38,5 +38,4 @@ def to_code(config):
output.setup_output_platform(ledc, config)
def build_flags(config):
return '-DUSE_LEDC_OUTPUT'
BUILD_FLAGS = '-DUSE_LEDC_OUTPUT'

View File

@@ -25,5 +25,4 @@ def to_code(config):
output.setup_output_platform(out, config, skip_power_supply=True)
def build_flags(config):
return '-DUSE_PCA9685_OUTPUT'
BUILD_FLAGS = '-DUSE_PCA9685_OUTPUT'

View File

@@ -33,5 +33,4 @@ def to_code(config):
add(pca9685.set_phase_balancer(phase_balancer))
def build_flags(config):
return '-DUSE_PCA9685_OUTPUT'
BUILD_FLAGS = '-DUSE_PCA9685_OUTPUT'

View File

@@ -0,0 +1,24 @@
import voluptuous as vol
import esphomeyaml.config_validation as cv
from esphomeyaml.const import CONF_ADDRESS, CONF_ID, CONF_PCF8575
from esphomeyaml.helpers import App, Pvariable
DEPENDENCIES = ['i2c']
PCF8574_SCHEMA = vol.Schema({
vol.Required(CONF_ID): cv.register_variable_id,
vol.Optional(CONF_ADDRESS, default=0x21): cv.i2c_address,
vol.Optional(CONF_PCF8575, default=False): cv.boolean,
})
CONFIG_SCHEMA = vol.All(cv.ensure_list, [PCF8574_SCHEMA])
def to_code(config):
for conf in config:
rhs = App.make_pcf8574_component(conf[CONF_ADDRESS], conf[CONF_PCF8575])
Pvariable('io::PCF8574Component', conf[CONF_ID], rhs)
BUILD_FLAGS = '-DUSE_PCF8574'

View File

@@ -25,5 +25,4 @@ def to_code(config):
add(psu.set_keep_on_time(conf[CONF_KEEP_ON_TIME]))
def build_flags(config):
return '-DUSE_OUTPUT'
BUILD_FLAGS = '-DUSE_OUTPUT'

View File

@@ -104,5 +104,4 @@ def register_sensor(var, config):
setup_mqtt_sensor_component(mqtt_sensor, config)
def build_flags(config):
return '-DUSE_SENSOR'
BUILD_FLAGS = '-DUSE_SENSOR'

View File

@@ -36,5 +36,4 @@ def to_code(config):
sensor.setup_mqtt_sensor_component(make.Pmqtt, config)
def build_flags(config):
return '-DUSE_ADC_SENSOR'
BUILD_FLAGS = '-DUSE_ADC_SENSOR'

View File

@@ -59,5 +59,4 @@ def to_code(config):
sensor.register_sensor(sensor_, config)
def build_flags(config):
return '-DUSE_ADS1115_SENSOR'
BUILD_FLAGS = '-DUSE_ADS1115_SENSOR'

View File

@@ -31,5 +31,4 @@ def to_code(config):
sensor.setup_mqtt_sensor_component(bmp.Pmqtt_pressure, config[CONF_PRESSURE])
def build_flags(config):
return '-DUSE_BMP085_SENSOR'
BUILD_FLAGS = '-DUSE_BMP085_SENSOR'

View File

@@ -34,5 +34,4 @@ def to_code(config):
sensor.register_sensor(sensor_, config)
def build_flags(config):
return '-DUSE_DALLAS_SENSOR'
BUILD_FLAGS = '-DUSE_DALLAS_SENSOR'

View File

@@ -34,5 +34,4 @@ def to_code(config):
sensor.setup_mqtt_sensor_component(dht.Pmqtt_humidity, config[CONF_HUMIDITY])
def build_flags(config):
return '-DUSE_DHT_SENSOR'
BUILD_FLAGS = '-DUSE_DHT_SENSOR'

View File

@@ -28,5 +28,4 @@ def to_code(config):
sensor.setup_mqtt_sensor_component(hdc1080.Pmqtt_humidity, config[CONF_HUMIDITY])
def build_flags(config):
return '-DUSE_HDC1080_SENSOR'
BUILD_FLAGS = '-DUSE_HDC1080_SENSOR'

View File

@@ -28,5 +28,4 @@ def to_code(config):
sensor.setup_mqtt_sensor_component(htu21d.Pmqtt_humidity, config[CONF_HUMIDITY])
def build_flags(config):
return '-DUSE_HTU21D_SENSOR'
BUILD_FLAGS = '-DUSE_HTU21D_SENSOR'

View File

@@ -0,0 +1,73 @@
import voluptuous as vol
import esphomeyaml.config_validation as cv
from esphomeyaml.components import sensor
from esphomeyaml.components.sensor import MQTT_SENSOR_ID_SCHEMA
from esphomeyaml.const import CONF_ADDRESS, CONF_ID, CONF_MQTT_ID, CONF_NAME, CONF_TEMPERATURE, \
CONF_UPDATE_INTERVAL
from esphomeyaml.helpers import App, Pvariable
DEPENDENCIES = ['i2c']
CONF_ACCEL_X = 'accel_x'
CONF_ACCEL_Y = 'accel_y'
CONF_ACCEL_Z = 'accel_z'
CONF_GYRO_X = 'gyro_x'
CONF_GYRO_Y = 'gyro_y'
CONF_GYRO_Z = 'gyro_z'
PLATFORM_SCHEMA = sensor.PLATFORM_SCHEMA.extend({
cv.GenerateID('mpu6050'): cv.register_variable_id,
vol.Optional(CONF_ADDRESS, default=0x68): cv.i2c_address,
vol.Optional(CONF_ACCEL_X): MQTT_SENSOR_ID_SCHEMA,
vol.Optional(CONF_ACCEL_Y): MQTT_SENSOR_ID_SCHEMA,
vol.Optional(CONF_ACCEL_Z): MQTT_SENSOR_ID_SCHEMA,
vol.Optional(CONF_GYRO_X): MQTT_SENSOR_ID_SCHEMA,
vol.Optional(CONF_GYRO_Y): MQTT_SENSOR_ID_SCHEMA,
vol.Optional(CONF_GYRO_Z): MQTT_SENSOR_ID_SCHEMA,
vol.Optional(CONF_TEMPERATURE): MQTT_SENSOR_ID_SCHEMA,
vol.Optional(CONF_UPDATE_INTERVAL): cv.positive_not_null_time_period,
})
def to_code(config):
rhs = App.make_mpu6050_sensor(config[CONF_ADDRESS], config.get(CONF_UPDATE_INTERVAL))
mpu = Pvariable('sensor::MPU6050Component', config[CONF_ID], rhs)
if CONF_ACCEL_X in config:
conf = config[CONF_ACCEL_X]
rhs = mpu.Pmake_accel_x_sensor(conf[CONF_NAME])
sensor_ = Pvariable('sensor::MPU6050AccelSensor', conf[CONF_MQTT_ID], rhs)
sensor.register_sensor(sensor_, conf)
if CONF_ACCEL_Y in config:
conf = config[CONF_ACCEL_Y]
rhs = mpu.Pmake_accel_y_sensor(conf[CONF_NAME])
sensor_ = Pvariable('sensor::MPU6050AccelSensor', conf[CONF_MQTT_ID], rhs)
sensor.register_sensor(sensor_, conf)
if CONF_ACCEL_Z in config:
conf = config[CONF_ACCEL_Z]
rhs = mpu.Pmake_accel_z_sensor(conf[CONF_NAME])
sensor_ = Pvariable('sensor::MPU6050AccelSensor', conf[CONF_MQTT_ID], rhs)
sensor.register_sensor(sensor_, conf)
if CONF_GYRO_X in config:
conf = config[CONF_GYRO_X]
rhs = mpu.Pmake_gyro_x_sensor(conf[CONF_NAME])
sensor_ = Pvariable('sensor::MPU6050GyroSensor', conf[CONF_MQTT_ID], rhs)
sensor.register_sensor(sensor_, conf)
if CONF_GYRO_Y in config:
conf = config[CONF_GYRO_Y]
rhs = mpu.Pmake_gyro_y_sensor(conf[CONF_NAME])
sensor_ = Pvariable('sensor::MPU6050GyroSensor', conf[CONF_MQTT_ID], rhs)
sensor.register_sensor(sensor_, conf)
if CONF_GYRO_Z in config:
conf = config[CONF_GYRO_Z]
rhs = mpu.Pmake_gyro_z_sensor(conf[CONF_NAME])
sensor_ = Pvariable('sensor::MPU6050GyroSensor', conf[CONF_MQTT_ID], rhs)
sensor.register_sensor(sensor_, conf)
if CONF_TEMPERATURE in config:
conf = config[CONF_TEMPERATURE]
rhs = mpu.Pmake_temperature_sensor(conf[CONF_NAME])
sensor_ = Pvariable('sensor::MPU6050TemperatureSensor', conf[CONF_MQTT_ID], rhs)
sensor.register_sensor(sensor_, conf)
BUILD_FLAGS = '-DUSE_MPU6050'

View File

@@ -59,5 +59,4 @@ def to_code(config):
sensor.setup_mqtt_sensor_component(make.Pmqtt, config)
def build_flags(config):
return '-DUSE_PULSE_COUNTER_SENSOR'
BUILD_FLAGS = '-DUSE_PULSE_COUNTER_SENSOR'

View File

@@ -33,5 +33,4 @@ def to_code(config):
sensor.setup_mqtt_sensor_component(make.Pmqtt, config)
def build_flags(config):
return '-DUSE_ULTRASONIC_SENSOR'
BUILD_FLAGS = '-DUSE_ULTRASONIC_SENSOR'

View File

@@ -33,5 +33,4 @@ def register_switch(var, config):
setup_mqtt_switch(mqtt_switch, config)
def build_flags(config):
return '-DUSE_SWITCH'
BUILD_FLAGS = '-DUSE_SWITCH'

View File

@@ -19,5 +19,4 @@ def to_code(config):
switch.setup_mqtt_switch(gpio.Pmqtt, config)
def build_flags(config):
return '-DUSE_GPIO_SWITCH'
BUILD_FLAGS = '-DUSE_GPIO_SWITCH'

View File

@@ -92,5 +92,4 @@ def to_code(config):
switch.register_switch(switch_, config)
def build_flags(config):
return '-DUSE_IR_TRANSMITTER'
BUILD_FLAGS = '-DUSE_IR_TRANSMITTER'

View File

@@ -0,0 +1,22 @@
import voluptuous as vol
import esphomeyaml.config_validation as cv
from esphomeyaml.components import switch
from esphomeyaml.const import CONF_ID, CONF_NAME
from esphomeyaml.helpers import App, get_variable, variable
PLATFORM_SCHEMA = switch.PLATFORM_SCHEMA.extend({
cv.GenerateID('output_switch'): cv.register_variable_id,
vol.Required(CONF_ID): cv.variable_id,
}).extend(switch.MQTT_SWITCH_SCHEMA.schema)
def to_code(config):
output = get_variable(config[CONF_ID])
rhs = App.make_simple_switch(config[CONF_NAME], output)
gpio = variable('Application::MakeSimpleSwitch', config[CONF_ID], rhs)
switch.setup_switch(gpio.Pswitch_, config)
switch.setup_mqtt_switch(gpio.Pmqtt, config)
BUILD_FLAGS = '-DUSE_SIMPLE_SWITCH'

View File

@@ -15,5 +15,4 @@ def to_code(config):
switch.setup_mqtt_switch(restart.Pmqtt, config)
def build_flags(config):
return '-DUSE_RESTART_SWITCH'
BUILD_FLAGS = '-DUSE_RESTART_SWITCH'

View File

@@ -0,0 +1,19 @@
import esphomeyaml.config_validation as cv
from esphomeyaml.components import switch
from esphomeyaml.const import CONF_ID, CONF_NAME
from esphomeyaml.helpers import App, variable
PLATFORM_SCHEMA = switch.PLATFORM_SCHEMA.extend({
cv.GenerateID('shutdown_switch'): cv.register_variable_id,
}).extend(switch.MQTT_SWITCH_SCHEMA.schema)
def to_code(config):
rhs = App.make_shutdown_switch(config[CONF_NAME])
shutdown = variable('Application::MakeShutdownSwitch', config[CONF_ID],
rhs)
switch.setup_switch(shutdown.Pshutdown, config)
switch.setup_mqtt_switch(shutdown.Pmqtt, config)
BUILD_FLAGS = '-DUSE_SHUTDOWN_SWITCH'

View File

@@ -25,5 +25,4 @@ def to_code(config):
add(web_server.set_js_url(config[CONF_JS_URL]))
def build_flags(config):
return '-DUSE_WEB_SERVER'
BUILD_FLAGS = '-DUSE_WEB_SERVER'