node-red-contrib-boolean-logic-ultimate
Version:
A set of Node-RED enhanced boolean logic and utility nodes, flow interruption, blinker, invert, filter, toggle etc.., with persistent values after reboot. Compatible also with Homeassistant values.
96 lines (83 loc) • 3.75 kB
HTML
<script type="text/javascript">
RED.nodes.registerType('KalmanFilterUltimate', {
category: 'Boolean Logic Ultimate',
color: '#ff8080',
defaults: {
name: {
value: "Kalman"
},
payloadPropName: { value: "payload", required: false },
translatorConfig: { type: "translator-config", required: false },
measurementNoise: { value: 0.01 },
processNoise: { value: 3 }
},
inputs: 1,
outputs: 1,
icon: "swap.png",
label:
function () {
return this.name || "KalmanFilter";
},
paletteLabel: function () {
return "KalmanFilter";
},
oneditprepare: function () {
const payloadField = $("#node-input-payloadPropName");
if (payloadField.val() === "") payloadField.val("payload");
payloadField.typedInput({ default: 'msg', types: ['msg'] });
const measurementField = $("#node-input-measurementNoise");
if (measurementField.val() === "" && this.r !== undefined) measurementField.val(this.r);
const processField = $("#node-input-processNoise");
if (processField.val() === "" && this.q !== undefined) processField.val(this.q);
}
});
</script>
<script type="text/html" data-template-name="KalmanFilterUltimate">
<div class="form-row">
<b>Kalman Filter Ultimate</b>    <span style="color:red"><i class="fa fa-question-circle"></i> <a target="_blank" href="https://github.com/Supergiovane/node-red-contrib-boolean-logic-ultimate"><u>Help online</u></a></span>
   <span style="color:red"><i class="fa fa-youtube-play"></i> <a target="_blank" href="https://youtu.be/A41x8VevZD8"><u>Youtube Sample</u></a></span>
<br/>
<br/>
</div>
<div class="form-row">
<label for="node-input-name"><i class="icon-tag"></i> Name</label>
<input type="text" id="node-input-name" placeholder="Name">
</div>
<div class="form-row">
<label for="node-input-payloadPropName"><i class="fa fa-ellipsis-h"></i> Input</label>
<input type="text" id="node-input-payloadPropName">
</div>
<div class="form-row">
<label for="node-input-measurementNoise"><i class="icon-tag"></i> Measurement noise (R)</label>
<input type="text" id="node-input-measurementNoise" placeholder="0.01">
</div>
<div class="form-row">
<label for="node-input-processNoise"><i class="icon-tag"></i> Process noise (Q)</label>
<input type="text" id="node-input-processNoise" placeholder="3">
</div>
<div class="form-row">
<br />
<b>Translator</b>
<br />
<label for="node-input-translatorConfig">
<font color="green" size="4px"><i class="fa fa-sign-in" aria-hidden="true"></i></font> Input
</label>
<input type="text" id="node-input-translatorConfig" />
</div>
</script>
<script type="text/markdown" data-help-name="KalmanFilterUltimate">
<p>Outputs the Kalman filtered input.</p>
Please refer to [this](https://github.com/wouterbulten/kalmanjs) link, on how it works.
|Property|Description|
|--|--|
| Input | It's the msg property to be evaluated. *By default, it is "payload", but you can also specify other properties, for example "payload.value"* |
| Measurement noise | Kalman's <code>R</code> parameter. |
| Process noise | Kalman's <code>Q</code> parameter. |
| Translator Input | Translates the incoming <code>payload</code> value, to true/false. This allows the compatibility with, for example, **HomeAssistant** nodes. |
<br/>
### Inputs
: reset (any) : by passing msg.reset, the Kalman filter will be reset.
: payload (number) : the payload containing the number. If you've changed the incoming evaluation property in the ***Input*** field, the number to be evaluated must be put in such message's property, instead of the *payload* property.
<br/>
[Find it useful?](https://www.paypal.me/techtoday)
</script>