![]() |
In my first post regarding my Python adventure, I shared how I wanted to use python coding in the shack. As my readers know I am an avid CW contester and before a contest begins I have 5 programs that need to be launched. The issue is if I launch them out of order or if one program has an issue things get all screwed up, and I have to start all over again. In doing so, most of the time I need to go into some programs and reconnect some com ports and clear lots of error messages. My first Python project will be one double-click on a desktop icon that will get all my contest stuff up and running smoothly in the right order.
The approach I am using is to write python code to start each individual program. Then save those in a file. This will get my whistle wet with python coding, both with success and some head scratching. At this point I have coded out most of my programs so they start. Once that is fully completed, it will be grouping them all together into one process.
In a nutshell, here is the plan:
- Turn on a Wi-Fi plug which powers on my power supply and Pi4B power supply
- Start my VSPE virtual com port program and minimize it.
- Start my Wn4icom program which also starts my Icom 7610 radio.
- Start my N1MM contest software.
- Then finally Firefox will start, open Reverse Beacon Network, log me in, set up search for my call and set it to refresh my call sign spots every 10 minutes.
Lets take a fast look at the python coding for the WiFi plug.
import asyncio
from kasa import SmartPlug
async def main():
plug = SmartPlug("10.0.0.71") # Replace with your plug's IP address
await plug.update()
await plug.turn_on()
print("Plug turned on"
asyncio.run(main())
For the Kasa smart WiFi plug by TP link to work I had to first download into python the kasa library. I opened up python and entered the code below...well actually cut and paste.
pip install python-kasa
Now below in a nut shell is what the code is all about for the Kasa WiFi plug to turn on.
1. Python loads the needed modules. (asyncio and SmartPlug)
2. Program defines async functions or in English connecting to the wifi plug could take time and this allows things not to freeze if the process takes time.
So now modules are loaded and it knows some actions could take time.
3. Now asyncio.run(main()) runs and this is what happens.
Smart plug is created for IP address 10.0.071
The plugs state is defined (on or off)
The plug is turned on via network command
A message printed in python code window "plug turned on"
Program closes.
In closing I am not by any means a pythonista regarding code and I am sure many who are can poke holes in the coding or what I left out regarding what to explain. This is my first attempt at this game and I was actually shocked that it worked. BUT your input will and always is welcomed.
Next post is about the learning curve, hiccups and added lines of code for smoothness and reliable start up.

No comments:
Post a Comment