annotate espNode/tasks.py @ 1730:5d7ce02fa8b2

add skaf.yaml
author drewp@bigasterisk.com
date Fri, 30 Jun 2023 22:08:45 -0700
parents 82213d91471c
children 097bfd91187d
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
596
a56bc73d308c espNode code
drewp@bigasterisk.com
parents:
diff changeset
1 from invoke import task
1717
e9540ee0cf73 starting 2022 attempt at esp32cam
drewp@bigasterisk.com
parents: 1716
diff changeset
2 from pathlib import Path
596
a56bc73d308c espNode code
drewp@bigasterisk.com
parents:
diff changeset
3
1701
33747dcf57ea rf_switch_desk update
drewp@bigasterisk.com
parents: 1678
diff changeset
4 port = '/dev/serial/by-id/usb-Silicon_Labs_CP2102_USB_to_UART_Bridge_Controller_0001-if00-port0'
33747dcf57ea rf_switch_desk update
drewp@bigasterisk.com
parents: 1678
diff changeset
5
1717
e9540ee0cf73 starting 2022 attempt at esp32cam
drewp@bigasterisk.com
parents: 1716
diff changeset
6 tag = 'docker.io/esphome/esphome:2022.7.0-dev20220807'
1701
33747dcf57ea rf_switch_desk update
drewp@bigasterisk.com
parents: 1678
diff changeset
7
1717
e9540ee0cf73 starting 2022 attempt at esp32cam
drewp@bigasterisk.com
parents: 1716
diff changeset
8 esphome = (
e9540ee0cf73 starting 2022 attempt at esp32cam
drewp@bigasterisk.com
parents: 1716
diff changeset
9 'docker run --rm ' + #
e9540ee0cf73 starting 2022 attempt at esp32cam
drewp@bigasterisk.com
parents: 1716
diff changeset
10 '-v `pwd`:/config ' + #
e9540ee0cf73 starting 2022 attempt at esp32cam
drewp@bigasterisk.com
parents: 1716
diff changeset
11 '-v /usr/share/fonts:/usr/share/fonts ' + #
e9540ee0cf73 starting 2022 attempt at esp32cam
drewp@bigasterisk.com
parents: 1716
diff changeset
12 '-v /dev:/dev ' + #
e9540ee0cf73 starting 2022 attempt at esp32cam
drewp@bigasterisk.com
parents: 1716
diff changeset
13 '-v /tmp:/tmp ' + #
e9540ee0cf73 starting 2022 attempt at esp32cam
drewp@bigasterisk.com
parents: 1716
diff changeset
14 f'-it {tag}')
e9540ee0cf73 starting 2022 attempt at esp32cam
drewp@bigasterisk.com
parents: 1716
diff changeset
15
800
b311e6ca7bbd use local esphome dev version
drewp@bigasterisk.com
parents: 773
diff changeset
16
b311e6ca7bbd use local esphome dev version
drewp@bigasterisk.com
parents: 773
diff changeset
17 @task
b311e6ca7bbd use local esphome dev version
drewp@bigasterisk.com
parents: 773
diff changeset
18 def get_dev_esphome(ctx):
1717
e9540ee0cf73 starting 2022 attempt at esp32cam
drewp@bigasterisk.com
parents: 1716
diff changeset
19 ctx.run(
e9540ee0cf73 starting 2022 attempt at esp32cam
drewp@bigasterisk.com
parents: 1716
diff changeset
20 f'docker build -t esphome_dev -f docker/Dockerfile https://github.com/MasterTim17/esphome.git#dev'
e9540ee0cf73 starting 2022 attempt at esp32cam
drewp@bigasterisk.com
parents: 1716
diff changeset
21 )
e9540ee0cf73 starting 2022 attempt at esp32cam
drewp@bigasterisk.com
parents: 1716
diff changeset
22
686
438edc93e29e add task to pull new docker image
drewp@bigasterisk.com
parents: 596
diff changeset
23
438edc93e29e add task to pull new docker image
drewp@bigasterisk.com
parents: 596
diff changeset
24 @task
438edc93e29e add task to pull new docker image
drewp@bigasterisk.com
parents: 596
diff changeset
25 def pull_esphome(ctx):
438edc93e29e add task to pull new docker image
drewp@bigasterisk.com
parents: 596
diff changeset
26 ctx.run(f"docker pull {tag}")
438edc93e29e add task to pull new docker image
drewp@bigasterisk.com
parents: 596
diff changeset
27
1717
e9540ee0cf73 starting 2022 attempt at esp32cam
drewp@bigasterisk.com
parents: 1716
diff changeset
28
596
a56bc73d308c espNode code
drewp@bigasterisk.com
parents:
diff changeset
29 @task
a56bc73d308c espNode code
drewp@bigasterisk.com
parents:
diff changeset
30 def program_board_over_usb(ctx, board):
800
b311e6ca7bbd use local esphome dev version
drewp@bigasterisk.com
parents: 773
diff changeset
31 board = board.replace('.yaml', '')
1717
e9540ee0cf73 starting 2022 attempt at esp32cam
drewp@bigasterisk.com
parents: 1716
diff changeset
32 print(
e9540ee0cf73 starting 2022 attempt at esp32cam
drewp@bigasterisk.com
parents: 1716
diff changeset
33 'connect gnd, 3v3, rx/tx per https://randomnerdtutorials.com/esp32-cam-video-streaming-web-server-camera-home-assistant/, '
e9540ee0cf73 starting 2022 attempt at esp32cam
drewp@bigasterisk.com
parents: 1716
diff changeset
34 )
e9540ee0cf73 starting 2022 attempt at esp32cam
drewp@bigasterisk.com
parents: 1716
diff changeset
35 print(
e9540ee0cf73 starting 2022 attempt at esp32cam
drewp@bigasterisk.com
parents: 1716
diff changeset
36 'rts to reset (if possible), dtr to gpio0 per https://github.com/espressif/esptool/wiki/ESP32-Boot-Mode-Selection#automatic-bootloader'
e9540ee0cf73 starting 2022 attempt at esp32cam
drewp@bigasterisk.com
parents: 1716
diff changeset
37 )
e9540ee0cf73 starting 2022 attempt at esp32cam
drewp@bigasterisk.com
parents: 1716
diff changeset
38 ctx.run(f"{esphome} run {board}.yaml --device={port}", pty=True, echo=True)
e9540ee0cf73 starting 2022 attempt at esp32cam
drewp@bigasterisk.com
parents: 1716
diff changeset
39
596
a56bc73d308c espNode code
drewp@bigasterisk.com
parents:
diff changeset
40
a56bc73d308c espNode code
drewp@bigasterisk.com
parents:
diff changeset
41 @task
a56bc73d308c espNode code
drewp@bigasterisk.com
parents:
diff changeset
42 def program_board_over_wifi(ctx, board):
1716
2bed2f68243c older work
drewp@bigasterisk.com
parents: 1701
diff changeset
43 global esphome
800
b311e6ca7bbd use local esphome dev version
drewp@bigasterisk.com
parents: 773
diff changeset
44 board = board.replace('.yaml', '')
1716
2bed2f68243c older work
drewp@bigasterisk.com
parents: 1701
diff changeset
45 if board == 'theater_lcd':
2bed2f68243c older work
drewp@bigasterisk.com
parents: 1701
diff changeset
46 tag = 'esphome_dev'
2bed2f68243c older work
drewp@bigasterisk.com
parents: 1701
diff changeset
47 esphome = 'esphome-local/env/bin/esphome'
2bed2f68243c older work
drewp@bigasterisk.com
parents: 1701
diff changeset
48
800
b311e6ca7bbd use local esphome dev version
drewp@bigasterisk.com
parents: 773
diff changeset
49 ctx.run(f"{esphome} {board}.yaml run", pty=True)
596
a56bc73d308c espNode code
drewp@bigasterisk.com
parents:
diff changeset
50
1716
2bed2f68243c older work
drewp@bigasterisk.com
parents: 1701
diff changeset
51
596
a56bc73d308c espNode code
drewp@bigasterisk.com
parents:
diff changeset
52 @task
a56bc73d308c espNode code
drewp@bigasterisk.com
parents:
diff changeset
53 def monitor_usb(ctx, board):
800
b311e6ca7bbd use local esphome dev version
drewp@bigasterisk.com
parents: 773
diff changeset
54 board = board.replace('.yaml', '')
1717
e9540ee0cf73 starting 2022 attempt at esp32cam
drewp@bigasterisk.com
parents: 1716
diff changeset
55 ctx.run(f"{esphome} logs {board}.yaml --device={port}", pty=True)
e9540ee0cf73 starting 2022 attempt at esp32cam
drewp@bigasterisk.com
parents: 1716
diff changeset
56
686
438edc93e29e add task to pull new docker image
drewp@bigasterisk.com
parents: 596
diff changeset
57
438edc93e29e add task to pull new docker image
drewp@bigasterisk.com
parents: 596
diff changeset
58 # device up?
438edc93e29e add task to pull new docker image
drewp@bigasterisk.com
parents: 596
diff changeset
59 # nmap -Pn -p 3232,6053 10.2.0.21
1717
e9540ee0cf73 starting 2022 attempt at esp32cam
drewp@bigasterisk.com
parents: 1716
diff changeset
60
e9540ee0cf73 starting 2022 attempt at esp32cam
drewp@bigasterisk.com
parents: 1716
diff changeset
61
e9540ee0cf73 starting 2022 attempt at esp32cam
drewp@bigasterisk.com
parents: 1716
diff changeset
62 @task
e9540ee0cf73 starting 2022 attempt at esp32cam
drewp@bigasterisk.com
parents: 1716
diff changeset
63 def program_cam_usb(ctx, name='0'):
e9540ee0cf73 starting 2022 attempt at esp32cam
drewp@bigasterisk.com
parents: 1716
diff changeset
64 idVendor = '1a86'
e9540ee0cf73 starting 2022 attempt at esp32cam
drewp@bigasterisk.com
parents: 1716
diff changeset
65 port = f'/dev/serial/by-id/usb-{idVendor}_USB_Serial-if00-port0'
e9540ee0cf73 starting 2022 attempt at esp32cam
drewp@bigasterisk.com
parents: 1716
diff changeset
66 ctx.run(
e9540ee0cf73 starting 2022 attempt at esp32cam
drewp@bigasterisk.com
parents: 1716
diff changeset
67 f"{esphome} " #
e9540ee0cf73 starting 2022 attempt at esp32cam
drewp@bigasterisk.com
parents: 1716
diff changeset
68 + f"-s camname cam{name}" #
e9540ee0cf73 starting 2022 attempt at esp32cam
drewp@bigasterisk.com
parents: 1716
diff changeset
69 + " run cam.yaml " #
e9540ee0cf73 starting 2022 attempt at esp32cam
drewp@bigasterisk.com
parents: 1716
diff changeset
70 + f'--device={port} ',
e9540ee0cf73 starting 2022 attempt at esp32cam
drewp@bigasterisk.com
parents: 1716
diff changeset
71 pty=True,
e9540ee0cf73 starting 2022 attempt at esp32cam
drewp@bigasterisk.com
parents: 1716
diff changeset
72 echo=True)
e9540ee0cf73 starting 2022 attempt at esp32cam
drewp@bigasterisk.com
parents: 1716
diff changeset
73
e9540ee0cf73 starting 2022 attempt at esp32cam
drewp@bigasterisk.com
parents: 1716
diff changeset
74
e9540ee0cf73 starting 2022 attempt at esp32cam
drewp@bigasterisk.com
parents: 1716
diff changeset
75 # -s k v seemed to have no effect
e9540ee0cf73 starting 2022 attempt at esp32cam
drewp@bigasterisk.com
parents: 1716
diff changeset
76 def config_replace(in_file, out_file, repls):
e9540ee0cf73 starting 2022 attempt at esp32cam
drewp@bigasterisk.com
parents: 1716
diff changeset
77 yaml_text = open(in_file, 'rt').read()
e9540ee0cf73 starting 2022 attempt at esp32cam
drewp@bigasterisk.com
parents: 1716
diff changeset
78 for k, v in repls.items():
e9540ee0cf73 starting 2022 attempt at esp32cam
drewp@bigasterisk.com
parents: 1716
diff changeset
79 yaml_text = yaml_text.replace(k, str(v))
e9540ee0cf73 starting 2022 attempt at esp32cam
drewp@bigasterisk.com
parents: 1716
diff changeset
80 with open(out_file, 'wt') as out:
e9540ee0cf73 starting 2022 attempt at esp32cam
drewp@bigasterisk.com
parents: 1716
diff changeset
81 out.write(yaml_text)
e9540ee0cf73 starting 2022 attempt at esp32cam
drewp@bigasterisk.com
parents: 1716
diff changeset
82
e9540ee0cf73 starting 2022 attempt at esp32cam
drewp@bigasterisk.com
parents: 1716
diff changeset
83
e9540ee0cf73 starting 2022 attempt at esp32cam
drewp@bigasterisk.com
parents: 1716
diff changeset
84 def prep_tmp(ctx, project):
e9540ee0cf73 starting 2022 attempt at esp32cam
drewp@bigasterisk.com
parents: 1716
diff changeset
85 tmp = Path(f'/tmp/esphome_build/{project}')
e9540ee0cf73 starting 2022 attempt at esp32cam
drewp@bigasterisk.com
parents: 1716
diff changeset
86 ctx.run(f'mkdir -p {tmp}')
1718
82213d91471c new cam component with http server
drewp@bigasterisk.com
parents: 1717
diff changeset
87 ctx.run(f'rsync -a component secrets.yaml {tmp}')
1717
e9540ee0cf73 starting 2022 attempt at esp32cam
drewp@bigasterisk.com
parents: 1716
diff changeset
88 return tmp
e9540ee0cf73 starting 2022 attempt at esp32cam
drewp@bigasterisk.com
parents: 1716
diff changeset
89
e9540ee0cf73 starting 2022 attempt at esp32cam
drewp@bigasterisk.com
parents: 1716
diff changeset
90
e9540ee0cf73 starting 2022 attempt at esp32cam
drewp@bigasterisk.com
parents: 1716
diff changeset
91 @task
e9540ee0cf73 starting 2022 attempt at esp32cam
drewp@bigasterisk.com
parents: 1716
diff changeset
92 def program_cam_ota(ctx, name='0'):
e9540ee0cf73 starting 2022 attempt at esp32cam
drewp@bigasterisk.com
parents: 1716
diff changeset
93 tmp = prep_tmp(ctx, 'cam')
e9540ee0cf73 starting 2022 attempt at esp32cam
drewp@bigasterisk.com
parents: 1716
diff changeset
94 tmpyaml = tmp / 'cam.yaml'
e9540ee0cf73 starting 2022 attempt at esp32cam
drewp@bigasterisk.com
parents: 1716
diff changeset
95 config_replace('cam.yaml', tmpyaml, {
e9540ee0cf73 starting 2022 attempt at esp32cam
drewp@bigasterisk.com
parents: 1716
diff changeset
96 '$build_path': tmp,
e9540ee0cf73 starting 2022 attempt at esp32cam
drewp@bigasterisk.com
parents: 1716
diff changeset
97 '$addr': '10.2.0.22',
e9540ee0cf73 starting 2022 attempt at esp32cam
drewp@bigasterisk.com
parents: 1716
diff changeset
98 '$name': f'cam{name}'
e9540ee0cf73 starting 2022 attempt at esp32cam
drewp@bigasterisk.com
parents: 1716
diff changeset
99 })
e9540ee0cf73 starting 2022 attempt at esp32cam
drewp@bigasterisk.com
parents: 1716
diff changeset
100 ctx.run(
e9540ee0cf73 starting 2022 attempt at esp32cam
drewp@bigasterisk.com
parents: 1716
diff changeset
101 f"{esphome} " #
e9540ee0cf73 starting 2022 attempt at esp32cam
drewp@bigasterisk.com
parents: 1716
diff changeset
102 + f"run {tmpyaml} " #
e9540ee0cf73 starting 2022 attempt at esp32cam
drewp@bigasterisk.com
parents: 1716
diff changeset
103 + "--device=OTA --no-logs" #
e9540ee0cf73 starting 2022 attempt at esp32cam
drewp@bigasterisk.com
parents: 1716
diff changeset
104 ,
e9540ee0cf73 starting 2022 attempt at esp32cam
drewp@bigasterisk.com
parents: 1716
diff changeset
105 pty=True,
e9540ee0cf73 starting 2022 attempt at esp32cam
drewp@bigasterisk.com
parents: 1716
diff changeset
106 echo=True)