NEWS
Tuya Thermostat soll GPIO Klemme steuern
-
Hallo liebe Forengemeinde,
ich habe irgendwie bei mir so ein bisschen den Faden verloren.
Vielleicht könnt ihr mir weiterhelfen.
Ich möchte gerne wenn mein Thermostat auf Open geht, das der GPIO auf FALSE geht und wenn es auf Close geht das der GPIO auf TRUE schaltet. Da ich in der Vergangenheit immer das Problem hatte, das selbst wenn er laut IOB auf TRUE steht. War die Hardware immer noch auf FALSE. Das ganze hatte ich bei Wertänderung immer nur durchgeführt. Jetzt soll das ganze im Interval von 5 Minuten passieren ( Test gerade auf 10 s). Aber ich sicher gehen kann, das er dann auch irgendwann mal schaltet.
Aber ich habe den Eindruck das ich hier den verkehrten Datentyp nehme.
Wer kann mir hier helfen ? Wo liegt der Fehler ?
// Funktion zur Überprüfung und Aktualisierung des GPIO-Werts async function updateGPIO() { // Den aktuellen Wert von tuya.0.70412616a4e57c975a09.36 abrufen let tuyaValue = getState("tuya.0.70412616a4e57c975a09.36").val; // Protokollieren des aktuellen Werts console.log("Aktueller Wert von tuya.0.70412616a4e57c975a09.36:", tuyaValue); // Überprüfen, ob der Wert gültig ist if (String(tuyaValue) === "Close(1)") { // Wenn der Wert "Close" ist, setzen wir GPIO auf TRUE setState("rpi2.0.gpio.11.state"/*GPIO 11*/, true); console.log("GPIO auf TRUE gesetzt."); } else if (String(tuyaValue) === "Open(0)") { // Wenn der Wert "Open" ist, setzen wir GPIO auf FALSE setState("rpi2.0.gpio.11.state"/*GPIO 11*/, false); console.log("GPIO auf FALSE gesetzt."); } else { // Wenn der Wert ungültig ist, geben wir eine Fehlermeldung aus console.error("Ungültiger Wert für tuya.0.70412616a4e57c975a09.36:", tuyaValue); } } // Die Funktion updateGPIO initial ausführen updateGPIO(); // Alle zwei Minuten die Funktion updateGPIO ausführen setInterval(updateGPIO, 10000); -
Hallo liebe Forengemeinde,
ich habe irgendwie bei mir so ein bisschen den Faden verloren.
Vielleicht könnt ihr mir weiterhelfen.
Ich möchte gerne wenn mein Thermostat auf Open geht, das der GPIO auf FALSE geht und wenn es auf Close geht das der GPIO auf TRUE schaltet. Da ich in der Vergangenheit immer das Problem hatte, das selbst wenn er laut IOB auf TRUE steht. War die Hardware immer noch auf FALSE. Das ganze hatte ich bei Wertänderung immer nur durchgeführt. Jetzt soll das ganze im Interval von 5 Minuten passieren ( Test gerade auf 10 s). Aber ich sicher gehen kann, das er dann auch irgendwann mal schaltet.
Aber ich habe den Eindruck das ich hier den verkehrten Datentyp nehme.
Wer kann mir hier helfen ? Wo liegt der Fehler ?
// Funktion zur Überprüfung und Aktualisierung des GPIO-Werts async function updateGPIO() { // Den aktuellen Wert von tuya.0.70412616a4e57c975a09.36 abrufen let tuyaValue = getState("tuya.0.70412616a4e57c975a09.36").val; // Protokollieren des aktuellen Werts console.log("Aktueller Wert von tuya.0.70412616a4e57c975a09.36:", tuyaValue); // Überprüfen, ob der Wert gültig ist if (String(tuyaValue) === "Close(1)") { // Wenn der Wert "Close" ist, setzen wir GPIO auf TRUE setState("rpi2.0.gpio.11.state"/*GPIO 11*/, true); console.log("GPIO auf TRUE gesetzt."); } else if (String(tuyaValue) === "Open(0)") { // Wenn der Wert "Open" ist, setzen wir GPIO auf FALSE setState("rpi2.0.gpio.11.state"/*GPIO 11*/, false); console.log("GPIO auf FALSE gesetzt."); } else { // Wenn der Wert ungültig ist, geben wir eine Fehlermeldung aus console.error("Ungültiger Wert für tuya.0.70412616a4e57c975a09.36:", tuyaValue); } } // Die Funktion updateGPIO initial ausführen updateGPIO(); // Alle zwei Minuten die Funktion updateGPIO ausführen setInterval(updateGPIO, 10000);@Zimbl
Es sieht so aus, als liefere der DP "tuya.0.70412616a4e57c975a09.36" die Zahlenwerte 0 und 1 für "Open" und "Close". Dann genügt es, daraus einen booleschen Wert zu machen.setState("rpi2.0.gpio.11.state"/*GPIO 11*/, !!tuyaValue);Weshalb ein Intervall anstelle eines Triggers auf "tuya.0.70412616a4e57c975a09.36"?
const idTuya = 'tuya.0.70412616a4e57c975a09.36'; const idGPIO = 'rpi2.0.gpio.11.state'/*GPIO 11*/; // Funktion zur Überprüfung und Aktualisierung des GPIO-Werts function updateGPIO(tuyaValue) { // Protokollieren des aktuellen Werts console.log("Aktueller Wert von tuya.0.70412616a4e57c975a09.36: " + tuyaValue); // Überprüfen, ob der Wert gültig ist if (tuyaValue === 1 || tuyaValue === 0) { setState(idGPIO, !!tuyaValue); } else { // Wenn der Wert ungültig ist, geben wir eine Fehlermeldung aus console.error("Ungültiger Wert für tuya.0.70412616a4e57c975a09.36: " + tuyaValue); } } // Die Funktion updateGPIO initial ausführen updateGPIO(getState(idTuya).val); on(idTuya, function(dp) { updateGPIO(dp.state.val); }); -
@Zimbl
Es sieht so aus, als liefere der DP "tuya.0.70412616a4e57c975a09.36" die Zahlenwerte 0 und 1 für "Open" und "Close". Dann genügt es, daraus einen booleschen Wert zu machen.setState("rpi2.0.gpio.11.state"/*GPIO 11*/, !!tuyaValue);Weshalb ein Intervall anstelle eines Triggers auf "tuya.0.70412616a4e57c975a09.36"?
const idTuya = 'tuya.0.70412616a4e57c975a09.36'; const idGPIO = 'rpi2.0.gpio.11.state'/*GPIO 11*/; // Funktion zur Überprüfung und Aktualisierung des GPIO-Werts function updateGPIO(tuyaValue) { // Protokollieren des aktuellen Werts console.log("Aktueller Wert von tuya.0.70412616a4e57c975a09.36: " + tuyaValue); // Überprüfen, ob der Wert gültig ist if (tuyaValue === 1 || tuyaValue === 0) { setState(idGPIO, !!tuyaValue); } else { // Wenn der Wert ungültig ist, geben wir eine Fehlermeldung aus console.error("Ungültiger Wert für tuya.0.70412616a4e57c975a09.36: " + tuyaValue); } } // Die Funktion updateGPIO initial ausführen updateGPIO(getState(idTuya).val); on(idTuya, function(dp) { updateGPIO(dp.state.val); });Ja, ich hatte an ein Intervall gedacht, denn gelegentlich wird der Befehl auf meinem GPIO (Hardware) nicht umgesetzt. Im IoBroker wird zwar angezeigt, dass beispielsweise TRUE sein sollte, aber in der Hardware bleibt es weiterhin auf 0 bzw. FALSE
Hey! Du scheinst an dieser Unterhaltung interessiert zu sein, hast aber noch kein Konto.
Hast du es satt, bei jedem Besuch durch die gleichen Beiträge zu scrollen? Wenn du dich für ein Konto anmeldest, kommst du immer genau dorthin zurück, wo du zuvor warst, und kannst dich über neue Antworten benachrichtigen lassen (entweder per E-Mail oder Push-Benachrichtigung). Du kannst auch Lesezeichen speichern und Beiträge positiv bewerten, um anderen Community-Mitgliedern deine Wertschätzung zu zeigen.
Mit deinem Input könnte dieser Beitrag noch besser werden 💗
Registrieren Anmelden