Skip to content
  • Home
  • Recent
  • Tags
  • 0 Unread 0
  • Categories
  • Unreplied
  • Popular
  • GitHub
  • Docu
  • Hilfe
Skins
  • Light
  • Brite
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Default (No Skin)
  • No Skin
Collapse
ioBroker Logo

Community Forum

donate donate
  1. ioBroker Community Home
  2. Deutsch
  3. Skripten / Logik
  4. JavaScript
  5. Tuya Thermostat soll GPIO Klemme steuern

NEWS

  • Monatsrückblick Januar/Februar 2026 ist online!
    BluefoxB
    Bluefox
    16
    1
    314

  • Jahresrückblick 2025 – unser neuer Blogbeitrag ist online! ✨
    BluefoxB
    Bluefox
    17
    1
    4.7k

  • Neuer Blogbeitrag: Monatsrückblick - Dezember 2025 🎄
    BluefoxB
    Bluefox
    13
    1
    1.3k

Tuya Thermostat soll GPIO Klemme steuern

Scheduled Pinned Locked Moved JavaScript
3 Posts 2 Posters 241 Views 1 Watching
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • Z Offline
    Z Offline
    Zimbl
    wrote on last edited by Zimbl
    #1

    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);
    
    paul53P 1 Reply Last reply
    0
    • Z Zimbl

      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);
      
      paul53P Offline
      paul53P Offline
      paul53
      wrote on last edited by paul53
      #2

      @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);
      });
      

      Bitte verzichtet auf Chat-Nachrichten, denn die Handhabung ist grauenhaft !
      Produktiv: RPi 2 mit S.USV, HM-MOD-RPI und SLC-USB-Stick mit root fs

      Z 1 Reply Last reply
      0
      • paul53P paul53

        @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);
        });
        
        Z Offline
        Z Offline
        Zimbl
        wrote on last edited by
        #3

        @paul53

        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

        1 Reply Last reply
        0
        Reply
        • Reply as topic
        Log in to reply
        • Oldest to Newest
        • Newest to Oldest
        • Most Votes


        Support us

        ioBroker
        Community Adapters
        Donate

        320

        Online

        32.7k

        Users

        82.5k

        Topics

        1.3m

        Posts
        Community
        Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen | Einwilligungseinstellungen
        ioBroker Community 2014-2025
        logo
        • Login

        • Don't have an account? Register

        • Login or register to search.
        • First post
          Last post
        0
        • Home
        • Recent
        • Tags
        • Unread 0
        • Categories
        • Unreplied
        • Popular
        • GitHub
        • Docu
        • Hilfe