Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Hardware
    4. Lay-Z-Spa Wifi Control

    NEWS

    • Monatsrückblick - April 2025

    • Minor js-controller 7.0.7 Update in latest repo

    • Save The Date: ioBroker@Smart Living Forum Solingen, 14.06.

    Lay-Z-Spa Wifi Control

    This topic has been deleted. Only users with topic management privileges can see it.
    • T
      ts_482 last edited by

      wo bestellt ihr die Restliche Hardware?

      ESP8266 NodeMCU + TXS0108E

      und habt ihr eine Liste was genau noch benötigt wird?

      1 Reply Last reply Reply Quote 0
      • F
        Forst89 @alwo23 last edited by

        @alwo23 Hi, ich hätte Interesse an einer Platine und würde mich dann auch mal an das Projekt wagen 🙂 Hast du von den anderen benötigen Komponenten zufällig auch noch übrig umd das Set zu kompletieren?

        1 Reply Last reply Reply Quote 0
        • tvtotal
          tvtotal @MezzoDO last edited by

          @mezzodo

          Hallo,
          habe das gleiche Problem wie @MezzoDO Model S100101 Display tot macht aber eigenartige Pieptöne.
          Webinterface aufrufbar, jedoch keine Schaltfunktion möglich.
          Firmware.png
          HardwareConfig.png 1365-1024.png
          pcb.jpg
          768-1024.jpg
          typ.jpg
          Nutze die PCB v1 Verdrahtung überprüft finde aber keinen Fehler, Bild von @Rickman überprüft.
          Hat noch jemand einen Tipp ?😞

          R 1 Reply Last reply Reply Quote 0
          • R
            Rickman @tvtotal last edited by

            @tvtotal
            Das Problem hatte ich Anfangs auch mit totem Display und Pieptönen.
            Meine Verdrahtung sieht aber ein wenig anders aus - habe allerdings auch das v2- Board...
            Schau mal hier:
            1663778509202-20220921_183757.jpg

            1 Reply Last reply Reply Quote 0
            • Stefan M.
              Stefan M. last edited by

              Hallo allerseits! 🙂 Ich bin neu hier und möchte ebenfalls meinen bestway-Whirlpool mit Wifi aufrüsten.

              Sollte noch jemand eine V2-Platine, vielleicht sogar einen Kabelsatz übrig haben, würde ich mich über PN freuen.

              VG
              Stefan

              1 Reply Last reply Reply Quote 0
              • Jan M
                Jan M last edited by Jan M

                Hallo Leute, möchte meinen Pool auch aufrüsten. Würde auch noch eine Platine brauchen. Kannst mir bitte eine schicken. @alwo23 oder jemand anders. Danke Lg

                1 Reply Last reply Reply Quote 0
                • Bernhard Bruckmeier
                  Bernhard Bruckmeier @alwo23 last edited by

                  @alwo23 Hey, ich hab Interesse an eine Platine, hast du noch eine?

                  1 Reply Last reply Reply Quote 0
                  • T
                    ts_482 last edited by

                    Hallo zusammen,

                    kann mir jemand verraten wofür die Kondensatoren und die Weiderstände benötigt werden beim V2 Board?

                    1 Reply Last reply Reply Quote 0
                    • E
                      Endirecto last edited by

                      Ich bin auf der Suche nach einem fertigen Board. Bei Kleinanzeigen habe ich bisher nur ein Angebot für 60 Euro gefunden.

                      Über eine PN würde ich mich freuen.

                      Viele Grüße

                      U 1 Reply Last reply Reply Quote 0
                      • U
                        ucm @Endirecto last edited by

                        Hallo zusammen, ich suche ebenfalls nach einer Platine. Hat jemand noch eine vorrätig? Besten Dank

                        1 Reply Last reply Reply Quote 0
                        • Server Pfunz
                          Server Pfunz @emblitz last edited by

                          @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 1 Reply Last reply Reply Quote 0
                          • R
                            Rickman last edited by Rickman

                            Hallo zusammen,

                            da ich nun mehrfach angeschrieben und dann doch nicht auf meine Antwort reagiert wurde, hier für alle.
                            Ich habe noch eine PCBv2- Platine, einen Level-Shifter, einen Kabelsatz und zugehörige Widerstände da.

                            EDIT: Jetzt habe ich keine mehr.

                            Gruß,
                            Richy

                            1 Reply Last reply Reply Quote 0
                            • H
                              hlgamer last edited by 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

                              mrFenyx 1 Reply Last reply Reply Quote 1
                              • Z
                                ZoXx @Agria4800 last edited by

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

                                @agria4800
                                Hiermit bekommt man die Zeiten ausgelesen:

                                var Souce_other, Source, RSSI, Times, Chlortime, Filtertime, Uptime, Pumptime, Heating, Airtime, Hydrojet_Time, Costs, Verbrauch;
                                
                                
                                on({id: [].concat(['mqtt.0.layzspa.other']), change: "ne"}, async function (obj) {
                                 var value = obj.state.val;
                                 var oldValue = obj.oldState.val;
                                 Souce_other = getState("mqtt.0.layzspa.other").val;
                                 await wait(100);
                                 RSSI = getAttr(Souce_other, 'RSSI');
                                 setState("0_userdata.0.LazySpa.RSSI-Wifi"/*RSSI-Wifi*/, parseFloat(RSSI), true);
                                });
                                on({id: [].concat(['mqtt.0.layzspa.times']), change: "ne"}, async function (obj) {
                                 var value = obj.state.val;
                                 var oldValue = obj.oldState.val;
                                 Source = getState("mqtt.0.layzspa.times").val;
                                 await wait(100);
                                 Times = getAttr(Source, 'TIME');
                                 setState("0_userdata.0.LazySpa.Times.Time"/*Time*/, parseFloat(Times), true);
                                 Chlortime = getAttr(Source, 'CLTIME');
                                 setState("0_userdata.0.LazySpa.Times.Chlor_Time"/*Chlor_Time*/, Chlortime, true);
                                 Filtertime = getAttr(Source, 'FTIME');
                                 setState("0_userdata.0.LazySpa.Times.Filter_Time"/*Filter_Time*/, parseFloat(Filtertime), true);
                                 Uptime = getAttr(Source, 'UPTIME');
                                 setState("0_userdata.0.LazySpa.Times.Up_Time"/*Up_Time*/, parseFloat(Uptime), true);
                                 Pumptime = getAttr(Source, 'PUMPTIME');
                                 setState("0_userdata.0.LazySpa.Times.Pump_Time"/*Pump_Time*/, parseFloat(Pumptime), true);
                                 Heating = getAttr(Source, 'HEATINGTIME');
                                 setState("0_userdata.0.LazySpa.Times.Heating_Time"/*Heating Time*/, parseFloat(Heating), true);
                                 Airtime = getAttr(Source, 'AIRTIME');
                                 setState("0_userdata.0.LazySpa.Times.Air_Time"/*Air_Time*/, parseFloat(Airtime), true);
                                 Hydrojet_Time = getAttr(Source, 'JETTIME');
                                 setState("0_userdata.0.LazySpa.Times.Hydrojet_Time"/*Hydrojet_Time*/, parseFloat(Hydrojet_Time), true);
                                 Costs = getAttr(Source, 'COST');
                                 setState("0_userdata.0.LazySpa.Times.Cost"/*Cost*/, parseFloat(Costs), true);
                                 Verbrauch = getAttr(Source, 'KWH');
                                 setState("0_userdata.0.LazySpa.Times.Verbrauch"/*Verbrauch*/, parseFloat(Verbrauch), true);
                                });
                                
                                
                                

                                und hiermit werden sie umgeschrieben analog !Bildschirmfoto 2022-08-12 um 21.15.48.png

                                var Dauer, tage, std, min, sec;
                                
                                
                                // https://forum.iobroker.net/topic/13488/vorlage-blockly-umrechnung-von-sekunden-in-stunden-minuten-und-sekunden/11
                                
                                on({id: "0_userdata.0.LazySpa.Times.Up_Time"/*Up_Time*/, change: "ne"}, async function (obj) {
                                 var value = obj.state.val;
                                 var oldValue = obj.oldState.val;
                                 Dauer = getState("0_userdata.0.LazySpa.Times.Up_Time").val;
                                 tage = Math.floor(parseFloat(Dauer) / 86400);
                                 Dauer = parseFloat(Dauer) - parseFloat(tage) * 86400;
                                 std = Math.floor(parseFloat(Dauer) / 3600);
                                 Dauer = parseFloat(Dauer) - parseFloat(std) * 3600;
                                 min = Math.floor(parseFloat(Dauer) / 60);
                                 Dauer = parseFloat(Dauer) - parseFloat(min) * 60;
                                 sec = Math.floor(parseFloat(Dauer) / 1);
                                 setState("0_userdata.0.LazySpa.Times.Format-Up-Time"/*Format-Up-Time*/, ([tage,'D -  ',std,'h:',min,'min:',sec,'sec'].join('')));
                                });
                                on({id: "0_userdata.0.LazySpa.Times.Air_Time"/*Air_Time*/, change: "ne"}, async function (obj) {
                                 var value = obj.state.val;
                                 var oldValue = obj.oldState.val;
                                 Dauer = getState("0_userdata.0.LazySpa.Times.Air_Time").val;
                                 tage = Math.floor(parseFloat(Dauer) / 86400);
                                 Dauer = parseFloat(Dauer) - parseFloat(tage) * 86400;
                                 std = Math.floor(parseFloat(Dauer) / 3600);
                                 Dauer = parseFloat(Dauer) - parseFloat(std) * 3600;
                                 min = Math.floor(parseFloat(Dauer) / 60);
                                 Dauer = parseFloat(Dauer) - parseFloat(min) * 60;
                                 sec = Math.floor(parseFloat(Dauer) / 1);
                                 setState("0_userdata.0.LazySpa.Times.Format-Air-Time"/*Format-Air-Time*/, ([tage,'D -  ',std,'h:',min,'min:',sec,'sec'].join('')));
                                });
                                on({id: "0_userdata.0.LazySpa.Times.Heating_Time"/*Heating Time*/, change: "ne"}, async function (obj) {
                                 var value = obj.state.val;
                                 var oldValue = obj.oldState.val;
                                 Dauer = getState("0_userdata.0.LazySpa.Times.Heating_Time").val;
                                 tage = Math.floor(parseFloat(Dauer) / 86400);
                                 Dauer = parseFloat(Dauer) - parseFloat(tage) * 86400;
                                 std = Math.floor(parseFloat(Dauer) / 3600);
                                 Dauer = parseFloat(Dauer) - parseFloat(std) * 3600;
                                 min = Math.floor(parseFloat(Dauer) / 60);
                                 Dauer = parseFloat(Dauer) - parseFloat(min) * 60;
                                 sec = Math.floor(parseFloat(Dauer) / 1);
                                 setState("0_userdata.0.LazySpa.Times.Format-Heating-Time"/*Format-Heating-Time*/, ([tage,'D -  ',std,'h:',min,'min:',sec,'sec'].join('')));
                                });
                                on({id: "0_userdata.0.LazySpa.Times.Pump_Time"/*Pump_Time*/, change: "ne"}, async function (obj) {
                                 var value = obj.state.val;
                                 var oldValue = obj.oldState.val;
                                 Dauer = getState("0_userdata.0.LazySpa.Times.Pump_Time").val;
                                 tage = Math.floor(parseFloat(Dauer) / 86400);
                                 Dauer = parseFloat(Dauer) - parseFloat(tage) * 86400;
                                 std = Math.floor(parseFloat(Dauer) / 3600);
                                 Dauer = parseFloat(Dauer) - parseFloat(std) * 3600;
                                 min = Math.floor(parseFloat(Dauer) / 60);
                                 Dauer = parseFloat(Dauer) - parseFloat(min) * 60;
                                 sec = Math.floor(parseFloat(Dauer) / 1);
                                 setState("0_userdata.0.LazySpa.Times.Format-Pump-Time"/*Format-Pump-Time*/, ([tage,'D -  ',std,'h:',min,'min:',sec,'sec'].join('')));
                                });
                                
                                on({id: "0_userdata.0.LazySpa.Times.Hydrojet_Time"/*Hydrojet_Time*/, change: "ne"}, async function (obj) {
                                 var value = obj.state.val;
                                 var oldValue = obj.oldState.val;
                                 Dauer = getState("0_userdata.0.LazySpa.Times.Hydrojet_Time").val;
                                 tage = Math.floor(parseFloat(Dauer) / 86400);
                                 Dauer = parseFloat(Dauer) - parseFloat(tage) * 86400;
                                 std = Math.floor(parseFloat(Dauer) / 3600);
                                 Dauer = parseFloat(Dauer) - parseFloat(std) * 3600;
                                 min = Math.floor(parseFloat(Dauer) / 60);
                                 Dauer = parseFloat(Dauer) - parseFloat(min) * 60;
                                 sec = Math.floor(parseFloat(Dauer) / 1);
                                 setState("0_userdata.0.LazySpa.Times.Format-Hydrojet-Time"/*Format-Hydrojet-Time*/, ([tage,'D -  ',std,'h:',min,'min:',sec,'sec'].join('')));
                                });
                                

                                hier kann ich nicht folgen. Kannst du mir hier unter die Arme greifen?
                                Die Skripte habe ich eingefügt, jedoch schmeißt er bei mir Fehler: javascript.0 (562) at Object.<anonymous>

                                Die Datenpunkte existieren bei mir nicht. Müssen die angelegt werden vorher? Wenn ja in welcher Form?
                                Danke!

                                1 Reply Last reply Reply Quote 0
                                • Rocco Friedrich
                                  Rocco Friedrich @Nobody 0 last edited by

                                  @nobody-0
                                  Hast du das Problem mit dem Klackern lösen können?
                                  Ich habe drum genau das gleiche Problem Lay-Z Spa Modul von Ebay lief eine Zeit lang problemlos dann fing das Modul nach einem Stromausfall an zu klackern ich denke das Geräusch kommt vom Lautsprecher der verbaut ist. Den ESP8266 und den Converter hab ich schon gewechselt aber das Problem besteht weiterhin.
                                  das Web Interface ist erreichbar aber die Steuerung ist nicht möglich auch über die Tasten an der Pumpe ist mit dem Installierten Modul keine Bedienung möglich. Vielleicht kannst du mir ja helfen? Gruss Rocco

                                  1 Reply Last reply Reply Quote 0
                                  • R
                                    Ronnyempire last edited by

                                    Ich suche noch einen fertigen Controller, hat jemand einen abzugeben. Ich habe das 100101 Modell

                                    1 Reply Last reply Reply Quote 0
                                    • mrFenyx
                                      mrFenyx last edited by

                                      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!

                                      mrFenyx 1 Reply Last reply Reply Quote 0
                                      • mrFenyx
                                        mrFenyx @hlgamer last edited by

                                        @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 Reply Quote 0
                                        • mrFenyx
                                          mrFenyx @mrFenyx last edited by mrFenyx

                                          @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 Reply Quote 0
                                          • R
                                            RoccoNaut @johobo last edited by

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

                                            1 Reply Last reply Reply Quote 0
                                            • First post
                                              Last post

                                            Support us

                                            ioBroker
                                            Community Adapters
                                            Donate

                                            597
                                            Online

                                            31.6k
                                            Users

                                            79.4k
                                            Topics

                                            1.3m
                                            Posts

                                            71
                                            202
                                            26020
                                            Loading More Posts
                                            • Oldest to Newest
                                            • Newest to Oldest
                                            • Most Votes
                                            Reply
                                            • Reply as topic
                                            Log in to reply
                                            Community
                                            Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen
                                            The ioBroker Community 2014-2023
                                            logo