Skip to content
  • Home
  • Aktuell
  • Tags
  • 0 Ungelesen 0
  • Kategorien
  • Unreplied
  • Beliebt
  • 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

  • Standard: (Kein Skin)
  • Kein Skin
Einklappen
ioBroker Logo

Community Forum

donate donate
  1. ioBroker Community Home
  2. Deutsch
  3. Tester
  4. Test Intext App v0.0.x

NEWS

  • UPDATE 31.10.: Amazon Alexa - ioBroker Skill läuft aus ?
    apollon77A
    apollon77
    48
    3
    8.5k

  • Monatsrückblick – September 2025
    BluefoxB
    Bluefox
    13
    1
    2.1k

  • Neues Video "KI im Smart Home" - ioBroker plus n8n
    BluefoxB
    Bluefox
    16
    1
    2.8k

Test Intext App v0.0.x

Geplant Angeheftet Gesperrt Verschoben Tester
203 Beiträge 19 Kommentatoren 32.8k Aufrufe 14 Watching
  • Älteste zuerst
  • Neuste zuerst
  • Meiste Stimmen
Antworten
  • In einem neuen Thema antworten
Anmelden zum Antworten
Dieses Thema wurde gelöscht. Nur Nutzer mit entsprechenden Rechten können es sehen.
  • D drheck

    @plchome-0
    Hallo,
    wie hast du das mit der homebridge Anbindung gemacht?
    "Ich hab den jetzt Pool über MQTT in der Homebridge darüber dann in Alexa und Handy."
    Ich finde kein plugin für intex...

    Danke,
    Peter

    PLCHome 0P Offline
    PLCHome 0P Offline
    PLCHome 0
    Developer
    schrieb am zuletzt editiert von PLCHome 0
    #67

    @drheck Ja, ich hab alles über MQTT an die Homebridge angeklemmt. Allerdings ist die Alexa-Anbindung nun auch kostenpflichtig, aber mit 2$ im Monat fair :-)
    ioBroker Alexa kostet aber auch nur 1,75 im Monat....

    D 1 Antwort Letzte Antwort
    0
    • PLCHome 0P PLCHome 0

      @drheck Ja, ich hab alles über MQTT an die Homebridge angeklemmt. Allerdings ist die Alexa-Anbindung nun auch kostenpflichtig, aber mit 2$ im Monat fair :-)
      ioBroker Alexa kostet aber auch nur 1,75 im Monat....

      D Offline
      D Offline
      drheck
      schrieb am zuletzt editiert von
      #68

      @plchome-0 Okay. Danke für die Info. Aber wie mache ich das über MQTT? Gibt es dazu eine Anleitung?

      1 Antwort Letzte Antwort
      0
      • D Offline
        D Offline
        Diamand2k22
        schrieb am zuletzt editiert von
        #69

        @plchome-0

        Hallo plchome,

        ist das Skript komplett und kann man dein Skript kopieren. Ich habe die selbe Konstellation mit dem Intex Pool und PV Anlage.

        Grüße

        PLCHome 0P 1 Antwort Letzte Antwort
        0
        • D Diamand2k22

          @plchome-0

          Hallo plchome,

          ist das Skript komplett und kann man dein Skript kopieren. Ich habe die selbe Konstellation mit dem Intex Pool und PV Anlage.

          Grüße

          PLCHome 0P Offline
          PLCHome 0P Offline
          PLCHome 0
          Developer
          schrieb am zuletzt editiert von
          #70

          @diamand2k22 Es schauf auf den Akku füllstand...

          let autoheat = false
          //const pvSOC='growatt.0.359213.devices.NNCJA2400C.statusData.SOC'/*Soc*/;
          //const pvOK='growatt.0.info.connection';
          const pvSOC='0_userdata.0.grott.values.SOC'/*Soc*/;
          const pvOK='0_userdata.0.grott.buffered';
          
          const poolPower = "intex.0.e8fa6219-64f7-4aa2-bac4-b92f37ebf9af.control.Power"
          const poolHeat = "intex.0.e8fa6219-64f7-4aa2-bac4-b92f37ebf9af.control.Heat"
          const poolSanitzer = "intex.0.e8fa6219-64f7-4aa2-bac4-b92f37ebf9af.control.Sanitzer"
          const poolTemperatur = "intex.0.e8fa6219-64f7-4aa2-bac4-b92f37ebf9af.control.Temperature"
          const poolTargetTemperature = "intex.0.e8fa6219-64f7-4aa2-bac4-b92f37ebf9af.control.TargetTemperature"
          
          start()
          async function start() {
              let state = await getStateAsync(pvSOC);
              doHeat(state);
          }
          let run=false
          schedule('0,15,30,45 * * * *', doSchedule) 
          let errcount = 0
          async function doSchedule(){
              if (run) {
                  log ('double run')
                  return
              }
              try {
                  run = true
                  log ('check')
                  let [ok,
                      temp,
                      state,
                      heat] = await Promise.all([getStateAsync(pvOK),
                                                  getStateAsync(poolTemperatur),
                                                  getStateAsync(pvSOC),
                                                  getStateAsync(poolHeat)])
                  //if (ok.val == false) 
                  if (ok.val != "no") 
                      {errcount++} 
                  else 
                      {errcount = 0};
                  //if (autoheat && ok.val == false && errcount >= 3) {
                  if (autoheat && ok.val != "no" && errcount >= 3) {
                      if (heat.val)
                        setState(poolHeat,false,false);
                      log ('emergency off')
                      autoheat = false;
                      sendTo("email.0", {
                          //from:    "iobroker@mydomain.com",
                          //to:      "aabbcc@gmail.com, xxyyzz@gmail.com", // comma separated multiple recipients.
                          subject: "Der Inverter ist seit 45min gestört",
                          text:    "Die Poolheizung wird bei "+temp.val+"°C abgestellt..."
                      });
                  } else {
                      doHeat(state);
                  }
              } finally {
                  run=false
              }
          }
          
          on({id: pvSOC, change: "ne"},(obj)=>{doHeat(obj.state)});
          async function doHeat(state) {
              let h = (new Date()).getHours()
              let [ok,
                   temp,
                   target,
                   heat,
                   sanitzer] = await Promise.all([getStateAsync(pvOK),
                                              getStateAsync(poolTemperatur),
                                              getStateAsync(poolTargetTemperature),
                                              getStateAsync(poolHeat),
                                              getStateAsync(poolSanitzer)])
              //if (!autoheat && (ok.val == true) && (((state.val >= 30) && (h >= 4) && (h <= 8)) ||((state.val >= 60) && (h >= 9) && (h <= 10)) || ((state.val >= 85) && (h >= 11) && (h <= 15)))) {
              if (!autoheat && (ok.val == "no") && (((state.val >= 30) && (h >= 4) && (h <= 8)) ||((state.val >= 60) && (h >= 9) && (h <= 10)) || ((state.val >= 85) && (h >= 11) && (h <= 15)))) {
                  autoheat = true;
                  //setState(poolPower,true,false);
                  if (sanitzer.val)  setState(poolSanitzer,false,false);
                  if (!heat.val)  setState(poolHeat,true,false);
                  log ('on')
                  sendTo("email.0", {
                      //from:    "iobroker@mydomain.com",
                      //to:      "aabbcc@gmail.com, xxyyzz@gmail.com", // comma separated multiple recipients.
                      subject: "Es ist viel Sonne am Himmel",
                      text:    "Der Pool wird bei "+temp.val+"°C auf "+target.val+"°C geheitzt..."
                  });
              } else if (autoheat && (((state.val < 80) && (h > 12) ) || ((state.val < 95) && (h > 17)) || ((state.val < 55) && (h >= 9) && (h <= 12))|| ((state.val < 29) && (h >= 4) && (h <= 8)))) {
                  autoheat = false;
                  if (heat.val)  setState(poolHeat,false,false);
                  log ('off')
                  sendTo("email.0", {
                      //from:    "iobroker@mydomain.com",
                      //to:      "aabbcc@gmail.com, xxyyzz@gmail.com", // comma separated multiple recipients.
                      subject: "Die Sonne geht weg",
                      text:    "Die Poolheizung wird bei "+temp.val+"°C abgestellt..."
                  });
              }
          };
          
          D 1 Antwort Letzte Antwort
          0
          • PLCHome 0P PLCHome 0

            @diamand2k22 Es schauf auf den Akku füllstand...

            let autoheat = false
            //const pvSOC='growatt.0.359213.devices.NNCJA2400C.statusData.SOC'/*Soc*/;
            //const pvOK='growatt.0.info.connection';
            const pvSOC='0_userdata.0.grott.values.SOC'/*Soc*/;
            const pvOK='0_userdata.0.grott.buffered';
            
            const poolPower = "intex.0.e8fa6219-64f7-4aa2-bac4-b92f37ebf9af.control.Power"
            const poolHeat = "intex.0.e8fa6219-64f7-4aa2-bac4-b92f37ebf9af.control.Heat"
            const poolSanitzer = "intex.0.e8fa6219-64f7-4aa2-bac4-b92f37ebf9af.control.Sanitzer"
            const poolTemperatur = "intex.0.e8fa6219-64f7-4aa2-bac4-b92f37ebf9af.control.Temperature"
            const poolTargetTemperature = "intex.0.e8fa6219-64f7-4aa2-bac4-b92f37ebf9af.control.TargetTemperature"
            
            start()
            async function start() {
                let state = await getStateAsync(pvSOC);
                doHeat(state);
            }
            let run=false
            schedule('0,15,30,45 * * * *', doSchedule) 
            let errcount = 0
            async function doSchedule(){
                if (run) {
                    log ('double run')
                    return
                }
                try {
                    run = true
                    log ('check')
                    let [ok,
                        temp,
                        state,
                        heat] = await Promise.all([getStateAsync(pvOK),
                                                    getStateAsync(poolTemperatur),
                                                    getStateAsync(pvSOC),
                                                    getStateAsync(poolHeat)])
                    //if (ok.val == false) 
                    if (ok.val != "no") 
                        {errcount++} 
                    else 
                        {errcount = 0};
                    //if (autoheat && ok.val == false && errcount >= 3) {
                    if (autoheat && ok.val != "no" && errcount >= 3) {
                        if (heat.val)
                          setState(poolHeat,false,false);
                        log ('emergency off')
                        autoheat = false;
                        sendTo("email.0", {
                            //from:    "iobroker@mydomain.com",
                            //to:      "aabbcc@gmail.com, xxyyzz@gmail.com", // comma separated multiple recipients.
                            subject: "Der Inverter ist seit 45min gestört",
                            text:    "Die Poolheizung wird bei "+temp.val+"°C abgestellt..."
                        });
                    } else {
                        doHeat(state);
                    }
                } finally {
                    run=false
                }
            }
            
            on({id: pvSOC, change: "ne"},(obj)=>{doHeat(obj.state)});
            async function doHeat(state) {
                let h = (new Date()).getHours()
                let [ok,
                     temp,
                     target,
                     heat,
                     sanitzer] = await Promise.all([getStateAsync(pvOK),
                                                getStateAsync(poolTemperatur),
                                                getStateAsync(poolTargetTemperature),
                                                getStateAsync(poolHeat),
                                                getStateAsync(poolSanitzer)])
                //if (!autoheat && (ok.val == true) && (((state.val >= 30) && (h >= 4) && (h <= 8)) ||((state.val >= 60) && (h >= 9) && (h <= 10)) || ((state.val >= 85) && (h >= 11) && (h <= 15)))) {
                if (!autoheat && (ok.val == "no") && (((state.val >= 30) && (h >= 4) && (h <= 8)) ||((state.val >= 60) && (h >= 9) && (h <= 10)) || ((state.val >= 85) && (h >= 11) && (h <= 15)))) {
                    autoheat = true;
                    //setState(poolPower,true,false);
                    if (sanitzer.val)  setState(poolSanitzer,false,false);
                    if (!heat.val)  setState(poolHeat,true,false);
                    log ('on')
                    sendTo("email.0", {
                        //from:    "iobroker@mydomain.com",
                        //to:      "aabbcc@gmail.com, xxyyzz@gmail.com", // comma separated multiple recipients.
                        subject: "Es ist viel Sonne am Himmel",
                        text:    "Der Pool wird bei "+temp.val+"°C auf "+target.val+"°C geheitzt..."
                    });
                } else if (autoheat && (((state.val < 80) && (h > 12) ) || ((state.val < 95) && (h > 17)) || ((state.val < 55) && (h >= 9) && (h <= 12))|| ((state.val < 29) && (h >= 4) && (h <= 8)))) {
                    autoheat = false;
                    if (heat.val)  setState(poolHeat,false,false);
                    log ('off')
                    sendTo("email.0", {
                        //from:    "iobroker@mydomain.com",
                        //to:      "aabbcc@gmail.com, xxyyzz@gmail.com", // comma separated multiple recipients.
                        subject: "Die Sonne geht weg",
                        text:    "Die Poolheizung wird bei "+temp.val+"°C abgestellt..."
                    });
                }
            };
            
            D Offline
            D Offline
            Diamand2k22
            schrieb am zuletzt editiert von
            #71

            @plchome-0

            danke dir, ein geniales Skript! Genau sowas habe ich gesucht, vielen dank!

            VG Thomas

            D 1 Antwort Letzte Antwort
            0
            • D Diamand2k22

              @plchome-0

              danke dir, ein geniales Skript! Genau sowas habe ich gesucht, vielen dank!

              VG Thomas

              D Offline
              D Offline
              Diamand2k22
              schrieb am zuletzt editiert von
              #72

              @plchome-0

              eine Frage noch, welche Funktion hast du noch bei doheat () hinterlegt?

              Gruß

              PLCHome 0P 1 Antwort Letzte Antwort
              0
              • D Diamand2k22

                @plchome-0

                eine Frage noch, welche Funktion hast du noch bei doheat () hinterlegt?

                Gruß

                PLCHome 0P Offline
                PLCHome 0P Offline
                PLCHome 0
                Developer
                schrieb am zuletzt editiert von
                #73

                @diamand2k22
                doSchedule prüft ob der Inverter erreichbar ist und schaltet dann ab
                doHeat prüft den Füllstand des Akku und die Uhrzeit

                D 1 Antwort Letzte Antwort
                0
                • PLCHome 0P PLCHome 0

                  @diamand2k22
                  doSchedule prüft ob der Inverter erreichbar ist und schaltet dann ab
                  doHeat prüft den Füllstand des Akku und die Uhrzeit

                  D Offline
                  D Offline
                  Diamand2k22
                  schrieb am zuletzt editiert von
                  #74

                  @plchome-0

                  ok danke, kannst du da eine Vorlage posten? ich weiß du hast dir da viel Mühe gemacht, aber stehe noch am Anfang was JavaSscript betrifft und tu mich da etwas schwer, mit blockly gehts da so einigermaßen :-D

                  Grüße

                  PLCHome 0P 1 Antwort Letzte Antwort
                  0
                  • D Diamand2k22

                    @plchome-0

                    ok danke, kannst du da eine Vorlage posten? ich weiß du hast dir da viel Mühe gemacht, aber stehe noch am Anfang was JavaSscript betrifft und tu mich da etwas schwer, mit blockly gehts da so einigermaßen :-D

                    Grüße

                    PLCHome 0P Offline
                    PLCHome 0P Offline
                    PLCHome 0
                    Developer
                    schrieb am zuletzt editiert von
                    #75

                    @diamand2k22 Mehr als das Script habe ich nicht.

                    D 1 Antwort Letzte Antwort
                    0
                    • PLCHome 0P PLCHome 0

                      @diamand2k22 Mehr als das Script habe ich nicht.

                      D Offline
                      D Offline
                      Diamand2k22
                      schrieb am zuletzt editiert von
                      #76

                      @plchome-0

                      ok trotzdem danke! dann schau ich mal, dass ich mir was zusammen bastel :-D

                      PLCHome 0P 1 Antwort Letzte Antwort
                      0
                      • D Diamand2k22

                        @plchome-0

                        ok trotzdem danke! dann schau ich mal, dass ich mir was zusammen bastel :-D

                        PLCHome 0P Offline
                        PLCHome 0P Offline
                        PLCHome 0
                        Developer
                        schrieb am zuletzt editiert von
                        #77

                        @diamand2k22 h ist die Sunde am Tag, state.val ist der Akkustand

                        D 1 Antwort Letzte Antwort
                        0
                        • PLCHome 0P PLCHome 0

                          @diamand2k22 h ist die Sunde am Tag, state.val ist der Akkustand

                          D Offline
                          D Offline
                          Diamand2k22
                          schrieb am zuletzt editiert von
                          #78

                          @plchome-0

                          ich hab das Skript auf WhatsApp umgestellt.
                          kann dir mal kurz zeigen, wie es aussieht.

                          
                          let autoheat = false
                          const pvSOC='fronius.0.powerflow.P_PV'/*pv power*/;
                          //const pvOK='growatt.0.info.connection';
                          const pvOK='';
                           
                          const poolPower = "intex.0.7e88c852-bc88-4470-a009-d8d4744363f6.control.Power"
                          const poolHeat = "intex.0.7e88c852-bc88-4470-a009-d8d4744363f6.control.Heat"
                          const poolSanitzer = "intex.0.7e88c852-bc88-4470-a009-d8d4744363f6.control.Sanitzer"
                          const poolTemperatur = "intex.0.7e88c852-bc88-4470-a009-d8d4744363f6.control.Temperature"
                          const poolTargetTemperature = "intex.0.7e88c852-bc88-4470-a009-d8d4744363f6.control.TargetTemperature"
                           
                          start()
                          async function start() {
                              let state = await getStateAsync(pvSOC);
                              doHeat(state);
                          }
                          let run=false
                          schedule('0,15,30,45 * * * *', doSchedule) 
                          let errcount = 0
                          async function doSchedule(){
                              if (run) {
                                  log ('double run')
                                  return
                              }
                              try {
                                  run = true
                                  log ('check')
                                  let [ok,
                                      temp,
                                      state,
                                      heat] = await Promise.all([getStateAsync(pvOK),
                                                                  getStateAsync(poolTemperatur),
                                                                  getStateAsync(pvSOC),
                                                                  getStateAsync(poolHeat)])
                                  //if (ok.val == false) 
                                  if (ok.val != "no") 
                                      {errcount++} 
                                  else 
                                      {errcount = 0};
                                  //if (autoheat && ok.val == false && errcount >= 3) {
                                  if (autoheat && ok.val != "no" && errcount >= 3) {
                                      if (heat.val)
                                        setState(poolHeat,false,false);
                                      log ('emergency off')
                                      autoheat = false;
                                      sendTo("whatsapp-cmb.0", "send", {
                                          text:    "*Der Inverter ist seit 45min gestört!*<br>Die Poolheizung wird bei "+temp.val+"°C abgestellt..."
                                      });
                                  } else {
                                      doHeat(state);
                                  }
                              } finally {
                                  run=false
                              }
                          }
                           
                          on({id: pvSOC, change: "ne"},(obj)=>{doHeat(obj.state)});
                          async function doHeat(state) {
                              let h = (new Date()).getHours()
                              let [ok,
                                   temp,
                                   target,
                                   heat,
                                   sanitzer] = await Promise.all([getStateAsync(pvOK),
                                                              getStateAsync(poolTemperatur),
                                                              getStateAsync(poolTargetTemperature),
                                                              getStateAsync(poolHeat),
                                                              getStateAsync(poolSanitzer)])
                              //if (!autoheat && (ok.val == true) && (((state.val >= 30) && (h >= 4) && (h <= 8)) ||((state.val >= 60) && (h >= 9) && (h <= 10)) || ((state.val >= 85) && (h >= 11) && (h <= 15)))) {
                              if (!autoheat && (ok.val == "no") && (((state.val >= 30) && (h >= 4) && (h <= 8)) ||((state.val >= 60) && (h >= 9) && (h <= 10)) || ((state.val >= 85) && (h >= 11) && (h <= 15)))) {
                                  autoheat = true;
                                  //setState(poolPower,true,false);
                                  if (sanitzer.val)  setState(poolSanitzer,false,false);
                                  if (!heat.val)  setState(poolHeat,true,false);
                                  log ('on')
                                  sendTo("whatsapp-cmb.0", "send", {
                                      text:    "*Es ist viel Sonne am Himmel!*<br>Der Pool wird bei "+temp.val+"°C auf "+target.val+"°C geheitzt..."
                                  });
                              } else if (autoheat && (((state.val < 80) && (h > 12) ) || ((state.val < 95) && (h > 17)) || ((state.val < 55) && (h >= 9) && (h <= 12))|| ((state.val < 29) && (h >= 4) && (h <= 8)))) {
                                  autoheat = false;
                                  if (heat.val)  setState(poolHeat,false,false);
                                  log ('off')
                                  sendTo("whatsapp-cmb.0", "send", {
                                      subject: "Die Sonne geht weg",
                                      text:    "*Die Sonne geht weg!*<br>Die Poolheizung wird bei "+temp.val+"°C abgestellt..."
                                  });
                              }
                          };
                          

                          er bring mir als Fehler:

                          pool.JPG

                          Gruß

                          1 Antwort Letzte Antwort
                          0
                          • PLCHome 0P Offline
                            PLCHome 0P Offline
                            PLCHome 0
                            Developer
                            schrieb am zuletzt editiert von PLCHome 0
                            #79

                            @diamand2k22 ja der Objektname für pvOK fehlt. Daher ist der State für ok null und hat keine Propety val.
                            Das Script geht auch auf Akkustand 0%-100% und nicht auf PV-Leistung.
                            Durch die schwankende Leistung wird das so nicht funktionieren.

                            D 1 Antwort Letzte Antwort
                            0
                            • PLCHome 0P PLCHome 0

                              @diamand2k22 ja der Objektname für pvOK fehlt. Daher ist der State für ok null und hat keine Propety val.
                              Das Script geht auch auf Akkustand 0%-100% und nicht auf PV-Leistung.
                              Durch die schwankende Leistung wird das so nicht funktionieren.

                              D Offline
                              D Offline
                              Diamand2k22
                              schrieb am zuletzt editiert von
                              #80

                              @plchome-0

                              Ok, Leider habe ich meinen Akku noch nicht.
                              Dann schau ich mal ob ich das Skript auf pv überschuss Leistung in w umgestellt bekommen.
                              Const pvOK liefert True or false Signal oder?

                              Danke und Grüße

                              PLCHome 0P 1 Antwort Letzte Antwort
                              0
                              • D Diamand2k22

                                @plchome-0

                                Ok, Leider habe ich meinen Akku noch nicht.
                                Dann schau ich mal ob ich das Skript auf pv überschuss Leistung in w umgestellt bekommen.
                                Const pvOK liefert True or false Signal oder?

                                Danke und Grüße

                                PLCHome 0P Offline
                                PLCHome 0P Offline
                                PLCHome 0
                                Developer
                                schrieb am zuletzt editiert von
                                #81

                                @diamand2k22

                                && (ok.val == "no")
                                

                                in den auskommentierten Zeilen ist es true

                                D 1 Antwort Letzte Antwort
                                0
                                • PLCHome 0P PLCHome 0

                                  @diamand2k22

                                  && (ok.val == "no")
                                  

                                  in den auskommentierten Zeilen ist es true

                                  D Offline
                                  D Offline
                                  Diamand2k22
                                  schrieb am zuletzt editiert von
                                  #82

                                  @plchome-0

                                  Danke :+1:

                                  D 1 Antwort Letzte Antwort
                                  0
                                  • D Diamand2k22

                                    @plchome-0

                                    Danke :+1:

                                    D Offline
                                    D Offline
                                    Diamand2k22
                                    schrieb am zuletzt editiert von Diamand2k22
                                    #83

                                    @plchome-0

                                    ich wollte es jetzt so lösen, aber irgendwo ist noch der Wurm drin.
                                    Dein Skript wird ja per cron alle 15 Minuten aufgerufen, dann muss ich noch eine Lösung finden, wie ich den timeout verarbeite.

                                    Wenn PV Grid (Überschuss in Watt 5min) über 1500W ist, schaltet der Pool ein, wenn PV Grid <=100W über 2min, schaltet der Pool wieder ab.

                                    
                                    let autoheat = false
                                    const pvSOC='fronius.0.powerflow.P_Grid'/*grid power*/;
                                    const pvOK='fronius.0.info.connection'/**/;
                                    var delayOn, delayOff;
                                     
                                    const poolPower = "intex.0.7e88c852-bc88-4470-a009-d8d4744363f6.control.Power"
                                    const poolHeat = "intex.0.7e88c852-bc88-4470-a009-d8d4744363f6.control.Heat"
                                    const poolSanitzer = "intex.0.7e88c852-bc88-4470-a009-d8d4744363f6.control.Sanitzer"
                                    const poolTemperatur = "intex.0.7e88c852-bc88-4470-a009-d8d4744363f6.control.Temperature"
                                    const poolTargetTemperature = "intex.0.7e88c852-bc88-4470-a009-d8d4744363f6.control.TargetTemperature"
                                     
                                    start()
                                    async function start() {
                                        let state = await getStateAsync(pvSOC);
                                        doHeat(state);
                                    }
                                    let run=false
                                    schedule('0,15,30,45 * * * *', doSchedule) 
                                    let errcount = 0
                                    async function doSchedule(){
                                        if (run) {
                                            log ('double run')
                                            return
                                        }
                                        try {
                                            run = true
                                            log ('check')
                                            let [ok,
                                                temp,
                                                state,
                                                heat] = await Promise.all([getStateAsync(pvOK),
                                                                            getStateAsync(poolTemperatur),
                                                                            getStateAsync(pvSOC),
                                                                            getStateAsync(poolHeat)])
                                            if (ok.val == false) 
                                            //if (ok.val != "no") 
                                                {errcount++} 
                                            else 
                                                {errcount = 0};
                                            if (autoheat && ok.val == false && errcount >= 3) {
                                            //if (autoheat && ok.val != "no" && errcount >= 3) {
                                                if (heat.val)
                                                  setState(poolHeat,false,false);
                                                log ('emergency off')
                                                autoheat = false;
                                                sendTo("whatsapp-cmb.0", "send", {
                                                    text:"*Der Inverter ist seit 45min gestört!*Die Poolheizung wird bei "+temp.val+"°C abgestellt..."
                                                });
                                            } else {
                                                doHeat(state);
                                            }
                                        } finally {
                                            run=false
                                        }
                                    }
                                     
                                    on({id: pvSOC, change: "ne"},(obj)=>{doHeat(obj.state)});
                                    async function doHeat(state) {
                                        let h = (new Date()).getHours()
                                        let [ok,
                                             temp,
                                             target,
                                             heat,
                                             sanitzer] = await Promise.all([getStateAsync(pvOK),
                                                                        getStateAsync(poolTemperatur),
                                                                        getStateAsync(poolTargetTemperature),
                                                                        getStateAsync(poolHeat),
                                                                        getStateAsync(poolSanitzer)])
                                        if (!autoheat && (ok.val == true) && (((state.val >= -1500) && (h >= 9) && (h <= 18)) )) {
                                        //if (!autoheat && (ok.val == "no") && (((state.val >= 30) && (h >= 4) && (h <= 8)) ||((state.val >= 60) && (h >= 9) && (h <= 10)) || ((state.val >= 85) && (h >= 11) && (h <= 15)))) {
                                            (function () {if (delayOn) {clearTimeout(delayOn); delayOn = null;}})();
                                            } else if ((state.oldState ? state.oldState.val : "") >= -1500) {
                                            delayOn = setTimeout(async function () {
                                            autoheat = true;
                                            //setState(poolPower,true,false);
                                            if (sanitzer.val)  setState(poolSanitzer,false,false);
                                            if (!heat.val)  setState(poolHeat,true,false);
                                            log ('on')
                                            sendTo("whatsapp-cmb.0", "send", {
                                                text:"*Es ist viel Sonne am Himmel!*Der Pool wird bei "+temp.val+"°C auf "+target.val+"°C geheitzt..."
                                            });
                                            }, 300000);
                                        } else if (autoheat && (ok.val == true) && (((state.val <=-100) && (h >= 9) && (h <= 18)) )) {
                                             (function () {if (delayOff) {clearTimeout(delayOff); delayOff = null;}})();
                                          } else if ((state.oldState ? state.oldState.val : "") <= -100) {
                                            delayOff = setTimeout(async function () {
                                            autoheat = false;
                                            if (heat.val)  setState(poolHeat,false,false);
                                            log ('off')
                                            sendTo("whatsapp-cmb.0", "send", {
                                                text:"*Die Sonne geht weg!*Die Poolheizung wird bei "+temp.val+"°C abgestellt..."
                                            });
                                            }, 120000);
                                        }
                                    };
                                    

                                    Grüße

                                    1 Antwort Letzte Antwort
                                    0
                                    • D Offline
                                      D Offline
                                      daniel.furrer
                                      schrieb am zuletzt editiert von
                                      #84

                                      Hi, did someone manage to get the pool into HomeKit using yahka plugin? I’d like to see current temp an switch on/off heat, bubbles and jets. Maybe set the target temp as well. I struggle a bit here. Anyone can post their setup?

                                      1 Antwort Letzte Antwort
                                      0
                                      • PLCHome 0P PLCHome 0

                                        @grex1975
                                        Die App kommuniziert mir der Cloud.
                                        Die Cloud kommuniziert mit dem WLAN-Empfänger im Pool.
                                        Ich meine, der sitzt im Bedienteil.
                                        Der WLAN-Empfänger im Pool wiederum mit dem Bedienteil oder der Steuerplatine.
                                        Bedienteil und Steuerplatine kommunizieren über einen Serielumsetzer im 2.4 GHz Band untereinander.

                                        Aufgrund der Laufzeiten gehe ich davon aus:
                                        Die App sendet eine Anfrage an die Cloud,
                                        Die Cloud fragt den WLAN-Empfänger im Pool ab.
                                        Ob der nun die Daten vorhält oder bei der Steuerung abfragt, weiß ich nicht.
                                        Der WLAN-Empfänger im Pool sendet die Zustände an die Cloud.
                                        Die Cloud wiederum an die App.

                                        Das Protokoll des Seriellumsetzers ist auch geknackt, hier gibt es einen MQTT Umsetzer für ältere Pools ohne WLAN, funktioniert aber auch mit den NEUEN Pools, da an der Kommunikation zwischen Bedienteil und Pool nichts geändert wurde:
                                        https://github.com/Yogui79/IntexPureSpa

                                        Das läuft übrigens flüssiger als die APP von Intex :-)

                                        T Offline
                                        T Offline
                                        Tobi68
                                        schrieb am zuletzt editiert von
                                        #85

                                        @plchome-0 sagte in Test Intext App v0.0.x:

                                        Das Protokoll des Seriellumsetzers ist auch geknackt, hier gibt es einen MQTT Umsetzer für ältere Pools ohne WLAN, funktioniert aber auch mit den NEUEN Pools, da an der Kommunikation zwischen Bedienteil und Pool nichts geändert wurde:
                                        https://github.com/Yogui79/IntexPureSpa

                                        Das läuft übrigens flüssiger als die APP von Intex :-)

                                        Das habe ich mir gerade angeschaut und wollte wissen ob ich damit auch in den IOB komme..
                                        Ich habe nen 2020iger recht günstig angeboten bekommen.. das würde also gehen ohne ne neue Steuerplatine einzubauen?

                                        D 1 Antwort Letzte Antwort
                                        0
                                        • T Tobi68

                                          @plchome-0 sagte in Test Intext App v0.0.x:

                                          Das Protokoll des Seriellumsetzers ist auch geknackt, hier gibt es einen MQTT Umsetzer für ältere Pools ohne WLAN, funktioniert aber auch mit den NEUEN Pools, da an der Kommunikation zwischen Bedienteil und Pool nichts geändert wurde:
                                          https://github.com/Yogui79/IntexPureSpa

                                          Das läuft übrigens flüssiger als die APP von Intex :-)

                                          Das habe ich mir gerade angeschaut und wollte wissen ob ich damit auch in den IOB komme..
                                          Ich habe nen 2020iger recht günstig angeboten bekommen.. das würde also gehen ohne ne neue Steuerplatine einzubauen?

                                          D Offline
                                          D Offline
                                          Diamand2k22
                                          schrieb am zuletzt editiert von Diamand2k22
                                          #86

                                          @PLCHome-0

                                          Neuerdings wird mein Log zugemüllt mit Meldungen vom Intex Adapter. Die Funktion ist aber nach wie vor gegeben. Die Meldungen wiederholen sich ca. alle 5 Minuten.
                                          Weißt du, wie man das abstellen kann?
                                          Für jeden Tipp bin ich Dankbar!

                                          7af76533-f1ca-4235-b105-82379caeaa23-image.png

                                          PLCHome 0P 1 Antwort Letzte Antwort
                                          0
                                          Antworten
                                          • In einem neuen Thema antworten
                                          Anmelden zum Antworten
                                          • Älteste zuerst
                                          • Neuste zuerst
                                          • Meiste Stimmen


                                          Support us

                                          ioBroker
                                          Community Adapters
                                          Donate

                                          805

                                          Online

                                          32.4k

                                          Benutzer

                                          81.5k

                                          Themen

                                          1.3m

                                          Beiträge
                                          Community
                                          Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen | Einwilligungseinstellungen
                                          ioBroker Community 2014-2025
                                          logo
                                          • Anmelden

                                          • Du hast noch kein Konto? Registrieren

                                          • Anmelden oder registrieren, um zu suchen
                                          • Erster Beitrag
                                            Letzter Beitrag
                                          0
                                          • Home
                                          • Aktuell
                                          • Tags
                                          • Ungelesen 0
                                          • Kategorien
                                          • Unreplied
                                          • Beliebt
                                          • GitHub
                                          • Docu
                                          • Hilfe