Hallo,
hier der letzte Stand, der unter 1.3.3 nun läuft:
let mqtt = Shelly.getComponentConfig("MQTT");
let SHELLY_ID = mqtt.topic_prefix;
let TOPIC = "/status/input_value";
let i0 = false;
let i1 = false;
let i2 = false;
let lastValue = -1;
function sendValue(value) {
if (!SHELLY_ID) return;
let payload = JSON.stringify({ value: value });
MQTT.publish(SHELLY_ID + TOPIC, payload, 0, true);
print("MQTT sent:", payload);
}
function calcValue() {
if (i0) return 1;
if (i1) return 2;
if (i2) return 3;
return 0;
}
/* Initialzustand */
i0 = Shelly.getComponentStatus("input:0").state;
i1 = Shelly.getComponentStatus("input:1").state;
i2 = Shelly.getComponentStatus("input:2").state;
lastValue = calcValue();
sendValue(lastValue);
/* Änderungserkennung */
Timer.set(2000, true, function () {
let s0 = Shelly.getComponentStatus("input:0").state;
let s1 = Shelly.getComponentStatus("input:1").state;
let s2 = Shelly.getComponentStatus("input:2").state;
if (s0 !== i0
s1 !== i1
s2 !== i2) {
i0 = s0;
i1 = s1;
i2 = s2;
let v = calcValue();
if (v !== lastValue) {
lastValue = v;
sendValue(v);
}
}
});
/* 5-Minuten-Heartbeat */
Timer.set(300000, true, function () {
sendValue(lastValue);
});
Was chatGPT zur Kompatibilität der i4 Firmware sagt:
Firmware Script-Engine Bewertung
1.0.7 sehr frühe mJS-Version ⚠️ läuft, aber eingeschränkt
1.3.3 stabile mJS ⭐ sehr gut
1.6.2 stabil ✅ gut
1.7.1 kaputt ❌ unbrauchbar
2.x Lua ⚠️ komplett anderes System
Die Richtigkeit kann ich nicht bewerten.
Dass die KI öfters mal mit größtem Selbstbewusstsein den größten Mist verzapft ist mir bewusst - in diesem Fall fehlt mir das Wissen um es zu prüfen.
Ich konnte bislang nur nachvollziehen, dass mit 1.7.1 selbst einfachste Skripte ( print("Shelly script started"); ) mit Skriptfehler abbrechen und mit 1.3.3 läuft es auf Anhieb.
Danke für die Unterstützung!
Grüße
Rainer