228 lines
6.6 KiB
Markdown
228 lines
6.6 KiB
Markdown
---
|
|
type: "topic"
|
|
created: "2024-01-06T01:25:36.065Z"
|
|
updated: "2024-01-06T01:25:36.065Z"
|
|
---
|
|
|
|
# Home Assistant
|
|
|
|
```bash
|
|
wsl --export Ubuntu "Ubuntu\Ubuntu-Home-Assistant-001.tar"
|
|
wsl --unregister Ubuntu
|
|
wsl --import Ubuntu-Home-Assistant Ubuntu-Home-Assistant "Ubuntu\Ubuntu-Home-Assistant-001.tar"
|
|
wsl --export Ubuntu-Home-Assistant "Ubuntu\Ubuntu-Home-Assistant-002.tar"
|
|
del "Ubuntu\Ubuntu-Home-Assistant-002.tar"
|
|
```
|
|
|
|
```yaml
|
|
Name: Ubuntu-Home-Assistant
|
|
Command Line: wsl.exe -d Ubuntu-Home-Assistant
|
|
Tab Title: Ubuntu-Home-Assistant
|
|
```
|
|
|
|
```bash
|
|
sudo -i
|
|
apt-get update
|
|
ip a
|
|
lsb_release -a
|
|
apt-get install links unzip nginx git nano ncdu -y
|
|
ncdu
|
|
timedatectl set-timezone America/Phoenix
|
|
timedatectl
|
|
nano /etc/hosts
|
|
nano /etc/nginx/sites-available/default
|
|
echo >/etc/nginx/sites-available/default && nano /etc/nginx/sites-available/default
|
|
```
|
|
|
|
```conf
|
|
server {
|
|
listen 80 default_server;
|
|
listen [::]:80 default_server;
|
|
root /var/www/html;
|
|
index index.html index.htm index.nginx-debian.html;
|
|
server_name _;
|
|
location / {
|
|
try_files $uri $uri/ =404;
|
|
}
|
|
}
|
|
server {
|
|
ssl_certificate 'laundry.phares.myftp.org.crt';
|
|
ssl_certificate_key 'laundry.phares.myftp.org.key';
|
|
listen 443 ssl http2;
|
|
ssl_protocols TLSv1.2 TLSv1.1 TLSv1;
|
|
listen [::]:443 ssl http2;
|
|
server_name laundry.phares.myftp.org;
|
|
location / {
|
|
proxy_set_header Host $host;
|
|
proxy_set_header X-Real-IP $remote_addr;
|
|
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
|
|
proxy_set_header X-Forwarded-Proto $scheme;
|
|
proxy_pass http://localhost:80/;
|
|
proxy_read_timeout 600s;
|
|
proxy_send_timeout 600s;
|
|
}
|
|
}
|
|
server {
|
|
ssl_certificate 'laundry.phares.myftp.org.crt';
|
|
ssl_certificate_key 'laundry.phares.myftp.org.key';
|
|
listen 443 ssl http2;
|
|
ssl_protocols TLSv1.2 TLSv1.1 TLSv1;
|
|
listen [::]:443 ssl http2;
|
|
server_name home-assistant.laundry.phares.myftp.org;
|
|
location / {
|
|
proxy_set_header Host $host;
|
|
proxy_set_header X-Real-IP $remote_addr;
|
|
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
|
|
proxy_set_header X-Forwarded-Proto $scheme;
|
|
proxy_pass http://localhost:9400/;
|
|
proxy_read_timeout 600s;
|
|
proxy_send_timeout 600s;
|
|
}
|
|
}
|
|
```
|
|
|
|
```bash
|
|
nano /home/mike/laundry.phares.myftp.org.conf
|
|
echo >/home/mike/laundry.phares.myftp.org.conf && nano /home/mike/laundry.phares.myftp.org.conf
|
|
```
|
|
|
|
```conf
|
|
[req]
|
|
default_bits = 2048
|
|
default_keyfile = laundry.phares.myftp.org.key
|
|
distinguished_name = req_distinguished_name
|
|
req_extensions = req_ext
|
|
x509_extensions = v3_ca
|
|
|
|
[req_distinguished_name]
|
|
countryName = Country Name (2 letter code)
|
|
countryName_default = US
|
|
stateOrProvinceName = State or Province Name (full name)
|
|
stateOrProvinceName_default = Arizona
|
|
localityName = Locality Name (eg, city)
|
|
localityName_default = Anthem
|
|
organizationName = Organization Name (eg, company)
|
|
organizationName_default = Phares
|
|
organizationalUnitName = organizationalunit
|
|
organizationalUnitName_default = Development
|
|
commonName = Common Name (e.g. server FQDN or YOUR name)
|
|
commonName_default = laundry.phares.myftp.org
|
|
commonName_max = 64
|
|
|
|
[req_ext]
|
|
subjectAltName = @alt_names
|
|
|
|
[v3_ca]
|
|
subjectAltName = @alt_names
|
|
|
|
[alt_names]
|
|
DNS.1 = laundry.phares.myftp.org
|
|
DNS.2 = dashkiosk.laundry.phares.myftp.org
|
|
DNS.3 = gogs.laundry.phares.myftp.org
|
|
DNS.4 = nextcloud.laundry.phares.myftp.org
|
|
DNS.5 = photoprism.laundry.phares.myftp.org
|
|
DNS.6 = pi-hole.laundry.phares.myftp.org
|
|
DNS.7 = syncthing.laundry.phares.myftp.org
|
|
DNS.8 = mike.desktop
|
|
DNS.9 = desktop-h6jg91b
|
|
DNS.10 = localhost
|
|
DNS.11 = 127.0.0.1
|
|
```
|
|
|
|
```bash
|
|
ls /etc/nginx
|
|
openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout /etc/nginx/laundry.phares.myftp.org.key -out /etc/nginx/laundry.phares.myftp.org.crt -config /home/mike/laundry.phares.myftp.org.conf
|
|
ls /etc/nginx
|
|
nginx -t
|
|
systemctl restart nginx
|
|
nginx -s reload
|
|
exit
|
|
exit
|
|
```
|
|
|
|
```bash
|
|
wsl --export Ubuntu-Home-Assistant "Ubuntu\Ubuntu-Home-Assistant-002.tar"
|
|
wsl --unregister Ubuntu-Home-Assistant
|
|
wsl --import Ubuntu-Home-Assistant Ubuntu-Home-Assistant "Ubuntu\Ubuntu-Home-Assistant-002.tar"
|
|
```
|
|
|
|
```bash
|
|
sudo -i
|
|
python3 --version
|
|
apt install software-properties-common
|
|
add-apt-repository ppa:deadsnakes/ppa
|
|
[enter]
|
|
apt update
|
|
apt-get install -y python3 python3-dev python3-venv python3-pip bluez libffi-dev libssl-dev libjpeg-dev zlib1g-dev autoconf build-essential libopenjp2-7 libturbojpeg0-dev tzdata ffmpeg liblapack3 liblapack-dev libatlas-base-dev
|
|
apt install python3.12 -y
|
|
ls /usr/bin/python3*
|
|
update-alternatives --install /usr/bin/python3 python3 /usr/bin/python3.10 1
|
|
update-alternatives --install /usr/bin/python3 python3 /usr/bin/python3.12 2
|
|
update-alternatives --config python3
|
|
[enter]
|
|
python3 --version
|
|
apt install libpython3.12-dev -y
|
|
apt-cache rdepends python3.12
|
|
# apt-get install -y libtiff6
|
|
# apt install python3.10-venv
|
|
# apt-add-repository universe
|
|
# apt-get update
|
|
# apt-get install virtualenv
|
|
# apt install python3.11-venv
|
|
apt install python3.12-venv -y
|
|
# apt install python3.13-venv
|
|
apt-get install libavcodec-dev libavformat-dev libavfilter-dev libavdevice-dev -y
|
|
apt install pkg-config -y
|
|
useradd -rm homeassistant
|
|
mkdir /srv/homeassistant
|
|
chown homeassistant:homeassistant /srv/homeassistant
|
|
passwd homeassistant
|
|
exit
|
|
exit
|
|
```
|
|
|
|
```bash
|
|
wsl --export Ubuntu-Home-Assistant "Ubuntu\Ubuntu-Home-Assistant-003.tar"
|
|
wsl --unregister Ubuntu-Home-Assistant
|
|
wsl --import Ubuntu-Home-Assistant Ubuntu-Home-Assistant "Ubuntu\Ubuntu-Home-Assistant-003.tar"
|
|
```
|
|
|
|
```bash
|
|
sudo -u homeassistant -H -s
|
|
cd /srv/homeassistant
|
|
python3 -m venv .
|
|
source bin/activate
|
|
pip install --upgrade pip
|
|
python3 -m pip install wheel
|
|
pip3 install homeassistant
|
|
pip3 install homeassistant
|
|
pip install av
|
|
pip install ha-av
|
|
exit
|
|
exit
|
|
```
|
|
|
|
```bash
|
|
wsl --export Ubuntu-Home-Assistant "Ubuntu\Ubuntu-Home-Assistant-004.tar"
|
|
wsl --unregister Ubuntu-Home-Assistant
|
|
wsl --import Ubuntu-Home-Assistant Ubuntu-Home-Assistant "Ubuntu\Ubuntu-Home-Assistant-004.tar"
|
|
```
|
|
|
|
```bash
|
|
sudo -u homeassistant -H -s
|
|
cd /srv/homeassistant
|
|
python3 -m venv .
|
|
source bin/activate
|
|
hass
|
|
# You can now reach your installation via the web interface on http://homeassistant.local:8123.
|
|
```
|
|
|
|
```bash
|
|
# https://www.youtube.com/watch?v=O7pC1oI86gg
|
|
# https://tasmota.github.io/docs/About/
|
|
# https://www.youtube.com/watch?v=fgeZ1O6J4jc
|
|
# https://www.youtube.com/watch?v=CYvTLw_Wn6I
|
|
# https://python-kasa.readthedocs.io/en/latest/smartdevice.html
|
|
# https://zigbee.blakadder.com/plugs.html
|
|
```
|