NEWS
Lay-Z-Spa Wifi Control
Lay-Z-Spa Wifi Control
-
@anderl
Ich habe gestern die PCB v2 bestellt. Wollte für den Winter auch schon mal was zum basteln haben.
Sobald die da sind, kann ich Dir Bescheid geben.Falls noch jemand welche benötigt - habe dann immer noch 3 übrig.

Gruß,
Richy@rickman
Ich würde Dir ein v2 PCB abnehmen.Vielen Dank und Gruß,
Michael -
@rickman
Ich würde Dir ein v2 PCB abnehmen.Vielen Dank und Gruß,
Michael@allesautomatisch
Hast ne Chatnachricht...
-
Also... Ich hätte dann noch 2 fertige Boards für das Model S100101, St. Lucia/Rio.
Im Moment drucke ich noch die passenden Gehäuse dafür, die wunderbar in die zwei freien Bohrungen neben der Heizung passen.


Bei eBay werden die für 83,- Euro vertickt, hier für 35,- plus Versand.
Falls es nicht klappen sollte, weil doch wieder was anders in der Elektronik der Pumpe ist, nehme ich den selbstverständlich wieder zurück. Bei Interesse gerne eine PN an mich.EDIT:
Keiner mehr da...Gruß,
Richy -
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

-
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

@mezzodo
Schau Dir mal die Bilder bei mir an. Hast Du die Kabel so verlötet? Also in der Reihenfolge am Ein- und Ausgang?
Du hast zwar eine V1- Platine, aber das selbe Pumpenmodell... Vielleicht klappts ja.Bei mir hat die Standardbelegung nämlich auch nicht funktioniert.

-
@mezzodo
Schau Dir mal die Bilder bei mir an. Hast Du die Kabel so verlötet? Also in der Reihenfolge am Ein- und Ausgang?
Du hast zwar eine V1- Platine, aber das selbe Pumpenmodell... Vielleicht klappts ja.Bei mir hat die Standardbelegung nämlich auch nicht funktioniert.

-
@rickman
Danke für den Tipp, die Belegung hab ich tatsächlich schonmal gesehen aber nicht berücksichtigt. Ich teste das mal.LG
@mezzodo said in Lay-Z-Spa Wifi Control:
@rickman
Danke für den Tipp, die Belegung hab ich tatsächlich schonmal gesehen aber nicht berücksichtigt. Ich teste das mal.LG
Umverdrahtet, selber Effekt...
Allerdings habe ich aus Gründen mal einen neuen Level Converter bestellt und jetzt spielt zumindest die Melodie beim starten, dennoch wie vorher bleibt das Display tot. Ich denke ich werde es nun nochmal mit der 1:1 Verdrahtung versuchen und melde mich erneut #justupdating
-
@agria4800 : Anbei das Script für die Leute mit dem Layz Hawaii oder Maldives (mit den Hydrojet Düsen)

Und so siehts dann aus...

Grüße
@agria4800 sagte in Lay-Z-Spa Wifi Control:
Und so siehts dann aus...

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? -
Sehr geiles Projekt. Genau das was mir noch fehlt für meinen Maldives Pool. Ich habe fünf v2 PCB bestellt. Falls sich hier auch Schweizer tummeln, die noch eines bräuchten, gerne PM an mich

Edit:
Hab bereits alles Material bekommen und soweit mal installiert und konfiguriert. Ich benutze zwar kein ioBroker, sondern Mosquitto in HA, aber vielleicht kann mir ja trotzdem jemand hier einen Tip geben. Ich haben den Maldives mit Hydrojet, Verbindung zu Mosquitto steht und wird auch alles wunderbar in HA angezeigt... ...ausser die Hydrojet Düsen. Meiner Meinung nach müsste dies doch im neusten Release mit integriert sein? -
@agria4800 Hab´s grad irgendwie hinbekommen..
naja, hier mal meine Einstellungen, falls jemand hier die gleichen Probleme habe...

Script wird auch gefüllt, danke fürs teilen

@agria4800
Hallo, danke für die Screenshots zur Einrichtung von mqtt - Es klappt bei mir aber trotzdem nicht. Derzeit benutze ich den mqtt-Adapter 4.07. Habe die Einstellungen exakt so gemacht wie von Dir dargegestellt und unzählige Male versucht. Geht nicht. Auch ein Reset der Poolsteuerung und des ioBroker brachten keinen Erfolg. Beim Log bekomme ich auch keine Hilfe.
Ich habe in einem anderen Thread gelesen, dass der Adapter so lange auf Gelb bleibt, bis sich ein Device anmeldet/einwählt. Aber wie kann ich die Poolsteuerung sich aktiv einwählen lassen?
Ich checks nicht.
Danke für jede Hilfe.
-
@agria4800 : Anbei das Script für die Leute mit dem Layz Hawaii oder Maldives (mit den Hydrojet Düsen)

Und so siehts dann aus...

Grüße
@agria4800
Hallo Agria4800,ich habe das Script erfolgreich in Betrieb nehmen können (vielen Dank an die Ersteller). Ich bekomme derzeit alle ca. 4 Sekunden einen Eintrag im Log und eine entsprechende Aktualisierung der Daten, da sich z. B. die (virtuelle) Temperatur minimal ändert. Könnte man hier nicht auf Zentel-Grad Genauigkeit reduzieren, um die Rechnerlast ein wenig runterzufahren? Ich habe von Java Null Check, daher kann ich es nicht machen. Habe mir übergangsweise so geholfen und den Logeintrag auskommentiert. Aber das ist ja nicht Sinn der Sache.
Danke im Voraus.
-
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-SPAWollte am Wochenende mal ein Testaufbau machen... und werde berichten...
PS: ich selbst habe einen Palm-Springs

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) }); -
Also... Ich hätte dann noch 2 fertige Boards für das Model S100101, St. Lucia/Rio.
Im Moment drucke ich noch die passenden Gehäuse dafür, die wunderbar in die zwei freien Bohrungen neben der Heizung passen.


Bei eBay werden die für 83,- Euro vertickt, hier für 35,- plus Versand.
Falls es nicht klappen sollte, weil doch wieder was anders in der Elektronik der Pumpe ist, nehme ich den selbstverständlich wieder zurück. Bei Interesse gerne eine PN an mich.EDIT:
Keiner mehr da...Gruß,
Richy -
@johobo Hi, ich habe Interesse. Ist noch eine Platine übrig?
-
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.

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…

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!
-
@naofireblade
@BruderBleistiftMeine Platinen von JLCPCB sind gerade auf dem Weg zu mir. Könnte euch gegen eine kleine Beteiligung und die Versandkosten jeweils eine schicken. Interesse?
VG
Marc -
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.

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…

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!