2026-05-13 00:29:12 +00:00
|
|
|
<script type="text/javascript">
|
|
|
|
|
RED.nodes.registerType("bf-trigger-status", {
|
|
|
|
|
category: "BetterFrame Triggers",
|
|
|
|
|
color: "#a6d4ff",
|
|
|
|
|
defaults: {
|
|
|
|
|
name: { value: "" },
|
|
|
|
|
kiosk_id: { value: "" },
|
|
|
|
|
},
|
2026-05-13 00:42:37 +00:00
|
|
|
inputs: 0,
|
2026-05-13 00:29:12 +00:00
|
|
|
outputs: 1,
|
|
|
|
|
icon: "betterframe.svg",
|
|
|
|
|
label: function () {
|
|
|
|
|
return this.name || "kiosk status";
|
|
|
|
|
},
|
|
|
|
|
paletteLabel: "Kiosk Status Trigger",
|
|
|
|
|
});
|
|
|
|
|
</script>
|
|
|
|
|
|
|
|
|
|
<script type="text/html" data-template-name="bf-trigger-status">
|
|
|
|
|
<div class="form-row">
|
|
|
|
|
<label for="node-input-name"><i class="fa fa-tag"></i> Name</label>
|
|
|
|
|
<input type="text" id="node-input-name" placeholder="(optional)" />
|
|
|
|
|
</div>
|
|
|
|
|
<div class="form-row">
|
|
|
|
|
<label for="node-input-kiosk_id"><i class="fa fa-tv"></i> Kiosk ID</label>
|
|
|
|
|
<input type="number" id="node-input-kiosk_id" placeholder="(blank = all kiosks)" />
|
|
|
|
|
</div>
|
|
|
|
|
<div class="form-tips">
|
|
|
|
|
Fires on <code>kiosk.status</code> heartbeats with hardware telemetry.
|
2026-05-13 00:42:37 +00:00
|
|
|
Listens on <code>POST /in/kiosk.status</code> internally — no upstream
|
|
|
|
|
<code>http in</code> node required.
|
2026-05-13 00:29:12 +00:00
|
|
|
Emits <code>msg.payload = {kiosk_id, kiosk_name, cpu_temp_c, fan_rpm, fan_pwm}</code>.
|
|
|
|
|
Leave Kiosk ID blank to receive heartbeats from all kiosks.
|
|
|
|
|
</div>
|
|
|
|
|
</script>
|
2026-05-13 00:42:37 +00:00
|
|
|
|
|
|
|
|
<script type="text/html" data-help-name="bf-trigger-status">
|
|
|
|
|
<p>Pure telemetry stream from kiosk WS heartbeats — separate from the
|
|
|
|
|
connect/disconnect envelope on <code>kiosk.changed</code>.</p>
|
|
|
|
|
<p>Listens on <code>POST /in/kiosk.status</code> internally — no upstream
|
|
|
|
|
<code>http in</code> node needed.</p>
|
|
|
|
|
<p>Optional <b>Kiosk ID</b> filter limits this node to a single kiosk.</p>
|
|
|
|
|
</script>
|