FreshRSS smart home integration, free and open source

Your FreshRSS reader in Gladys: unread counts, new articles, mark as read.
Connect Gladys to FreshRSS, the self-hosted feed aggregator: follow your unread articles per category and per feed, react when a new article arrives, mark articles as read from your scenes, and see the newest unread articles on the dashboard. The integration follows the state of your reader (read / unread, the same in all your FreshRSS apps), not the feeds themselves.
Tested against a real FreshRSS 1.30.4 (the official Docker image) with test feeds. Feedback welcome on the Gladys forum.
Prerequisites
- Gladys Assistant 5.1 or later.
- FreshRSS, at home or on a public server, reachable from the Gladys machine.
- The API of FreshRSS allowed: as an administrator, open Administration → Authentication and tick Allow API access.
- An API password for your user: open Profile → API management, enter an API password and save. It is not your login password; FreshRSS shows the API address on the same page.
Configuration
- Open the Configuration tab of the integration.
- In FreshRSS address, enter the address you open FreshRSS at, for example
192.168.1.50:8080(http when no scheme is given) orhttps://rss.example.org. The API address shown by FreshRSS (…/api/greader.php) works too. - Enter your User name and the API password.
- Optional: Read FreshRSS every (5 minutes by default), and Keywords to watch, separated by commas, for the keyword filter of the "New article" trigger.
- Click Test the connection: it shows the user, the unread articles, the feeds and the categories.
- Open the Discovery tab and add the devices you want.
Devices
- FreshRSS: Unread articles (everything) and FreshRSS online (0 while FreshRSS does not answer).
- One device per category and one device per feed (offered for each of them): their Unread articles.
The values are read every few minutes (the setting above) and right after every change made from Gladys. They are kept in the history, for a chart of your unread pile. To act above a threshold, use the device trigger of Gladys: Unread articles above 50, for instance.
Dashboard widget
FreshRSS: the number of unread articles, the six newest unread articles (feed, date, summary, links to the article and to the feed in FreshRSS when they are https), a Refresh button that reads FreshRSS again now, and a Mark as read button, with a confirmation, that marks the listed articles as read (only them). Set to a category or a feed device, the widget shows that one only.
Scene triggers
- New article: an unread article arrived in FreshRSS. Filters: a category (a category device), a feed (a feed device), a keyword (one of the keywords of the configuration, found in the title, case and accents ignored). Information passed on: title, link, feed, category, author, keyword found, publication date and article id.
Nothing fires at the first read after installing the integration, nor for the articles already there when a feed is added, nor for articles already read in another app. At most 10 articles are announced per read.
Scene actions
- Mark FreshRSS articles as read: every unread article of a category or a feed; pick the FreshRSS device to mark everything. Results: articles marked, category or feed.
- Mark articles as read by id: one or more article ids, typically the article id of the "New article" trigger. Result: articles marked.
- Read the unread FreshRSS titles: the newest unread articles (1 to 10), of everything or of a category or feed, optionally marked as read afterwards. Results: number read, unread articles in all, titles one per line ("Title — Feed"), title, link and feed of the newest one.
Scene examples
- Morning briefing: at 7:30, Read the unread FreshRSS titles (category News, 5 articles, then mark them as read), then send a Telegram message with its Titles result (insert it with the variable picker).
- Watch a topic: with
Gladysin the keywords, New article with the keywordGladys→ send a message with the Title and the Link of the article, then Mark articles as read by id with its Article id. - Too much to read: device trigger Unread articles of the FreshRSS device above 100 → Mark FreshRSS articles as read on the category Uncategorized.
Troubleshooting
- "The API of FreshRSS is disabled": allow API access in Administration → Authentication (an administrator of FreshRSS has to do it).
- "FreshRSS refused the user name or the API password": the API password is not the login password; set it again in Profile → API management.
- "FreshRSS does not answer": check the address and the port from the Gladys machine. Behind a reverse proxy, enter the full address, path included.
- "FreshRSS redirects to another address": FreshRSS answers on another
address, often the same one in
https://: enter that one. - "This address does not answer like FreshRSS": the address leads to
another service, or to a login page (an authentication proxy in front of
FreshRSS must let
/api/through). - No "New article" event: articles arrive when FreshRSS refreshes its feeds
(its cron job,
CRON_MINin the official Docker image; each feed at most once per hour by default), then at the next read of the integration. - More details: set the
LOG_LEVELvariable of the integration todebug.
Limits
- FreshRSS knows categories by their name only: renaming a category in FreshRSS offers a new device, the old one stays without values.
- The API of FreshRSS does not tell the feeds in error, and cannot ask for a refresh of the feeds: FreshRSS keeps its own schedule.
- The trigger filters only compare exact values: the keyword filter is one of the configured keywords, written as in the configuration (the first one found in the title).
- Starred articles, labels and the feeds themselves are not managed from Gladys. At most 100 categories and 200 feeds are offered as devices.
- The widget links open https addresses only: an article or a FreshRSS on plain http has no link.
- Not affiliated with FreshRSS.
Configuration settings
These are the settings FreshRSS asks for in its configuration screen in Gladys.
| Setting | Type | Required | Description |
|---|---|---|---|
| Connect FreshRSS | section | No | In FreshRSS, allow API access (Administration → Authentication), then set an API password for your user (Profile → API management). Enter the address of FreshRSS, your user name and that API password: the integration reads your unread counts, announces the new articles and marks articles as read from your scenes. |
| FreshRSS address | string | Yes | The address you open FreshRSS at, or the API address shown in Profile → API management. |
| User name | string | Yes | |
| API password | secret | Yes | Not the login password: FreshRSS → Profile → API management → API password. |
| Read FreshRSS every | select | No | New articles are announced at the next read, once FreshRSS has fetched them (its own refresh, by its cron job). |
| Keywords to watch (optional) | string | No | Separated by commas. A new article whose title holds one carries it, for the keyword filter of the trigger. |
| Language of names and messages | select | No | Feature names are set when a device is added to Gladys. |
How to install FreshRSS in Gladys
- In Gladys, open Integrations: FreshRSS appears in the catalog, next to the native integrations, with a community badge.
- Click Install. Gladys pulls the Docker image (
ghcr.io/guim31/gladys-freshrss:1.0.0), starts it in a sandbox isolated from the core, and generates the integration's interface (devices, discovery and configuration). - Open the Configuration screen of the integration, fill in the settings, and save.
- You can also install it directly from its repository URL: https://github.com/guim31/gladys-freshrss.
FreshRSS 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
FreshRSS 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.
- Browse all integrations, native and community
- Build and publish your own external integration
- Source code on GitHub — source of this documentation