An Ignition 8.3+ module that tracks time spent in the Ignition Designer and sends heartbeats to WakaTime.
- Sends periodic heartbeats to WakaTime while the Designer is open
- Tracks active project names automatically
- REST API on the Gateway for configuring the WakaTime API key
- API key validation
- Zero external dependencies beyond the Ignition SDK
- Ignition 8.3 or newer
- Java 17+
- A WakaTime account and API key (wakatime.com/settings/api-key)
./gradlew buildCompiles all subprojects and produces class outputs under each module's build/
directory.
./gradlew modlProduces an unsigned .modl package at build/unsigned/.
- Go to Config > Modules on your Ignition Gateway web interface.
- Click Install or Upgrade a Module.
- Select the generated
Ignition-Wakatime.unsigned.modlfile. - After installation, restart the Gateway if prompted.
The WakaTime API key must be provided to both scopes:
The Gateway persists the key to <gateway_data>/wakatime.properties.
The Designer reads the API key from ~/.wakatime.properties on startup.
- The Designer hook starts a
Timer30 seconds after the Designer opens. - Every 120 seconds, it constructs a
Heartbeatpayload with the current project name and sends it tohttps://wakatime.com/api/v1/users/current/heartbeatsviaWakaTimeClient. - Authentication uses HTTP Basic Auth with the WakaTime API key.
{
"entity": "<project name>",
"type": "app",
"time": <epoch seconds with sub-second precision>,
"project": "<project name>",
"branch": "",
"language": "Ignition",
"is_write": false,
"lines": 0,
"plugin": "ignition-wakatime/0.0.1"
}| Property | Value |
|---|---|
| Module name | Ignition Wakatime |
| Module ID | dev.coatl.wakatime.IgnitionWakatime |
| Version | 0.0.1 |
| File name | Ignition-Wakatime |
| Ignition min. version | 8.3.0 |
| Scopes | Gateway (G), Designer (D), Common (GD) |
- Plugin:
io.ia.sdk.modl0.5.0 - Gradle: 7.6 (wrapper)
- SDK version: 8.3.0
This project is licensed under the MIT License. See the LICENSE file for details.