async function main(){ var DataP, DataJ, id, instance_id, washer_id, debuggen, initBit, list_dp, counter_dp, dp_name; // Beschreibe diese Funktion … async function datapointcreate(DataP, DataJ) { createState(DataP, DataJ); } // Beschreibe diese Funktion … async function channelcreate(DataP, DataJ) { setObject(DataP, DataJ); } // Beschreibe diese Funktion … async function datapointcheck(id) { return !!$(id).length; } // Beschreibe diese Funktion … async function channelcheck(id) { const obj = await existsObjectAsync(id); return obj; } // Einstellungen instance_id = 0; washer_id = 'xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx'; debuggen = true; // Script initBit = getState((['lg-thinq.',instance_id,'.',washer_id,'.snapshot.washerDryer.preState'].join(''))).val; if (!await channelcheck('0_userdata.0.Thinq_Washer')) { if (debuggen) { console.log('Channel 0_userdata.0.Thinq_Washer wird erstellt!'); } await channelcreate('0_userdata.0.Thinq_Washer', (function () { try { return JSON.parse('{"type": "channel", "common": {"name": "Washer", "read": true, "write": true, "desc": "Manuell erzeugt"}}'); } catch (e) { return {}; }})()); } if (!await datapointcheck('0_userdata.0.Thinq_Washer.start')) { if (debuggen) { console.log('0_userdata.0.Thinq_Washer.start'); } await datapointcreate('0_userdata.0.Thinq_Washer.start', (function () { try { return JSON.parse('{"name": "start", "role": "button", "type": "boolean", "write": true, "read": true, "def": false}'); } catch (e) { return {}; }})()); } else { if (debuggen) { console.log('0_userdata.0.Thinq_Washer.start'); } } if (!await datapointcheck('0_userdata.0.Thinq_Washer.courseFL24inchBaseTitan')) { if (debuggen) { console.log('Datenpunkt 0_userdata.0.Thinq_Washer.courseFL24inchBaseTitan wird erstellt!'); } await datapointcreate('0_userdata.0.Thinq_Washer.courseFL24inchBaseTitan', (function () { try { return JSON.parse('{"name": "courseFL24inchBaseTitan", "role": "state", "type": "string", "write": true, "read": true, "def": "NOT_SELECTED"}'); } catch (e) { return {}; }})()); } else { if (debuggen) { console.log('Datenpunkt 0_userdata.0.Thinq_Washer.courseFL24inchBaseTitan existiert bereits!'); } } if (!await datapointcheck('0_userdata.0.Thinq_Washer.temp')) { if (debuggen) { console.log('Datenpunkt 0_userdata.0.Thinq_Washer.temp wird erstellt!'); } await datapointcreate('0_userdata.0.Thinq_Washer.temp', (function () { try { return JSON.parse('{"name": "temp", "role": "state", "type": "string", "write": true, "read": true, "def": "NO_TEMP"}'); } catch (e) { return {}; }})()); } else { if (debuggen) { console.log('Datenpunkt 0_userdata.0.Thinq_Washer.temp existiert bereits!'); } } if (!await datapointcheck('0_userdata.0.Thinq_Washer.spin')) { if (debuggen) { console.log('0_userdata.0.Thinq_Washer.spin'); } await datapointcreate('0_userdata.0.Thinq_Washer.spin', (function () { try { return JSON.parse('{"name": "spin", "role": "state", "type": "string", "write": true, "read": true, "def": "NOT_SELECTED"}'); } catch (e) { return {}; }})()); } else { if (debuggen) { console.log('0_userdata.0.Thinq_Washer.spin'); } } if (!await datapointcheck('0_userdata.0.Thinq_Washer.medicRinse')) { if (debuggen) { console.log('0_userdata.0.Thinq_Washer.medicRinse'); } await datapointcreate('0_userdata.0.Thinq_Washer.medicRinse', (function () { try { return JSON.parse('{"name": "medicRinse", "role": "state", "type": "string", "write": true, "read": true, "def": "MEDICRINSE_OFF"}'); } catch (e) { return {}; }})()); } else { if (debuggen) { console.log('0_userdata.0.Thinq_Washer.medicRinse'); } } if (!await datapointcheck('0_userdata.0.Thinq_Washer.steam')) { if (debuggen) { console.log('0_userdata.0.Thinq_Washer.steam'); } await datapointcreate('0_userdata.0.Thinq_Washer.steam', (function () { try { return JSON.parse('{"name": "steam", "role": "state", "type": "string", "write": true, "read": true, "def": "STEAM_OFF"}'); } catch (e) { return {}; }})()); } else { if (debuggen) { console.log('0_userdata.0.Thinq_Washer.steam'); } } if (!await datapointcheck('0_userdata.0.Thinq_Washer.preWash')) { if (debuggen) { console.log('0_userdata.0.Thinq_Washer.preWash'); } await datapointcreate('0_userdata.0.Thinq_Washer.preWash', (function () { try { return JSON.parse('{"name": "preWash", "role": "state", "type": "string", "write": true, "read": true, "def": "PREWASH_OFF"}'); } catch (e) { return {}; }})()); } else { if (debuggen) { console.log('0_userdata.0.Thinq_Washer.preWash'); } } if (!await datapointcheck('0_userdata.0.Thinq_Washer.turboWash')) { if (debuggen) { console.log('0_userdata.0.Thinq_Washer.turboWash'); } await datapointcreate('0_userdata.0.Thinq_Washer.turboWash', (function () { try { return JSON.parse('{"name": "turboWash", "role": "state", "type": "string", "write": true, "read": true, "def": "TURBOWASH_OFF"}'); } catch (e) { return {}; }})()); } else { if (debuggen) { console.log('0_userdata.0.Thinq_Washer.turboWash'); } } on({ id: [].concat(['lg-thinq.',instance_id,'.',washer_id,'.snapshot.washerDryer.spin'].join('')).concat(['lg-thinq.',instance_id,'.',washer_id,'.snapshot.washerDryer.temp'].join('')).concat(['lg-thinq.',instance_id,'.',washer_id,'.snapshot.washerDryer.medicRinse'].join('')).concat(['lg-thinq.',instance_id,'.',washer_id,'.snapshot.washerDryer.courseFL24inchBaseTitan'].join('')).concat(['lg-thinq.',instance_id,'.',washer_id,'.snapshot.washerDryer.steam'].join('')).concat(['lg-thinq.',instance_id,'.',washer_id,'.snapshot.washerDryer.turboWash'].join('')).concat(['lg-thinq.',instance_id,'.',washer_id,'.snapshot.washerDryer.preWash'].join('')), change: 'ne' }, async (obj) => { if (debuggen) { console.log(('Start all data points: ' + String((obj.state ? obj.state.val : '')))); console.log(('Status initBit: ' + String(initBit))); } if (initBit == 'INITIAL') { setStateDelayed(('0_userdata.0.Thinq_Washer.' + String(obj.id.slice(((obj.id.lastIndexOf('.') + 1 + 1) - 1), obj.id.length))), (obj.state ? obj.state.val : ''), true, parseInt(((0) || '').toString(), 10), false); if (false) { console.log(('Write data point: ' + String('0_userdata.0.Thinq_Washer.' + String(obj.id.slice(((obj.id.lastIndexOf('.') + 1 + 1) - 1), obj.id.length))))); } } }); on({ id: [].concat(['lg-thinq.',instance_id,'.',washer_id,'.snapshot.washerDryer.preState'].join('')), change: 'ne', ack: true }, async (obj) => { let value = obj.state.val; let oldValue = obj.oldState.val; if (debuggen) { console.log(('Start preState: ' + String((obj.state ? obj.state.val : '')))); } initBit = (obj.state ? obj.state.val : ''); }); on({ id: '0_userdata.0.Thinq_Washer.start' /* start */, change: 'ne', ack: false }, async (obj) => { let value = obj.state.val; let oldValue = obj.oldState.val; if (debuggen) { console.log(('Start aktiviert: ' + String((obj.state ? obj.state.val : '')))); } if ((obj.state ? obj.state.val : '')) { if (debuggen) { console.log('Schreibe States: '); } setStateDelayed(obj.id, false, true, parseInt(((0) || '').toString(), 10), false); if (debuggen) { console.log(('Wakeup: ' + String(['lg-thinq.',instance_id,'.',washer_id,'.remote.WMWakeup'].join('')))); } setStateDelayed((['lg-thinq.',instance_id,'.',washer_id,'.remote.WMWakeup'].join('')), true, false, parseInt(((0) || '').toString(), 10), false); list_dp = ['courseFL24inchBaseTitan', 'medicRinse', 'spin', 'temp', 'steam', 'preWash', 'turboWash']; counter_dp = 0; for (var dp_name_index in list_dp) { dp_name = list_dp[dp_name_index]; if (counter_dp == 0) { if (debuggen) { console.log((['Schreibe ','0_userdata.0.Thinq_Washer.',dp_name,' nach ',['lg-thinq.',instance_id,'.',washer_id,'.remote.WMDownload_Select'].join('')].join(''))); } setStateDelayed((['lg-thinq.',instance_id,'.',washer_id,'.remote.WMDownload_Select'].join('')), getState(('0_userdata.0.Thinq_Washer.' + String(dp_name))).val, false, parseInt(((0) || '').toString(), 10), false); await wait(1500); } else { if (debuggen) { console.log((['Schreibe ','0_userdata.0.Thinq_Washer.',dp_name,' nach ',['lg-thinq.',instance_id,'.',washer_id,'.remote.Course.',dp_name].join('')].join(''))); } setStateDelayed((['lg-thinq.',instance_id,'.',washer_id,'.remote.Course.',dp_name].join('')), getState(('0_userdata.0.Thinq_Washer.' + String(dp_name))).val, false, parseInt(((0) || '').toString(), 10), false); await wait(200); } counter_dp = (typeof counter_dp === 'number' ? counter_dp : 0) + 1; } if (debuggen) { console.log((['lg-thinq.',instance_id,'.',washer_id,'.remote.Course.remoteStart'].join(''))); } setStateDelayed((['lg-thinq.',instance_id,'.',washer_id,'.remote.Course.remoteStart'].join('')), 'REMOTE_START_ON', false, parseInt(((0) || '').toString(), 10), false); await wait(200); if (debuggen) { console.log('Starte Waschmaschine'); } setStateDelayed((['lg-thinq.',instance_id,'.',washer_id,'.remote.WMStart'].join('')), true, false, parseInt(((0) || '').toString(), 10), false); } }); } main();