Hi,
Wie kann man die Temperaturautomatisierung auf Relais vom I/O X PRO anwenden?
Im Moment geht es bei mir nur am CorePro.
Gruß
KASPI
Hi,
Wie kann man die Temperaturautomatisierung auf Relais vom I/O X PRO anwenden?
Im Moment geht es bei mir nur am CorePro.
Gruß
KASPI
was magst den umsetzen?
Ich brauche für ein „super geheimes Geheimprojekt
" 16 Temperaturabhängige Ausgänge.
Kaspi
mit 16 verschiedenen Temperaturen?
Da die IO X Pro Relays nicht angezeigt werden, wird dir nix anderes über bleiben als dir selber was zu stricken.
Du musst ja so oder so daran wenn du Zigbee, oder Modbussensoren, oder… einbinden möchtest weil im Programm nur 9 Temperatursensoren verankert sind, und davon sind 3 Ruuvitag Sensoren
Du könntest soetwas in der Art machen,
oder du kopierst dier den Bereich,
Genau.
Ein Sensor, je nachdem welche Temperatur 16 Ausgänge.
Zwei Änderungen brauchst du:
du ersetzt den kompletten Inhalt der markierten Function Node “create list” mit dem hier:
let sensor = flow.get("autoTemp_sensor") ?? "temp1";
let data = msg.payload[sensor];
if (!data) return null;
const words = "zero one two three four five six seven eight nine ten eleven twelve thirteen fourteen fifteen sixteen".split(" ");
let relays = words.slice(1, 9);
if (global.get("i2c_io-x") === true) {
relays = words.slice(1, 17);
}
function defaultRelayConfig() {
return {
isChecked: false,
type: "below",
lowerThreshold: 0,
upperThreshold: 0
};
}
let result = {};
relays.forEach(word => {
const relayData = data[word] || defaultRelayConfig();
result[word] = {
temp_automation: 1,
id: word,
title: global.get("N" + word) || ("Relay " + word),
isChecked: relayData.isChecked === true
};
});
msg.payload = result;
return msg;
und dann ersetzt du den kompletten Inhalt der markierten Function Node “write temp_automation” mit diesem hier:
flow.set("autoTemp_relays", msg.payload)
let sensor = flow.get("autoTemp_sensor") ?? "temp1"
let upperThreshold = flow.get("autoTemp_upperThreshhold") ?? 25
let type = flow.get("autoTemp_type") ?? "above"
let relay = msg.payload.id
let isChecked = msg.payload.isChecked
let temp_automation = msg.payload.temp_automation
msg.payload =
"jq '." + sensor + " |= (. // {}) | ." +
sensor + "." + relay + " |= (. // {}) | ." +
sensor + "." + relay + ".isChecked=" + isChecked +
" | ." + sensor + "." + relay + ".type=\"" + type + "\"" +
" | ." + sensor + "." + relay + ".upperThreshold=" + upperThreshold +
"' ~/pekaway/temp_automation" + temp_automation +
" > ~/pekaway/temp_automation" + temp_automation +
"_tmp && mv ~/pekaway/temp_automation" + temp_automation +
"_tmp ~/pekaway/temp_automation" + temp_automation;
node.send(msg)
Ich nehm das so ins nächste Update mit auf, also musst du das nicht in einem userflow machen
@Vincent
So kann man das natürlich auch machen ![]()
Durch die alte Programmierung habe ich ja noch durch geblickt.
Aber hier!
Puhh, muss ich noch viel lernen ![]()
![]()