Compare commits
5 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| c1579f2edf | |||
| 5bdd48a0d2 | |||
| 51a9e801b2 | |||
| 4a961c865e | |||
| 9d0dac7e7b |
40
AGENTS.md
Normal file
@@ -0,0 +1,40 @@
|
|||||||
|
# TRMNL Plugin Development Guidelines
|
||||||
|
|
||||||
|
## Project Overview
|
||||||
|
This is a TRMNL platform plugin for displaying room data from Google Sheets on connected devices. The plugin uses Liquid templating for the frontend and YAML for configuration.
|
||||||
|
|
||||||
|
## File Structure
|
||||||
|
- `full.liquid` - Main Liquid template file for rendering room data
|
||||||
|
- `settings.yml` - Plugin configuration including API endpoints and custom fields
|
||||||
|
- `MeetingRooms-sample-data.json` - Sample data structure reference
|
||||||
|
|
||||||
|
## Code Style Guidelines
|
||||||
|
|
||||||
|
### Liquid Templating
|
||||||
|
- Use Liquid syntax for data binding and conditional logic
|
||||||
|
- Follow existing naming conventions: use snake_case for variables
|
||||||
|
- Keep HTML structure clean and semantic
|
||||||
|
- Use TRMNL-specific classes for styling (layout, columns, grid, etc.)
|
||||||
|
|
||||||
|
### YAML Configuration
|
||||||
|
- Use YAML format for all configuration files
|
||||||
|
- Follow existing key naming conventions (snake_case)
|
||||||
|
- Include proper descriptions for custom fields
|
||||||
|
- Use string quotes for all string values
|
||||||
|
|
||||||
|
### General Development
|
||||||
|
- No build/test commands - this is a static plugin
|
||||||
|
- Validate Liquid syntax by testing in TRMNL platform
|
||||||
|
- Ensure Google Sheets API URLs are correct and accessible
|
||||||
|
- Test with various device IDs using TRMNL_ID matching
|
||||||
|
|
||||||
|
### Testing
|
||||||
|
- Test by deploying to TRMNL platform with different device IDs
|
||||||
|
- Verify data loads from Google Sheets correctly
|
||||||
|
- Check responsive behavior on TRMNL devices
|
||||||
|
- Validate fallback logo displays when no data is available
|
||||||
|
|
||||||
|
## Key Components
|
||||||
|
- Device ID matching via `trmnl.plugin_settings.custom_fields_values.device_id`
|
||||||
|
- Data filtering using `where` filter in Liquid
|
||||||
|
- Google Sheets integration via opensheet.elk.sh API
|
||||||
26
README.md
@@ -8,7 +8,29 @@ This plug-in is designed for use with the TRMNL platform ([https://usetrmnl.com]
|
|||||||
|
|
||||||
**Functionality:**
|
**Functionality:**
|
||||||
|
|
||||||
The plug-in functions by linking to a Google Sheet. The sheet contains the room data that will be displayed on the TRMNL device. The link is established through a matching Spreadsheet ID, ensuring that the correct data is displayed on the intended device.
|
The plug-in functions by linking to a Google Sheet. The sheet contains the room data that will be displayed on the TRMNL device. The link is established through a matching Spreadsheet ID, ensuring that the correct data is displayed on the intended device.
|
||||||
|
|
||||||
**New Feature - Not In Use Mode:**
|
**New Feature - Not In Use Mode:**
|
||||||
Each display can now be marked as "Not In Use" by setting the `not_in_use` field to "TRUE" in the spreadsheet. When enabled, the display will show the Cedarmore logo instead of room data, allowing for easy identification of unavailable displays. Setting `not_in_use` to "FALSE" will show the normal room information.
|
Each display can now be marked as "Not In Use" by setting the `not_in_use` field to "TRUE" in the spreadsheet. When enabled, the display will show the Cedarmore logo instead of room data, allowing for easy identification of unavailable displays. Setting `not_in_use` to "FALSE" will show the normal room information.
|
||||||
|
|
||||||
|
## Images
|
||||||
|

|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
## Links
|
||||||
|
- [Crossings Room Data Spreadsheet](https://docs.google.com/spreadsheets/d/1i9emEf-_b0pkZxP4G3_IivfqozJAb2k8TnK9HfRBDAQ/edit?gid=681330367#gid=681330367)
|
||||||
|
- [List Of Plugins](https://usetrmnl.com/plugin_settings?keyname=private_plugin)
|
||||||
|
- [Framework Design System](https://usetrmnl.com/framework)
|
||||||
|
- [Liquid 101 Template System](https://help.usetrmnl.com/en/articles/10671186-liquid-101)
|
||||||
|
- [Custom plugin filters](https://help.usetrmnl.com/en/articles/10347358-custom-plugin-filters)
|
||||||
|
- [Advanced Liquid](https://help.usetrmnl.com/en/articles/10693981-advanced-liquid)
|
||||||
|
- [TRMNL Shop](https://shop.usetrmnl.com/)
|
||||||
|
- [OpenSheet](https://github.com/benborgers/opensheet#readme) - Converts Google sheet to json data
|
||||||
|
|
||||||
|
|||||||
|
Before Width: | Height: | Size: 2.8 KiB After Width: | Height: | Size: 2.8 KiB |
|
Before Width: | Height: | Size: 3.0 KiB After Width: | Height: | Size: 3.0 KiB |
BIN
screenshots/20250617_124308.jpg
Normal file
|
After Width: | Height: | Size: 4.4 MiB |
BIN
screenshots/20250617_130122.jpg
Normal file
|
After Width: | Height: | Size: 4.5 MiB |
BIN
screenshots/20250617_142932.jpg
Normal file
|
After Width: | Height: | Size: 4.3 MiB |
BIN
screenshots/Cedarmore_Room_Data_Google_Sheets.png
Normal file
|
After Width: | Height: | Size: 154 KiB |
BIN
screenshots/TRMNL_Plugin_Settings.png
Normal file
|
After Width: | Height: | Size: 312 KiB |