python-aprs-wx/install.sh

185 lines
7.4 KiB
Bash

#!/bin/bash
sudo apt update
sudo apt install python3 -y
if [ -d "/opt/python-wx" ]
then
rm -r /opt/python-wx
fi
mkdir /opt/python-wx
sudo cat > /lib/systemd/system/py-wx1.service <<- "EOF"
[Unit]
Description=Python APRS WX1
After=network.target
[Service]
ExecStart=/usr/bin/python3 /opt/python-wx/wx1.py
WorkingDirectory=/opt/python-wx/
Restart=on-failure
RestartSec=3
[Install]
WantedBy=multi-user.target
EOF
#
sudo cat > /opt/python-wx/wx1.py <<- "EOF"
import socket
import time
import requests
from datetime import datetime, timedelta
callsign = "HP0XXX-13" # Callsign (HP0XXX-13)
password = "12345" # aprspasscode (12345)
latitude = "0823.48N" # DDMM.mmN (0831.27N)
longitude = "08225.91W" # DDDMM.mmW (08021.59W)
comment = "Python APRS WX1" # Beacon comment
simbol_primary = "/" # Primary symbol id (/)
simbol_secundary = "_" # Secondary symbol code (_)
serverHost = "rotate.aprs2.net" # aprs server url cwop.aprs.net / noam.aprs2.net
serverPort = 14580 # aprs server port
every = 10 # Time in minutes to send beacon
api_key = "APIKEY" # Your OpenWeatherMap API key (abcd12345567890)
map_id = "MAP-ID" # Your OpenWeatherMap Map ID (123456)
##############################################################################
#scrip
address = f"{callsign}>APHP04,TCPIP:"
text = "Python APRS WX by HP3ICC"
login = f"user {callsign} pass {password} vers emq-TE1 Python APRS WX 1.4"
mlogin = f"{api_key}"
mid = f"{map_id}"
time.sleep(30)
while True:
try:
# Get weather data from OpenWeatherMap API
url = f"https://api.openweathermap.org/data/2.5/weather?id={mid}&lang=es&units=imperial&appid={mlogin}"
response = requests.get(url)
data = response.json()
if "main" in data and "weather" in data and "wind" in data and "rain" in data:
name = data["name"]
temperature = int(data["main"]["temp"])
temperature = str(temperature).zfill(3)
presure = data["main"]["pressure"]
wind = int(data["wind"]["speed"])
wind = str(wind).zfill(3)
gust = int(data["wind"]["gust"])
gust = str(gust).zfill(3)
deg = int(data["wind"]["deg"])
deg = str(deg).zfill(3)
rain = int(data["rain"]["1h"])
rain = str(rain).zfill(3)
humidity = data["main"]["humidity"]
weather_description = data["weather"][0]["description"]
weather_data = f"{deg}/{wind}g{gust}{temperature}r{rain}p000h{humidity}b{presure}0"
else:
weather_data = "Weather data not available"
current_time_utc = datetime.utcnow().strftime("%d%H%M")
packet = f"{address}@{current_time_utc}z{latitude}{simbol_primary}{longitude}{simbol_secundary}{weather_data}{comment} / Clima en {name}: {weather_description}"
packet2 = f"{address}>{text}"
sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
sock.connect((serverHost, serverPort))
sock.send(f"{login}\n".encode())
sock.send(f"{packet}\n".encode())
sock.send(f"{packet2}\n".encode())
sock.close()
except Exception as e:
print(f"Error al enviar el paquete: {e}")
time.sleep(every * 60)
EOF
######
chmod +x /bin/menu*
##########################
cp /opt/python-wx/wx1.py /opt/python-wx/wx2.py
cp /opt/python-wx/wx1.py /opt/python-wx/wx3.py
cp /opt/python-wx/wx1.py /opt/python-wx/wx4.py
cp /opt/python-wx/wx1.py /opt/python-wx/wx5.py
cp /opt/python-wx/wx1.py /opt/python-wx/wx6.py
cp /opt/python-wx/wx1.py /opt/python-wx/wx7.py
cp /opt/python-wx/wx1.py /opt/python-wx/wx8.py
cp /opt/python-wx/wx1.py /opt/python-wx/wx9.py
cp /opt/python-wx/wx1.py /opt/python-wx/wx10.py
cp /opt/python-wx/wx1.py /opt/python-wx/wx11.py
cp /opt/python-wx/wx1.py /opt/python-wx/wx12.py
sudo sed -i "s/Python APRS WX1/Python APRS WX1/g" /opt/python-wx/wx1.py
sudo sed -i "s/Python APRS WX1/Python APRS WX2/g" /opt/python-wx/wx2.py
sudo sed -i "s/Python APRS WX1/Python APRS WX3/g" /opt/python-wx/wx3.py
sudo sed -i "s/Python APRS WX1/Python APRS WX4/g" /opt/python-wx/wx4.py
sudo sed -i "s/Python APRS WX1/Python APRS WX5/g" /opt/python-wx/wx5.py
sudo sed -i "s/Python APRS WX1/Python APRS WX6/g" /opt/python-wx/wx6.py
sudo sed -i "s/Python APRS WX1/Python APRS WX7/g" /opt/python-wx/wx7.py
sudo sed -i "s/Python APRS WX1/Python APRS WX8/g" /opt/python-wx/wx8.py
sudo sed -i "s/Python APRS WX1/Python APRS WX9/g" /opt/python-wx/wx9.py
sudo sed -i "s/Python APRS WX1/Python APRS WX10/g" /opt/python-wx/wx10.py
sudo sed -i "s/Python APRS WX1/Python APRS WX11/g" /opt/python-wx/wx11.py
sudo sed -i "s/Python APRS WX1/Python APRS WX12/g" /opt/python-wx/wx12.py
cp /lib/systemd/system/py-wx1.service /lib/systemd/system/py-wx2.service
cp /lib/systemd/system/py-wx1.service /lib/systemd/system/py-wx3.service
cp /lib/systemd/system/py-wx1.service /lib/systemd/system/py-wx4.service
cp /lib/systemd/system/py-wx1.service /lib/systemd/system/py-wx5.service
cp /lib/systemd/system/py-wx1.service /lib/systemd/system/py-wx6.service
cp /lib/systemd/system/py-wx1.service /lib/systemd/system/py-wx7.service
cp /lib/systemd/system/py-wx1.service /lib/systemd/system/py-wx8.service
cp /lib/systemd/system/py-wx1.service /lib/systemd/system/py-wx9.service
cp /lib/systemd/system/py-wx1.service /lib/systemd/system/py-wx10.service
cp /lib/systemd/system/py-wx1.service /lib/systemd/system/py-wx11.service
cp /lib/systemd/system/py-wx1.service /lib/systemd/system/py-wx12.service
sudo sed -i "s/WX1/WX2/g" /lib/systemd/system/py-wx2.service
sudo sed -i "s/WX1/WX3/g" /lib/systemd/system/py-wx3.service
sudo sed -i "s/WX1/WX4/g" /lib/systemd/system/py-wx4.service
sudo sed -i "s/WX1/WX5/g" /lib/systemd/system/py-wx5.service
sudo sed -i "s/WX1/WX6/g" /lib/systemd/system/py-wx6.service
sudo sed -i "s/WX1/WX7/g" /lib/systemd/system/py-wx7.service
sudo sed -i "s/WX1/WX8/g" /lib/systemd/system/py-wx8.service
sudo sed -i "s/WX1/WX9/g" /lib/systemd/system/py-wx9.service
sudo sed -i "s/WX1/WX10/g" /lib/systemd/system/py-wx10.service
sudo sed -i "s/WX1/WX11/g" /lib/systemd/system/py-wx11.service
sudo sed -i "s/WX1/WX12/g" /lib/systemd/system/py-wx12.service
sudo sed -i "s/wx1/wx2/g" /lib/systemd/system/py-wx2.service
sudo sed -i "s/wx1/wx3/g" /lib/systemd/system/py-wx3.service
sudo sed -i "s/wx1/wx4/g" /lib/systemd/system/py-wx4.service
sudo sed -i "s/wx1/wx5/g" /lib/systemd/system/py-wx5.service
sudo sed -i "s/wx1/wx6/g" /lib/systemd/system/py-wx6.service
sudo sed -i "s/wx1/wx7/g" /lib/systemd/system/py-wx7.service
sudo sed -i "s/wx1/wx8/g" /lib/systemd/system/py-wx8.service
sudo sed -i "s/wx1/wx9/g" /lib/systemd/system/py-wx9.service
sudo sed -i "s/wx1/wx10/g" /lib/systemd/system/py-wx10.service
sudo sed -i "s/wx1/wx11/g" /lib/systemd/system/py-wx11.service
sudo sed -i "s/wx1/wx12/g" /lib/systemd/system/py-wx12.service
sudo chmod 644 /lib/systemd/system/py-wx1.service
sudo chmod 644 /lib/systemd/system/py-wx2.service
sudo chmod 644 /lib/systemd/system/py-wx3.service
sudo chmod 644 /lib/systemd/system/py-wx4.service
sudo chmod 644 /lib/systemd/system/py-wx5.service
sudo chmod 644 /lib/systemd/system/py-wx6.service
sudo chmod 644 /lib/systemd/system/py-wx7.service
sudo chmod 644 /lib/systemd/system/py-wx8.service
sudo chmod 644 /lib/systemd/system/py-wx9.service
sudo chmod 644 /lib/systemd/system/py-wx10.service
sudo chmod 644 /lib/systemd/system/py-wx11.service
sudo chmod 644 /lib/systemd/system/py-wx12.service
systemctl daemon-reload
chmod +x /opt/python-wx/*