Skip to content
  • 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
Logo
  1. ioBroker Community Home
  2. Deutsch
  3. Hardware
  4. Lay-Z-Spa Wifi Control

NEWS

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

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

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

Lay-Z-Spa Wifi Control

Lay-Z-Spa Wifi Control

Scheduled Pinned Locked Moved Hardware
211 Posts 76 Posters 50.5k Views 72 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.
  • mrFenyxM Offline
    mrFenyxM Offline
    mrFenyx
    wrote on last edited by
    #102

    Hi zusammen,
    ich habe die States in ioBroker reinbekommen aber ich kann leider keine Befehle rausschicken. Ich bekomme die Fehlermeldung State "mqtt-client.0.layzspa.command" not found - der existiert tatsächlich nicht. Soll ich es per Hand erstellen oder habe ich etwas falsch gemacht? Ich benutze auch "nur" das mqtt-client, nicht das mqtt Adapter aber damit, denke ich, sollte es nicht zu tun haben, oder?
    Danke!

    mrFenyxM 1 Reply Last reply
    0
    • H hlgamer

      Moin, ich bin auch noch auf der Suche nach einer PCBv2-Platine bzw. einem ganzen Bausatz.
      Falls jemand etwas abzugeben hat würde ich mich über eine Nachricht freuen.
      Gruß Tom

      Edit: Ich habe noch Teile abzugeben.

      PCB_V2B-Platine - 10 Euro
      Bausatz bestehend aus: PCBv2-Platine, NodeMCU V3, Level-Shifter 8CH (rot), Widerstände und Kondensatoren, Kabelsatz 6-Adrig - 30 Euro
      Gehäuse aus dem 3D Drucker - 10 Euro
      Lay-Z-Spa Wifi-Controller, gelötet und geflasht einschl. 3D-Gehäuse - 55 Euro
      zzgl. 5.49 Euro Versandkosten

      Bei Interesse gerne melden.

      WhatsApp Image 2023-09-08 at 11.59.05.jpeg

      mrFenyxM Offline
      mrFenyxM Offline
      mrFenyx
      wrote on last edited by
      #103

      @hlgamer said in Lay-Z-Spa Wifi Control:

      Moin, ich bin auch noch auf der Suche nach einer PCBv2-Platine bzw. einem ganzen Bausatz.
      Falls jemand etwas abzugeben hat würde ich mich über eine Nachricht freuen.
      Gruß Tom

      Edit: Ich habe noch Teile abzugeben.

      PCB_V2B-Platine - 10 Euro
      Bausatz bestehend aus: PCBv2-Platine, NodeMCU V3, Level-Shifter 8CH (rot), Wiederstände und Kondensatoren, Kabelsatz 6-Adrig - 30 Euro
      Gehäuse aus dem 3D Drucker - 10 Euro
      Lay-Z-Spa Wifi-Controller, gelötet und geflasht einschl. 3D-Gehäuse - 55 Euro
      zzgl. 5.49 Euro Versandkosten

      Bei Interesse gerne melden.

      WhatsApp Image 2023-09-08 at 11.59.05.jpeg

      @hlgamer vielen Dank für den Controller! hat alles super geklappt, funktioniert prima! 👏 👍

      1 Reply Last reply
      0
      • mrFenyxM mrFenyx

        Hi zusammen,
        ich habe die States in ioBroker reinbekommen aber ich kann leider keine Befehle rausschicken. Ich bekomme die Fehlermeldung State "mqtt-client.0.layzspa.command" not found - der existiert tatsächlich nicht. Soll ich es per Hand erstellen oder habe ich etwas falsch gemacht? Ich benutze auch "nur" das mqtt-client, nicht das mqtt Adapter aber damit, denke ich, sollte es nicht zu tun haben, oder?
        Danke!

        mrFenyxM Offline
        mrFenyxM Offline
        mrFenyx
        wrote on last edited by mrFenyx
        #104

        @mrfenyx said in Lay-Z-Spa Wifi Control:

        Hi zusammen,
        ich habe die States in ioBroker reinbekommen aber ich kann leider keine Befehle rausschicken. Ich bekomme die Fehlermeldung State "mqtt-client.0.layzspa.command" not found - der existiert tatsächlich nicht. Soll ich es per Hand erstellen oder habe ich etwas falsch gemacht? Ich benutze auch "nur" das mqtt-client, nicht das mqtt Adapter aber damit, denke ich, sollte es nicht zu tun haben, oder?
        Danke!

        UPDATE:
        tatsächlich muss man das mqtt Adapter benutzen, dann gibt es auch /command. Das Problem dass ich nun habe ist mit das setzen von AMBC. Ich habe das folgende Szenario:

        • die Außentemperatur ist durch die Weboberfläche auf 25°C gesetzt
        • in ioBroker sehe ich diesen Wert:
          6887417c-1982-4b81-87e4-e703eb2c7e21-image.png
        • nun versuche ich diesen Wert manuell auf 30 zu setzen
          d104339c-71e7-4d35-be64-44d02106e113-image.png
        • tatsächlicher Wert was dann gesetzt wird ist -1
        • ich ändere es wieder auf 25°C in der Weboberfläche was in ioBroker übernommen wird.
        • ich versuche es dann in ioBroker auf 86 zu ändern
        • gesetzter Wert ist dann 25

        Das führt mich dazu zu glauben dass der AMBC der gesetzt wird, eigentlich der AMBF (also in Fahrenheit) ist. Weiß jemand was man ändern muss, um den Wert in °C zu setzen?

        Danke!

        UPDATE:
        man muss hier das CMD auf 15 setzen, nicht 14:

        case 'AMBC':
                    setStateAsync('mqtt.'+ MQTTINSTANCE+'.layzspa.command','{"CMD":15,"VALUE":'+ value +',"XTIME":0,"INTERVAL":0}')
                    log('change ambient temp. to '+ value);
                break;
        

        14 = °F und 15 = °C

        1 Reply Last reply
        0
        • J johobo

          So, Ich wollte mal von meiner Umsetzung berichten.

          Ich habe den Lay-Z-Spa Miami mit dem >2021er Pumpenmodul.

          Die Platinen waren nach ca. 1,5 Wochen aus China bei mir.

          Bei einem ersten Testaufbau auf Steckbrett hatte ich schon festgestellt, dass ich für meinen Pool die Kabelbelegung 1:1 aufbauen muss, damit es funktioniert. Bei dem Versuch war kein Low-Pass Filter vorhanden und es kam zu keinem Display-Flickern. Zur Sicherheit baute ich dann im ersten Versuch mit Platine den Filter mit ein. Dies führte aber dazu, dass das Display nicht mehr funktionierte. Also bestückte ich eine zweiter Platine ohne filter und es funktionierte einwandfrei.

          Bestway Wifi PCB 3.jpg Bestway Wifi PCB 2.jpg Bestway Wifi PCB 1.jpg

          Die Einbindung in IO broker lief soweit auch.

          Für den finalen Einbau musste aber noch ein Gehäuse her.
          Ich orientierte mich am Design von @Rickman (Vielen Dank!) und einem Case ohne Halterung von thingiverse. Heraus kam dieses Thing: https://www.thingiverse.com/thing:6061047 mit dem ich auch ziemlich zufrieden bin. Evtl. muss ich hier nochmal eine neuere Version aus ABS erstellen. PLA scheint mir hier bei den Temperaturen etwas kritisch…

          Bild2.jpg Bild1.jpg

          Alles in allem bin ich aber super zufrieden mit dem Projekt und bedanke mich bei euch allen für die Berichte die zu meinem Erfolg beigetragen haben!

          R Offline
          R Offline
          RoccoNaut
          wrote on last edited by
          #105

          @johobo Hast du noch mal den Link zu de Gehäuse? Der Link hier funktioniert nicht mehr.

          1 Reply Last reply
          0
          • S Smokey

            @agria4800 sagte in Lay-Z-Spa Wifi Control:

            Und so siehts dann aus...Bildschirmfoto 2022-08-12 um 21.17.52.png

            😞 ich hab den ganzen Threat jetzt x mal gelesen, raffe aber einfach nicht, wie ich per VIS die entsprechenden Kommandos absetzen kann, wie es oben im Bild zu sehen ist. Das sind doch keine direkten Datenpunkte, die einen Wert oder ein true/false erwarten. Ich sehe im Objekt-Baum hinter den Datenpunkten nur JASON files oder scripts. Was hab ich denn übersehen?

            B Offline
            B Offline
            Bomer
            wrote on last edited by
            #106

            @smokey said in Lay-Z-Spa Wifi Control:

            @agria4800 sagte in Lay-Z-Spa Wifi Control:

            Und so siehts dann aus...Bildschirmfoto 2022-08-12 um 21.17.52.png

            😞 ich hab den ganzen Threat jetzt x mal gelesen, raffe aber einfach nicht, wie ich per VIS die entsprechenden Kommandos absetzen kann, wie es oben im Bild zu sehen ist. Das sind doch keine direkten Datenpunkte, die einen Wert oder ein true/false erwarten. Ich sehe im Objekt-Baum hinter den Datenpunkten nur JASON files oder scripts. Was hab ich denn übersehen?
            Hi,
            würdest du das Vis auch zur Verfügung stellen?
            MfG
            Bomer

            1 Reply Last reply
            0
            • Agria4800A Agria4800

              @agria4800 : Anbei das Script für die Leute mit dem Layz Hawaii oder Maldives (mit den Hydrojet Düsen) 😉

              // https://forum.iobroker.net/topic/51603/lay-z-spa-wifi-control?_=1655490942180&lang=de
              
              /*Notes for me
              
              Last filter change was 0.00 day(s) ago.  RESET Button gedrückt!
              {"CMD":10,"VALUE":0,"XTIME":1658859596,"INTERVAL":0}
              
              
              Last chlorine add was 0.00 day(s) ago.
              {"CMD":9,"VALUE":0,"XTIME":1658859652,"INTERVAL":0}
              */
              
              const Messages =  
              {
               "CONTENT": "STATES",
               "LCK": 0,
               "PWR": 0,
               "UNT": 1,
               "AIR": 0,
               "GRN": 0,
               "RED": 0,
               "FLT": 0,
               "TGT": 22,
               "TMP": 13,
               "CH1": 32,
               "CH2": 49,
               "CH3": 51,
               "HJT": 0,
               "BRT": 7
              }
              const ID = '0_userdata.0.Layz-Hydro';
              const MQTTINSTANCE = 0;
              const debug = true;
              /*
              {
               "CONTENT": "TIMES",
               "TIME": 1650746370,
               "CLTIME": 1644734714,
               "FTIME": 1644734719,
               "UPTIME": 41660,
               "PUMPTIME": 50,
               "HEATINGTIME": 24,
               "AIRTIME": 512,
               "JETTIME": 4294966,
               "COST": 0,
               "FINT": 4294967295,
               "CLINT": 4294967295,
               "KWH": null,
               "TTTT": -74677
              }
              */
              const STATES=[
                 {
                     _id: 'LCK',
                     type: 'state',
                     common: {
                         name: 'lock',
                         type: 'boolean',
                         role: 'switch',
                         read: true,
                         write: false,
                         desc: 'Lazy spa lock'
                     },
                     native: {}
                 },
                 {
                     _id: 'PWR',
                     type: 'state',
                     common: {
                         name: 'power',
                         type: 'boolean',
                         role: 'switch.power',
                         read: true,
                         write: true,
                         desc: 'Lazy spa power'
                     },
                     native: {}
                 },
                 {
                 _id: 'UNT',
                 type: 'state',
                 common: {
                     name: 'unit',
                     type: 'number',
                     role: 'value',
                     read: true,
                     write: true,
                     max: 1,
                     desc: 'Lazy spa unit',
                     states: {
                 			0: 'Farenheit',
                 			1: 'Celsius'
                 		}
                 },
                    native: {}
                 },
                 {
                 _id: 'HJT',
                 type: 'state',
                 common: {
                     name: 'Hydrojet',
                     type: 'boolean',
                     role: 'switch',
                     read: true,
                     write: true,
                     desc: 'Lazy spa Hydrojets state'
                 },
                    native: {}
                 },
                 {
                 _id: 'AIR',
                 type: 'state',
                 common: {
                     name: 'bubbles',
                     type: 'boolean',
                     role: 'switch',
                     read: true,
                     write: true,
                     desc: 'Lazy spa bubbles state'
                 },
                 native: {}
                 },
                 {
                 _id: 'GRN',
                 type: 'state',
                 common: {
                     name: 'Heating green',
                     type: 'boolean',
                     role: 'switch',
                     read: true,
                     write: false,
                     desc: 'reached target temp.'
                 },
                 native: {}
                 },
                 {
                 _id: 'RED',
                 type: 'state',
                 common: {
                     name: 'Heating red',
                     type: 'boolean',
                     role: 'switch',
                     read: true,
                     write: false,
                     desc: 'not reached target temp.'
                 },
                 native: {}
                 },
                 {
                 _id: 'FLT',
                 type: 'state',
                 common: {
                     name: 'pump',
                     type: 'boolean',
                     role: 'switch',
                     read: true,
                     write: true,
                     desc: 'pump state'
                 },    native: {}
                 },
                 {
                 _id: 'HEATER',
                 type: 'state',
                 common: {
                     name: 'heater',
                     type: 'boolean',
                     role: 'switch',
                     read: true,
                     write: true,
                     desc: 'heater state'
                 },
                 native: {}
                 },
                 {
                 _id: 'TGT',
                 type: 'state',
                 common: {
                     name: 'target temp',
                     type: 'number',
                     role: 'level.temperature',
                     min: 20,
                     max: 40,
                     steps: 1,
                     read: true,
                     write: true,
                     desc: 'taget temp.'
                 },
                 native: {}
                 },
                 {
                 _id: 'TMP',
                 type: 'state',
                 common: {
                     name: 'temp',
                     type: 'number',
                     role: 'value.temperature',
                     read: true,
                     write: false,
                     unit: '°C',
                     desc: 'temp.'
                 },
                 native: {}
                 },
              ]
              
              
              init();
              async function stateChange(obj){
                 let id = obj.id
                 let state = id.split('.').pop()
                 let value = obj.state.val
                 log('change Unit' + state)
                 switch (state) {
                     case 'UNT':
                         setStateAsync('mqtt.'+ MQTTINSTANCE+'.layzspa.command','{"CMD":1,"VALUE":'+ value +',"XTIME":0,"INTERVAL":0}')
                         log('change Unit')
                     break;
                     case 'TGT':
                         setStateAsync('mqtt.'+ MQTTINSTANCE+'.layzspa.command','{"CMD":0,"VALUE":'+ value +',"XTIME":0,"INTERVAL":0}')
                         log('change target temp. to '+ value);
                     break;
                     case 'AIR':
                         value = value ? 1: 0 ;
                         setStateAsync('mqtt.'+ MQTTINSTANCE+'.layzspa.command','{"CMD":2,"VALUE":'+ value +',"XTIME":0,"INTERVAL":0}')
                         log('set bubbles to '+ value);
                     break;
                      case 'HJT':
                         value = value ? 1: 0 ;
                         setStateAsync('mqtt.'+ MQTTINSTANCE+'.layzspa.command','{"CMD":11,"VALUE":'+ value +',"XTIME":0,"INTERVAL":0}')
                         log('set Hydrojets to '+ value);
                     break;
                     case 'HEATER':
                         value = value ? 1: 0 ;
                         setStateAsync('mqtt.'+ MQTTINSTANCE+'.layzspa.command','{"CMD":3,"VALUE":'+ value +',"XTIME":0,"INTERVAL":0}')
                         log('set Heater to '+ value);
                     break;
                     case 'FLT':
                         value = value ? 1: 0 ;
                         setStateAsync('mqtt.'+ MQTTINSTANCE+'.layzspa.command','{"CMD":4,"VALUE":'+ value +',"XTIME":0,"INTERVAL":0}')
                         log('set pump to '+ value);
                     break;
                  
              
              
               default:
                 // Anweisungen werden ausgeführt,
                 // falls keine der case-Klauseln mit expression übereinstimmt
                 break;
              }
              
              
              
              }
              async function init(){
                 await asyncForEach(STATES, async (obj, index) => {
                     let id = ID +'.'+ obj._id
                     if (!existsState(id)) {
                         log('create state '+ id)
                         await createStateAsync(id, obj.common)
                     }
                     else {
                         log('skip state '+ id)
                     }
                     //set subscription
                     if(obj.common.write){
                         on({id: id, change:"any"} , function(obj) {
                             if(!obj.state.ack){
                                 log('change state! '+ JSON.stringify(obj))
                                 stateChange(obj)
                             }
                         });
                     }       
                 });
                 log('init done!')
              }
              async function setLazyStates(obj){
                 try{
                         let states = JSON.parse(obj)
                         for (const [key, value] of Object.entries(states)) {
                             let statevalue = value
                             const found = STATES.find(state => state._id === key);
                             if(found){                 
                                 if (found.common.type === 'boolean'){
                                     statevalue = value === 1
                                 }
                                 await setStateAsync(ID +'.'+ key,statevalue,true)
                             }
                         }
                         //set heater state
                         await setStateAsync(ID +'.HEATER',(states.GRN || states.RED) === 1,true)    
                 }
                 catch(e){
                     console.log('Error in setting State '+ e)
                 }
              
              }
              
              async function asyncForEach(array, callback) {
                 for (let index = 0; index < array.length; index++) {
                 	await callback(array[index], index, array);
                 }
              }
              function log (msg){
                 if(debug) console.log (msg)
              }
              
              on({id:'mqtt.'+ MQTTINSTANCE+'.layzspa.message', change:"ne"} , function(obj) {
                 log('Lazyspa reached message! '+ JSON.stringify(obj.state))
                 setLazyStates(obj.state.val)
              });
              
              

              Und so siehts dann aus...Bildschirmfoto 2022-08-12 um 21.17.52.png

              Grüße

              B Offline
              B Offline
              Bomer
              wrote on last edited by
              #107

              @agria4800

              Hi,
              würdest du das Vis auch zur Verfügung stellen?
              MfG
              Bomer

              1 Reply Last reply
              0
              • MeistertrM Meistertr

                Hallo Leute ich arbeite gerade daran meinen Lay-Z-Spa Smarthome kompatibel zu machen. bin da auf ein tolles Projekt gestoßen mit einem Esp8266 Wollte hierfür die Platinen bestellen hat noch jemand zufällig Interesse? Eine Platine alleine ist ein bisschen zu teuer... würde zwischen 6 und 11 Euro liegen die platine je nachdem wieviele es werden...

                Platine : https://easyeda.com/editor#id=a1b94bf9fc01407591a9e0fec6a813b3
                Projekt: https://github.com/visualapproach/WiFi-remote-for-Bestway-Lay-Z-SPA

                Wollte am Wochenende mal ein Testaufbau machen... und werde berichten...

                PS: ich selbst habe einen Palm-Springspcb.jpg

                edit: so ein kleines script habe ich auch dafür:

                
                const Messages =  
                {
                  "CONTENT": "STATES",
                  "LCK": 0,
                  "PWR": 0,
                  "UNT": 1,
                  "AIR": 0,
                  "GRN": 0,
                  "RED": 0,
                  "FLT": 0,
                  "TGT": 22,
                  "TMP": 13,
                  "CH1": 32,
                  "CH2": 49,
                  "CH3": 51,
                  "HJT": 0,
                  "BRT": 7
                }
                const ID = '0_userdata.0.LazySpa';
                const MQTTINSTANCE = 0;
                const debug = true;
                /*
                {
                  "CONTENT": "TIMES",
                  "TIME": 1650746370,
                  "CLTIME": 1644734714,
                  "FTIME": 1644734719,
                  "UPTIME": 41660,
                  "PUMPTIME": 50,
                  "HEATINGTIME": 24,
                  "AIRTIME": 512,
                  "JETTIME": 4294966,
                  "COST": 0,
                  "FINT": 4294967295,
                  "CLINT": 4294967295,
                  "KWH": null,
                  "TTTT": -74677
                }
                */
                const STATES=[
                    {
                        _id: 'LCK',
                        type: 'state',
                        common: {
                            name: 'lock',
                            type: 'boolean',
                            role: 'switch',
                            read: true,
                            write: false,
                            desc: 'Lazy spa lock'
                        },
                        native: {}
                    },
                    {
                        _id: 'PWR',
                        type: 'state',
                        common: {
                            name: 'power',
                            type: 'boolean',
                            role: 'switch.power',
                            read: true,
                            write: true,
                            desc: 'Lazy spa power'
                        },
                        native: {}
                    },
                    {
                    _id: 'UNT',
                    type: 'state',
                    common: {
                        name: 'unit',
                        type: 'number',
                        role: 'value',
                        read: true,
                        write: true,
                        max: 1,
                        desc: 'Lazy spa unit',
                        states: {
                				0: 'Farenheit',
                				1: 'Celsius'
                			}
                    },
                    native: {}
                    },
                    {
                    _id: 'AIR',
                    type: 'state',
                    common: {
                        name: 'bubbles',
                        type: 'boolean',
                        role: 'switch',
                        read: true,
                        write: true,
                        desc: 'Lazy spa bubbles state'
                    },
                    native: {}
                    },
                    {
                    _id: 'GRN',
                    type: 'state',
                    common: {
                        name: 'Heating green',
                        type: 'boolean',
                        role: 'switch',
                        read: true,
                        write: false,
                        desc: 'reached target temp.'
                    },
                    native: {}
                    },
                    {
                    _id: 'RED',
                    type: 'state',
                    common: {
                        name: 'Heating red',
                        type: 'boolean',
                        role: 'switch',
                        read: true,
                        write: false,
                        desc: 'not reached target temp.'
                    },
                    native: {}
                    },
                    {
                    _id: 'FLT',
                    type: 'state',
                    common: {
                        name: 'pump',
                        type: 'boolean',
                        role: 'switch',
                        read: true,
                        write: true,
                        desc: 'pump state'
                    },    native: {}
                    },
                    {
                    _id: 'HEATER',
                    type: 'state',
                    common: {
                        name: 'heater',
                        type: 'boolean',
                        role: 'switch',
                        read: true,
                        write: true,
                        desc: 'heater state'
                    },
                    native: {}
                    },
                    {
                    _id: 'TGT',
                    type: 'state',
                    common: {
                        name: 'target temp',
                        type: 'number',
                        role: 'level.temperature',
                        min: 20,
                        max: 40,
                        steps: 1,
                        read: true,
                        write: true,
                        desc: 'taget temp.'
                    },
                    native: {}
                    },
                    {
                    _id: 'TMP',
                    type: 'state',
                    common: {
                        name: 'temp',
                        type: 'number',
                        role: 'value.temperature',
                        read: true,
                        write: false,
                        unit: '°C',
                        desc: 'temp.'
                    },
                    native: {}
                    },
                ]
                
                
                init();
                async function stateChange(obj){
                    let id = obj.id
                    let state = id.split('.').pop()
                    let value = obj.state.val
                    log('change Unit' + state)
                    switch (state) {
                        case 'UNT':
                            setStateAsync('mqtt.'+ MQTTINSTANCE+'.layzspa.command','{"CMD":1,"VALUE":'+ value +',"XTIME":0,"INTERVAL":0}')
                            log('change Unit')
                        break;
                        case 'TGT':
                            setStateAsync('mqtt.'+ MQTTINSTANCE+'.layzspa.command','{"CMD":0,"VALUE":'+ value +',"XTIME":0,"INTERVAL":0}')
                            log('change target temp. to '+ value);
                        break;
                        case 'AIR':
                            value = value ? 1: 0 ;
                            setStateAsync('mqtt.'+ MQTTINSTANCE+'.layzspa.command','{"CMD":2,"VALUE":'+ value +',"XTIME":0,"INTERVAL":0}')
                            log('set bubbles to '+ value);
                        break;
                        case 'HEATER':
                            value = value ? 1: 0 ;
                            setStateAsync('mqtt.'+ MQTTINSTANCE+'.layzspa.command','{"CMD":3,"VALUE":'+ value +',"XTIME":0,"INTERVAL":0}')
                            log('set Heater to '+ value);
                        break;
                        case 'FLT':
                            value = value ? 1: 0 ;
                            setStateAsync('mqtt.'+ MQTTINSTANCE+'.layzspa.command','{"CMD":4,"VALUE":'+ value +',"XTIME":0,"INTERVAL":0}')
                            log('set pump to '+ value);
                        break;
                
                
                  default:
                    // Anweisungen werden ausgeführt,
                    // falls keine der case-Klauseln mit expression übereinstimmt
                    break;
                }
                
                
                
                }
                async function init(){
                    await asyncForEach(STATES, async (obj, index) => {
                        let id = ID +'.'+ obj._id
                        if (!existsState(id)) {
                            log('create state '+ id)
                            await createStateAsync(id, obj.common)
                        }
                        else {
                            log('skip state '+ id)
                        }
                        //set subscription
                        if(obj.common.write){
                            on({id: id, change:"any"} , function(obj) {
                                if(!obj.state.ack){
                                    log('change state! '+ JSON.stringify(obj))
                                    stateChange(obj)
                                }
                            });
                        }       
                    });
                    log('init done!')
                }
                async function setLazyStates(obj){
                    try{
                            let states = JSON.parse(obj)
                            for (const [key, value] of Object.entries(states)) {
                                let statevalue = value
                                const found = STATES.find(state => state._id === key);
                                if(found){                 
                                    if (found.common.type === 'boolean'){
                                        statevalue = value === 1
                                    }
                                    await setStateAsync(ID +'.'+ key,statevalue,true)
                                }
                            }
                            //set heater state
                            await setStateAsync(ID +'.HEATER',(states.GRN || states.RED) === 1,true)    
                    }
                    catch(e){
                        console.log('Error in setting State '+ e)
                    }
                
                }
                
                async function asyncForEach(array, callback) {
                	for (let index = 0; index < array.length; index++) {
                		await callback(array[index], index, array);
                	}
                }
                function log (msg){
                    if(debug) console.log (msg)
                }
                
                on({id:'mqtt.'+ MQTTINSTANCE+'.layzspa.message', change:"ne"} , function(obj) {
                    log('Lazyspa reached message! '+ JSON.stringify(obj.state))
                    setLazyStates(obj.state.val)
                });
                
                D Offline
                D Offline
                dozwin81
                wrote on last edited by
                #108

                @meistertr hi, und danke für die coole arbeit die du machst, kannst du mir sagen wo und wie ich dieses script einfügen muss damit ich im mqtt die werte augegeben bekomme?

                1 Reply Last reply
                1
                • Server PfunzS Server Pfunz

                  @emblitz wie macht man das mit dem Script? Meine MQQT-Verbindung läuft auch, aber zeigt keine vernünftigen Werte an... wie bei dir...

                  D Offline
                  D Offline
                  dozwin81
                  wrote on last edited by
                  #109

                  @server-pfunz sagte in Lay-Z-Spa Wifi Control:

                  @emblitz wie macht man das mit dem Script? Meine MQQT-Verbindung läuft auch, aber zeigt keine vernünftigen Werte an... wie bei dir...

                  Hast du es raus gefunden?

                  D 1 Reply Last reply
                  0
                  • D dozwin81

                    @server-pfunz sagte in Lay-Z-Spa Wifi Control:

                    @emblitz wie macht man das mit dem Script? Meine MQQT-Verbindung läuft auch, aber zeigt keine vernünftigen Werte an... wie bei dir...

                    Hast du es raus gefunden?

                    D Offline
                    D Offline
                    dozwin81
                    wrote on last edited by
                    #110

                    @dozwin81 Hab es jetzt selber herausgefunden!

                    1. Skriptausführung Adapter installieren und starten
                    2. In der Linken Leiste auf das Blaue JS Symbol klicken
                    3. In common ein neues Javascript erstellen und dem einen Namen geben z.b Pool1
                    4. Dann dort den Script einfügen
                    5. Danach diesen Script starten
                    6. In Objekte unter 0_userdata sind die Werte hinterlegt.

                    Hoffe das war verständlich genug 😉

                    K 1 Reply Last reply
                    0
                    • K Offline
                      K Offline
                      KrisMH
                      wrote on last edited by KrisMH
                      #111

                      Hallo zusammen,

                      hat noch jemand eine Platine und idealerweise auch ein Gehäuse für ein Lay Z Hawaii mit Hydrojet übrig?

                      Lieben Dank!

                      Kristian

                      H 1 Reply Last reply
                      0
                      • K KrisMH

                        Hallo zusammen,

                        hat noch jemand eine Platine und idealerweise auch ein Gehäuse für ein Lay Z Hawaii mit Hydrojet übrig?

                        Lieben Dank!

                        Kristian

                        H Offline
                        H Offline
                        hlgamer
                        wrote on last edited by hlgamer
                        #112

                        @krismh
                        Schau doch mal bei Kleinanzeigen.

                        https://www.kleinanzeigen.de/s-anzeige/wifiwhirl-wlan-modul-fuer-bestway-lay-z-spa-whirlpool-antenne/2721950051-87-1311

                        1 Reply Last reply
                        0
                        • rudikxR Offline
                          rudikxR Offline
                          rudikx
                          wrote on last edited by
                          #113

                          Hi zusammen,

                          ich habe mir das ganze recht simpel auf einer Lochrasterplatine zusammengebastelt und soweit funktioniert auch alles.

                          Und mit dem Scrip auch aus iObroker, danke dafür 🙂

                          Nur eine Sache habe ich vermutlich nicht ganz verstanden. Das ein bzw. ausschalten über das objekt PWR.
                          Ich sehe zwar den korrekten Status aber das schalten von dem Datenpunkt aus zeigt keine Wirkung.

                          Bsp.

                          • Display ist aus, ich schalte PWR auf True --> keine Reaktion
                          • Display ist an , ich schalte PWR auf False --> keine Reaktion
                          • Display ist aus, ich schalte AIR auf True --> Display geht an und das Gebläse startet.
                            nun schalte ich das Gebläse über AIR False ab. Das Gebläse geht aus, aber das Display bleibt an.

                          Wie bekommt ihr remote das Display ausgeschaltet?😥

                          Gruß, Rudi

                          H 1 Reply Last reply
                          0
                          • rudikxR rudikx

                            Hi zusammen,

                            ich habe mir das ganze recht simpel auf einer Lochrasterplatine zusammengebastelt und soweit funktioniert auch alles.

                            Und mit dem Scrip auch aus iObroker, danke dafür 🙂

                            Nur eine Sache habe ich vermutlich nicht ganz verstanden. Das ein bzw. ausschalten über das objekt PWR.
                            Ich sehe zwar den korrekten Status aber das schalten von dem Datenpunkt aus zeigt keine Wirkung.

                            Bsp.

                            • Display ist aus, ich schalte PWR auf True --> keine Reaktion
                            • Display ist an , ich schalte PWR auf False --> keine Reaktion
                            • Display ist aus, ich schalte AIR auf True --> Display geht an und das Gebläse startet.
                              nun schalte ich das Gebläse über AIR False ab. Das Gebläse geht aus, aber das Display bleibt an.

                            Wie bekommt ihr remote das Display ausgeschaltet?😥

                            Gruß, Rudi

                            H Offline
                            H Offline
                            hacki11
                            wrote on last edited by
                            #114

                            @rudikx sagte in Lay-Z-Spa Wifi Control:

                            Wie bekommt ihr remote das Display ausgeschaltet?😥

                            Gar nicht, meiner ist quasi immer an. Geht bei mir auch nicht.

                            1 Reply Last reply
                            0
                            • R Offline
                              R Offline
                              rbbreggern
                              wrote on last edited by
                              #115

                              Hallo an alle

                              Han mir ein fertiges Modul geordert eingebaut und funktioniert auch 1 Woche problemlos

                              Seit gestern Abend ist die weboberfläche erreichbar, aber jeder Versuch die ,Pumpe heizung etc zu schalten wird abgebrochen

                              Auch am Display kann ich nichts schalten

                              Temperatur usw wird überall richtig angezeigt

                              Tasten am Pool geben nur pieptöne ab aber auch keine Reaktion

                              Wlan rssi steht bei 35

                              Was kann das problem sein

                              R 1 Reply Last reply
                              0
                              • M MezzoDO

                                Guten Abend zusammen!
                                Gibt's hier fachkundige Leute zu diesem Projekt, die mir bei meinem Problem helfen könnten?

                                Ich hab die PCB V1 Platine und wollte einen BAHAMAS mit der Pumpe S100101 mit dem Modul ausstatten.
                                Zusammengebaut mit dem blauen Level Converter, der laut Instructions bestätigt funktionieren soll. Zudem habe ich in meiner Verzweiflung auch versucht die 560 Ohm Widerstände an die Datenleitungen 3,4 & 5 zum Display zu löten.

                                Laut GitProject soll das Modell MIAMI2021 gewählt werden, was ich auch eingestellt und hochgeladen habe (PlatformIO Upload, Build Filesystem und Upload Filesystem).

                                Die WebUI lässt sich soweit auch aufrufen und konfigurieren, allerdings bleibt das Display der Pumpe dunkel und Bedienung ist weder Am Display noch per WebUI möglich.
                                Alles was ich sehe ist die (vermeintlich korrekte) Temperatur per WebUI.

                                Habe alles gemäß Anleitung mehr als fünf mal gecheckt. Vielleicht findet sich jemand, der mir helfen kann 😞

                                R Offline
                                R Offline
                                rbbreggern
                                wrote on last edited by
                                #116

                                @mezzodo

                                1 Reply Last reply
                                0
                                • R rbbreggern

                                  Hallo an alle

                                  Han mir ein fertiges Modul geordert eingebaut und funktioniert auch 1 Woche problemlos

                                  Seit gestern Abend ist die weboberfläche erreichbar, aber jeder Versuch die ,Pumpe heizung etc zu schalten wird abgebrochen

                                  Auch am Display kann ich nichts schalten

                                  Temperatur usw wird überall richtig angezeigt

                                  Tasten am Pool geben nur pieptöne ab aber auch keine Reaktion

                                  Wlan rssi steht bei 35

                                  Was kann das problem sein

                                  R Offline
                                  R Offline
                                  rbbreggern
                                  wrote on last edited by
                                  #117

                                  @rbbreggern 17130953121111492781601650244688.jpg

                                  Z 1 Reply Last reply
                                  0
                                  • R rbbreggern

                                    @rbbreggern 17130953121111492781601650244688.jpg

                                    Z Offline
                                    Z Offline
                                    ZoXx
                                    wrote on last edited by ZoXx
                                    #118

                                    Hallo zusammen,
                                    ich habe folgendes Problem im Log.

                                    mqtt.0 2024-05-04 22:17:12.218 warn State "mqtt.0.layzspa.other" has no existing object, this might lead to an error in future versions
                                    mqtt.0 2024-05-04 22:17:12.188 warn State "mqtt.0.layzspa.times" has no existing object, this might lead to an error in future versions
                                    mqtt.0 2024-05-04 22:17:12.171 warn State "mqtt.0.layzspa.message" has no existing object, this might lead to an error in future versions

                                    Fehler gefunden, lag an einem alten SKript, welches ich damals mit übernommen hatte.
                                    Das wird gar nicht mehr benötigt.
                                    Läuft 🙂

                                    rudikxR 1 Reply Last reply
                                    0
                                    • Z ZoXx

                                      Hallo zusammen,
                                      ich habe folgendes Problem im Log.

                                      mqtt.0 2024-05-04 22:17:12.218 warn State "mqtt.0.layzspa.other" has no existing object, this might lead to an error in future versions
                                      mqtt.0 2024-05-04 22:17:12.188 warn State "mqtt.0.layzspa.times" has no existing object, this might lead to an error in future versions
                                      mqtt.0 2024-05-04 22:17:12.171 warn State "mqtt.0.layzspa.message" has no existing object, this might lead to an error in future versions

                                      Fehler gefunden, lag an einem alten SKript, welches ich damals mit übernommen hatte.
                                      Das wird gar nicht mehr benötigt.
                                      Läuft 🙂

                                      rudikxR Offline
                                      rudikxR Offline
                                      rudikx
                                      wrote on last edited by
                                      #119

                                      @zoxx hi, du schreibst das dein Problem aufgrund des altes Skriptes aufkommt und das man es gaarnicht mehr benötigt. Wie schaltest du den dann deine Pumpe über den iobroker?

                                      Dachte das Skript ist nötig um die komischen Daten aus dem mqtt zu verarbeiten. Bei mir macht das Skript sporadisch Probleme und schaltet ungewollt die Pumpe oder Heizung 😭

                                      Cool wären Datenpunkte die wie z.b. bei sonoff oder tasmota Geräten aussehen... Ohne Skript dazwischen 😁

                                      Oder direkt steuern über URLs.

                                      Also wie steuerst du das ohne Skript?

                                      Gruß Rudi

                                      1 Reply Last reply
                                      0
                                      • S Offline
                                        S Offline
                                        Serial13579
                                        wrote on last edited by
                                        #120

                                        Hat noch jemand einen Bausatz oder die Platine über?

                                        V 1 Reply Last reply
                                        0
                                        • S Serial13579

                                          Hat noch jemand einen Bausatz oder die Platine über?

                                          V Offline
                                          V Offline
                                          virFortis
                                          wrote on last edited by
                                          #121

                                          @serial13579 würde mich der Frage auch anschließen bevor ich mich in Netz auf die Suche mache nach den Einzelteilen.

                                          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

                                          610

                                          Online

                                          32.4k

                                          Users

                                          81.3k

                                          Topics

                                          1.3m

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

                                          • Don't have an account? Register

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