From f06e49c20fd378e415f29e373cedf609a5f0b2d5 Mon Sep 17 00:00:00 2001
From: j1nx
Date: Tue, 5 Jan 2021 15:46:30 +0100
Subject: [PATCH] Bump wifi skill
---
.../skills/skill-balena-wifi-setup/__init__.py | 13 +++++++++++++
.../skills/skill-balena-wifi-setup/ui/prompt.qml | 3 ++-
2 files changed, 15 insertions(+), 1 deletion(-)
diff --git a/buildroot-external/rootfs-overlay/opt/mycroft/skills/skill-balena-wifi-setup/__init__.py b/buildroot-external/rootfs-overlay/opt/mycroft/skills/skill-balena-wifi-setup/__init__.py
index 9a2da1dc..758f3cfd 100644
--- a/buildroot-external/rootfs-overlay/opt/mycroft/skills/skill-balena-wifi-setup/__init__.py
+++ b/buildroot-external/rootfs-overlay/opt/mycroft/skills/skill-balena-wifi-setup/__init__.py
@@ -16,10 +16,13 @@ class WifiConnect(MycroftSkill):
# TODO skill settings
self.ssid = "OVOS"
self.pswd = None
+ self.grace_period = 45
self.time_between_checks = 30 # seconds
self.wifi_command = "sudo /usr/local/sbin/wifi-connect --portal-ssid {ssid}"
if self.pswd:
self.wifi_command += " --portal-passphrase {pswd}"
+ if "color" not in self.settings:
+ self.settings["color"] = "#FF0000"
def initialize(self):
self.make_priority()
@@ -58,6 +61,12 @@ class WifiConnect(MycroftSkill):
def _watchdog(self):
self.monitoring = True
+ output = subprocess.check_output("nmcli connection show | grep wifi",
+ shell=True).decode("utf-8")
+ if output.strip():
+ self.log.info("Detected previously configured wifi, starting "
+ "grace period to allow it to connect")
+ sleep(self.grace_period)
while self.monitoring:
if self.in_setup:
sleep(1) # let setup do it's thing
@@ -203,6 +212,7 @@ class WifiConnect(MycroftSkill):
self.gui["phone_image"] = "1_phone_connect-to-ap.png"
self.gui["prompt"] = "Connect to the \nWifi network"
self.gui["highlight"] = self.ssid
+ self.gui["color"] = self.settings["color"]
self.gui.show_page("prompt.qml")
# allow GUI to linger around for a bit, will block the wifi setup loop
sleep(2)
@@ -214,6 +224,7 @@ class WifiConnect(MycroftSkill):
self.gui["phone_image"] = "3_phone_choose-wifi.png"
self.gui["prompt"] = "Choose the \nWifi network to \nconnect your \ndevice"
self.gui["highlight"] = ""
+ self.gui["color"] = self.settings["color"]
self.gui.show_page("prompt.qml")
# allow GUI to linger around for a bit, will block the wifi setup loop
sleep(2)
@@ -275,3 +286,5 @@ class WifiConnect(MycroftSkill):
def create_skill():
return WifiConnect()
+
+
diff --git a/buildroot-external/rootfs-overlay/opt/mycroft/skills/skill-balena-wifi-setup/ui/prompt.qml b/buildroot-external/rootfs-overlay/opt/mycroft/skills/skill-balena-wifi-setup/ui/prompt.qml
index 0b65cdd5..7efb05ba 100644
--- a/buildroot-external/rootfs-overlay/opt/mycroft/skills/skill-balena-wifi-setup/ui/prompt.qml
+++ b/buildroot-external/rootfs-overlay/opt/mycroft/skills/skill-balena-wifi-setup/ui/prompt.qml
@@ -28,6 +28,7 @@ Mycroft.ProportionalDelegate {
property var phone: sessionData.phone_image
property var prompt: sessionData.prompt
property var highlight: sessionData.highlight
+ property var color: sessionData.color
Row {
spacing: spacingUnit
@@ -70,7 +71,7 @@ Mycroft.ProportionalDelegate {
font.weight: Font.Bold
font.pixelSize: 36
visible: !content.visible
- color: "#22a7f0"
+ color: root.color
text: highlight
}
}