diff --git a/esphome/.gitignore b/esphome/.gitignore new file mode 100644 index 0000000..d8b4157 --- /dev/null +++ b/esphome/.gitignore @@ -0,0 +1,5 @@ +# Gitignore settings for ESPHome +# This is an example and may include too much for your use-case. +# You can modify this file to suit your needs. +/.esphome/ +/secrets.yaml diff --git a/esphome/README.md b/esphome/README.md new file mode 100644 index 0000000..330320d --- /dev/null +++ b/esphome/README.md @@ -0,0 +1,7 @@ +# Installation +OTA Update Shelly Device to tasmota: +https://github.com/arendst/mgos-to-tasmota +In Tasmota make OTA Update to minimal: +http://ota.tasmota.com/tasmota/release/tasmota-minimal.bin.gz +Make ESPHome Configuration in Dashboard: +docker run --rm -p 6052:6052 -e ESPHOME_DASHBOARD_USE_PING=true -v "${PWD}":/config -it ghcr.io/esphome/esphome diff --git a/esphome/bedroom-bulb-1.yaml b/esphome/bedroom-bulb-1.yaml new file mode 100644 index 0000000..411dc64 --- /dev/null +++ b/esphome/bedroom-bulb-1.yaml @@ -0,0 +1,66 @@ +substitutions: + device_name: "bedroom-bulb-1" + friendly_name: "Bedroom Bulb 1" + +esphome: + name: ${device_name} + comment: ${friendly_name} + platform: ESP8266 + board: esp01_1m + on_boot: + then: + - light.turn_on: my_light + +# Enable logging +logger: + +web_server: + port: 80 + +# Enable Home Assistant API +api: + +ota: + platform: esphome + +wifi: + ssid: !secret wifi_ssid + password: !secret wifi_password + fast_connect: true + domain: .cloonar.smart + +captive_portal: + +light: + - platform: rgbw + id: my_light + name: ${friendly_name} + red: pwm_r + green: pwm_g + blue: pwm_b + white: pwm_w + effects: + - random: + - strobe: + - flicker: + +output: + - platform: esp8266_pwm + pin: GPIO13 + frequency: 1000 Hz + id: pwm_r + + - platform: esp8266_pwm + pin: GPIO12 + frequency: 1000 Hz + id: pwm_g + + - platform: esp8266_pwm + pin: GPIO14 + frequency: 1000 Hz + id: pwm_b + + - platform: esp8266_pwm + pin: GPIO5 + frequency: 1000 Hz + id: pwm_w \ No newline at end of file diff --git a/esphome/bedroom-bulb-2.yaml b/esphome/bedroom-bulb-2.yaml new file mode 100644 index 0000000..75a7cd9 --- /dev/null +++ b/esphome/bedroom-bulb-2.yaml @@ -0,0 +1,67 @@ +substitutions: + device_name: "bedroom-bulb-2" + friendly_name: "Bedroom Bulb 2" + +esphome: + name: ${device_name} + comment: ${friendly_name} + platform: ESP8266 + board: esp01_1m + on_boot: + then: + - light.turn_on: my_light + +# Enable logging +logger: + +web_server: + port: 80 + +# Enable Home Assistant API +api: + +ota: + platform: esphome + +wifi: + ssid: !secret wifi_ssid + password: !secret wifi_password + fast_connect: True + domain: .cloonar.smart + + +captive_portal: + +light: + - platform: rgbw + id: my_light + name: ${friendly_name} + red: pwm_r + green: pwm_g + blue: pwm_b + white: pwm_w + effects: + - random: + - strobe: + - flicker: + +output: + - platform: esp8266_pwm + pin: GPIO13 + frequency: 1000 Hz + id: pwm_r + + - platform: esp8266_pwm + pin: GPIO12 + frequency: 1000 Hz + id: pwm_g + + - platform: esp8266_pwm + pin: GPIO14 + frequency: 1000 Hz + id: pwm_b + + - platform: esp8266_pwm + pin: GPIO5 + frequency: 1000 Hz + id: pwm_w \ No newline at end of file diff --git a/esphome/bedroom-bulb-3.yaml b/esphome/bedroom-bulb-3.yaml new file mode 100644 index 0000000..a2c719f --- /dev/null +++ b/esphome/bedroom-bulb-3.yaml @@ -0,0 +1,66 @@ +substitutions: + device_name: "bedroom-bulb-3" + friendly_name: "Bedroom Bulb 3" + +esphome: + name: ${device_name} + comment: ${friendly_name} + platform: ESP8266 + board: esp01_1m + on_boot: + then: + - light.turn_on: my_light + +# Enable logging +logger: + +web_server: + port: 80 + +# Enable Home Assistant API +api: + +ota: + platform: esphome + +wifi: + ssid: !secret wifi_ssid + password: !secret wifi_password + fast_connect: True + domain: .cloonar.smart + +captive_portal: + +light: + - platform: rgbw + id: my_light + name: ${friendly_name} + red: pwm_r + green: pwm_g + blue: pwm_b + white: pwm_w + effects: + - random: + - strobe: + - flicker: + +output: + - platform: esp8266_pwm + pin: GPIO13 + frequency: 1000 Hz + id: pwm_r + + - platform: esp8266_pwm + pin: GPIO12 + frequency: 1000 Hz + id: pwm_g + + - platform: esp8266_pwm + pin: GPIO14 + frequency: 1000 Hz + id: pwm_b + + - platform: esp8266_pwm + pin: GPIO5 + frequency: 1000 Hz + id: pwm_w \ No newline at end of file diff --git a/esphome/bedroom-bulb-4.yaml b/esphome/bedroom-bulb-4.yaml new file mode 100644 index 0000000..5797c81 --- /dev/null +++ b/esphome/bedroom-bulb-4.yaml @@ -0,0 +1,66 @@ +substitutions: + device_name: "bedroom-bulb-4" + friendly_name: "Bedroom Bulb 4" + +esphome: + name: ${device_name} + comment: ${friendly_name} + platform: ESP8266 + board: esp01_1m + on_boot: + then: + - light.turn_on: my_light + +# Enable logging +logger: + +web_server: + port: 80 + +# Enable Home Assistant API +api: + +ota: + platform: esphome + +wifi: + ssid: !secret wifi_ssid + password: !secret wifi_password + fast_connect: True + domain: .cloonar.smart + +captive_portal: + +light: + - platform: rgbw + id: my_light + name: ${friendly_name} + red: pwm_r + green: pwm_g + blue: pwm_b + white: pwm_w + effects: + - random: + - strobe: + - flicker: + +output: + - platform: esp8266_pwm + pin: GPIO13 + frequency: 1000 Hz + id: pwm_r + + - platform: esp8266_pwm + pin: GPIO12 + frequency: 1000 Hz + id: pwm_g + + - platform: esp8266_pwm + pin: GPIO14 + frequency: 1000 Hz + id: pwm_b + + - platform: esp8266_pwm + pin: GPIO5 + frequency: 1000 Hz + id: pwm_w \ No newline at end of file diff --git a/hosts/fw.cloonar.com/modules/avahi.nix b/hosts/fw.cloonar.com/modules/avahi.nix index 9353735..73c1173 100644 --- a/hosts/fw.cloonar.com/modules/avahi.nix +++ b/hosts/fw.cloonar.com/modules/avahi.nix @@ -1,10 +1,16 @@ -{ ... }: { +{ pkgs, ... }: { services.avahi = { enable = true; reflector = true; allowInterfaces = [ + "multimedia" "server" "lan" + "smart" ]; }; + + environment.systemPackages = with pkgs; [ + nssmdns + ]; } diff --git a/hosts/fw.cloonar.com/modules/home-assistant/light.nix b/hosts/fw.cloonar.com/modules/home-assistant/light.nix index 3abe142..68ef290 100644 --- a/hosts/fw.cloonar.com/modules/home-assistant/light.nix +++ b/hosts/fw.cloonar.com/modules/home-assistant/light.nix @@ -150,8 +150,8 @@ entity_id = "light.bedroom_lights"; }; data = { - brightness_pct = 5; - color_temp = 450; + brightness_pct = 15; + rgbw_color = [ 255 126 0 255 ]; }; } ]; diff --git a/hosts/fw.cloonar.com/modules/home-assistant/multimedia.nix b/hosts/fw.cloonar.com/modules/home-assistant/multimedia.nix index 155fd1e..0998159 100644 --- a/hosts/fw.cloonar.com/modules/home-assistant/multimedia.nix +++ b/hosts/fw.cloonar.com/modules/home-assistant/multimedia.nix @@ -4,6 +4,7 @@ "broadlink" "androidtv" "samsungtv" + "apple_tv" ]; services.home-assistant.config = { ios = { @@ -48,7 +49,7 @@ friendly_name = "Any multimedia device on"; device_class = "connectivity"; value_template = '' - {% if is_state('binary_sensor.ps5', 'on') or is_state('binary_sensor.xbox', 'on') or (states('media_player.fire_tv_firetv_living_cloonar_multimedia') != 'off' and states('media_player.fire_tv_firetv_living_cloonar_multimedia') != 'unavailable') or (is_state('binary_sensor.steamdeck', 'on') and (states('sensor.steamdeck_power') | float(default=0) > 5)) %} + {% if (states('media_player.living_room') != 'standby' and states('media_player.living_room') != 'off') or is_state('binary_sensor.ps5', 'on') or is_state('binary_sensor.xbox', 'on') or (states('media_player.fire_tv_firetv_living_cloonar_multimedia') != 'off' and states('media_player.fire_tv_firetv_living_cloonar_multimedia') != 'unavailable') or (is_state('binary_sensor.steamdeck', 'on') and (states('sensor.steamdeck_power') | float(default=0) > 5)) %} on {% else %} off diff --git a/hosts/fw.cloonar.com/modules/home-assistant/shelly.nix b/hosts/fw.cloonar.com/modules/home-assistant/shelly.nix index e656d72..69ce20e 100644 --- a/hosts/fw.cloonar.com/modules/home-assistant/shelly.nix +++ b/hosts/fw.cloonar.com/modules/home-assistant/shelly.nix @@ -7,10 +7,6 @@ let { name = "Living Bulb 4"; id = "485519D94A28"; } { name = "Living Bulb 5"; id = "485519DA6B6A"; } { name = "Living Bulb 6"; id = "485519D9E018"; } - { name = "Bedroom Bulb 1"; id = "485519FBDF20"; } - { name = "Bedroom Bulb 2"; id = "485519FBE171"; } - { name = "Bedroom Bulb 3"; id = "485519FBE377"; } - { name = "Bedroom Bulb 4"; id = "485519FC05C5"; } ]; switches = [ @@ -28,6 +24,7 @@ let in { services.home-assistant.extraComponents = [ "shelly" + "esphome" ]; services.home-assistant.config = {