A single source of truth for the renovated backyard: every piece of gear traced to its receipt, organized by zone, plus a three-phase roadmap from "use what you have" to fully automated. Two projectors compared, and a one-tap Movie Night build for Home Assistant.
Reconciled from Amazon, the Govee Store, Woot, Walmart, and MorningSave order history. Prices reflect what you paid where known.
Both are budget units that look their best after dark — but they're not interchangeable. Here's where each one earns its keep.
| Spec | ELEPHAS W1K | Roconia 1080p |
|---|---|---|
| Tier | Primary | Secondary / spare |
| Price | $216.49 (Woot) | $75.76 (MorningSave) |
| Resolution | 1080p-class, 4K input | Entry 1080p |
| Brightness | Higher | Lower |
| Best screen size | 100"–120"+ | ~60"–100" |
| Best environment | Outdoor, after dark | Dark indoor room |
| Portability | Less portable | Grab-and-go |
| Movie Night automation | Yes — the anchor | Not needed |
A real sequence: get what you own working first, then add cheap high-impact upgrades, then take on the sophisticated DIY builds.
One trigger sets the whole scene. Built around the gear you already own; only four parts to add.
# ---------- SCENE: dim Govee for movie ----------
scene:
- name: Backyard Movie Dim
entities:
light.govee_outdoor_strip:
state: "on"
brightness_pct: 5
rgb_color: [255, 170, 90] # warm amber glow
light.govee_deck_lights:
state: "off"
# ---------- SCRIPT: Movie Night ON ----------
script:
movie_night:
alias: Movie Night
sequence:
- service: switch.turn_on # mains power to the ELEPHAS
target: { entity_id: switch.projector_plug }
- delay: "00:00:25" # let it boot
- service: remote.send_command # IR via Broadlink/ESPHome
target: { entity_id: remote.backyard_ir }
data: { device: elephas_w1k, command: power_on }
- delay: "00:00:03"
- service: remote.send_command # select the right input
target: { entity_id: remote.backyard_ir }
data: { device: elephas_w1k, command: source_hdmi1 }
- service: switch.turn_on # screen DOWN (Shelly dry-contact)
target: { entity_id: switch.screen_trigger }
- service: scene.turn_on
target: { entity_id: scene.backyard_movie_dim }
- service: media_player.turn_on
target: { entity_id: media_player.sonos_move_2 }
- service: media_player.volume_set
target: { entity_id: media_player.sonos_move_2 }
data: { volume_level: 0.45 }
- service: media_player.turn_on # wake the Fire TV
target: { entity_id: media_player.fire_tv_backyard }
# ---------- SCRIPT: Movie Night OFF ----------
movie_night_off:
alias: Movie Night Off
sequence:
- service: remote.send_command
target: { entity_id: remote.backyard_ir }
data: { device: elephas_w1k, command: power_off }
- delay: "00:00:02"
- service: remote.send_command # budget units often need 2x to confirm
target: { entity_id: remote.backyard_ir }
data: { device: elephas_w1k, command: power_off }
- service: switch.turn_off # screen UP
target: { entity_id: switch.screen_trigger }
- delay: "00:00:30" # fan cooldown before cutting power
- service: switch.turn_off
target: { entity_id: switch.projector_plug }
- service: scene.turn_on # back to normal evening lighting
target: { entity_id: scene.backyard_evening }
- service: media_player.media_pause
target: { entity_id: media_player.sonos_move_2 }
# ---------- AUTOMATION: Govee button -> Movie Night ----------
automation:
- alias: Govee Button Movie Night
trigger:
- platform: state
entity_id: event.govee_smart_button
attribute: event_type
to: single_press
action:
- service: script.turn_on
target: { entity_id: script.movie_night }
The EVAJOY frame pool sits on the new turf — a few habits keep both the pool and the turf in good shape.
A ground cloth or foam tiles between liner and turf: infill granules and blade tips can abrade or puncture the liner, and the metal feet can tear the backing. A hard, level surface — patio, pavers, or plywood — is best of all.
Within about an inch of level, or the frame overloads on the low side — a genuine blowout risk, not just cosmetics. Check before filling and again once it's full, since the base can settle a hair.
Sitting on turf in Plano heat traps water and blocks airflow, so you get mildew and odor within a couple weeks. Nudge it to a new spot every week or two to let the area dry, or rinse and air it out at season's end.
Under that weight all summer the pile mats down in a rectangle and may not fully bounce back. Rotate its location, or keep it on a non-turf area, if you want the turf pristine.
Don't dump 400+ gallons on the base in one shot — it can saturate and erode the sub-base. Run the discharge to a drain, the street, or the lawn, and let the chlorine dissipate a day or two if it's heading toward plants. Splashed water on the turf itself is harmless; just hose it down.
Your turf installer's warranty likely excludes pool or heavy-object damage — worth a glance. And emptying or securely covering the pool when it's not in use handles both the mosquito/standing-water issue and safety with the little ones.