view espNode/tasks.py @ 1716:2bed2f68243c

older work
author drewp@bigasterisk.com
date Sun, 07 Aug 2022 02:25:40 -0700
parents 33747dcf57ea
children e9540ee0cf73
line wrap: on
line source

from invoke import task

port = '/dev/serial/by-id/usb-Silicon_Labs_CP2102_USB_to_UART_Bridge_Controller_0001-if00-port0'

tag = 'esphome/esphome'

esphome = f'docker run --rm -v `pwd`:/config -v /usr/share/fonts:/usr/share/fonts -it {tag}'
esphomeUsb = esphome.replace('--rm', f'--rm --device={port}')
# on dash for lcd code for theater display:
#tag = 'esphome_dev'
#esphome = '/home/drewp/Downloads/esphome/env/bin/esphome'

@task
def get_dev_esphome(ctx):
    ctx.run(f'docker build -t esphome_dev -f docker/Dockerfile https://github.com/MasterTim17/esphome.git#dev')

@task
def pull_esphome(ctx):
    ctx.run(f"docker pull {tag}")

@task
def program_board_over_usb(ctx, board):
    board = board.replace('.yaml', '')
    print('connect gnd, 3v3, rx/tx per https://randomnerdtutorials.com/esp32-cam-video-streaming-web-server-camera-home-assistant/, ')
    print('rts to reset (if possible), dtr to gpio0 per https://github.com/espressif/esptool/wiki/ESP32-Boot-Mode-Selection#automatic-bootloader')
    ctx.run(f"{esphomeUsb} run {board}.yaml --device={port}", pty=True, echo=True)

@task
def program_board_over_wifi(ctx, board):
    global esphome
    board = board.replace('.yaml', '')
    if board == 'theater_lcd':
        tag = 'esphome_dev'
        esphome = 'esphome-local/env/bin/esphome'

    ctx.run(f"{esphome} {board}.yaml run", pty=True)


@task
def monitor_usb(ctx, board):
    board = board.replace('.yaml', '')
    ctx.run(f"{esphomeUsb} logs {board}.yaml --device={port}", pty=True)

# device up?
#  nmap -Pn -p 3232,6053 10.2.0.21