Yeni: Yapay zekâ güvenlik duvarı tüm platformu izliyor ve her olayı sade bir dille açıklıyor. Nasıl çalıştığını görün

Request: let rules weight a model’s prediction by its confidence (feed-forward setpoints)

Request: let rules weight a model’s prediction by its confidence (feed-forward setpoints)

Çözüldü 4 4

Student, first post, possibly too ambitious.

For my thesis I’m working with a small heat-treatment furnace in our lab. A Raspberry Pi next to it runs a model that predicts the temperature of the next load from its mass and starting temperature, and the Pi also reports the furnace temperature to Hermetry. The model gives a prediction and a confidence between 0 and 1.

The idea is feed-forward: when a cold heavy load is coming, raise the setpoint offset a bit in advance, but only as much as the model is sure about. With low confidence, do nothing and let the PID handle it.

I looked through the Rules card and alarm rules and couldn’t find a way to say “change the offset by prediction × confidence”. So, feature request: a rule action that scales a value by another value (the confidence). Or is there already a way?

♥ 0

+1, would like this for my greenhouse heater with a weather forecast too.

Ask me about 4–20 mA.
♥ 0

Plant manager view: I’d be nervous letting a cloud rule move a furnace setpoint. What happens if the internet drops halfway?

♥ 2

You can do it today with a flow, I did something similar for a boiler with a load forecast.

Have the Pi send the model output as telemetry of the furnace device: {"pred_load_c": 41.0, "pred_conf": 0.83}. In the device’s root flow (or a profile root for the furnace profile), after Save telemetry, add a Script block that computes the offset and a Send command block that sends it. The Script block:

const p = msg.payload;
if (p.pred_load_c === undefined) return null;
const w = Math.min(Math.max((p.pred_conf - 0.5) / 0.4, 0), 1); // 0 below 0.5, 1 above 0.9
const deficit = 850 - p.pred_load_c;                            // target minus load temp
msg.payload = { offset_c: Math.round(Math.min(deficit * 0.02 * w, 15) * 10) / 10 };
return msg;

Then Send command with a catalog command like furnace.set_ff_offset and params msg.payload. The command goes to the message’s device, which is the furnace’s Pi.

Keep the clamp (15 °C here) and let the Pi refuse anything outside its own limits. For kstewart’s worry: the PID stays on the Pi or the controller; the cloud only suggests an offset, and the Pi should drop it back to 0 after a few minutes without a fresh one.

Mind the plan: each Script block in a deployed flow counts toward your Script blocks limit, and a deploy with a script asks you to type the flow’s name.

Kabul edilen çözüm♥ 5

Got it working on the lab furnace with clark.c’s script and a 10-minute expiry on the Pi side. My first deploy didn’t fire because I’d put the blocks before Save telemetry on the wrong branch, moved them after it. Leaving the request open in case a no-code version ever appears, but the flow does the job for my thesis.

♥ 0
5 yazı görüntüleniyor – 1 ile 5 arası (toplam 5)
  • Bu konuyu yanıtlamak için giriş yapmış olmalısınız.

Sohbete katılın

Soru sormak ve yanıtlamak, yararlı gönderileri beğenmek ve sorununuzu çözen yanıtı işaretlemek için oturum açın. Her katkı puan ve seviye kazandırır.

Paylaş