Skip to main content

HamQSL smart home integration, free and open source

HamQSL integration for Gladys Assistant

HF and VHF radio propagation for hams: solar flux, K index, band conditions, by N0NBH (HamQSL).

HF and VHF radio propagation in Gladys, for radio amateurs: the solar-terrestrial data and the band conditions that Paul Herrman, N0NBH, publishes on hamqsl.com — the figures of the famous "solar banner" you see on so many ham websites.

What you get​

  • A "HF propagation (HamQSL)" device: solar flux (SFI), sunspot number, K and A indices, X-ray class, solar wind speed, Bz, signal noise, geomagnetic field, the condition of each HF band group by day and by night (80-40 m, 30-20 m, 17-15 m, 12-10 m: Poor, Fair or Good), VHF aurora and sporadic E (Es) openings, and the time of the last N0NBH update.
  • A dashboard widget, the band table: the main indices as tiles, then every band by day and by night with a coloured dot.
  • Three scene triggers: a band becomes Good, a geomagnetic storm, an M or X class solar flare.
  • One scene action: the propagation bulletin in one text, to send by message or read aloud.

Nothing to buy and no account: the feed is public. The integration only reads it.

Requirements​

  • Gladys Assistant 5.1.0 or later (widgets, scene triggers and actions).
  • Internet access from Gladys to www.hamqsl.com (HTTPS).

The integration is installed from GitHub: Integrations → Install from GitHub, address https://github.com/guim31/gladys-hamqsl.

Configuration​

SettingDefaultWhat it does
Refresh interval1 hourHow often the feed is read: 30 minutes, 1, 2 or 3 hours. N0NBH updates it about once an hour and asks not to read it more often than every 30 minutes.
Language of the textsFrenchNames of the features (at their creation) and texts sent to the scenes and the device (geomagnetic field, bulletin).

Save, then open the Discover tab and create the device. Its values arrive at once.

The feature names are frozen when the device is created: change the language before creating it, or delete and create the device again.

Device​

All features are read-only and keep their history, except the texts.

FeatureType in GladysValues
Solar flux (SFI)Counter10.7 cm solar flux, in solar flux units. Above 100 the high bands open; above 150 they are excellent.
Sunspot numberCounterThe daily sunspot number.
K indexCounter0 to 9, planetary, every 3 hours. 4 = active, 5 and more = storm (G1 to G5).
A indexCounter0 to 400, the daily average of the geomagnetic activity.
X-ray classTextA, B, C, M or X and a number (B6.3): the solar X-ray flux. M and X disturb HF on the sunlit side.
Solar wind (km/s)SpeedIn km/s (the unit is in the name: Gladys has no km/s unit).
Bz (nT)CounterThe north-south component of the interplanetary magnetic field, rounded to the nanotesla. A strongly negative Bz favours storms and auroras.
80-40 m day … 12-10 m nightSignal strength0 Poor, 1 Fair, 2 Good. The dashboard shows them as antenna bars (none, 3 or 5 bars).
Signal noiseTextThe expected noise level on HF, as N0NBH writes it (S1-S2).
Geomagnetic fieldTextQuiet, unsettled, active, minor or major storm… in the chosen language.
VHF aurora, Es Europe 6 m / 4 m / 2 m, Es North America 2 mState of input1 when N0NBH announces the opening, 0 when the band is closed.
N0NBH updateTextDate and time of the data, in the time zone of Gladys.

A value N0NBH does not publish ("No Report") is left out: the feature keeps its previous value, never a false 0. The device is refreshed by the integration itself; Gladys does not poll it.

The K index and the auroras are here as HamQSL gives them, for the radio. For aurora watching (Kp forecast, aurora alerts), see the gladys-astronomy integration, based on the NOAA data.

Dashboard widget​

HF band conditions: four tiles (solar flux, K index, A index, X-rays), then one line per band group and period, the day first, with a green (Good), orange (Fair) or red (Poor) dot. The footer gives the source and the time of the N0NBH update, and a button opens hamqsl.com.

Add it from the dashboard editor: Add a widget → HamQSL → HF band conditions. It has no setting.

Scene triggers​

HamQSL: a band becomes good. A band group goes from Poor or Fair to Good. Filters: the bands (empty = any) and day or night (empty = both). Variables: band (80m_40m…), period (day, night), band and period in words, previous condition, solar flux, K index, and a summary ("30-20 m band good by day (SFI 115, K 2, A 19)").

HamQSL: geomagnetic storm. The K index reaches 4 or more, then each time it climbs higher during the same episode; the episode ends when K drops below 4. A storm that climbs from K 5 to K 7 fires twice (K 5, then K 7); K 6 → 5 → 6 fires once. Filter: the K values (K 4 = active field, K 5 to 9 = storms G1 to G5); to be told of storms only, choose K 5 to K 9. Variables: K index, A index, NOAA scale (G0 to G5), geomagnetic field in words, summary.

HamQSL: M or X solar flare. The X-ray class rises to M or X (C → M, M → X, or M again after a calmer reading). Filter: the class. Variables: class (M, X), level (M2.1), summary.

The first reading after the installation is the starting point: it fires nothing. The references are kept in the data volume of the integration, so a restart neither fires again nor misses what changed in the meantime.

Scene action​

HamQSL: read the propagation bulletin. Outputs:

  • text: for example "HF propagation (N0NBH, 07:42): SFI 115, K 2, A 19, X-ray B6.3. Day: good on 30-20 m, fair on 80-40 m and 17-15 m, poor on 12-10 m. Night: good on 80-40 m and 30-20 m, fair on 17-15 m, poor on 12-10 m.";
  • solar_flux, sunspots, k_index, a_index (numbers, empty when N0NBH has no value) and xray (text).

The feed is read again only if the last reading is older than the refresh interval. The Read the feed now button of the configuration page gives the indices and the good bands at once.

Scene examples​

  • Morning bulletin: every day at 7:30, "HamQSL: read the propagation bulletin", then send the text output by Telegram, or have it read by a speaker.
  • Ten metres are open: trigger "a band becomes good", band 12-10 m, day → notification "10 m is open, time to call CQ!" with the summary variable.
  • Storm warning: trigger "geomagnetic storm", K 6 to K 9 → message with the summary, and a reminder to look north at night if you live at high latitude.
  • Blackout on the air: trigger "M or X solar flare", class X → a notification explaining why the HF bands went quiet on the day side.

Data source and usage policy​

The data come from the public XML feed of N0NBH, https://www.hamqsl.com/solarxml.php, read without an account or a key, with a User-Agent that names this integration. N0NBH updates it about once an hour and asks to read it every 30 to 60 minutes at most: the integration reads it every hour by default, and never more often than every 30 minutes (the actions reuse the last reading when it is recent enough).

Solar-terrestrial data courtesy of Paul Herrman, N0NBH: hamqsl.com/solar.html. Thank you to him for this service, offered to the whole ham community for years.

The band conditions are a global model computed by N0NBH from the indices: they are not measured at your location, nor for a given path. Not affiliated with HamQSL or N0NBH.

Troubleshooting​

  • "HamQSL feed unreachable" in the configuration page: Gladys cannot reach www.hamqsl.com. Check the internet access of Gladys; the last values are kept, and the integration tries again at every interval.
  • "The HamQSL feed has not been updated for N h": the feed answers, but N0NBH has not updated it for more than 6 hours. Nothing to do on your side: it usually comes back by itself.
  • A feature shows no value: N0NBH publishes "No Report" for it (the solar flux sometimes, the E-skip of North America…). It comes back with the next report.
  • The feature names are in the wrong language: they are frozen at creation. Change the language, delete the device and create it again from the Discover tab.
  • More details: the logs of the integration (Integrations → HamQSL → logs). Set the LOG_LEVEL environment variable to debug to see each reading.

Limits​

  • The conditions are those of N0NBH's global model, updated hourly: a short opening, a local condition or a given path are not in them.
  • The X-ray class is the flux at the time of the reading: a short flare between two readings can be missed.
  • The K index is the planetary one, every 3 hours; for aurora forecasts, see gladys-astronomy.
  • Only the four HF groups and the five VHF phenomena of the feed: no MUF (always "NoRpt" in the feed), no foF2.

Configuration settings​

These are the settings HamQSL asks for in its configuration screen in Gladys.

SettingTypeRequiredDescription
HF propagationsectionNoReads the public solar data feed of N0NBH (HamQSL), without an account: solar flux, sunspots, K and A indices, X-rays, solar wind and the HF band conditions by day and by night. Save, then create the device in the Discover tab.
SourcesectionNoSolar-terrestrial data courtesy of Paul Herrman, N0NBH (hamqsl.com). The band conditions are computed by N0NBH for the whole globe, not for your location. Not affiliated with HamQSL.
Refresh intervalselectNoN0NBH updates the feed about once an hour, and asks not to read it more often than every 30 minutes.
Language of the textsselectNoNames of the features (at their creation) and texts sent to the scenes.

How to install HamQSL in Gladys​

  1. In Gladys, open Integrations: HamQSL appears in the catalog, next to the native integrations, with a community badge.
  2. Click Install. Gladys pulls the Docker image (ghcr.io/guim31/gladys-hamqsl:1.0.0), starts it in a sandbox isolated from the core, and generates the integration's interface (devices, discovery and configuration).
  3. Open the Configuration screen of the integration, fill in the settings, and save.
  4. You can also install it directly from its repository URL: https://github.com/guim31/gladys-hamqsl.

HamQSL requires Gladys >=5.1.0. The catalog inside Gladys refreshes every hour, so a new version becomes available at most one hour after its release.

Not running Gladys yet? It is free and open source: follow the installation guide to get started.

About external integrations​

HamQSL is an external integration: a community integration packaged as a Docker container and published on GitHub, that Gladys installs in one click and runs in a sandbox isolated from its core. It is published and maintained by guim31, not by the Gladys core team.

Subscribe to the Gladys Assistant newsletter

A few emails per month about new releases and project news. Sent by Pierre-Gilles Leymarie, founder of the project. Unsubscribe anytime 🙂