Repository navigation
Weather Channel
This adds a channel that plays your local forecast in the style of the 1990s WeatherStar 4000, the one with the smooth jazz.
There are two ways to get it:
-
The easy way: one line in
.env, then type your ZIP code in the dashboard. Start here. - Your own look: pick which forecast screens show, use widescreen, or point at a weather page you already run. More steps.
Both need a regular PC (amd64). The part that draws the picture does not run on a Raspberry Pi or other ARM machine. The forecasts cover the United States only.
FieldStation42's own "web" channels need a full desktop to draw a web page, and the server doesn't have one. So the weather channel works a different way. One small container serves the weather page. A second one opens that page in a hidden browser and turns it into a video stream. The wrapper then adds that stream as a channel.
graph TD
ws4kp[WeatherStar 4000+ web page]
ws4channels[ws4channels: captures the page as a stream]
wrapper[Station Wrapper 43]
emby[Emby or Jellyfin]
ws4kp --> ws4channels --> wrapper --> emby
- WeatherStar 4000+ (netbymatt/ws4kp) is the web page.
- ws4channels (rice9797/ws4channels) is the capture.
Add one line to .env, next to the compose file, and start again:
cd ~/fieldstation42
echo 'WEATHER_CHANNEL=1' >> .env
docker compose up -dTwo more containers start. The first time takes a few minutes, because Docker downloads them.
A channel called Weather joins your lineup. It gets channel 3, or the next free number if 3 is taken. You can see it on the dashboard's Sources page.
- Open the dashboard (
http://192.168.1.20:5004) and go to Settings. - Find Weather channel.
- Type a ZIP code, or a town like
Orlando, FL. Save.
The channel shows your forecast within a minute or two. Nothing restarts. Until you set a place, the channel shows a card telling you where to set one.
To move the forecast somewhere else later, change the setting. That's all.
Emby and Jellyfin show the new channel after their next guide refresh. If you use a client mode player, it gets the channel too, with the same number.
-
It always runs. The hidden browser draws the forecast all day, even when nobody is watching. It uses about half a CPU core and 500 MB of memory.
-
Anyone on your network can read the place. The page the hidden browser opens has no login, so anyone who can reach port 5004 can see the ZIP code you typed. Don't put the server on the internet.
-
To change its number or name, use the Sources page.
-
To remove it, delete the Weather source on the Sources page. Then take
WEATHER_CHANNEL=1out of.envand remove the two containers:docker rm -f station-wrapper-43-ws4channels station-wrapper-43-ws4kp
Use this if you want to choose which screens show (hourly, radar, extended forecast), want widescreen, or already run WeatherStar somewhere. You set up the look on the WeatherStar page and hand its link to your own capture container.
You don't need WEATHER_CHANNEL=1 for this. If you did the easy way first, remove that channel as shown above, so you don't draw the weather twice.
You need WeatherStar 4000+ running somewhere on your network. These steps assume it's at http://192.168.1.10:8080.
-
Open WeatherStar in a browser.
-
Type your town or ZIP code and turn on the screens you want.
-
Open the Share tab below the weather display and click Copy permalink. The permalink is the long link that saves all your choices.
-
Turn on kiosk mode in the link. Paste it somewhere you can edit it, find
kiosk=falseand change it tokiosk=true:...&radar=true&future-radar=true&kiosk=true&stickyKiosk=false&...If your link has no
kiosk=in it, add&kiosk=trueto the end instead.
Kiosk mode hides the location box, the tabs and the settings, so the forecast fills the whole picture. Without it the capture can end up showing the page's controls as well.
To check your link, open it in a browser. You should see only the weather display. Press Ctrl-K to get the controls back.
Use the page's address on your own network, not one behind a login. The capture can't log in.
Don't edit docker-compose.yml itself. Save this as a second file beside it, ~/fieldstation42/docker-compose.override.yml. Docker Compose reads both files together, and the wrapper's own file stays as you downloaded it.
services:
my-weather:
image: ghcr.io/rice9797/ws4channels:latest
container_name: my-weather
restart: unless-stopped
mem_limit: 1096m
cpus: 1.0
ports:
- "9798:9798" # playlist.m3u and the stream
environment:
ZIP_CODE: "12345" # CHANGE: your ZIP code
WS4KP_HOST: "192.168.1.10" # CHANGE: where WeatherStar runs
WS4KP_PORT: "8080" # CHANGE: its port
VIEW_MODE: standard
PERMALINK_URL: "<paste your permalink here, with kiosk=true>"Keep the name my-weather. The wrapper's compose file already has a service called ws4channels for the easy way, and two services can't share a name.
Start it:
cd ~/fieldstation42
docker compose up -dCheck that it works. This should print a short playlist:
curl -s http://192.168.1.20:9798/playlist.m3u- In the dashboard, open Sources and click Add a source.
- Type: a playlist (m3u).
- Address:
http://192.168.1.20:9798/playlist.m3u - Mode: Converted for browsers.
- First channel number: pick one, like
47. - Save.
The weather channel joins your lineup. Emby and Jellyfin show it after their next guide refresh.
Set up the screens you want on the WeatherStar page, copy the new permalink, change kiosk=false to kiosk=true in it again, and paste it into PERMALINK_URL. Then run docker compose up -d again.
Guides
- Server Setup
- Making Channels (or let an AI agent do it)
- Client Mode Player (the easy way to a TV)
The manual way to a TV
Extras