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. Tester
  4. Test Intext App v0.0.x

NEWS

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

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

  • Weihnachtsangebot 2025! 🎄
    BluefoxB
    Bluefox
    25
    1
    2.2k

Test Intext App v0.0.x

Scheduled Pinned Locked Moved Tester
203 Posts 19 Posters 35.1k Views 14 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.
  • PLCHome 0P PLCHome 0

    @grex1975 said in Test Intext App v0.0.x:

    Wie oft fragt der iobroker Adapter den Status über die cloud ab?

    Das liegt an deiner (inneren) Einstellung ich hab 1 eingestellt :-)

    460766a7-5e26-49f9-b274-f29d821aef6d-image.png

    Meine Intex-Fernbedienung ist ziemlich wasserempfindlich - ein paar Tropfen und sie spinnt für die nächsten 24h.

    Mit der Fernbedienung hatte ich noch keine Wasserprobleme, die ist bei uns immer in der Halterung, wenn wir drinsitzen, allerdings nehme ich die morgens aus der Ladeschale, wenn es warm wird. Da steht die Sonne drauf und der alte Pool ist schon mal ausgestiegen, weil dem Bedienteil zu warm war. Nachts ist die in der Ladeschale auch bei Regen. Weder an meinem Alten noch an dem neuen Pool hatte wir Feuchtigkeitsprobleme.

    Wir hatten 2 Jahre einen kleinen 750l ohne WLAN und ich hab jetzt den gleichen mit 1m³ und WLAN bestellt.

    Das Projekt mit dem ESP hatte ich zu spät gefunden. Komisch ist, dass man dort dreimal den ESP bespielen muss.
    Die Teile hab ich da, wenn ich Zeit habe, werde ich das mal ausprobieren.

    Wenn es funktioniert, kann ich z.B. für die Kinder 2 Knöpfe machen - Jet für 10 Min ein und Blubberblasen für 10 Min ein

    Zigbee-Taster -> iobroker? oder tasmota.Taster -> MQTT -> iobroker -> Script?
    Ich hab den jetzt Pool über MQTT in der Homebridge darüber dann in Alexa und Handy.

    Mit Conbee/dconz ist aber auch ein Zigbee Taster von Xiaomi Aqara möglich, so was hab ich für die Zirkulation. In der Küche und im Bad Zigbee Taster drücken, Alexa sagt, es wurde gestartet und in 2min ist das Wasser warm. Bei 2x Drücken wird auch zur "Unzeit" der Speicher aufgeheizt.

    D Offline
    D Offline
    drheck
    wrote on last edited by
    #66

    @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 1 Reply Last reply
    0
    • 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
      wrote on last edited by 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 Reply Last reply
      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
        wrote on last edited by
        #68

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

        1 Reply Last reply
        0
        • D Offline
          D Offline
          Diamand2k22
          wrote on last edited by
          #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 Reply Last reply
          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
            wrote on last edited by
            #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 Reply Last reply
            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
              wrote on last edited by
              #71

              @plchome-0

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

              VG Thomas

              D 1 Reply Last reply
              0
              • D Diamand2k22

                @plchome-0

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

                VG Thomas

                D Offline
                D Offline
                Diamand2k22
                wrote on last edited by
                #72

                @plchome-0

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

                Gruß

                PLCHome 0P 1 Reply Last reply
                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
                  wrote on last edited by
                  #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 Reply Last reply
                  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
                    wrote on last edited by
                    #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 Reply Last reply
                    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
                      wrote on last edited by
                      #75

                      @diamand2k22 Mehr als das Script habe ich nicht.

                      D 1 Reply Last reply
                      0
                      • PLCHome 0P PLCHome 0

                        @diamand2k22 Mehr als das Script habe ich nicht.

                        D Offline
                        D Offline
                        Diamand2k22
                        wrote on last edited by
                        #76

                        @plchome-0

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

                        PLCHome 0P 1 Reply Last reply
                        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
                          wrote on last edited by
                          #77

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

                          D 1 Reply Last reply
                          0
                          • PLCHome 0P PLCHome 0

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

                            D Offline
                            D Offline
                            Diamand2k22
                            wrote on last edited by
                            #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 Reply Last reply
                            0
                            • PLCHome 0P Offline
                              PLCHome 0P Offline
                              PLCHome 0
                              Developer
                              wrote on last edited by 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 Reply Last reply
                              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
                                wrote on last edited by
                                #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 Reply Last reply
                                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
                                  wrote on last edited by
                                  #81

                                  @diamand2k22

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

                                  in den auskommentierten Zeilen ist es true

                                  D 1 Reply Last reply
                                  0
                                  • PLCHome 0P PLCHome 0

                                    @diamand2k22

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

                                    in den auskommentierten Zeilen ist es true

                                    D Offline
                                    D Offline
                                    Diamand2k22
                                    wrote on last edited by
                                    #82

                                    @plchome-0

                                    Danke :+1:

                                    D 1 Reply Last reply
                                    0
                                    • D Diamand2k22

                                      @plchome-0

                                      Danke :+1:

                                      D Offline
                                      D Offline
                                      Diamand2k22
                                      wrote on last edited by 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 Reply Last reply
                                      0
                                      • D Offline
                                        D Offline
                                        daniel.furrer
                                        wrote on last edited by
                                        #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 Reply Last reply
                                        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
                                          wrote on last edited by
                                          #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 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

                                          410

                                          Online

                                          32.6k

                                          Users

                                          82.2k

                                          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