createState('0_userdata.0.Alexa.Volume.1', 0, {type: 'number', read: true, write: true}); createState('0_userdata.0.Alexa.Volume.2', 0, {type: 'number', read: true, write: true}); createState('0_userdata.0.Alexa.Volume.3', 0, {type: 'number', read: true, write: true}); createState('0_userdata.0.Alexa.Timer.1', 'kein Timer aktiv', {type: 'string', read: true, write: true}); createState('0_userdata.0.Alexa.Timer.2', 'kein Timer aktiv', {type: 'string', read: true, write: true}); createState('0_userdata.0.Alexa.Timer.3', 'kein Timer aktiv', {type: 'string', read: true, write: true}); createState('0_userdata.0.Alexa.SpreakerLS', 40, {type: 'number', read: true, write: true}); createState('0_userdata.0.Alexa.SpreakerAktiv', 0, {type: 'number', read: true, write: true}); createState('0_userdata.0.Alexa.Einkaufsliste', "[]", {read: true, write: true, desc: "JSON String", type: "string", def: "[]"}); createState('0_userdata.0.Alexa.ToDoListe', "[]", {read: true, write: true, desc: "JSON String", type: "string", def: "[]"}); createState('0_userdata.0.Alexa.lastFM.G2A0P30880610E5D', '', {type: 'string', read: true, write: true}); createState('0_userdata.0.Alexa.lastFM.G091AA07042704KN', '', {type: 'string', read: true, write: true}); createState('0_userdata.0.Alexa.lastFM.G090XG10015304B8', '', {type: 'string', read: true, write: true}); //Mediaplayer var InArbeitVolA1 = false; var InArbeitVolA2 = false; var InArbeitVolA3 = false; //Volumesteuerung über Tasten (+ und -) const A1Vol = '0_userdata.0.Alexa.Volume.1'; const A2Vol = '0_userdata.0.Alexa.Volume.2'; const A3Vol = '0_userdata.0.Alexa.Volume.3'; const A1VolSoll = 'alexa2.0.Echo-Devices.G2A0P30880610E5D.Player.volume'; const A2VolSoll = 'alexa2.0.Echo-Devices.G091AA07042704KN.Player.volume'; const A3VolSoll = 'alexa2.0.Echo-Devices.G090XG10015304B8.Player.volume'; function NullFueller(n) { var sn = String(n); if(sn.length == 1) { return sn.padStart(2, '0'); } else { return sn; } } // Update the count down every 1 second var x = setInterval(function() { if(getState('0_userdata.0.aktiveView').val == 'Alexa') { var CountDownZielA1 = getState('alexa2.0.Echo-Devices.G2A0P30880610E5D.Timer.nextTimerDate').val; var CountDownZielA2 = getState('alexa2.0.Echo-Devices.G091AA07042704KN.Timer.nextTimerDate').val; var CountDownZielA3 = getState('alexa2.0.Echo-Devices.G090XG10015304B8.Timer.nextTimerDate').val; var CountDownZielTA1 = getState('alexa2.0.Echo-Devices.G2A0P30880610E5D.Timer.triggered').val; var CountDownZielTA2 = getState('alexa2.0.Echo-Devices.G091AA07042704KN.Timer.triggered').val; var CountDownZielTA3 = getState('alexa2.0.Echo-Devices.G090XG10015304B8.Timer.triggered').val; var now = new Date().getTime(); var ergebnisA1 = ''; var ergebnisA2 = ''; var ergebnisA3 = ''; if (CountDownZielA1 > 0 && CountDownZielTA1 == false) { var countDownDateA1 = new Date(CountDownZielA1).getTime(); var distanceA1 = countDownDateA1 - now; var daysA1 = Math.floor(distanceA1 / 86400000); var hoursA1 = Math.floor((distanceA1 % 86400000) / 3600000); var minutesA1 = Math.floor((distanceA1 % 3600000) / 60000); var secondsA1 = Math.floor((distanceA1 % 60000) / 1000); ergebnisA1 = NullFueller(daysA1) + ':' + NullFueller(hoursA1) + ':' + NullFueller(minutesA1) + ':' + NullFueller(secondsA1) + ' '; } else { if(CountDownZielTA1 == false) { ergebnisA1 = 'kein Timer aktiv'; } else { ergebnisA1 = 'Timer abgelaufen - '; } } setState('0_userdata.0.Alexa.Timer.1',ergebnisA1); if (CountDownZielA2 > 0 && CountDownZielTA2 == false) { var countDownDateA2 = new Date(CountDownZielA2).getTime(); var distanceA2 = countDownDateA2 - now; var daysA2 = Math.floor(distanceA2 / 86400000); var hoursA2 = Math.floor((distanceA2 % 86400000) / 3600000); var minutesA2 = Math.floor((distanceA2 % 3600000) / 60000); var secondsA2 = Math.floor((distanceA2 % 60000) / 1000); ergebnisA2 = NullFueller(daysA2) + ':' + NullFueller(hoursA2) + ':' + NullFueller(minutesA2) + ':' + NullFueller(secondsA2) + ' - '; } else { if(CountDownZielTA2 == false) { ergebnisA2 = 'kein Timer aktiv'; } else { ergebnisA2 = 'Timer abgelaufen - '; } } setState('0_userdata.0.Alexa.Timer.2',ergebnisA2); if (CountDownZielA3 > 0 && CountDownZielTA3 == false) { var countDownDateA3 = new Date(CountDownZielA3).getTime(); var distanceA3 = countDownDateA3 - now; var daysA3 = Math.floor(distanceA3 / 86400000); var hoursA3 = Math.floor((distanceA3 % 86400000) / 3600000); var minutesA3 = Math.floor((distanceA3 % 3600000) / 60000); var secondsA3 = Math.floor((distanceA3 % 60000) / 1000); ergebnisA3 = NullFueller(daysA3) + ':' + NullFueller(hoursA3) + ':' + NullFueller(minutesA3) + ':' + NullFueller(secondsA3) + ' - '; } else { if(CountDownZielTA3 == false) { ergebnisA3 = 'kein Timer aktiv'; } else { ergebnisA3 = 'Timer abgelaufen - '; } } setState('0_userdata.0.Alexa.Timer.3',ergebnisA3); } }, 1000); on(A1Vol, function(dp) { if (InArbeitVolA1 == false) { InArbeitVolA1 = true; var ACode = dp.state.val; var oldT = getState(A1VolSoll).val; setTimeout(function(){ if (ACode == 1) { //Minus if (oldT > 0) { oldT = oldT - 1; setState(A1VolSoll,oldT); setState(A1Vol,0); } } else if (ACode == 2) { //Plus if (oldT < 100) { oldT = oldT + 1; setState(A1VolSoll,oldT); setState(A1Vol,0); } } InArbeitVolA1 = false; },100); } }); on(A2Vol, function(dp) { if (InArbeitVolA2 == false) { InArbeitVolA2 = true; var ACode = dp.state.val; var oldT = getState(A2VolSoll).val; setTimeout(function(){ if (ACode == 1) { //Minus if (oldT > 0) { oldT = oldT - 1; setState(A2VolSoll,oldT); setState(A2Vol,0); } } else if (ACode == 2) { //Plus if (oldT < 100) { oldT = oldT + 1; setState(A2VolSoll,oldT); setState(A2Vol,0); } } InArbeitVolA2 = false; },100); } }); on(A3Vol, function(dp) { if (InArbeitVolA3 == false) { InArbeitVolA3 = true; var ACode = dp.state.val; var oldT = getState(A3VolSoll).val; setTimeout(function(){ if (ACode == 1) { //Minus if (oldT > 0) { oldT = oldT - 1; setState(A3VolSoll,oldT); setState(A3Vol,0); } } else if (ACode == 2) { //Plus if (oldT < 100) { oldT = oldT + 1; setState(A3VolSoll,oldT); setState(A3Vol,0); } } InArbeitVolA3 = false; },100); } }); //Einkaufsliste & Co. function ListCleaner(Eintrag='') { Eintrag = Eintrag.replace('Ü','Ue').replace('Ö','Oe').replace('Ä','Ae').replace('ü','ue').replace('ö','oe').replace('ä','ae'); const arr = Eintrag.split(' '); for (let i = 0; i < arr.length; i++) { arr[i] = arr[i].charAt(0).toUpperCase() + arr[i].slice(1); } return arr.join(' '); } function Einkaufsliste() { setTimeout(function(){ var vEString=''; let ListeEinkauf = []; $('alexa2.0.Lists.SHOPPING_LIST.items.*.value').each(function(id, i) { // hier eigene schleife definierenalexa2.0.Lists.SHOPPING_LIST.items.0f43141e-029c-4860-bcd0-828702b0dc86.value if(getState(id.replace("value","completed")).val === false) { vEString ='FF'; //dient einfach nur als merkmal, das die Liste nicht leer ist ListeEinkauf.push({ Artikel: ListCleaner(getState(id).val) }) } }); if(vEString == '') { ListeEinkauf.push({ Artikel: "kein Eintrag" }) } setState('0_userdata.0.Alexa.Einkaufsliste', JSON.stringify(ListeEinkauf), true); ListeEinkauf = []; },500); } function TODO() { setTimeout(function(){ var vTString=''; let ListeToDo = []; $('alexa2.0.Lists.TO_DO.items.*.value').each(function(id, i) { // hier eigene schleife definierenalexa2.0.Lists.SHOPPING_LIST.items.0f43141e-029c-4860-bcd0-828702b0dc86.value if(getState(id.replace("value","completed")).val === false) { vTString ='FF'; //dient einfach nur als merkmal, das die Liste nicht leer ist ListeToDo.push({ Aufgabe: ListCleaner(getState(id).val) }) } }); if(vTString == '') { ListeToDo.push({ Aufgabe: "kein Eintrag" }) } setState('0_userdata.0.Alexa.ToDoListe', JSON.stringify(ListeToDo), true); ListeToDo = []; },500); } on({id: 'alexa2.0.Lists.SHOPPING_LIST.json', change: 'any'}, Einkaufsliste); on({id: 'alexa2.0.Lists.TO_DO.json', change: 'any'}, TODO); //Meldungen via Sprache const Kuehlschranktuer = 'zigbee.0.00124b00292c201d.opened'; const WasserSensorWM = 'zigbee.0.00158d0008d0972f.detected'; const WM_Alarm = 'ALARM - Wasseraustritt Waschmaschine Küche. Sofort prüfen.'; var KSperre = false; var timeout; on(WasserSensorWM, function(dp) { if (dp.state.val === true) { AlexaNotification(WM_Alarm); AlexaAnsage(WM_Alarm); AlexaAnsageKueche(WM_Alarm); AlexaAnsageKinderZimmer(WM_Alarm); } }); on(Kuehlschranktuer, function(dp) { if (KSperre === false && getState('0_userdata.0.Alexa.SpreakerAktiv').val == 1) { if (dp.state.val === true) { KSperre = true; //offen timeout = setTimeout(function(){ //30 Sekunden warten, falls nur mal kurz aufgemacht if (getState(Kuehlschranktuer).val === true) { AlexaAnsageKueche('Kühlschranktür bitte schließen'); } KSperre = false; },30000); } } else { KSperre = false; clearTimeout(timeout); timeout = null; } }); //LastFM-Plugin const cAlexaZW = 'alexa2.0.Echo-Devices.G2A0P30880610E5D.Player.currentTitle'; const cAlexaKueche = 'alexa2.0.Echo-Devices.G091AA07042704KN.Player.currentTitle'; const cAlexaKZ = 'alexa2.0.Echo-Devices.G090XG10015304B8.Player.currentTitle'; const cAlexaPZW = 'alexa2.0.Echo-Devices.G2A0P30880610E5D.Player.providerName'; const cAlexaPKueche = 'alexa2.0.Echo-Devices.G091AA07042704KN.Player.providerName'; const cAlexaPKZ = 'alexa2.0.Echo-Devices.G090XG10015304B8.Player.providerName'; function artistfilter(fartist='') { var dummy = fartist; var OK = dummy.indexOf(" jetzt"); if (OK != -1) { dummy = dummy.split(' jetzt'); dummy = dummy[0]; } var OK = dummy.indexOf(" & "); if (OK != -1) { dummy = dummy.split(' & '); dummy = dummy[0]; } var OK = dummy.indexOf(" x "); if (OK != -1) { dummy = dummy.split(' x '); dummy = dummy[0]; } return dummy; } function trackfilter(ftrack='') { var dummy = ftrack; dummy = dummy.replace(".", ""); return dummy; } function lastFM(artist, track, id) { var request = require('request'); var options = {url: 'http://ws.audioscrobbler.com/2.0/?method=track.getInfo&api_key=hier_dein_schlüssel&artist='+artistfilter(artist)+'&track='+trackfilter(track)+'&format=json', method: 'GET', headers: { 'User-Agent': 'request' }}; request(options, function(error, response, body) { if (!error && response.statusCode == 200) { var info = JSON.parse(body); var dummy = JSON.stringify(info); var OK = dummy.indexOf("png"); if (OK == -1) { if (id == 1){ setState('0_userdata.0.Alexa.lastFM.G2A0P30880610E5D', ''); } else if (id == 2) { setState('0_userdata.0.Alexa.lastFM.G091AA07042704KN', ''); } else if (id == 3) { setState('0_userdata.0.Alexa.lastFM.G090XG10015304B8', ''); } } else { dummy = dummy.split('"large"'); dummy = dummy[1]; var Position = dummy.indexOf("https"); var dummy = dummy.substr(Position, 300); dummy = dummy.split('",'); dummy = dummy[0]; if (id == 1){ setState('0_userdata.0.Alexa.lastFM.G2A0P30880610E5D', dummy); } else if (id == 2) { setState('0_userdata.0.Alexa.lastFM.G091AA07042704KN', dummy); } else if (id == 3) { setState('0_userdata.0.Alexa.lastFM.G090XG10015304B8', dummy); } } info = ''; dummy = ''; } }) } on(cAlexaZW, function(dp) { var sValue = getState('alexa2.0.Echo-Devices.G2A0P30880610E5D.Player.providerName').val; var titel = getState(cAlexaZW).val; var OK = titel.indexOf(" von "); if (OK != -1) { if (sValue == 'TuneIn-Liveradio'){ titel = titel.split(' - '); lastFM(titel[1], titel[0], 1); } } else { if (sValue == 'TuneIn-Liveradio'){ titel = titel.split(' - '); lastFM(titel[0], titel[1], 1); } } }); on(cAlexaPZW, function(dp) { if (getState('alexa2.0.Echo-Devices.G2A0P30880610E5D.Player.providerName').val != 'TuneIn-Liveradio'){ setState('0_userdata.0.Alexa.lastFM.G2A0P30880610E5D', ''); } }); on(cAlexaKueche, function(dp) { var sValue = getState('alexa2.0.Echo-Devices.G091AA07042704KN.Player.providerName').val; var titel = getState(cAlexaKueche).val; var OK = titel.indexOf(" von "); if (OK != -1) { if (sValue == 'TuneIn-Liveradio'){ titel = titel.split(' - '); lastFM(titel[1], titel[0], 2); } } else { if (sValue == 'TuneIn-Liveradio'){ titel = titel.split(' - '); lastFM(titel[0], titel[1], 2); } } }); on(cAlexaPKueche, function(dp) { if (getState('alexa2.0.Echo-Devices.G091AA07042704KN.Player.providerName').val != 'TuneIn-Liveradio'){ setState('0_userdata.0.Alexa.lastFM.G091AA07042704KN', ''); } }); on(cAlexaKZ, function(dp) { var sValue = getState('alexa2.0.Echo-Devices.G090XG10015304B8.Player.providerName').val; var titel = getState(cAlexaKZ).val; var OK = titel.indexOf(" von "); if (OK != -1) { if (sValue == 'TuneIn-Liveradio'){ titel = titel.split(' - '); lastFM(titel[1], titel[0], 3); } } else { if (sValue == 'TuneIn-Liveradio'){ titel = titel.split(' - '); lastFM(titel[0], titel[1], 3); } } }); on(cAlexaPKZ, function(dp) { if (getState('alexa2.0.Echo-Devices.G090XG10015304B8.Player.providerName').val != 'TuneIn-Liveradio'){ setState('0_userdata.0.Alexa.lastFM.G090XG10015304B8', ''); } }); //Timer abbrechen und löschen const DeleteTimer = '0_userdata.0.Alexa.Timer.delete'; on(DeleteTimer, function(dp) { var TDel = dp.state.val; if (TDel == 1) { setState('alexa2.0.Echo-Devices.G2A0P30880610E5D.Timer.stopTimerId',getState('alexa2.0.Echo-Devices.G2A0P30880610E5D.Timer.nextTimerId').val); AlexaAnsage('Timer abgebrochen'); } else if (TDel == 2) { setState('alexa2.0.Echo-Devices.G091AA07042704KN.Timer.stopTimerId',getState('alexa2.0.Echo-Devices.G091AA07042704KN.Timer.nextTimerId').val); AlexaAnsageKueche('Timer abgebrochen'); } else if (TDel == 3) { setState('alexa2.0.Echo-Devices.G090XG10015304B8.Timer.stopTimerId',getState('alexa2.0.Echo-Devices.G090XG10015304B8.Timer.nextTimerId').val); AlexaAnsageKinderZimmer('Timer abgebrochen'); } setState(DeleteTimer, 0, true); }); //Amazon - Music createState('0_userdata.0.Alexa.Interpret.SetInterpretListe', "[]", {read: true, write: true, desc: "JSON String for Widget", type: "string", def: "[]"}); createState('0_userdata.0.Alexa.Interpret.SetEcho', '', {type: 'string', read: true, write: true}); createState('0_userdata.0.Alexa.Interpret.SetList', '', {type: 'string', read: true, write: true}); createState('0_userdata.0.Alexa.Interpret.SetInterpret', '', {type: 'string', read: true, write: true}); createState('0_userdata.0.Alexa.Interpret.SearchInterpret', '', {type: 'string', read: true, write: true}); createState('0_userdata.0.Alexa.Interpret.SetPlay', false, {type: 'boolean', read: true, write: true}); createState('0_userdata.0.Alexa.Interpret.DataModus', 1, {type: 'number', read: true, write: true}); const Tastatur = '0_userdata.0.Alexa.Interpret.SetList'; const MusicDB = '0_userdata.0.Alexa.Interpret.DataModus'; const EchoDevice = '0_userdata.0.Alexa.Interpret.SetEcho'; var TAktiv = false; var sKey = ''; setState('0_userdata.0.Alexa.Interpret.SearchInterpret','',true); const AMPlay = '0_userdata.0.Alexa.Interpret.SetPlay'; function InterpretJSON(Interpret='') { let InterpretList = []; var TestString = ''; var iCounter = 0; sendTo('sql.0', 'query', 'SELECT Interpret FROM musichelper.media WHERE Interpret LIKE \''+Interpret+'\' GROUP BY Interpret ORDER BY Interpret ASC', function (result) { if (result.error) { console.error(result.error); } else { let text = result.result; for (let i = 0; i <= result.result.length-1; i++) { var sInterpret = text[i].Interpret; if (sInterpret.includes(' With ') === true) { var dummy = sInterpret.split(' With '); dummy = dummy[0]; dummy=dummy.trim(); } else { if (sInterpret.includes(' ft. ') === true) { var dummy = sInterpret.split(' ft. '); dummy = dummy[0]; dummy=dummy.trim(); } else { if (sInterpret.includes(' vs. ') === true) { var dummy = sInterpret.split(' vs. '); dummy = dummy[0]; dummy=dummy.trim(); } else { if (sInterpret.includes(' Pres. ') === true) { var dummy = sInterpret.split(' Pres. '); dummy = dummy[0]; dummy=dummy.trim(); } else { if (sInterpret.includes(' Meets ') === true) { var dummy = sInterpret.split(' Meets '); dummy = dummy[0]; dummy=dummy.trim(); } else { if (sInterpret.includes(' Pres ') === true) { var dummy = sInterpret.split(' Pres '); dummy = dummy[0]; dummy=dummy.trim(); } else { if (sInterpret.includes(' vs ') === true) { var dummy = sInterpret.split(' vs '); dummy = dummy[0]; dummy=dummy.trim(); } else { dummy = sInterpret.trim(); } } } } } } } if (TestString.includes('*'+dummy+'*') === false) { iCounter=iCounter+1; InterpretList.push({ text: dummy, value: dummy }) } TestString=TestString+'*'+dummy+'*'; } if (iCounter == 0) { InterpretList.push({ text: 'kein Ergebnis gefunden', value: 'kein Ergebnis gefunden' }) } setState('0_userdata.0.Alexa.Interpret.SetInterpretListe', JSON.stringify(InterpretList), true); InterpretList = []; } }); } on(AMPlay, function(dp) { if (dp.state.val === true) { setState(AMPlay, false, true); setState('alexa2.0.Echo-Devices.'+getState('0_userdata.0.Alexa.Interpret.SetEcho').val+'.Music-Provider.Amazon-Music', String(getState('0_userdata.0.Alexa.Interpret.SetInterpret').val).toLowerCase()); } }); on({id: EchoDevice, change: 'any'}, function(dp) { sKey = ''; setState('0_userdata.0.Alexa.Interpret.SearchInterpret','',true); let InterpretList = []; InterpretList.push({ text: 'kein Ergebnis gefunden', value: 'kein Ergebnis gefunden' }) setState('0_userdata.0.Alexa.Interpret.SetInterpretListe', JSON.stringify(InterpretList), true); setState('0_userdata.0.Alexa.Interpret.DataModus', 1, true); InterpretList = []; }); on(MusicDB, function(dp) { sKey = ''; setState('0_userdata.0.Alexa.Interpret.SearchInterpret','',true); if (dp.state.val == 2) { InterpretAZJSON(getState('0_userdata.0.Alexa.Interpret.SetEcho').val, ''); } else { let InterpretList = []; InterpretList.push({ text: 'kein Ergebnis gefunden', value: 'kein Ergebnis gefunden' }) setState('0_userdata.0.Alexa.Interpret.SetInterpretListe', JSON.stringify(InterpretList), true); InterpretList = []; } }); on({id: Tastatur, change: 'any'}, function(dp) { if (TAktiv === false) { TAktiv = true if (dp.state.val == 'DEL') { setTimeout(function(){ sKey = ''; setState('0_userdata.0.Alexa.Interpret.SearchInterpret','',true); TAktiv=false; },200); } else if (dp.state.val == 'FAV') { setTimeout(function(){ AZFavorit(getState('0_userdata.0.Alexa.Interpret.SetInterpret').val,getState('0_userdata.0.Alexa.Interpret.SetEcho').val); AlexaAnsageKueche(getState('0_userdata.0.Alexa.Interpret.SetInterpret').val + ' zur Favoritenliste hinzugefügt'); TAktiv=false; },200); } else if (dp.state.val != '?') { setTimeout(function(){ sKey=sKey+dp.state.val; setState('0_userdata.0.Alexa.Interpret.SearchInterpret',sKey,true); TAktiv=false; },200); } else { setTimeout(function(){ setState('0_userdata.0.Alexa.Interpret.SetInterpret', '', true); if (getState('0_userdata.0.Alexa.Interpret.DataModus').val == 1) { InterpretJSON('%'+sKey.replace(' ','%')+'%'); } else { InterpretAZJSON(getState('0_userdata.0.Alexa.Interpret.SetEcho').val, '%'+sKey.replace(' ','%')+'%'); } TAktiv=false; },200); } } }); function AZFavorit(sInterpret,sEcho) { sendTo('sql.0', 'query', 'SELECT * FROM iobroker.fav_amazon_music WHERE az_echo="'+sEcho+'" AND interpret="'+sInterpret+'"', function (result) { if (result.error) { console.error(result.error); } else { if (result.result.length == 0) { sendTo('sql.0', 'query', 'INSERT INTO iobroker.fav_amazon_music (az_echo, interpret) VALUES ("'+sEcho+'", "'+sInterpret+'")'); } } }); } function InterpretAZJSON(sEcho='', sInterpret='') { let InterpretList = []; var iCounter = 0; var QString = ''; if (sInterpret == '') { QString = 'SELECT * FROM iobroker.fav_amazon_music WHERE az_echo="'+sEcho+'" ORDER BY interpret ASC'; } else { QString = 'SELECT * FROM iobroker.fav_amazon_music WHERE az_echo="'+sEcho+'" AND Interpret LIKE \''+sInterpret+'\' ORDER BY interpret ASC'; } sendTo('sql.0', 'query', QString, function (result) { if (result.error) { console.error(result.error); } else { let text = result.result; for (let i = 0; i <= result.result.length-1; i++) { iCounter=iCounter+1; InterpretList.push({ text: text[i].interpret, value: text[i].interpret }) } if (iCounter == 0) { InterpretList.push({ text: 'kein Ergebnis gefunden', value: 'kein Ergebnis gefunden' }) } setState('0_userdata.0.Alexa.Interpret.SetInterpretListe', JSON.stringify(InterpretList), true); InterpretList = []; } }); } //Equalizer createState('0_userdata.0.Alexa.Equalizer.SetEcho', '', {type: 'string', read: true, write: true}); createState('0_userdata.0.Alexa.Equalizer.Bass', 0, {type: 'number', read: true, write: true}); createState('0_userdata.0.Alexa.Equalizer.Middle', 0, {type: 'number', read: true, write: true}); createState('0_userdata.0.Alexa.Equalizer.Treble', 0, {type: 'number', read: true, write: true}); const EEchoDevice = '0_userdata.0.Alexa.Equalizer.SetEcho'; const EBass = '0_userdata.0.Alexa.Equalizer.Bass'; const EMiddle = '0_userdata.0.Alexa.Equalizer.Middle'; const ETreble = '0_userdata.0.Alexa.Equalizer.Treble'; var ESave = false ; on({id: EEchoDevice, change: 'any'}, function(dp) { ESave= false; setTimeout(function(){ setState(EBass, getState('alexa2.0.Echo-Devices.'+getState(EEchoDevice).val+'.Preferences.equalizerBass').val, true); setState(EMiddle, getState('alexa2.0.Echo-Devices.'+getState(EEchoDevice).val+'.Preferences.equalizerMidRange').val, true); setState(ETreble, getState('alexa2.0.Echo-Devices.'+getState(EEchoDevice).val+'.Preferences.equalizerTreble').val, true); ESave=true; },300); }); on(EBass, function(dp) { if (ESave === true) { setState('alexa2.0.Echo-Devices.'+getState(EEchoDevice).val+'.Preferences.equalizerBass', dp.state.val); } }); on(EMiddle, function(dp) { if (ESave === true) { setState('alexa2.0.Echo-Devices.'+getState(EEchoDevice).val+'.Preferences.equalizerMidRange', dp.state.val); } }); on(ETreble, function(dp) { if (ESave === true) { setState('alexa2.0.Echo-Devices.'+getState(EEchoDevice).val+'.Preferences.equalizerTreble', dp.state.val); } }); //Radio createState('0_userdata.0.Alexa.Radiosender.SetEcho', '', {type: 'string', read: true, write: true}); createState('0_userdata.0.Alexa.Radiosender.Sender', '', {type: 'string', read: true, write: true}); const FMRadioSender = '0_userdata.0.Alexa.Radiosender.Sender'; on({id: FMRadioSender, change: 'any'}, function(dp) { setState('alexa2.0.Echo-Devices.'+getState('0_userdata.0.Alexa.Radiosender.SetEcho').val+'.Music-Provider.TuneIn', dp.state.val); }); // Sonstiges // on('0_userdata.0.aktiveView', function(dp) { // if (dp.state.val == 'Alexa') { // extendObject('alexa2.0.Lists.SHOPPING_LIST.#New', {common: {type: 'string'}}); // } // });