Skip to content

Commit 12c150a

Browse files
committed
setup for buster - wip
1 parent 6b0009e commit 12c150a

File tree

4 files changed

+16
-115
lines changed

4 files changed

+16
-115
lines changed

configuration.py

Lines changed: 0 additions & 11 deletions
This file was deleted.

mq.py

Lines changed: 11 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,6 @@
11
import glob
22
import sqlite3
33
import time
4-
import os
5-
from datetime import datetime
6-
7-
import jsonpickle
8-
9-
from configuration import OmnipyConfiguration
104
from podcomm.pdm import Pdm, PdmLock
115
from podcomm.pod import Pod
126
from podcomm.pr_rileylink import RileyLink
@@ -29,11 +23,7 @@ def __init__(self):
2923
self.logger.info("mq operator is starting")
3024

3125
with open("settings.json", "r") as stream:
32-
lines = stream.read()
33-
txt = ""
34-
for line in lines:
35-
txt = txt + line
36-
self.configuration = jsonpickle.decode(txt)
26+
self.settings = json.load(stream)
3727
self.client = mqtt.Client(client_id=self.configuration.mqtt_clientid, protocol=mqtt.MQTTv311)
3828
self.client.on_connect = self.on_connect
3929
self.client.on_disconnect = self.on_disconnect
@@ -77,8 +67,8 @@ def run(self):
7767
connected = False
7868
while not connected:
7969
try:
80-
self.client.connect(self.configuration.mqtt_host,
81-
self.configuration.mqtt_port, clean_start=mqtt.MQTT_CLEAN_START_FIRST_ONLY)
70+
self.client.connect(self.settings["mqtt_host"],
71+
self.settings["mqtt_port"], clean_start=mqtt.MQTT_CLEAN_START_FIRST_ONLY)
8272
connected = True
8373
except:
8474
time.sleep(30)
@@ -87,14 +77,14 @@ def run(self):
8777

8878
def on_connect(self, client: mqtt.Client, userdata, flags, rc):
8979
self.send_msg("Well hello there")
90-
client.subscribe(self.configuration.mqtt_command_topic, qos=2)
91-
client.subscribe(self.configuration.mqtt_sync_request_topic, qos=1)
80+
client.subscribe(self.settings["mqtt_command_topic"], qos=2)
81+
client.subscribe(self.settings["mqtt_sync_request_topic"], qos=1)
9282
self.ntp_update()
9383

9484
def on_message(self, client, userdata, message: mqtt.MQTTMessage):
9585
try:
9686
cmd_str = message.payload.decode()
97-
if message.topic == self.configuration.mqtt_command_topic:
87+
if message.topic == self.settings["mqtt_command_topic"]:
9888
cmd_split = cmd_str.split(' ')
9989
if cmd_split[0] == "temp":
10090
temp_rate = self.fix_decimal(cmd_split[1])
@@ -115,7 +105,7 @@ def on_message(self, client, userdata, message: mqtt.MQTTMessage):
115105
os.system('sudo shutdown -r now')
116106
else:
117107
self.send_msg("lol what?")
118-
elif message.topic == self.configuration.mqtt_sync_request_topic:
108+
elif message.topic == self.settings["mqtt_sync_request_topic"]:
119109
if cmd_str == "latest":
120110
self.send_result(self.i_pod)
121111
else:
@@ -291,12 +281,13 @@ def send_result(self, pod):
291281
msg = pod.GetString()
292282
if pod.pod_id is None:
293283
return
294-
self.client.publish(self.configuration.mqtt_json_topic,
284+
self.client.publish(self.settings["mqtt_json_topic"],
295285
payload=msg, qos=1)
286+
self.client.publish(self.settings["mqtt_status_topic"], payload=msg, qos=1, retain=True)
296287

297288
def send_msg(self, msg):
298289
self.logger.info(msg)
299-
self.client.publish(self.configuration.mqtt_response_topic,
290+
self.client.publish(self.settings["mqtt_response_topic"],
300291
payload=msg, qos=1)
301292

302293
def ntp_update(self):
@@ -334,7 +325,7 @@ def fill_request(self, pod_id, req_ids):
334325
js["last_command_db_id"] = row[0]
335326
js["last_command_db_ts"] = row[1]
336327

337-
self.client.publish(self.configuration.mqtt_json_topic,
328+
self.client.publish(self.settings["mqtt_json_topic"],
338329
payload=json.dumps(js), qos=0)
339330
cursor.close()
340331

requirements.txt

Lines changed: 0 additions & 36 deletions
Original file line numberDiff line numberDiff line change
@@ -1,36 +0,0 @@
1-
appdirs==1.4.4
2-
asn1crypto==1.3.0
3-
certifi==2020.6.20
4-
cffi==1.14.0
5-
chardet==3.0.4
6-
cryptography==2.9.2
7-
distlib==0.3.1
8-
distro==1.5.0
9-
entrypoints==0.3
10-
filelock==3.0.12
11-
Flask==1.1.2
12-
idna==2.10
13-
importlib-metadata==1.7.0
14-
jeepney==0.4.3
15-
jsonpickle==1.4.1
16-
Mako==1.1.3
17-
Markdown==3.2.2
18-
MarkupSafe==1.1.1
19-
paho-mqtt==1.5.0
20-
pycairo==1.19.1
21-
pycparser==2.20
22-
pycrypto==2.6.1
23-
Pygments==2.6.1
24-
PyGObject==3.36.1
25-
pyxdg==0.26
26-
PyYAML==5.3.1
27-
requests==2.24.0
28-
SecretStorage==3.1.2
29-
setuptools==49.2.0
30-
simplejson==3.17.2
31-
six==1.15.0
32-
ssh-import-id==5.10
33-
urllib3==1.25.9
34-
virtualenv==20.0.27
35-
zipp==1.2.0
36-
rpi-gpio==0.7.0

scripts/image/setup.sh

Lines changed: 5 additions & 48 deletions
Original file line numberDiff line numberDiff line change
@@ -25,55 +25,18 @@ sudo apt install -y screen git python3 python3-pip vim jq bluez-tools libglib2.0
2525
bluez-tools python3-pip python3-venv gobject-introspection libgirepository1.0-dev libcairo2-dev expect build-essential \
2626
libdbus-1-dev libudev-dev libical-dev libreadline-dev rpi-update
2727

28-
29-
30-
# sudo apt install -y hostapd dnsmasq
31-
# sudo systemctl disable hostapd
32-
# sudo systemctl unmask hostapd
33-
# sudo systemctl disable dnsmasq
34-
# sudo systemctl enable hostapd
35-
# sudo systemctl enable dnsmasq
36-
# sudo systemctl start hostapd
37-
# sudo systemctl stop hostapd
38-
# sudo systemctl stop dnsmasq
39-
# sudo cp /home/pi/omnipy/scripts/image/default.dnsmasq /etc/default/dnsmasq
40-
# sudo cp /home/pi/omnipy/scripts/image/default.hostapd /etc/default/hostapd
41-
# sudo cp /home/pi/omnipy/scripts/image/hostapd.conf /etc/hostapd/
42-
# sudo cp /home/pi/omnipy/scripts/image/dnsmasq.conf /etc/dnsmasq.d/
43-
# sudo cp /home/pi/omnipy/scripts/image/dhcpcd.conf /etc/
44-
4528
git config --global user.email "omnipy@balya.net"
4629
git config --global user.name "Omnipy Setup"
4730
git clone https://github.com/winemug/omnipy.git
48-
#switch to dev
4931
git clone https://github.com/winemug/bluepy.git
50-
sudo cp /home/pi/omnipy/scripts/image/rc.local /etc/
51-
52-
53-
#sudo /bin/rm /boot/.firmware_revision
54-
#sudo cp /home/pi/omnipy/scripts/image/rpiupdate.sh /usr/bin/rpiupdate
55-
#sudo git clone https://github.com/Hexxeh/rpi-firmware.git /root/.rpi-firmware
56-
#sudo ROOT_PATH=/ BOOT_PATH=/boot SKIP_DOWNLOAD=0 SKIP_REPODELETE=1 SKIP_BACKUP=1 UPDATE_SELF=0 RPI_REBOOT=1 BRANCH=next rpi-update 502a515156eebbfd3cc199de8f38a975c321f20d
57-
#reboot
58-
#wget https://github.com/Hexxeh/rpi-firmware/archive/master.zip
59-
#unzip master.zip
60-
#sudo mv rpi-firmware-master /root/.rpi-firmware
6132

33+
mkdir -p /home/pi/omnipy/data
34+
rm /home/pi/omnipy/data/key
35+
cp /home/pi/omnipy/scripts/recovery.key /home/pi/omnipy/data/key
6236

63-
#https://raspberrypi.stackexchange.com/questions/66540/installing-bluez-5-44-onto-raspbian
64-
#wget https://mirrors.edge.kernel.org/pub/linux/bluetooth/bluez-5.50.tar.gz
65-
#tar xzf bluez-5.50.tar.gz
66-
#cd bluez-5.50
67-
#./configure --prefix=/usr --mandir=/usr/share/man --sysconfdir=/etc --localstatedir=/var --disable-cups --disable-a2dp --disable-avrcp --disable-hid --disable-hog --enable-experimental
68-
#make -j4
69-
#sudo make install
37+
### omnipy-base image end
7038

71-
#cd /usr/lib/bluetooth/
72-
#sudo mv bluetoothd bluetoothd.old
73-
#sudo mv obexd obexd.old
74-
#sudo ln -s /usr/libexec/bluetooth/bluetoothd /usr/lib/bluetooth/bluetoothd
75-
#sudo ln -s /usr/libexec/bluetooth/obexd /usr/lib/bluetooth/obexd
76-
#sudo systemctl daemon-reload
39+
sudo cp /home/pi/omnipy/scripts/image/rc.local /etc/
7740

7841
sudo pip3 install simplejson Flask cryptography requests
7942

@@ -94,12 +57,6 @@ sudo find /home/pi -name bluepy-helper -exec setcap 'cap_net_raw,cap_net_admin+e
9457

9558
sudo apt autoremove
9659

97-
98-
99-
mkdir -p /home/pi/omnipy/data
100-
rm /home/pi/omnipy/data/key
101-
cp /home/pi/omnipy/scripts/recovery.key /home/pi/omnipy/data/key
102-
10360
sudo cp /home/pi/omnipy/scripts/omnipy.service /etc/systemd/system/
10461
sudo cp /home/pi/omnipy/scripts/omnipy-beacon.service /etc/systemd/system/
10562
sudo cp /home/pi/omnipy/scripts/omnipy-pan.service /etc/systemd/system/

0 commit comments

Comments
 (0)