substitutions: devicename: og-az-us-room esphome: name: ${devicename} platform: ESP8266 board: nodemcuv2 on_boot: then: # - rtttl.play: 'MissionImp:d=16,o=6,b=95:32d,32d#,32d,32d#,32d,32d#,32d,32d#,32d,32d,32d#,32e,32f,32f#,32g,g,8p,g,8p,a#,p,c7,p,g,8p,g,8p,f,p,f#,p,g,8p,g,8p,a#,p,c7,p,g,8p,g,8p,f,p,f#,p,a#,g,2d,32p,a#,g,2c#,32p,a#,g,2c,a#5,8c,2p,32p,a#5,g5,2f#,32p,a#5,g5,2f,32p,a#5,g5,2e,d#,8d' # - rtttl.play: 'mario:d=4,o=5,b=100:16e6,16e6,32p,8e6,16c6,8e6,8g6,8p,8g,8p,8c6,16p,8g,16p,8e,16p,8a,8b,16a#,8a,16g.,16e6,16g6,8a6,16f6,8g6,8e6,16c6,16d6,8b,16p,8c6,16p,8g,16p,8e,16p,8a,8b,16a#,8a,16g.,16e6,16g6,8a6,16f6,8g6,8e6,16c6,16d6,8b,8p,16g6,16f#6,16f6,16d#6,16p,16e6,16p,16g#,16a,16c6,16p,16a,16c6,16d6,8p,16g6,16f#6,16f6,16d#6,16p,16e6,16p,16c7,16p,16c7,16c7,p,16g6,16f#6,16f6,16d#6,16p,16e6,16p,16g#,16a,16c6,16p,16a,16c6,16d6,8p,16d#6,8p,16d6,8p,16c6' # - rtttl.play: 'back:d=4,o=6,b=200:4g4,4a#5,4d#5,4a#4,4a#5,4g4,4a#5,4d#5,4a#5,4d#6,4a#4,32g4,4g6,1a#.6,2d7,2g.6,2f.6,4g6,1a#.6,2d7,2g6,4c7,2a#.6,4g6,1a#.6,2d7,2g.6,1f.6,2g.6,2a#.6,2d7,2c.7,2a#.6,4g6,1a#.6,2d7,2g.6,2f.6,4g6,1a#.6,2d7,' - rtttl.play: 'BackToTheFuture:d=4,o=5,b=160:p,8c.,16p,g,16p,16c.6,16p,a#.,16p,16a,16p,16g,16p,8a,16p,8g,16p,8f,16p,1g.,1p,g.,16p,c.,16p,2f#.,16p,32g.,32p,32a.,32p,8g,32p,8e,32p,8c,32p,f#,16p,32g.,32p,32a.,32p,8g.,32p,8d.,32p,8g.,32p,8d.6,32p,d6,16p,c#6,16p,32b.,32p,32c#.6,32p,2d6' # - rtttl.play: 'PlayedAl:d=4,o=5,b=355:8g#,p,g#,8p,8f,2g#,8p,8g#,p,g#,8p,8f,g#.,f,8g#,g,g,8p,8d#,2g,8p,8g,p,g,8p,8d#,g.,d#,8g,d#,d#,8p,8c,2d#,8p,8d#,p,d#,8p,8c,d#.,c,8d#,f,c#6,8p,8f,2c#6,8p,8f,p,c#6,8p,8f,c6,8p,a#,8g#,g#,g#,8p,8f,2g#,8p,8g#,p,g#,8p,8f,g#.' # - rtttl.play: 'Ghostbus:d=16,o=5,b=112:g,g,8b,8g,8a,4f.,g,g,g,g,8f,4g.,g,g,8b,8g,8a,4f.,g,g,g,g,8f,8a,8g,4d.,g,g,8b,8g,8a,4f.,g,g,g,g,8f,4g.'; # Enable logging logger: # Enable Home Assistant API api: services: - service: play_rtttl variables: song_str: string then: - rtttl.play: rtttl: !lambda 'return song_str;' - service: write_tag_random then: - lambda: |- static const char alphanum[] = "0123456789abcdef"; std::string uri = "//www.home-assistant.io/tag/"; for (int i = 0; i < 8; i++) uri += alphanum[random_uint32() % (sizeof(alphanum) - 1)]; uri += "-"; for (int j = 0; j < 3; j++) { for (int i = 0; i < 4; i++) uri += alphanum[random_uint32() % (sizeof(alphanum) - 1)]; uri += "-"; } for (int i = 0; i < 12; i++) uri += alphanum[random_uint32() % (sizeof(alphanum) - 1)]; auto message = new nfc::NdefMessage(); message->add_uri_record(uri); ESP_LOGD("tagreader", "Writing payload: %s", uri.c_str()); id(pn532_board).write_mode(message); - service: write_tag_id variables: tag_id: string then: - lambda: |- auto message = new nfc::NdefMessage(); std::string uri = "//www.home-assistant.io/tag/"; uri += tag_id; message->add_uri_record(uri); id(pn532_board).write_mode(message); - service: clean_tag then: - lambda: 'id(pn532_board).clean_mode();' - service: cancel_writing then: - lambda: 'id(pn532_board).read_mode();' ota: password: "37c297f04462d9e0bba70543ebbfa7ae" wifi: ssid: !secret wifi_ssid password: !secret wifi_password manual_ip: static_ip: 192.168.1.95 gateway: 192.168.1.1 subnet: 255.255.255.0 # Enable fallback hotspot (captive portal) in case wifi connection fails ap: ssid: "${devicename}" password: "DSFKr3I1aBXy" captive_portal: # Example configuration entry light: - platform: neopixelbus id: neopixel name: "NeoPixel Light" type: RGB variant: WS2812 pin: RX num_leds: 12 internal: true - platform: partition name: "Status LED 01" segments: # Use first 10 LEDs from the light with ID light1 - id: neopixel from: 0 to: 0 - platform: partition name: "Status LED 02" segments: # Use first 10 LEDs from the light with ID light1 - id: neopixel from: 1 to: 1 - platform: partition name: "Status LED 03" segments: # Use first 10 LEDs from the light with ID light1 - id: neopixel from: 2 to: 2 - platform: partition name: "Status LED 04" segments: # Use first 10 LEDs from the light with ID light1 - id: neopixel from: 3 to: 3 - platform: partition name: "Status LED 05" segments: # Use first 10 LEDs from the light with ID light1 - id: neopixel from: 4 to: 4 - platform: partition name: "Status LED 06" segments: # Use first 10 LEDs from the light with ID light1 - id: neopixel from: 5 to: 5 - platform: partition name: "Status LED 07" segments: # Use first 10 LEDs from the light with ID light1 - id: neopixel from: 6 to: 6 - platform: partition name: "Status LED 08" segments: # Use first 10 LEDs from the light with ID light1 - id: neopixel from: 7 to: 7 - platform: partition name: "Status LED 09" segments: # Use first 10 LEDs from the light with ID light1 - id: neopixel from: 8 to: 8 - platform: partition name: "Status LED 10" segments: # Use first 10 LEDs from the light with ID light1 - id: neopixel from: 9 to: 9 - platform: partition name: "Status LED 11" segments: # Use first 10 LEDs from the light with ID light1 - id: neopixel from: 10 to: 10 - platform: partition name: "Status LED 12" segments: # Use first 10 LEDs from the light with ID light1 - id: neopixel from: 11 to: 11 #RFID - PN532 # Reset Pin D7 # SDA D5 # SCL D6 # # schau mal bei og-wz-us-tag # abweichend port D1 / D2 i2c: sda: D5 scl: D6 scan: true id: bus_a pn532_i2c: update_interval: 1s id: pn532_board on_tag: then: - homeassistant.tag_scanned: !lambda | if (!tag.has_ndef_message()) { ESP_LOGD("tagreader", "No NDEF"); return x; } auto message = tag.get_ndef_message(); auto records = message->get_records(); for (auto &record : records) { std::string payload = record->get_payload(); size_t pos = payload.find("//www.home-assistant.io/tag/"); if (pos != std::string::npos) { return payload.substr(pos + 34); } } ESP_LOGD("tagreader", "Bad NDEF, fallback to uid"); return x; binary_sensor: - platform: gpio pin: number: D1 mode: INPUT_PULLUP name: "${devicename} Radar Sensor" device_class: motion - platform: status name: "${devicename} Status" switch: - platform: restart name: "${devicename} Neustart" sensor: - platform: wifi_signal name: "${devicename} Wi-Fi Signal" update_interval: 60s - platform: uptime name: "${devicename} Uptime" update_interval: 60s # Buzzer D6 output: - platform: esp8266_pwm pin: D2 frequency: 1000 Hz id: rtttl_out rtttl: output: rtttl_out on_finished_playback: - logger.log: 'Song ended!'