@@ -8,9 +8,11 @@ This plugin reads chamber temperature from a WirelessTag API and displays it in
8
8
- Fetches temperature data from WirelessTag API endpoints
9
9
- Works independently of printer connection status
10
10
- Real-time temperature updates via WebSocket
11
- - Configurable polling interval (10-300 seconds)
11
+ - Configurable polling interval (10-300 seconds) with immediate effect on change
12
12
- Support for custom XML temperature paths
13
13
- Clean separation of UUID and base URL configuration
14
+ - Persistent temperature history across page refreshes (clears on server restart)
15
+ - Server-side history storage with automatic 24-hour cleanup
14
16
15
17
### Temperature Display
16
18
- ** Navbar Display** : Shows current chamber temperature in the top bar with thermometer icon
@@ -19,10 +21,12 @@ This plugin reads chamber temperature from a WirelessTag API and displays it in
19
21
### Chamber Temperature Tab Features
20
22
- ** Interactive Temperature Chart**
21
23
- Real-time updating graph with orange theme
24
+ - Adaptive Y-axis scaling for better visualization (no fixed zero baseline)
22
25
- Hover tooltips showing exact time and temperature
23
26
- Auto-scrolling option to follow latest data
24
27
- Time range controls (10 min to 24 hours)
25
28
- Stores up to 24 hours of temperature history
29
+ - History persists across page refreshes
26
30
27
31
- ** Statistics Dashboard**
28
32
- Large current temperature display
@@ -66,12 +70,11 @@ pip install -e .
66
70
67
71
1 . ** Build the distribution package** :
68
72
``` bash
69
- python setup.py sdist bdist_wheel
73
+ python setup.py sdist
70
74
```
71
75
72
- This creates two files in the ` dist/ ` directory:
76
+ This creates a distribution file in the ` dist/ ` directory:
73
77
- ` OctoPrint-ExternalTempReader-1.0.0.tar.gz ` - Source distribution
74
- - ` OctoPrint_ExternalTempReader-1.0.0-py2.py3-none-any.whl ` - Wheel distribution
75
78
76
79
2 . ** Clean build artifacts** (optional):
77
80
``` bash
@@ -99,16 +102,16 @@ pip install dist/OctoPrint-ExternalTempReader-1.0.0.tar.gz
99
102
1 . Build the plugin as described above
100
103
2 . In OctoPrint, go to Settings → Plugin Manager
101
104
3 . Click "Get More..." → "...from an uploaded file"
102
- 4 . Select the ` .tar.gz ` or ` .whl ` file from ` dist/ `
105
+ 4 . Select the ` .tar.gz ` file from ` dist/ `
103
106
5 . Click Install
104
107
105
108
## Configuration
106
109
107
110
1 . Navigate to OctoPrint Settings → External Temp Reader
108
111
2 . Configure the following settings:
109
- - ** WirelessTag UUID** : Your sensor's UUID (e.g., ` 5136d0e3-e226-43b2 -b9a1-f843a0220f63 ` )
112
+ - ** WirelessTag UUID** : Your sensor's UUID (e.g., ` 111aaab3-e991-43c7 -b9a1-f999b0999f99 ` )
110
113
- ** API Base URL** : Usually the default is fine (` https://my.wirelesstag.net/ethLogShared.asmx/GetLatestTemperatureRawDataByUUID ` )
111
- - ** Polling Interval** : How often to fetch temperature (10-300 seconds, default 60)
114
+ - ** Polling Interval** : How often to fetch temperature (10-300 seconds, default 60) - changes take effect immediately
112
115
- ** XML Temperature Path** : Leave default for WirelessTag API
113
116
114
117
### Getting Your WirelessTag UUID
@@ -124,9 +127,12 @@ pip install dist/OctoPrint-ExternalTempReader-1.0.0.tar.gz
124
127
The plugin:
125
128
1 . Polls the WirelessTag API at the configured interval
126
129
2 . Parses the XML response to extract temperature in Celsius
127
- 3 . Sends temperature updates to the frontend via WebSocket
128
- 4 . Displays the chamber temperature in the navbar (top bar)
129
- 5 . Works independently of printer connection status
130
+ 3 . Stores temperature history on the server (up to 24 hours)
131
+ 4 . Sends temperature updates to the frontend via WebSocket
132
+ 5 . Displays the chamber temperature in the navbar (top bar)
133
+ 6 . Works independently of printer connection status
134
+ 7 . Loads historical data when the page is refreshed
135
+ 8 . Automatically applies setting changes without requiring restart
130
136
131
137
## Where Temperature is Displayed
132
138
@@ -178,6 +184,38 @@ The plugin:
178
184
- Clear browser cache if chart container is missing
179
185
- Ensure JavaScript is enabled in your browser
180
186
187
+ ## Recent Improvements
188
+
189
+ ### Version 1.0.0 Features
190
+ - ** Persistent History** : Temperature history now persists across page refreshes (stored server-side)
191
+ - ** Adaptive Chart Scaling** : Y-axis automatically adjusts to show relevant temperature range
192
+ - ** Dynamic Settings** : Polling interval changes take effect immediately without restart
193
+ - ** Improved Tooltips** : Chart tooltips properly display time and temperature on hover
194
+ - ** API Endpoint** : Added REST API endpoint for fetching temperature history
195
+ - ** Automatic Cleanup** : Old temperature data (>24 hours) is automatically removed
196
+
197
+ ## Plugin API
198
+
199
+ The plugin provides a REST API endpoint for accessing temperature data:
200
+
201
+ ### GET ` /api/plugin/external_temp_reader `
202
+
203
+ Returns the current temperature and historical data.
204
+
205
+ ** Response:**
206
+ ``` json
207
+ {
208
+ "history" : [
209
+ {"time" : 1725650400000 , "temperature" : 22.5 },
210
+ {"time" : 1725650460000 , "temperature" : 22.6 }
211
+ ],
212
+ "current_temp" : 22.6
213
+ }
214
+ ```
215
+
216
+ - ` history ` : Array of temperature readings with timestamps (milliseconds since epoch)
217
+ - ` current_temp ` : Most recent temperature reading in Celsius
218
+
181
219
## API Response Format
182
220
183
221
The plugin expects XML responses in this format from WirelessTag:
0 commit comments