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

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

Community Forum

donate donate
  1. ioBroker Community Home
  2. Deutsch
  3. Hardware
  4. Lay-Z-Spa Wifi Control

NEWS

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

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

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

Lay-Z-Spa Wifi Control

Geplant Angeheftet Gesperrt Verschoben Hardware
211 Beiträge 76 Kommentatoren 51.1k Aufrufe 72 Watching
  • Älteste zuerst
  • Neuste zuerst
  • Meiste Stimmen
Antworten
  • In einem neuen Thema antworten
Anmelden zum Antworten
Dieses Thema wurde gelöscht. Nur Nutzer mit entsprechenden Rechten können es sehen.
  • B Offline
    B Offline
    BastiBerlin
    schrieb am zuletzt editiert von
    #193

    Hi, ich habe das Problem, dass ich das WifiWhirl ab und zu selber einschaltet ich hatte hier mal gelesen das es von dem Skript kommt stimmt das oder liegt das an was anderem ?
    Kann ich das irgendwie verhindern ?

    Grüße
    Basti

    1 Antwort Letzte Antwort
    0
    • Der-JetiD Der-Jeti

      @nonono ja, sind noch 6x da.

      01.07.24
      5x vorhanden

      F Offline
      F Offline
      FireSaw
      schrieb am zuletzt editiert von
      #194

      @der-jeti sagte in Lay-Z-Spa Wifi Control:

      @nonono ja, sind noch 6x da.

      01.07.24
      5x vorhanden

      Hast du noch welche über? Würde 3Stk brauchen.

      Der-JetiD 1 Antwort Letzte Antwort
      0
      • F FireSaw

        @der-jeti sagte in Lay-Z-Spa Wifi Control:

        @nonono ja, sind noch 6x da.

        01.07.24
        5x vorhanden

        Hast du noch welche über? Würde 3Stk brauchen.

        Der-JetiD Offline
        Der-JetiD Offline
        Der-Jeti
        schrieb am zuletzt editiert von
        #195

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

        @der-jeti sagte in Lay-Z-Spa Wifi Control:

        @nonono ja, sind noch 6x da.

        01.07.24
        5x vorhanden

        Hast du noch welche über? Würde 3Stk brauchen.

        Ja, schreib mir eine PM

        T 1 Antwort Letzte Antwort
        0
        • Der-JetiD Der-Jeti

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

          @der-jeti sagte in Lay-Z-Spa Wifi Control:

          @nonono ja, sind noch 6x da.

          01.07.24
          5x vorhanden

          Hast du noch welche über? Würde 3Stk brauchen.

          Ja, schreib mir eine PM

          T Offline
          T Offline
          TimoWald
          schrieb am zuletzt editiert von
          #196

          Hallo wo bekomme ich die aktuelle Firmware für WifiWirl LayZSpa?

          Der-JetiD H 2 Antworten Letzte Antwort
          0
          • T TimoWald

            Hallo wo bekomme ich die aktuelle Firmware für WifiWirl LayZSpa?

            Der-JetiD Offline
            Der-JetiD Offline
            Der-Jeti
            schrieb am zuletzt editiert von
            #197

            @timowald https://github.com/visualapproach/WiFi-remote-for-Bestway-Lay-Z-SPA

            T 1 Antwort Letzte Antwort
            0
            • Der-JetiD Der-Jeti

              @timowald https://github.com/visualapproach/WiFi-remote-for-Bestway-Lay-Z-SPA

              T Offline
              T Offline
              TimoWald
              schrieb am zuletzt editiert von
              #198

              @der-jeti Ja aber mit der Zip kann ich nicht viel anfangen. Gibt es dazu eine Anleitung?

              1 Antwort Letzte Antwort
              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)
                });
                
                B Offline
                B Offline
                Bomer
                schrieb am zuletzt editiert von Bomer
                #199

                Hallo zusammen,
                ich habe noch 7 Platinen über.IMG_1522.jpeg

                1 Antwort Letzte Antwort
                0
                • C Offline
                  C Offline
                  ChristianP
                  schrieb am zuletzt editiert von
                  #200

                  @bomer
                  Hallo,
                  ich bin auf dieses Projekt gestoßen und auch neu hier in diesem Forum. Ich wäre an 2 der Leiterplatten interessiert, wenn die noch zu haben wären.
                  Ich habe leider nichts gefunden wie man hier private Nachrichten schicken kann, würde mich über ein Feedback freuen.

                  Gruß
                  Christian

                  1 Antwort Letzte Antwort
                  0
                  • T TimoWald

                    Hallo wo bekomme ich die aktuelle Firmware für WifiWirl LayZSpa?

                    H Offline
                    H Offline
                    hlgamer
                    schrieb am zuletzt editiert von hlgamer
                    #201

                    @timowald die WifiWhirl Software findest du hier:
                    WifiWhirl-Software
                    Wenn du ein Modul besitzt geht es alternativ auch als Update: WifiWhirl Update

                    T 1 Antwort Letzte Antwort
                    0
                    • H hlgamer

                      @timowald die WifiWhirl Software findest du hier:
                      WifiWhirl-Software
                      Wenn du ein Modul besitzt geht es alternativ auch als Update: WifiWhirl Update

                      T Offline
                      T Offline
                      TimoWald
                      schrieb am zuletzt editiert von
                      #202

                      @hlgamer danke, so probiere ich es mal.

                      1 Antwort Letzte Antwort
                      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!

                        E Offline
                        E Offline
                        edstobi
                        schrieb am zuletzt editiert von
                        #203

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

                        Thing: https://www.thingiverse.com/thing:6061047 mit dem ich auch ziemlich zufrieden bin.

                        Hallo
                        Ich kann leider auf Thingivers das Gehäuse nicht mehr finden. Ich bin an der Befestigung interessiert, da meine Platine jetzt da so lose im Pumpen Gehäuse rumfliegt.
                        LG EDSTOBI

                        E 1 Antwort Letzte Antwort
                        0
                        • E edstobi

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

                          Thing: https://www.thingiverse.com/thing:6061047 mit dem ich auch ziemlich zufrieden bin.

                          Hallo
                          Ich kann leider auf Thingivers das Gehäuse nicht mehr finden. Ich bin an der Befestigung interessiert, da meine Platine jetzt da so lose im Pumpen Gehäuse rumfliegt.
                          LG EDSTOBI

                          E Offline
                          E Offline
                          edstobi
                          schrieb am zuletzt editiert von
                          #204

                          Hallo
                          Ich benötige einmal eure Hilfe.

                          ch habe die Original-Platine V2B, eine Poolpumpe mit 4-adrigem Anschluss, Modell 54123 (Air), sowie MQTT eingerichtet.
                          Im Web-Interface des Lay-Z-Spa-Moduls sehe ich die Pumpe, und auch in MQTT taucht sie auf. Soweit funktioniert alles.

                          Nun habe ich einige Verständnisfragen:

                          Wenn ich im Web-Interface "Take Control" aktiviere, wird das Display der Pumpe deaktiviert. Ist das so richtig?
                          Ich kann diesen Zustand an der Pumpe selbst nicht rückgängig machen, ohne die Pumpe komplett vom Strom zu trennen und neu zu starten.

                          Im MQTT-Interface sehe ich die Option "Take Control" nicht, bzw. kann sie dort nicht ein- oder ausschalten.
                          Ist das so vorgesehen oder ist das der SETGODMODE in MQTT "GOD"

                          Wenn ich "Take Control" nicht aktiviert habe, kann ich im Lay-Z-Spa-Webmodul keine Funktionen schalten.
                          Ist das der normale Ablauf?

                          Wenn ich "Take Control" über die Web-Oberfläche aktiviere und dann Pumpe oder Heizung über MQTT steuere, sehe ich keine Änderung an den Buttons im Web-Interface.
                          Ist das erwartetes Verhalten?

                          Zusammengefasst:
                          Ich möchte verstehen, wie die Steuerung zwischen Web-Interface, MQTT und der physischen Pumpe genau funktioniert, insbesondere im Zusammenhang mit der "Take Control"-Funktion.
                          Ist das Verhalten, wie oben beschrieben, korrekt? Gibt es eine Möglichkeit, "Take Control" auch über MQTT zu steuern sodas es im Webmodule sichtbar ist oder den Zustand an der Pumpe direkt zurückzusetzen, ohne einen Neustart?
                          Ich möchte die Poolpumpe und den Heizer über ioBroker oder Node-RED automatisch steuern, sodass sie bei PV-Überschuss eingeschaltet werden und die Pumpe zusätzlich nur stundenweise läuft.

                          Gleichzeitig soll es möglich sein, die Pumpe und die Bubbles direkt am Pool zu bedienen, falls jemand den Pool nutzen möchte – ohne dass man erst ins Haus gehen und dort am Display etwas umstellen muss. Andernfalls wäre die Lösung nicht familienfreundlich und hätte keinen hohen WAF (Wife Acceptance Factor)

                          Sollte das Verhalten der Steuerung von Visualapproach so korrekt sein, werde ich versuchen, am ESP weitere GPIO-Input-Knöpfe zu konfigurieren, um darüber zum Beispiel die Bubbles anzusteuern.

                          Ich kenne das PDF „REMOTE CONTROLLED LAY-Z-SPA“ von ihm, jedoch sind solche Verhaltensfragen dort nicht beschrieben.

                          Ich hoffe, dass hier jemand ein identisches Modell 4-adrigem Anschluss, Modell 54123 hat und mir weiterhelfen kann.
                          Danke
                          EDSTOBI

                          1 Antwort Letzte Antwort
                          0
                          • Nebojsa CekicN Offline
                            Nebojsa CekicN Offline
                            Nebojsa Cekic
                            schrieb am zuletzt editiert von Samson71
                            #205

                            Hallo zusammen

                            Ich habe dieses interessante Projekt gefunden:
                            https://github.com/visualapproach/WiFi-remote-for-Bestway-Lay-Z-SPA

                            Ich selber habe einen s100101 modul und würde es gerne wlan fähig machen. Dazu habe ich mir folgendes ausgesucht und würde gerne wissen von Leuten die das bereits umgesetzt haben ob das passt?

                            Ich würde gerne wissen ob es hier jemanden gibt der sich sein eigenes DIY WLAN Modul für Lazy Spa Miami oder andere gebaut hat die eine 6polige Leitung an der Bedieneinheit haben?Und anhand dessen wollte ich das nun mal testen.

                            Meine BOM Liste.

                            1. ESP8266:
                              https://www.berrybase.de/nodemcu-v3-esp8266-development-board-ch340g
                            2. Level Shifter TXS0108E 8Kanal bidirectional:
                              https://www.berrybase.de/en/sparkfun-level-shifter-8-channels-txs0108e
                            3. JST-SM DuPont Crimp Kit:
                              https://www.berrybase.de/berrybase-200-teiliges-jumper-wire-connector-kit-jst-sm-dupont-2.54mm-2-5-pin-stecker-buchse
                            4. Kupferlitze (wird auch als Datenkabel verwendet), 10m, 0,14mm:
                              https://www.berrybase.de/detail/019234a3b2957268a6a46501bfeb056e
                            5. Schrumpfschläuche:
                              https://www.berrybase.de/schrumpfschlauch-sortiment-100-teilig-schwarz-in-kunststoffbox
                            6. Stiftleiste, 6polig:
                              https://www.berrybase.de/stiftleiste-1x-6-polig-rm-2-54-gerade
                            7. Lochrasterplatine:
                              https://www.berrybase.de/en/perforated-grid-board-double-sided-5x7cm-10-pieces
                            8. DHT22 Temperatursensor:
                              https://www.berrybase.de/am2302-dht22-digitaler-temperatur-und-luftfeuchtesensor-mit-kabelanschluss
                            9. Widerstand 10kohm für DHT22:
                              https://www.berrybase.de/metallschichtwiderstand-10-0-kohm-0-6w-1-0207-axial-durchsteckmontage
                            10. Jumper Kabel Kit:
                              https://www.berrybase.de/jumper-kabel-kit-set-mit-65-kabeln-in-4-laengen-fuer-breadboards

                            Über Erfahrungsbericht oder Hilfe wäre ich dankbar:-) vor allem bei der Einkaufsliste:-)

                            Samson71S 1 Antwort Letzte Antwort
                            0
                            • Nebojsa CekicN Nebojsa Cekic

                              Hallo zusammen

                              Ich habe dieses interessante Projekt gefunden:
                              https://github.com/visualapproach/WiFi-remote-for-Bestway-Lay-Z-SPA

                              Ich selber habe einen s100101 modul und würde es gerne wlan fähig machen. Dazu habe ich mir folgendes ausgesucht und würde gerne wissen von Leuten die das bereits umgesetzt haben ob das passt?

                              Ich würde gerne wissen ob es hier jemanden gibt der sich sein eigenes DIY WLAN Modul für Lazy Spa Miami oder andere gebaut hat die eine 6polige Leitung an der Bedieneinheit haben?Und anhand dessen wollte ich das nun mal testen.

                              Meine BOM Liste.

                              1. ESP8266:
                                https://www.berrybase.de/nodemcu-v3-esp8266-development-board-ch340g
                              2. Level Shifter TXS0108E 8Kanal bidirectional:
                                https://www.berrybase.de/en/sparkfun-level-shifter-8-channels-txs0108e
                              3. JST-SM DuPont Crimp Kit:
                                https://www.berrybase.de/berrybase-200-teiliges-jumper-wire-connector-kit-jst-sm-dupont-2.54mm-2-5-pin-stecker-buchse
                              4. Kupferlitze (wird auch als Datenkabel verwendet), 10m, 0,14mm:
                                https://www.berrybase.de/detail/019234a3b2957268a6a46501bfeb056e
                              5. Schrumpfschläuche:
                                https://www.berrybase.de/schrumpfschlauch-sortiment-100-teilig-schwarz-in-kunststoffbox
                              6. Stiftleiste, 6polig:
                                https://www.berrybase.de/stiftleiste-1x-6-polig-rm-2-54-gerade
                              7. Lochrasterplatine:
                                https://www.berrybase.de/en/perforated-grid-board-double-sided-5x7cm-10-pieces
                              8. DHT22 Temperatursensor:
                                https://www.berrybase.de/am2302-dht22-digitaler-temperatur-und-luftfeuchtesensor-mit-kabelanschluss
                              9. Widerstand 10kohm für DHT22:
                                https://www.berrybase.de/metallschichtwiderstand-10-0-kohm-0-6w-1-0207-axial-durchsteckmontage
                              10. Jumper Kabel Kit:
                                https://www.berrybase.de/jumper-kabel-kit-set-mit-65-kabeln-in-4-laengen-fuer-breadboards

                              Über Erfahrungsbericht oder Hilfe wäre ich dankbar:-) vor allem bei der Einkaufsliste:-)

                              Samson71S Offline
                              Samson71S Offline
                              Samson71
                              Global Moderator
                              schrieb am zuletzt editiert von Samson71
                              #206

                              @nebojsa-cekic
                              Da scheinbar die Suche bei Dir nicht funktioniert, haben wir das Thema mal an "Lay-Z-Spa Wifi Control" drangehängt. Das "interessante Projekt" das Du aktuell gefunden hast, wurde vom TO auf Seite 1 im ersten Beitrag bereits Anfang 2022 gefunden und darauf verwiesen. Ob hier jedermann Lust hat jeden Widerstand und jeden Schrumpfschlauch Deiner Einkaufliste durchzuklicken vermag ich nicht zu sagen. Liest sicher eher wie ne Werbeliste für den Shop, wobei der an sich ok ist.

                              Markus

                              Bitte beachten:
                              Hinweise für gute Forenbeiträge
                              Maßnahmen zum Schutz des Forums

                              C 1 Antwort Letzte Antwort
                              1
                              • Samson71S Samson71

                                @nebojsa-cekic
                                Da scheinbar die Suche bei Dir nicht funktioniert, haben wir das Thema mal an "Lay-Z-Spa Wifi Control" drangehängt. Das "interessante Projekt" das Du aktuell gefunden hast, wurde vom TO auf Seite 1 im ersten Beitrag bereits Anfang 2022 gefunden und darauf verwiesen. Ob hier jedermann Lust hat jeden Widerstand und jeden Schrumpfschlauch Deiner Einkaufliste durchzuklicken vermag ich nicht zu sagen. Liest sicher eher wie ne Werbeliste für den Shop, wobei der an sich ok ist.

                                C Offline
                                C Offline
                                Christoph 4
                                schrieb am zuletzt editiert von
                                #207

                                Hallo zusammen gibt es auch für die Pumpe S100201 eine Möglichkeit Werte per mqtt zu bekommen?

                                Danke Christoph

                                C 1 Antwort Letzte Antwort
                                0
                                • caco3000C Offline
                                  caco3000C Offline
                                  caco3000
                                  schrieb am zuletzt editiert von Samson71
                                  #208

                                  Bei mir kommt jetzt im Script folgender Fehler

                                  javascript.0	18:55:30.845	error	script.js.Lay_Z_Spa: script.js.Lay_Z_Spa:1
                                  javascript.0	18:55:30.845	error	at script.js.Lay_Z_Spa:1:1
                                  

                                  und in Log von IO Broker kommt folgendes:

                                  javascript.0
                                  2025-08-06 18:52:04.102	error	at Script.runInContext (node:vm:149:12)
                                  
                                  javascript.0
                                  2025-08-06 18:52:04.102	error	at script.js.Lay_Z_Spa:1:1
                                  
                                  javascript.0
                                  2025-08-06 18:52:04.102	error	SyntaxError: Identifier 'log' has already been declared
                                  
                                  javascript.0
                                  2025-08-06 18:52:04.102	error	script.js.Lay_Z_Spa: script.js.Lay_Z_Spa:1
                                  

                                  Screenshot 2025-08-06 185250.png Screenshot 2025-08-06 185417.png

                                  Wer kann mir sagen was mt einmal nicht mehr stimmt bis jetzt lief alles

                                  Mod-Edit
                                  Code-Tags gesetzt

                                  1 Antwort Letzte Antwort
                                  0
                                  • caco3000C Offline
                                    caco3000C Offline
                                    caco3000
                                    schrieb am zuletzt editiert von
                                    #209

                                    AI machts möglich habe mir den Code reparieren lassen.```

                                    const ID = '0_userdata.0.LazySpa';
                                    const MQTTINSTANCE = 0;
                                    const debug = true;
                                    
                                    // Definition der zu erstellenden Datenpunkte
                                    const STATES = [
                                        {
                                            _id: 'LCK',
                                            type: 'state',
                                            common: { name: 'lock', type: 'boolean', role: 'indicator.lock', 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.light', read: true, write: true, desc: 'Lazy spa bubbles state' },
                                            native: {}
                                        },
                                        {
                                            _id: 'GRN',
                                            type: 'state',
                                            common: { name: 'Heating green', type: 'boolean', role: 'indicator', read: true, write: false, desc: 'Reached target temp.' },
                                            native: {}
                                        },
                                        {
                                            _id: 'RED',
                                            type: 'state',
                                            common: { name: 'Heating red', type: 'boolean', role: 'indicator', read: true, write: false, desc: 'Not reached target temp.' },
                                            native: {}
                                        },
                                        {
                                            _id: 'FLT',
                                            type: 'state',
                                            common: { name: 'pump', type: 'boolean', role: 'switch.pump', read: true, write: true, desc: 'Pump state' },
                                            native: {}
                                        },
                                        {
                                            _id: 'HEATER',
                                            type: 'state',
                                            common: { name: 'heater', type: 'boolean', role: 'switch.heater', 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, step: 1, read: true, write: true, desc: 'Target temp.' },
                                            native: {}
                                        },
                                        {
                                            _id: 'TMP',
                                            type: 'state',
                                            common: { name: 'temp', type: 'number', role: 'value.temperature', read: true, write: false, unit: '°C', desc: 'Current temp.' },
                                            native: {}
                                        },
                                    ];
                                    
                                    /**
                                     * Sendet Befehle an den Spa via MQTT.
                                     * @param {object} obj Das Objekt vom "on"-Trigger.
                                     */
                                    async function stateChange(obj) {
                                        const state = obj.id.split('.').pop();
                                        let value = obj.state.val;
                                        if (debug) log(`Change detected for '${state}'. Sending command.`);
                                    
                                        let cmd, val;
                                    
                                        switch (state) {
                                            case 'UNT': cmd = 1; val = value; break;
                                            case 'TGT': cmd = 0; val = value; break;
                                            case 'AIR': cmd = 2; val = value ? 1 : 0; break;
                                            case 'HEATER': cmd = 3; val = value ? 1 : 0; break;
                                            case 'FLT': cmd = 4; val = value ? 1 : 0; break;
                                            default:
                                                if (debug) log(`No action defined for state change of: ${state}`, 'warn');
                                                return;
                                        }
                                    
                                        const mqttCommand = `{"CMD":${cmd},"VALUE":${val},"XTIME":0,"INTERVAL":0}`;
                                        await setStateAsync(`mqtt.${MQTTINSTANCE}.layzspa.command`, mqttCommand, false);
                                        if (debug) log(`Sent command for '${state}': ${mqttCommand}`);
                                    }
                                    
                                    /**
                                     * Verarbeitet eingehende Status-Updates vom Spa.
                                     * @param {string} jsonString Der JSON-String von der MQTT-Nachricht.
                                     */
                                    async function setLazyStates(jsonString) {
                                        let states;
                                        try {
                                            states = JSON.parse(jsonString);
                                        } catch (e) {
                                            log(`Error parsing JSON from MQTT: ${jsonString}. Error: ${e.stack}`, 'error');
                                            return;
                                        }
                                    
                                        for (const [key, value] of Object.entries(states)) {
                                            const stateDef = STATES.find(s => s._id === key);
                                            if (stateDef) {
                                                let stateValue = (stateDef.common.type === 'boolean') ? (value === 1) : value;
                                                await setStateAsync(`${ID}.${key}`, stateValue, true);
                                            }
                                        }
                                    
                                        const isHeaterOn = (states.GRN === 1 || states.RED === 1);
                                        await setStateAsync(`${ID}.HEATER`, isHeaterOn, true);
                                    }
                                    
                                    /**
                                     * Hauptfunktion zur Initialisierung des Skripts.
                                     */
                                    async function main() {
                                        // 1. Datenpunkte erstellen oder sicherstellen, dass sie existieren
                                        for (const stateObject of STATES) {
                                            const id = `${ID}.${stateObject._id}`;
                                            if (!(await getObjectAsync(id))) {
                                                if (debug) log(`Creating state: ${id}`);
                                                await createStateAsync(id, stateObject.common);
                                            }
                                    
                                            // 2. Trigger für schreibbare Datenpunkte erstellen
                                            if (stateObject.common.write) {
                                                on({ id: id, change: "any", ack: false }, async (obj) => {
                                                    try {
                                                        if (obj.state) {
                                                            await stateChange(obj);
                                                        }
                                                    } catch (e) {
                                                        log(`Error in stateChange trigger for ${id}: ${e.stack}`, 'error');
                                                    }
                                                });
                                            }
                                        }
                                    
                                        // 3. Trigger für eingehende MQTT-Nachrichten
                                        on({ id: `mqtt.${MQTTINSTANCE}.layzspa.message`, change: "ne" }, async (obj) => {
                                            try {
                                                if (obj.state && obj.state.val) {
                                                    if (debug) log(`Received MQTT message: ${obj.state.val}`);
                                                    await setLazyStates(obj.state.val);
                                                }
                                            } catch (e) {
                                                log(`Error in MQTT message handler: ${e.stack}`, 'error');
                                            }
                                        });
                                    
                                        log("LazySpa script started and all triggers are active.");
                                    }
                                    
                                    // Skriptausführung starten und alle Fehler abfangen.
                                    try {
                                        main();
                                    } catch (e) {
                                        log(`A critical error occurred during script initialization: ${e.stack}`, 'error');
                                    }
                                    
                                    1 Antwort Letzte Antwort
                                    0
                                    • C Christoph 4

                                      Hallo zusammen gibt es auch für die Pumpe S100201 eine Möglichkeit Werte per mqtt zu bekommen?

                                      Danke Christoph

                                      C Offline
                                      C Offline
                                      Christoph 4
                                      schrieb am zuletzt editiert von
                                      #210

                                      @christoph-4 sagte in Lay-Z-Spa Wifi Control:

                                      Hallo zusammen gibt es auch für die Pumpe S100201 eine Möglichkeit Werte per mqtt zu bekommen?

                                      Danke Christoph

                                      Hat niemand eine Idee?
                                      Gruß Christoph

                                      1 Antwort Letzte Antwort
                                      0
                                      • T Offline
                                        T Offline
                                        Thomas82
                                        schrieb am zuletzt editiert von
                                        #211

                                        Hi zusammen,
                                        ich brauche etwas Unterstützung.
                                        Ich habe für meinen LayZSpa ein Wlan Modul eingebaut und möchte nun versuchen per MQTT (Habe ich noch nie benutzt) den Wirlpool zu steuern.

                                        Den MQTT Adapter habe ich eingerichtet und er ist auch auf grün gegangen. Nun hätte ich erwartet, dass ich bei Objekte die Temperatur sehe und Status der Pumpe/Heizung etc.

                                        Kann mir jemand sagen wie ich da weiter komm? Danke im Voraus.

                                        Objekte.png Instanzen.png

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


                                        Support us

                                        ioBroker
                                        Community Adapters
                                        Donate

                                        746

                                        Online

                                        32.4k

                                        Benutzer

                                        81.5k

                                        Themen

                                        1.3m

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

                                        • Du hast noch kein Konto? Registrieren

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