esphome/tests/test1.yaml
Otto Winter 7c7032c59e
[Huge] Util Refactor, Dashboard Improvements, Hass.io Auth API, Better Validation Errors, Conditions, Custom Platforms, Substitutions (#234)
* Implement custom sensor platform

* Update

* Ethernet

* Lint

* Fix

* Login page

* Rename cookie secret

* Update manifest

* Update cookie check logic

* Favicon

* Fix

* Favicon manifest

* Fix

* Fix

* Fix

* Use hostname

* Message

* Temporary commit for screenshot

* Automatic board selection

* Undo temporary commit

* Update esphomeyaml-edge

* In-dashboard editing and hosting files locally

* Update esphomeyaml-edge

* Better ANSI color escaping

* Message

* Lint

* Download Efficiency

* Fix gitlab

* Fix

* Rename extra_libraries to libraries

* Add example

* Update README.md

* Update README.md

* Update README.md

* HassIO -> Hass.io

* Updates

* Add update available notice

* Update

* Fix substitutions

* Better error message

* Re-do dashboard ANSI colors

* Only include FastLED if user says so

* Autoscroll logs

* Remove old checks

* Use safer RedirectText

* Improvements

* Fix

* Use enviornment variable

* Use http://hassio/host/info

* Fix conditions

* Update platformio versions

* Revert "Use enviornment variable"

This reverts commit 7f038eb5d2.

* Fix

* README update

* Temp

* Better invalid config messages

* Platformio debug

* Improve error messages

* Debug

* Remove debug

* Multi Conf

* Update

* Better paths

* Remove unused

* Fixes

* Lint

* lib_ignore

* Try fix platformio colors

* Fix dashboard scrolling

* Revert

* Lint

* Revert
2018-12-05 21:22:06 +01:00

1050 lines
23 KiB
YAML

esphomeyaml:
name: test1
platform: ESP32
board: nodemcu-32s
# Use this for testing while developing:
# esphomelib_version:
# local: ~/path/to/esphomelib
use_custom_code: false
on_boot:
priority: 150.0
then:
- lambda: >-
ESP_LOGD("main", "ON BOOT!");
on_shutdown:
then:
- lambda: >-
ESP_LOGD("main", "ON SHUTDOWN!");
on_loop:
then:
- lambda: >-
ESP_LOGV("main", "ON LOOP!");
build_path: build/test1
wifi:
ssid: 'MySSID'
password: 'password1'
manual_ip:
static_ip: 192.168.178.230
gateway: 192.168.178.1
subnet: 255.255.255.0
dns1: 1.1.1.1
dns2: 1.2.2.1
hostname: myverylonghostname
domain: .local
reboot_timeout: 120s
power_save_mode: none
mqtt:
broker: '192.168.178.84'
port: 1883
username: 'debug'
password: 'debug'
client_id: someclient
discovery: True
discovery_retain: False
discovery_prefix: discovery
topic_prefix: helloworld
log_topic:
topic: helloworld/hi
level: INFO
birth_message:
will_message:
shutdown_message:
topic: topic/to/send/to
payload: hi
qos: 2
retain: True
keepalive: 60s
reboot_timeout: 60s
on_message:
- topic: my/custom/topic
qos: 0
then:
- lambda: >-
ESP_LOGD("main", "Got message %s", x.c_str());
- topic: livingroom/ota_mode
then:
- deep_sleep.prevent: deep_sleep_1
- topic: livingroom/ota_mode
then:
- deep_sleep.enter: deep_sleep_1
on_json_message:
topic: the/topic
then:
- lambda: |-
int data = x["my_data"];
ESP_LOGD("main", "The data is: %d", data);
- light.turn_on:
id: living_room_lights
transition_length: !lambda |-
int length = 1000;
if (x.containsKey("length"))
length = x["length"];
return length;
effect: !lambda |-
const char *effect = "None";
if (x.containsKey("effect"))
effect = x["effect"];
return effect;
i2c:
sda: 21
scl: 22
scan: True
frequency: 100kHz
setup_priority: -100
spi:
clk_pin: GPIO21
mosi_pin: GPIO22
miso_pin: GPIO23
uart:
tx_pin: GPIO22
rx_pin: GPIO23
baud_rate: 115200
ota:
safe_mode: True
password: 'superlongpasswordthatnoonewillknow'
port: 3286
logger:
baud_rate: 0
level: VERBOSE
logs:
mqtt.component: DEBUG
mqtt.client: ERROR
web_server:
port: 8080
css_url: https://esphomelib.com/_static/webserver-v1.min.css
js_url: https://esphomelib.com/_static/webserver-v1.min.js
power_supply:
id: 'atx_power_supply'
enable_time: 20ms
keep_on_time: 10s
pin:
number: 13
inverted: true
deep_sleep:
run_duration: 20s
run_cycles: 500
sleep_duration: 50s
wakeup_pin: GPIO39
wakeup_pin_mode: INVERT_WAKEUP
id: deep_sleep_1
ads1115:
address: 0x48
dallas:
pin: GPIO23
sensor:
- platform: adc
pin: A0
name: "Living Room Brightness"
update_interval: '1:01'
attenuation: 2.5db
unit_of_measurement: "°C"
icon: "mdi:water-percent"
accuracy_decimals: 5
expire_after: 120s
setup_priority: -100
filters:
- offset: 2.0
- multiply: 1.2
- filter_out: 42.0
- filter_nan:
- sliding_window_moving_average:
window_size: 15
send_every: 15
send_first_at: 15
- exponential_moving_average:
alpha: 0.1
send_every: 15
- throttle: 1s
- heartbeat: 5s
- debounce: 0.1s
- delta: 5.0
- unique:
- or:
- throttle: 1s
- delta: 5.0
- lambda: return x * (9.0/5.0) + 32.0;
on_value:
then:
- lambda: |-
ESP_LOGD("main", "Got value %f", x);
id(my_sensor).publish_state(42.0);
ESP_LOGI("main", "Value of my sensor: %f", id(my_sensor).state);
ESP_LOGI("main", "Raw Value of my sensor: %f", id(my_sensor).state);
on_value_range:
above: 5
below: 10
then:
- lambda: >-
ESP_LOGD("main", "Got value range %f", x);
on_raw_value:
- lambda: >-
ESP_LOGD("main", "Got raw value %f", x);
- logger.log:
level: DEBUG
format: "Got raw value %f"
args: ['x']
- logger.log: "Got raw value NAN"
- mqtt.publish:
topic: some/topic
payload: Hello
qos: 2
retain: True
- platform: ads1115
multiplexer: 'A0_A1'
gain: 1.024
id: my_sensor
filters:
state_topic: hi/me
retain: false
availability:
- platform: bh1750
name: "Living Room Brightness 3"
internal: true
address: 0x23
resolution: 1.0
update_interval: 30s
retain: False
availability:
state_topic: livingroom/custom_state_topic
- platform: bme280
temperature:
name: "Outside Temperature"
oversampling: 16x
pressure:
name: "Outside Pressure"
oversampling: none
humidity:
name: "Outside Humidity"
oversampling: 8x
address: 0x77
iir_filter: 16x
update_interval: 15s
- platform: bme680
temperature:
name: "Outside Temperature"
oversampling: 16x
pressure:
name: "Outside Pressure"
humidity:
name: "Outside Humidity"
gas_resistance:
name: "Outside Gas Sensor"
address: 0x77
heater:
temperature: 320
duration: 150ms
update_interval: 15s
- platform: bmp085
temperature:
name: "Outside Temperature"
pressure:
name: "Outside Pressure"
filters:
- lambda: >-
return x / powf(1.0 - (x / 44330.0), 5.255);
update_interval: 15s
- platform: bmp280
temperature:
name: "Outside Temperature"
oversampling: 16x
pressure:
name: "Outside Pressure"
address: 0x77
update_interval: 15s
iir_filter: 16x
- platform: dallas
address: 0x1C0000031EDD2A28
name: "Living Room Temperature"
resolution: 9
- platform: dallas
index: 1
name: "Living Room Temperature 2"
- platform: dht
pin: GPIO26
temperature:
name: "Living Room Temperature 3"
humidity:
name: "Living Room Humidity 3"
model: AM2302
update_interval: 15s
- platform: dht12
temperature:
name: "Living Room Temperature 4"
humidity:
name: "Living Room Humidity 4"
update_interval: 15s
- platform: duty_cycle
pin: GPIO25
name: Duty Cycle Sensor
- platform: esp32_hall
name: "ESP32 Hall Sensor"
update_interval: 15s
- platform: hdc1080
temperature:
name: "Living Room Temperature 5"
humidity:
name: "Living Room Pressure 5"
update_interval: 15s
- platform: hlw8012
sel_pin: 5
cf_pin: 14
cf1_pin: 13
current:
name: "HLW8012 Current"
voltage:
name: "HLW8012 Voltage"
power:
name: "HLW8012 Power"
id: hlw8012_power
update_interval: 15s
current_resistor: 0.001 ohm
voltage_divider: 2351
change_mode_every: 16
- platform: total_daily_energy
power_id: hlw8012_power
name: "HLW8012 Total Daily Energy"
- platform: hmc5883l
address: 0x68
field_strength_x:
name: "HMC5883L Field Strength X"
field_strength_y:
name: "HMC5883L Field Strength Y"
field_strength_z:
name: "HMC5883L Field Strength Z"
heading:
name: "HMC5883L Heading"
range: 130uT
update_interval: 15s
- platform: hx711
name: "HX711 Value"
dout_pin: GPIO23
clk_pin: GPIO24
gain: 128
update_interval: 15s
- platform: ina219
address: 0x40
shunt_resistance: 0.1 ohm
current:
name: "INA219 Current"
power:
name: "INA219 Power"
bus_voltage:
name: "INA219 Bus Voltage"
shunt_voltage:
name: "INA219 Shunt Voltage"
max_voltage: 32.0V
max_current: 3.2A
update_interval: 15s
- platform: ina3221
address: 0x40
channel_1:
shunt_resistance: 0.1 ohm
current:
name: "INA3221 Channel 1 Current"
power:
name: "INA3221 Channel 1 Power"
bus_voltage:
name: "INA3221 Channel 1 Bus Voltage"
shunt_voltage:
name: "INA3221 Channel 1 Shunt Voltage"
update_interval: 15s
- platform: htu21d
temperature:
name: "Living Room Temperature 6"
humidity:
name: "Living Room Humidity 6"
update_interval: 15s
- platform: max6675
name: "Living Room Temperature"
cs_pin: GPIO23
update_interval: 15s
- platform: mhz19
co2:
name: "MH-Z19 CO2 Value"
temperature:
name: "MH-Z19 Temperature"
update_interval: 15s
- platform: mpu6050
address: 0x68
accel_x:
name: "MPU6050 Accel X"
accel_y:
name: "MPU6050 Accel Y"
accel_z:
name: "MPU6050 Accel z"
gyro_x:
name: "MPU6050 Gyro X"
gyro_y:
name: "MPU6050 Gyro Y"
gyro_z:
name: "MPU6050 Gyro z"
temperature:
name: "MPU6050 Temperature"
- platform: ms5611
temperature:
name: "Outside Temperature"
pressure:
name: "Outside Pressure"
address: 0x77
update_interval: 15s
- platform: pulse_counter
name: "Pulse Counter"
pin: GPIO12
count_mode:
rising_edge: INCREMENT
falling_edge: DECREMENT
internal_filter: 13us
update_interval: 15s
- platform: rotary_encoder
name: "Rotary Encoder"
pin_a: GPIO23
pin_b: GPIO24
pin_reset: GPIO25
filters:
- or:
- debounce: 0.1s
- delta: 10
- platform: sht3xd
temperature:
name: "Living Room Temperature 8"
humidity:
name: "Living Room Humidity 8"
address: 0x44
update_interval: 15s
- platform: template
name: "Template Sensor"
lambda: >-
if (id(ultrasonic_sensor1).state > 1) {
return 42.0;
} else {
return {};
}
update_interval: 15s
- platform: tsl2561
name: "TSL2561 Ambient Light"
address: 0x39
update_interval: 15s
is_cs_package: true
integration_time: 402ms
gain: 16x
- platform: ultrasonic
trigger_pin: GPIO24
echo_pin:
number: GPIO23
inverted: true
name: "Ultrasonic Sensor"
timeout_meter: 5.5
id: ultrasonic_sensor1
- platform: uptime
name: Uptime Sensor
- platform: wifi_signal
name: "WiFi Signal Sensor"
update_interval: 15s
esp32_touch:
setup_mode: False
iir_filter: 10ms
sleep_duration: 27ms
measurement_duration: 8ms
low_voltage_reference: 0.5V
high_voltage_reference: 2.7V
voltage_attenuation: 1.5V
binary_sensor:
- platform: gpio
pin: GPIO9
name: "Living Room Window"
device_class: window
filters:
- invert:
- delayed_on: 40ms
- delayed_off: 40ms
- heartbeat: 1s
on_press:
then:
- lambda: >-
ESP_LOGD("main", "Pressed");
on_release:
then:
- lambda: >-
ESP_LOGD("main", "Released");
on_click:
- min_length: 50ms
max_length: 350ms
then:
- lambda: >-
ESP_LOGD("main", "Clicked");
- then:
- lambda: >-
ESP_LOGD("main", "Clicked");
on_double_click:
- min_length: 50ms
max_length: 350ms
then:
- lambda: >-
ESP_LOGD("main", "Double Clicked");
- then:
- lambda: >-
ESP_LOGD("main", "Double Clicked");
on_multi_click:
- timing:
- ON for at most 1s
- OFF for at most 1s
- ON for at most 1s
- OFF for at least 0.2s
then:
- logger.log:
format: "Multi Clicked TWO"
level: warn
- timing:
- OFF for 1s to 2s
- ON for 1s to 2s
- OFF for at least 0.5s
then:
- logger.log:
format: "Multi Clicked LONG SINGLE"
level: warn
- timing:
- ON for at most 1s
- OFF for at least 0.5s
then:
- logger.log:
format: "Multi Clicked SINGLE"
level: warn
id: binary_sensor1
- platform: gpio
pin:
number: GPIO9
mode: INPUT_PULLUP
name: "Living Room Window 2"
- platform: status
name: "Living Room Status"
- platform: esp32_touch
name: "ESP32 Touch Pad GPIO27"
pin: GPIO27
threshold: 1000
- platform: nextion
page_id: 0
component_id: 2
name: "Nextion Component 2 Touch"
- platform: template
name: "Garage Door Open"
lambda: >-
if (isnan(id(my_sensor).state)) {
// isnan checks if the ultrasonic sensor echo
// has timed out, resulting in a NaN (not a number) state
// in that case, return {} to indicate that we don't know.
return {};
} else if (id(my_sensor).state > 30) {
// Garage Door is open.
return true;
} else {
// Garage Door is closed.
return false;
}
- platform: pn532
uid: 74-10-37-94
name: "PN532 NFC Tag"
- platform: rdm6300
uid: 7616525
name: "RDM6300 NFC Tag"
- platform: gpio
name: "PCF binary sensor"
pin:
pcf8574: pcf8574_hub
number: 1
mode: INPUT
inverted: True
pca9685:
frequency: 500
address: 0x0
my9231:
data_pin: GPIO12
clock_pin: GPIO14
num_channels: 6
num_chips: 2
bit_depth: 16
output:
- platform: gpio
pin: GPIO26
id: gpio_26
power_supply: atx_power_supply
inverted: False
- platform: ledc
pin: 19
id: gpio_19
frequency: 1500Hz
bit_depth: 8
channel: 14
max_power: 0.5
- platform: pca9685
id: pca_0
channel: 0
- platform: pca9685
id: pca_1
channel: 1
- platform: pca9685
id: pca_2
channel: 2
- platform: pca9685
id: pca_3
channel: 3
- platform: pca9685
id: pca_4
channel: 4
- platform: pca9685
id: pca_5
channel: 5
- platform: pca9685
id: pca_6
channel: 6
- platform: pca9685
id: pca_7
channel: 7
- platform: gpio
id: id2
pin:
pcf8574: pcf8574_hub
number: 0
mode: OUTPUT
inverted: False
- platform: my9231
id: my_0
channel: 0
- platform: my9231
id: my_1
channel: 1
- platform: my9231
id: my_2
channel: 2
- platform: my9231
id: my_3
channel: 3
- platform: my9231
id: my_4
channel: 4
- platform: my9231
id: my_5
channel: 5
light:
- platform: binary
name: "Desk Lamp"
output: gpio_26
effects:
- strobe:
- strobe:
name: "My Strobe"
colors:
- state: True
duration: 250ms
- state: False
duration: 250ms
- platform: monochromatic
name: "Kitchen Lights"
id: kitchen
output: gpio_19
gamma_correct: 2.8
default_transition_length: 2s
effects:
- strobe:
- flicker:
- flicker:
name: "My Flicker"
alpha: 98%
intensity: 1.5%
- lambda:
name: My Custom Effect
update_interval: 1s
lambda: |-
static int state = 0;
state += 1;
if (state == 4)
state = 0;
- platform: rgb
name: "Living Room Lights"
id: living_room_lights
red: pca_0
green: pca_1
blue: pca_2
- platform: rgbw
name: "Living Room Lights 2"
red: pca_3
green: pca_4
blue: pca_5
white: pca_6
- platform: rgbww
name: "Living Room Lights 2"
red: pca_3
green: pca_4
blue: pca_5
cold_white: pca_6
warm_white: pca_6
cold_white_color_temperature: 153 mireds
warm_white_color_temperature: 500 mireds
- platform: cwww
name: "Living Room Lights 2"
cold_white: pca_6
warm_white: pca_6
cold_white_color_temperature: 153 mireds
warm_white_color_temperature: 500 mireds
- platform: fastled_clockless
chipset: WS2811
pin: GPIO23
num_leds: 60
rgb_order: BRG
max_refresh_rate: 20ms
power_supply: atx_power_supply
color_correct: [75%, 100%, 50%]
name: "FastLED WS2811 Light"
effects:
- fastled_color_wipe:
- fastled_color_wipe:
name: Color Wipe Effect With Custom Values
colors:
- red: 100%
green: 100%
blue: 100%
num_leds: 1
- red: 0%
green: 0%
blue: 0%
num_leds: 1
add_led_interval: 100ms
reverse: False
- fastled_scan:
- fastled_scan:
name: Scan Effect With Custom Values
move_interval: 100ms
- fastled_twinkle:
- fastled_twinkle:
name: Twinkle Effect With Custom Values
twinkle_probability: 5%
progress_interval: 4ms
- fastled_random_twinkle:
- fastled_random_twinkle:
name: Random Twinkle Effect With Custom Values
twinkle_probability: 5%
progress_interval: 32ms
- fastled_fireworks:
- fastled_fireworks:
name: Fireworks Effect With Custom Values
update_interval: 32ms
spark_probability: 10%
use_random_color: false
fade_out_rate: 120
- fastled_flicker:
- fastled_flicker:
name: Flicker Effect With Custom Values
update_interval: 16ms
intensity: 5%
- platform: fastled_spi
chipset: WS2801
data_pin: GPIO23
clock_pin: GPIO22
num_leds: 60
rgb_order: BRG
name: "FastLED SPI Light"
remote_transmitter:
- pin: 32
switch:
- platform: gpio
pin: GPIO25
name: "Living Room Dehumidifier"
icon: "mdi:restart"
inverted: True
command_topic: custom_command_topic
- platform: remote_transmitter
name: "Panasonic TV Off"
nec:
address: 0x4242
command: 0x8484
repeat: 25
- platform: remote_transmitter
name: "Panasonic TV Off"
lg:
data: 4294967295
nbits: 28
repeat: 25
- platform: remote_transmitter
name: "Panasonic TV Off"
samsung:
data: 0xABCDEF
repeat: 25
- platform: remote_transmitter
name: "Panasonic TV Off"
sony:
data: 0xABCDEF
nbits: 12
repeat: 25
- platform: remote_transmitter
name: "Panasonic TV Off"
panasonic:
address: 0x4004
command: 0x1000BCD
repeat: 25
- platform: remote_transmitter
name: "Panasonic TV Off"
rc_switch_raw:
code: '001010011001111101011011'
protocol: 1
repeat: 25
- platform: remote_transmitter
name: "Panasonic TV Off"
rc_switch_type_a:
group: '11001'
device: '01000'
state: True
protocol:
pulse_length: 175
sync: [1, 31]
zero: [1, 3]
one: [3, 1]
inverted: False
repeat: 25
- platform: remote_transmitter
name: "Panasonic TV Off"
rc_switch_type_b:
address: 4
channel: 2
state: True
- platform: remote_transmitter
name: "Panasonic TV Off"
rc_switch_type_c:
family: 'a'
group: 1
device: 2
state: True
- platform: remote_transmitter
name: "Panasonic TV Off"
id: living_room_lights_on
rc_switch_type_d:
group: 'a'
device: 2
state: True
- platform: remote_transmitter
name: "Panasonic TV Off"
id: living_room_lights_off
raw:
carrier_frequency: 35kHz
data:
- 1000
- -1000
- platform: template
name: Living Room Lights
optimistic: True
turn_on_action:
- switch.turn_on: living_room_lights_on
- output.set_level:
id: gpio_19
level: 50%
- output.set_level:
id: gpio_19
level: !lambda 'return 0.5;'
turn_off_action:
- switch.turn_on: living_room_lights_off
restore_state: False
- platform: restart
name: "Living Room Restart"
- platform: shutdown
name: "Living Room Shutdown"
- platform: output
name: "Generic Output"
output: pca_6
- platform: template
name: "Template Switch"
id: my_switch
lambda: |-
if (id(binary_sensor1).state) {
return true;
} else {
return {};
}
id(my_switch).publish_state(false);
id(my_switch).publish_state(true);
if (id(my_switch).state) {
// Switch is ON, do something here
id(my_switch).turn_off();
id(my_switch).turn_on();
} else {
// Switch is OFF, do something else here
}
optimistic: true
restore_state: True
- platform: uart
name: "UART String Output"
data: 'DataToSend'
- platform: uart
name: "UART Bytes Output"
data: [0xDE, 0xAD, 0xBE, 0xEF]
- platform: template
optimistic: true
name: Stepper Switch
turn_on_action:
- stepper.set_target:
id: my_stepper
target: !lambda |-
static int32_t i = 0;
i += 1000;
if (i > 5000) {
i = -5000;
}
return i;
fan:
- platform: binary
output: gpio_26
name: "Living Room Fan 1"
- platform: speed
output: pca_6
name: "Living Room Fan 2"
speed:
low: 0.45
medium: 0.75
high: 1.0
display:
- platform: lcd_gpio
dimensions: 18x4
data_pins:
- GPIO19
- GPIO20
- GPIO21
- GPIO22
enable_pin: GPIO23
rs_pin: GPIO24
lambda: |-
it.print("Hello World!");
- platform: lcd_pcf8574
dimensions: 18x4
address: 0x3F
lambda: |-
it.print("Hello World!");
- platform: max7219
cs_pin: GPIO23
num_chips: 1
lambda: |-
it.print("01234567");
- platform: nextion
lambda: |-
it.set_component_value("gauge", 50);
it.set_component_text("textview", "Hello World!");
- platform: ssd1306_i2c
model: "SSD1306 128x64"
reset_pin: GPIO23
address: 0x3C
lambda: |-
it.rectangle(0, 0, it.get_width(), it.get_height());
- platform: ssd1306_spi
model: "SSD1306 128x64"
cs_pin: GPIO23
dc_pin: GPIO23
reset_pin: GPIO23
lambda: |-
it.rectangle(0, 0, it.get_width(), it.get_height());
- platform: waveshare_epaper
cs_pin: GPIO23
dc_pin: GPIO23
busy_pin: GPIO23
reset_pin: GPIO23
model: 2.90in
full_update_every: 30
lambda: |-
it.rectangle(0, 0, it.get_width(), it.get_height());
remote_receiver:
pin: GPIO32
dump: all
status_led:
pin: GPIO2
pn532:
cs_pin: GPIO23
update_interval: 1s
on_tag:
- lambda: |-
ESP_LOGD("main", "Found tag %s", x.c_str());
- mqtt.publish:
topic: the/topic
payload: !lambda 'return x;'
rdm6300:
time:
- platform: sntp
id: sntp_time
servers:
- 0.pool.ntp.org
- 1.pool.ntp.org
- 2.pool.ntp.org
on_time:
cron: '/30 0-30,30/5 * ? JAN-DEC MON,SAT-SUN,TUE-FRI'
then:
- lambda: 'ESP_LOGD("main", "time");'
cover:
- platform: template
name: "Template Cover"
lambda: >-
if (id(binary_sensor1).state) {
return cover::COVER_OPEN;
} else {
return {};
}
optimistic: true
debug:
pcf8574:
- id: 'pcf8574_hub'
address: 0x21
pcf8575: False
stepper:
- platform: a4988
id: my_stepper
step_pin: GPIO23
dir_pin: GPIO24
sleep_pin: GPIO25
max_speed: 250 steps/s
acceleration: 100 steps/s^2
deceleration: 200 steps/s^2
globals:
- id: glob_int
type: int
restore_value: yes
initial_value: '0'
- id: glob_float
type: float
restore_value: yes
initial_value: '0.0f'
- id: glob_bool
type: bool
restore_value: no
initial_value: 'true'
- id: glob_string
type: std::string
restore_value: no
# initial_value: ""