WXScheduler

Update: WXScheduler 2.9.0 is available. The 2.9.0 installer is here.

WXScheduler is a program that allows WiRES-X nodes to automatically switch to a Room or Node at a predetermined date and time. It’s written in Python, but we now have a Windows installer which does not require the installation of Python. 

Description

WXScheduler is a program that allows your WiRES-X node to be connected to another Room or Node at a predetermined day of week, hour and minute in the specified timezone. If your browser balks downloading WXscheduler-v290-Install.exe and you cannot override the warning, then rename the xxxxx.crdownload file using File Explorer or CMD. NOTE: Recent Windows Security updates may rightly so quarantine WXscheduler-v290-Install.exe. Detecting it as a Trojan. Well that is correct only on the basis that it will install another EXE file You can override this by going into Windows Security –> Protection History and find the most recent “threat” and click the Restore link. Finally this especially occurs if you are using Windows’ OneDrive. Which I highly recommend that you do not use! WXscheduler is written in Python, converted into a Windows EXE, and delivered as an installable Windows application for Windows-7 or higher. Which means the User no longer has to install Python and library packages to run WXscheduler.pyw. Additional information about WXscheduler can be found in the installation folder: WXsched-info.txt WXsched-license.txt WXsched-Python.txt WXsched-updates.txt WXscheduler.pyw (source code) for those who still want to run it as Python program. All I ask is that you pass along any improvements to w9lbr@arrl.net for the benefit of the amateur radio community.

The 2.9.0 update changes:
-Address varying CPU speeds and their impact on the automation

-Fixes the problem when AccHistory.log contains garbage in a location string, causing a non recoverable exception.  Now the corrupt string is displayed in place of the 6 character GridSquare string.

The old 2.6.1 installer is available here. The Github repository is here.

If you experience problems, please use the Fusion Technical Net to report them (preferred), via Github issues, or email.

Revision History:

WXScheduler was written by Bill, W9LBR. It has been packaged as an .exe with a Windows installer by Chris K9EQ. In addition, the following changes have been made.

-2025-09-15 Address varying CPU speeds and their impact on the automation

Fixes the problem when AccHistory.log contains garbage in a location string, causing a non recoverable exception.  Now the corrupt string is displayed in place of the 6 character GridSquare string.

– 2023-02-12 2.6.1a Clicking the ‘x’ button on the scheduler menu no longer causes the program to crash

– 2023-01-10 2.5.1 Removed radioID error messages from the log (there were too many of them and they didn’t add value)
Added an icon for the program

The installer creates a WXScheduler directory under the WIRESXA directory where the Yaesu software lives. It installs the following files:
– Readme.txt, this text
– WXScheduler.pyw, the Python source file
– WXScheduler.ico, the icon file
– WXScheduler.exe, the executable
– Uninstal.exe, the program to uninstall WXScheduler

The uninstaller removes these files and the directory. It does not remove the .json
configuration file one directory above.

The packaged version displays the GUI without a shell console. If you want the console as well,
rename the file to *.py instead of *.pyw. You’ll then need to open up a shell (command prompt)
and launch with a 32-bit Python interpreter as in: “C:\python32 WXSheduler.py”.
The source code is available at https://github.com/K9EQ/WXScheduler.
Also see HamOperator.com for more information about WXScheduler.

Note that the WXScheduler is either stored in the \OneDrive\Documents\WIRESXA folder, if it exists, or in the user’s Documents\WIRESXA folder. So if you can’t find it in your WIRESXA folder, you may have OneDrive so look there.

 

WXscheduler v2.5 updates:
– Schedule settings now require a Timezone parameter.
– Compensation for Daylight Savings Time is now automatic on a per timezone basis
– Load Python Timezone package using Windows Command Prompt:
pip install pytz
– WXscheduler.cfg is now more portable and user editable
– User’s HOME path is now resolved at run time and no longer saved in WXscheduler.cfg
– JSON data fields are now saved in pretty mode
– When WXscheduler-v2.5 detects an existing WXscheduler.cfg without timezone data fields,
the user will be prompted to set their local timezone value and all existing events will
be updated with the local timezone value.
– WXscheduler’s main window:
– Scheduled events are displayed in chronological order
– When the main window is moved, its new position is remembered. And all sub-windows
will be opened in the same position. This replaces PySimpleGUI’s default of centering
window within the display.
– [Add Event] and [Delete Event] buttons have been replaced with the [Scheduler] button that
when clicked provides a new window with buttons: [New] [Delete] [Update] [Cancel]

WXscheduler v2.4 updates:
– Additional exception debug information
– Changed main window title from “Wires-X Scheduler” to “WXscheduler (v…)”

WXscheduler v2.3 update:
At startup determines whether Microsoft OneDrive is active or not and locates
the Documents/WIRESXA and user/Desktop folders accordingly.

WXscheduler v2.2 updates:
At startup verifies:
– Wires-X.exe is accessable at its standard location
– /Users/????/Documents/WIRESXA folder is accessable (where WXscheduler.cfg is stored)

WXscheduler v2.1 updates:
Better displays exception information
Shows expected WIRESXA pathname to last heard data file

WXscheduler v2.0 update adds:
Display Last Heard information that the Wires-X application updates once a minute.
If available, Lat/Lon displayed as 6-character Grid Square.

Wxscheduler v1.3 updates:
Last Heard information now correctly displays the newer Yaesu models
(i.e. FT5-D, FTM-200, and FTM-500)
Desktop\Wires-X_Last_Heard.html contains hypertext encoded callsigns
that perform a QRZ.com callsign lookup.

Prerequisites (versions below are what was tested on):

Windows PC (win7 and higher)
Wires-x App (Ver-1.550)
Python 3 (32-bit) because Wires-X App uses the win32 UI
site-packages: PySimpleGUI, pywinauto, pytz

Installing Python:

Recommend going to https://www.python.org/downloads/windows/
to find a Python release that matches Windows on your PC.

After installing Python, use a CMD window to load site-packages:
– pip install pywinauto PySimpleGui pytz

Installing WXscheduler.pyw:

Copy WXscheduler.pyw to your Desktop

Double click on the WXscheduler.pyw icon to launch the program.

Hint: To see any startup or run time issues:
– Open a CMD window
– Copy WXscheduler.pyw WXscheduler.py
– WXscheduler.py

 




Customizing WiRES-X

In this post we discuss how the operation of WiRES-X can be customized through the use of the Windows Registry.

Okay, here’s a bit of a WiRES-X secret. Many of the settings which cannot normally be changed, can be changed. These include the call sign, location, etc. In fact, it is possible to use an HRI-200 with one node number with a different node number. This is necessary should one be running a room and need to switch to a different server located elsewhere.
 
Here’s an example that we have used. Room #21493 is FusionTech. This HRI-200 belongs to Pete, AD0MI, now located in Idaho. However the server we’re using is located near San Diego and has a number of 21811. If you check, the callsign is not AD0MI as registered with Yaesu, but K9EQ. Being able to do this is a necessity for popular rooms that cannot tolerate a room being down because an HRI-200 is being sent in for repair.
 
This data is stored in the Windows Registry. In the Windows search bar, type in the text “regedit”. The Registry Editor will open. This is where Windows and applications store a lot of information such as window location and size, settings, preferences, file locations, etc. Be very careful when using regedit as any changes you make are immediately effective and there is no undo. One can really mess a computer up with regedit!
 
In Regedit, press CNTL-F or use Edit->Find. Enter the search term “YAESUMUSEN” and deselect everything except “Keys”. Wait as it searches. The registry is very, very large and Microsoft’s search function is not very efficient. 
 
Expand the WIRESXA folder. These folders contain all of the operating parameters of the WiRES-X software. Click on “USER_INF”.
 In the folder you will see the key “callsign” and the value of whatever callsign you’re using.
 
To change an item, stop the WiRES-X software. Double click on the key whose value you wish to change. Type in the new value then click “OK”. Restart the WiRES-X software. If you changed the callsign, you’ll see that the callsign has changed.
 
In this folder you will also find items like the HRI-200 serial number, room number, and node number. If you change this information to match a different HRI-200, the software will then take up the identity of that HRI-200. Thus you can swap server locations or HRI-200s without changing the room number. Note that the node and room numbers appear under other folders and these must be changed as well.
 
Not all of the values are obvious as to what they mean but probably contain values we wish we could change. The DATA_COM folder has some interesting values in it. It would be interesting to perform experiments just to see what all of these things do.
 
I should note that in our long use of this product, we have identified many strange bugs. One common one is that there is no outgoing traffic even though incoming traffic is fine and everything looks like it is working. Usually restarting the software solves the problem, but not always. In another case transmissions from a YSF bridge were blocked but everything else worked. Fixing this took three months. It was necessary to uninstall the software, delete any residual configuration files, AND delete all the data in the registry. It was then necessary to reinstall the software and repeat the authentication process and re-entering all of the parameters manually before it would work again. So if you have a problem you’ve never been able to figure out……
 
Yaesu’s list server contains some of the information in the registry. In some cases it’s only updated when the software is registered (callsign, node number, etc.) and some of it is updated every time the software starts (city, state, location data, etc.). In this last category the workaround is to run a script that updates the registry just before WiRES-X is started.
 
If you find this stuff interesting, please stop by our FusionTech net which is Monday, 7:30 PM Central in the FusionTech Room / YSF 21493. We like talking about the technical nature of our toys. We can also be found on HamOperator.com.