NEWS
ESP8266 TDA7313 iobroker
-
Появилась необходимость в усилителе с сетевым управление.
В качестве усилителя был куплен на запчасти автомобильный магнитофон Prology CMD-120 без панельки.
Вскрытие показала, что внутри стоит усилитель на TDA7386 и цифровой темброблок на PL2313 (аналог TDA7313) управление по I2C.
Тут и пришла мысль управлять ей (pl2313) через ESP8266 с прошивкой homes-smart GET-запросами.
За основу была взята схема от CMD-125 так как на 120 я не нашел (да и отличается 120 от 125 тем, что в 120 нет AUX входа)
Из prology был удален CD привод, выпаян процессор, так как "рулить" теперь будет ESP8266.
Установил внутрь плату ESP и подпаялся к PL2313 и ключам управления.
На скорую руку написал Вот такой скрипт и сделал страницу.
! var request = require('request');
! createState('ESPmusic.Volume', ''); //создаем переменную в iobroker
! createState('ESPmusic.Power', ''); //т.д…
! createState('ESPmusic.Switch', '');
! createState('ESPmusic.Bass', '');
! createState('ESPmusic.Treble', '');
! createState('ESPmusic.SpeakerLF', '');
! createState('ESPmusic.SpeakerRF', '');
! createState('ESPmusic.SpeakerLR', '');
! createState('ESPmusic.SpeakerRR', '');
! createState('ESPmusic.Loudness', '');
! createState('ESPmusic.dB', '');
! var IP = getState ("javascript.0.ESPmusic.IP"/ESPmusic.IP/).val; // берем ip ESP8266 из iobroker
! on({id: "javascript.0.ESPmusic.Power"/ESPmusic.Power/, change: 'any'}, function (obj) { // включаем усилителя (значение может быть от 0 (выкл) и 1 (вкл))
! if (obj.newState.val ==1){
! request("http://"+IP+"/gpio?st=1&pin=5", function(error, response, body){ // отправляем на ESP (использую GPIO5 ESP)
! if(error) {
! log(error);
! }
! });
! // инициализация при запуске, считываем все значения из iobroker от предыдущей сессии и отправляем на ESP
! var Volume = getState ("javascript.0.ESPmusic.Volume"/ESPmusic.Volume/).val;
! if(Volume === ""){
! Volume = 30; // среднее значение есть не указана в iobrokere
! }
! var hexVolume = Volume.toString(16); // преобразуем из десятичного (dec) в шестнадцатеричный (hex)
! var a=hexVolume.length;
! if(a==1){
! hexVolume= "0"+hexVolume;
! }
! Volume = hexVolume;
! log("Volume = "+Volume);
! var Bass = getState ("javascript.0.ESPmusic.Bass"/ESPmusic.Bass/).val;
! if(Bass === ""){
! Bass = 8; // среднее значение есть не указана в iobrokere
! }
! var hexBass;
! if(Bass<=7){ //преобразование
! Bass = 60 + Bass;
! }else {
! Bass = 111 + 8 - Bass;
! hexBass = Bass.toString(16);
! Bass = hexBass;
! }
! log("Bass = "+Bass);
! var Treble = getState ("javascript.0.ESPmusic.Treble"/ESPmusic.Treble/).val;
! if(Volume === ""){
! Treble = 8; // среднее значение есть не указана в iobrokere
! }
! var hexTreble;
! if(Treble<=7){ //преобразование
! Treble = 70 + Treble;
! }else {
! Treble = 127 + 8 - Treble;
! hexTreble = Treble.toString(16);
! Treble = hexTreble;
! }
! log("Treble = "+Treble);
! var Switch = getState ("javascript.0.ESPmusic.Switch"/ESPmusic.Switch/).val;
! if(Switch === ""){
! Switch = 3; // среднее значение есть не указана в iobrokere
! }
! log("Switch = "+Switch);
! var Loudness = getState ("javascript.0.ESPmusic.Loudness"/ESPmusic.Loudness/).val;
! if(Loudness === ""){
! Loudness = 0; // среднее значение есть не указана в iobrokere
! }
! switch (Loudness) {
! case 0:
! Loudness = 4;
! break;
! case 1:
! Loudness = 0;
! break;
! default:
! Loudness = 4;
! }
! log("Loudness = "+Loudness);
! var dB = getState ("javascript.0.ESPmusic.dB"/ESPmusic.dB/).val;
! if(dB === ""){
! dB = 0; // среднее значение есть не указана в iobrokere
! }
! switch (dB) {
! case 0:
! dB = 0;
! break;
! case 1:
! dB = 8;
! break;
! case 2:
! dB = 16;
! break;
! case 3:
! dB = 24;
! break;
! default:
! dB = 24;
! }
! log("dB = "+dB);
! var AudioSwitch = 64+dB+Loudness+Switch;
! var hexAudioSwitch = AudioSwitch.toString(16);
! AudioSwitch=hexAudioSwitch;
! var SpeakerLF = getState ("javascript.0.ESPmusic.SpeakerLF"/ESPmusic.SpeakerLF/).val;
! if(SpeakerLF === ""){
! SpeakerLF = 0; // среднее значение есть не указана в iobrokere
! }
! SpeakerLF = 128 + SpeakerLF;
! var hexSpeakerLF = SpeakerLF.toString(16);
! SpeakerLF = hexSpeakerLF;
! var SpeakerRF = getState ("javascript.0.ESPmusic.SpeakerRF"/ESPmusic.SpeakerRF/).val;
! if(SpeakerRF === ""){
! SpeakerRF = 0; // среднее значение есть не указана в iobrokere
! }
! SpeakerRF = 160 + SpeakerRF;
! var hexSpeakerRF = SpeakerRF.toString(16);
! SpeakerRF = hexSpeakerRF;
! var SpeakerLR = getState ("javascript.0.ESPmusic.SpeakerLR"/ESPmusic.SpeakerLR/).val;
! if(SpeakerLR === ""){
! SpeakerLR = 0; // среднее значение есть не указана в iobrokere
! }
! SpeakerLR = 192 + SpeakerLR;
! var hexSpeakerLR = SpeakerLR.toString(16);
! SpeakerLR = hexSpeakerLR;
! var SpeakerRR = getState ("javascript.0.ESPmusic.SpeakerRR"/ESPmusic.SpeakerRR/).val;
! if(SpeakerRR === ""){
! SpeakerRR = 0; // среднее значение есть не указана в iobrokere
! }
! SpeakerRR = 192 + SpeakerRR;
! var hexSpeakerRR = SpeakerRR.toString(16);
! SpeakerRR = hexSpeakerRR;
! setTimeout(function() {
! request("http://"+IP+"/i2cgo?adr=44&set="+AudioSwitch+SpeakerLF+SpeakerRF+SpeakerLR+SpeakerRR+Treble+Bass+Volume, function(error, response, body){
! if(error) { // устанавливаем значение tda7313 от предыдущей сессии
! log(error);
! }
! });
! },500);
! }else{
! request("http://"+IP+"/gpio?st=0&pin=5", function(error, response, body){ // выключаем усилитель
! if(error) {
! log(error);
! }
! });
! }
! });
! on({id: "javascript.0.ESPmusic.Switch"/ESPmusic.Switch/, change: 'any'}, function (obj) {
! var Switch = obj.newState.val; // подписываемся на изменения переменной ESPmusic.Switch (значение может быть от 0 (Stereo 1), 1 (Stereo 2) и 2 (Stereo 3))
! if(Switch === ""){
! Switch = 3; // среднее значение есть не указана в iobrokere
! }
! var Loudness = getState ("javascript.0.ESPmusic.Loudness"/ESPmusic.Loudness/).val;
! if(Loudness === ""){
! Loudness = 0; // среднее значение есть не указана в iobrokere
! }
! switch (Loudness) {
! case 0:
! Loudness = 4;
! break;
! case 1:
! Loudness = 0;
! break;
! default:
! Loudness = 4;
! }
! var dB = getState ("javascript.0.ESPmusic.dB"/ESPmusic.dB/).val;
! if(dB === ""){
! dB = 0; // среднее значение есть не указана в iobrokere
! }
! switch (dB) {
! case 0:
! dB = 0;
! break;
! case 1:
! dB = 8;
! break;
! case 2:
! dB = 16;
! break;
! case 3:
! dB = 24;
! break;
! default:
! dB = 24;
! }
! log("dB = "+dB);
! var AudioSwitch = 64+dB+Loudness+Switch;
! var hexAudioSwitch = AudioSwitch.toString(16);
! AudioSwitch=hexAudioSwitch;
! log(AudioSwitch);
! request("http://"+IP+"/i2cgo?adr=44&set="+AudioSwitch, function(error, response, body){
! if(error) {
! log(error);
! }
! });
! });
! on({id: "javascript.0.ESPmusic.Loudness"/ESPmusic.Loudness/, change: 'any'}, function (obj) {
! var Loudness = obj.newState.val; // подписываемся на изменения переменной ESPmusic.Loudness (значение может быть от 0 (выкл) и 1 (вкл))
! if(Loudness === ""){
! Loudness = 0; // среднее значение есть не указана в iobrokere
! }
! switch (Loudness) {
! case 0:
! Loudness = 4;
! break;
! case 1:
! Loudness = 0;
! break;
! default:
! Loudness = 4;
! }
! var Switch = getState ("javascript.0.ESPmusic.Switch"/ESPmusic.Switch/).val;
! if(Switch === ""){
! Switch = 3; // среднее значение есть не указана в iobrokere
! }
! var dB = getState ("javascript.0.ESPmusic.dB"/ESPmusic.dB/).val;
! if(dB === ""){
! dB = 0; // среднее значение есть не указана в iobrokere
! }
! switch (dB) {
! case 0:
! dB = 0;
! break;
! case 1:
! dB = 8;
! break;
! case 2:
! dB = 16;
! break;
! case 3:
! dB = 24;
! break;
! default:
! dB = 24;
! }
! var AudioSwitch = 64+dB+Loudness+Switch;
! var hexAudioSwitch = AudioSwitch.toString(16);
! AudioSwitch=hexAudioSwitch;
! log(AudioSwitch);
! request("http://"+IP+"/i2cgo?adr=44&set="+AudioSwitch, function(error, response, body){
! if(error) {
! log(error);
! }
! });
! });
! on({id: "javascript.0.ESPmusic.dB"/ESPmusic.dB/, change: 'any'}, function (obj) { //доп. усиление
! var dB = obj.newState.val; // подписываемся на изменения переменной ESPmusic.dB (значение может быть от 0 (+11.25dB), 1 (+7.5dB), 2 (+3.75dB) и 3 (0dB))
! if(dB === ""){
! dB = 0; // среднее значение есть не указана в iobrokere
! }
! switch (dB) {
! case 0:
! dB = 0;
! break;
! case 1:
! dB = 8;
! break;
! case 2:
! dB = 16;
! break;
! case 3:
! dB = 24;
! break;
! default:
! dB = 24;
! }
! var Loudness = getState ("javascript.0.ESPmusic.Loudness"/ESPmusic.Loudness/).val;
! if(Loudness === ""){
! Loudness = 0; // среднее значение есть не указана в iobrokere
! }
! switch (Loudness) {
! case 0:
! Loudness = 4;
! break;
! case 1:
! Loudness = 0;
! break;
! default:
! Loudness = 4;
! }
! var Switch = getState ("javascript.0.ESPmusic.Switch"/ESPmusic.Switch/).val;
! if(Switch === ""){
! Switch = 3; // среднее значение есть не указана в iobrokere
! }
! var AudioSwitch = 64+dB+Loudness+Switch;
! var hexAudioSwitch = AudioSwitch.toString(16); //переводим из dec в hex
! AudioSwitch=hexAudioSwitch;
! log(AudioSwitch);
! request("http://"+IP+"/i2cgo?adr=44&set="+AudioSwitch, function(error, response, body){ //отправляем на ESP
! if(error) {
! log(error);
! }
! });
! });
! on({id: "javascript.0.ESPmusic.Volume"/ESPmusic.Volume/, change: 'any'}, function (obj) { //регулировка громкости общая
! var volume = obj.newState.val; // подписываемся на изменения переменной ESPmusic.Volume (значение может быть от 0 - 63)
! var hexvolume = volume.toString(16);
! var a=hexvolume.length; // кол.сим
! if(a==1){
! hexvolume= "0"+hexvolume; //если символ один добавлеем "0" к значению
! }
! request("http://"+IP+"/i2cgo?adr=44&set="+hexvolume, function(error, response, body){ //отправляем на ESP
! if(error) {
! log(error);
! }
! });
! });
! on({id: "javascript.0.ESPmusic.Bass"/ESPmusic.Bass/, change: 'any'}, function (obj) { //регулировка НЧ
! var bass = obj.newState.val; // подписываемся на изменения переменной ESPmusic.Bass (значение может быть от 0 - 15)
! var hexbass;
! if(bass<=7){ // преобразование
! bass = 60 + bass;
! }else {
! bass = 111 + 8 - bass;
! hexbass = bass.toString(16); //переводим из dec в hex
! bass = hexbass;
! }
! request("http://"+IP+"/i2cgo?adr=44&set="+bass, function(error, response, body){ //отправляем на ESP
! if(error) {
! log(error);
! }
! });
! });
! on({id: "javascript.0.ESPmusic.Treble"/ESPmusic.Treble/, change: 'any'}, function (obj) { //регулировка ВЧ
! var treble = obj.newState.val; // подписываемся на изменения переменной ESPmusic.Treble (значение может быть от 0 - 15)
! var hextreble;
! if(treble<=7){ // преобразование
! treble = 70 + treble;
! }else {
! treble = 127 + 8 - treble;
! hextreble = treble.toString(16); //переводим из dec в hex
! treble = hextreble;
! }
! request("http://"+IP+"/i2cgo?adr=44&set="+treble, function(error, response, body){ //отправляем на ESP
! if(error) {
! log(error);
! }
! });
! });
! on({id: "javascript.0.ESPmusic.SpeakerLF"/ESPmusic.SpeakerLF/, change: 'any'}, function (obj) { //Регулировка громкости канала SpeakerLF
! var SpeakerLF = 128 + obj.newState.val; // подписываемся на изменения переменной ESPmusic.Treble (значение может быть от 0 - 30)
! var hexString = SpeakerLF.toString(16); //переводим из dec в hex
! log(hexString);
! request("http://"+IP+"/i2cgo?adr=44&set="+hexString, function(error, response, body){ //отправляем на ESP
! if(error) {
! log(error);
! }
! });
! });
! on({id:"javascript.0.ESPmusic.SpeakerRF"/ESPmusic.SpeakerRF/, change: 'any'}, function (obj) { //Регулировка громкости канала SpeakerRF
! var SpeakerRF = 160 + obj.newState.val; // подписываемся на изменения переменной ESPmusic.SpeakerRF (значение может быть от 0 - 30)
! var hexString = SpeakerRF.toString(16); //переводим из dec в hex
! log(hexString);
! request("http://"+IP+"/i2cgo?adr=44&set="+hexString, function(error, response, body){ //отправляем на ESP
! if(error) {
! log(error);
! }
! });
! });
! on({id:"javascript.0.ESPmusic.SpeakerLR"/ESPmusic.SpeakerLR/, change: 'any'}, function (obj) { //Регулировка громкости канала SpeakerLR
! var SpeakerLR = 192 + obj.newState.val; // подписываемся на изменения переменной ESPmusic.SpeakerLR (значение может быть от 0 - 30)
! var hexString = SpeakerLR.toString(16); //переводим из dec в hex
! request("http://"+IP+"/i2cgo?adr=44&set="+hexString, function(error, response, body){ //отправляем на ESP
! if(error) {
! log(error);
! }
! });
! });
! on({id:"javascript.0.ESPmusic.SpeakerRR"/ESPmusic.SpeakerRR/, change: 'any'}, function (obj) { //Регулировка громкости канала SpeakerRR
! var SpeakerRR = 224 + obj.newState.val; // подписываемся на изменения переменной ESPmusic.SpeakerRR (значение может быть от 0 - 30)
! var hexString = SpeakerRR.toString(16); //переводим из dec в hex
! request("http://"+IP+"/i2cgo?adr=44&set="+hexString, function(error, response, body){ //отправляем на ESP
! if(error) {
! log(error);
! }
! });
! });
Экспортированная страница.
! {
! "settings": {
! "style": {
! "background_class": ""
! },
! "theme": "vader",
! "sizex": "",
! "sizey": "",
! "gridSize": ""
! },
! "widgets": {
! "e00001": {
! "tpl": "tplJquiSlider",
! "data": {
! "oid": "javascript.0.ESPmusic.Volume",
! "visibility-cond": "==",
! "visibility-val": 1,
! "gestures-offsetX": 0,
! "gestures-offsetY": 0,
! "min": "0",
! "max": "63",
! "step": "1",
! "inverted": true
! },
! "style": {
! "left": "346px",
! "top": "116px"
! },
! "widgetSet": "jqui"
! },
! "e00002": {
! "tpl": "tplJquiRadio",
! "data": {
! "oid": "javascript.0.ESPmusic.Power",
! "visibility-cond": "==",
! "visibility-val": 1,
! "off_text": "Выкл",
! "on_text": "Вкл",
! "padding": "5",
! "gestures-offsetX": 0,
! "gestures-offsetY": 0
! },
! "style": {
! "left": "74px",
! "top": "135px"
! },
! "widgetSet": "jqui"
! },
! "e00003": {
! "tpl": "tplJquiRadioList",
! "data": {
! "oid": "javascript.0.ESPmusic.Switch",
! "visibility-cond": "==",
! "visibility-val": 1,
! "values": "0;1;2",
! "texts": "1;2;3",
! "gestures-offsetX": 0,
! "gestures-offsetY": 0
! },
! "style": {
! "left": "74px",
! "top": "360px"
! },
! "widgetSet": "jqui"
! },
! "e00004": {
! "tpl": "tplJquiSliderVertical",
! "data": {
! "oid": "javascript.0.ESPmusic.Bass",
! "visibility-cond": "==",
! "visibility-val": 1,
! "gestures-offsetX": 0,
! "gestures-offsetY": 0,
! "min": "0",
! "max": "15",
! "step": "1",
! "inverted": false
! },
! "style": {
! "left": "584px",
! "top": "198px"
! },
! "widgetSet": "jqui"
! },
! "e00005": {
! "tpl": "tplJquiSliderVertical",
! "data": {
! "oid": "javascript.0.ESPmusic.Treble",
! "visibility-cond": "==",
! "visibility-val": 1,
! "gestures-offsetX": 0,
! "gestures-offsetY": 0,
! "min": "0",
! "max": "15",
! "step": "1",
! "inverted": false
! },
! "style": {
! "left": "647px",
! "top": "198px",
! "width": "23px",
! "height": "160px"
! },
! "widgetSet": "jqui"
! },
! "e00006": {
! "tpl": "tplJquiSliderVertical",
! "data": {
! "oid": "javascript.0.ESPmusic.SpeakerLF",
! "visibility-cond": "==",
! "visibility-val": 1,
! "gestures-offsetX": 0,
! "gestures-offsetY": 0,
! "min": "0",
! "max": "30",
! "step": "1",
! "inverted": true
! },
! "style": {
! "left": "342px",
! "top": "198px",
! "width": "23px",
! "height": "160px"
! },
! "widgetSet": "jqui"
! },
! "e00007": {
! "tpl": "tplJquiSliderVertical",
! "data": {
! "oid": "javascript.0.ESPmusic.SpeakerRF",
! "visibility-cond": "==",
! "visibility-val": 1,
! "gestures-offsetX": 0,
! "gestures-offsetY": 0,
! "min": "0",
! "max": "30",
! "step": "1",
! "inverted": true
! },
! "style": {
! "left": "393px",
! "top": "198px",
! "width": "23px",
! "height": "160px"
! },
! "widgetSet": "jqui"
! },
! "e00008": {
! "tpl": "tplJquiSliderVertical",
! "data": {
! "oid": "javascript.0.ESPmusic.SpeakerLR",
! "visibility-cond": "==",
! "visibility-val": 1,
! "gestures-offsetX": 0,
! "gestures-offsetY": 0,
! "min": "0",
! "max": "30",
! "step": "1",
! "inverted": true
! },
! "style": {
! "left": "444px",
! "top": "198px",
! "width": "23px",
! "height": "160px"
! },
! "widgetSet": "jqui"
! },
! "e00009": {
! "tpl": "tplJquiSliderVertical",
! "data": {
! "oid": "javascript.0.ESPmusic.SpeakerRR",
! "visibility-cond": "==",
! "visibility-val": 1,
! "gestures-offsetX": 0,
! "gestures-offsetY": 0,
! "min": "0",
! "max": "30",
! "step": "1",
! "inverted": true
! },
! "style": {
! "left": "495px",
! "top": "198px",
! "width": "23px",
! "height": "160px"
! },
! "widgetSet": "jqui"
! },
! "e00010": {
! "tpl": "tplJquiRadio",
! "data": {
! "oid": "javascript.0.ESPmusic.Loudness",
! "visibility-cond": "==",
! "visibility-val": 1,
! "off_text": "Выкл",
! "on_text": "Вкл",
! "padding": "5",
! "gestures-offsetX": 0,
! "gestures-offsetY": 0
! },
! "style": {
! "left": "74px",
! "top": "251px"
! },
! "widgetSet": "jqui"
! },
! "e00011": {
! "tpl": "tplJquiRadioList",
! "data": {
! "oid": "javascript.0.ESPmusic.dB",
! "visibility-cond": "==",
! "visibility-val": 1,
! "values": "0;1;2;3",
! "texts": "+11.25dB; +7.5dB; +3.75dB; 0dB",
! "gestures-offsetX": 0,
! "gestures-offsetY": 0
! },
! "style": {
! "left": "304px",
! "top": "410px"
! },
! "widgetSet": "jqui"
! },
! "e00012": {
! "tpl": "tplValueString",
! "data": {
! "oid": "nothing_selected",
! "visibility-cond": "==",
! "visibility-val": 1,
! "gestures-offsetX": 0,
! "gestures-offsetY": 0,
! "test_html": "",
! "html_prepend": "Питание"
! },
! "style": {
! "left": "100px",
! "top": "188px",
! "width": "109px",
! "height": "33px",
! "color": "#000000",
! "font-weight": "bold",
! "font-size": "x-large"
! },
! "widgetSet": "basic"
! },
! "e00013": {
! "tpl": "tplValueString",
! "data": {
! "oid": "nothing_selected",
! "visibility-cond": "==",
! "visibility-val": 1,
! "gestures-offsetX": 0,
! "gestures-offsetY": 0,
! "test_html": "",
! "html_prepend": "Loudness"
! },
! "style": {
! "left": "100px",
! "top": "303px",
! "width": "140px",
! "height": "32px",
! "color": "#000000",
! "font-weight": "bold",
! "font-size": "x-large"
! },
! "widgetSet": "basic"
! },
! "e00014": {
! "tpl": "tplValueString",
! "data": {
! "oid": "nothing_selected",
! "visibility-cond": "==",
! "visibility-val": 1,
! "gestures-offsetX": 0,
! "gestures-offsetY": 0,
! "test_html": "",
! "html_prepend": "Switch"
! },
! "style": {
! "left": "104px",
! "top": "409px",
! "width": "140px",
! "height": "32px",
! "color": "#000000",
! "font-weight": "bold",
! "font-size": "x-large"
! },
! "widgetSet": "basic"
! },
! "e00015": {
! "tpl": "tplValueString",
! "data": {
! "oid": "nothing_selected",
! "visibility-cond": "==",
! "visibility-val": 1,
! "gestures-offsetX": 0,
! "gestures-offsetY": 0,
! "test_html": "",
! "html_prepend": "Громкость"
! },
! "style": {
! "left": "371px",
! "top": "144px",
! "width": "137px",
! "height": "33px",
! "color": "#000000",
! "font-weight": "bold",
! "font-size": "x-large"
! },
! "widgetSet": "basic"
! },
! "e00016": {
! "tpl": "tplValueString",
! "data": {
! "oid": "nothing_selected",
! "visibility-cond": "==",
! "visibility-val": 1,
! "gestures-offsetX": 0,
! "gestures-offsetY": 0,
! "test_html": "",
! "html_prepend": "НЧ"
! },
! "style": {
! "left": "582px",
! "top": "372px",
! "width": "41px",
! "height": "33px",
! "color": "#000000",
! "font-weight": "bold",
! "font-size": "x-large"
! },
! "widgetSet": "basic"
! },
! "e00017": {
! "tpl": "tplValueString",
! "data": {
! "oid": "nothing_selected",
! "visibility-cond": "==",
! "visibility-val": 1,
! "gestures-offsetX": 0,
! "gestures-offsetY": 0,
! "test_html": "",
! "html_prepend": "ВЧ"
! },
! "style": {
! "left": "640px",
! "top": "372px",
! "width": "41px",
! "height": "33px",
! "color": "#000000",
! "font-weight": "bold",
! "font-size": "x-large"
! },
! "widgetSet": "basic"
! },
! "e00018": {
! "tpl": "tplValueString",
! "data": {
! "oid": "nothing_selected",
! "visibility-cond": "==",
! "visibility-val": 1,
! "gestures-offsetX": 0,
! "gestures-offsetY": 0,
! "test_html": "",
! "html_prepend": "RF"
! },
! "style": {
! "left": "392px",
! "top": "372px",
! "width": "41px",
! "height": "33px",
! "color": "#000000",
! "font-weight": "bold",
! "font-size": "x-large"
! },
! "widgetSet": "basic"
! },
! "e00019": {
! "tpl": "tplValueString",
! "data": {
! "oid": "nothing_selected",
! "visibility-cond": "==",
! "visibility-val": 1,
! "gestures-offsetX": 0,
! "gestures-offsetY": 0,
! "test_html": "",
! "html_prepend": "LF"
! },
! "style": {
! "left": "340px",
! "top": "372px",
! "width": "41px",
! "height": "33px",
! "color": "#000000",
! "font-weight": "bold",
! "font-size": "x-large"
! },
! "widgetSet": "basic"
! },
! "e00020": {
! "tpl": "tplValueString",
! "data": {
! "oid": "nothing_selected",
! "visibility-cond": "==",
! "visibility-val": 1,
! "gestures-offsetX": 0,
! "gestures-offsetY": 0,
! "test_html": "",
! "html_prepend": "LR"
! },
! "style": {
! "left": "444px",
! "top": "372px",
! "width": "41px",
! "height": "33px",
! "color": "#000000",
! "font-weight": "bold",
! "font-size": "x-large"
! },
! "widgetSet": "basic"
! },
! "e00021": {
! "tpl": "tplValueString",
! "data": {
! "oid": "nothing_selected",
! "visibility-cond": "==",
! "visibility-val": 1,
! "gestures-offsetX": 0,
! "gestures-offsetY": 0,
! "test_html": "",
! "html_prepend": "RR"
! },
! "style": {
! "left": "494px",
! "top": "372px",
! "width": "41px",
! "height": "33px",
! "color": "#000000",
! "font-weight": "bold",
! "font-size": "x-large"
! },
! "widgetSet": "basic"
! }
! },
! "name": "Тест",
! "rerender": false,
! "filterList": []
! }Работает все довольно быстро и не плохо, на веб морду вывел кнопку включения, выбор аудио входа, переключатель доп. усиления ползунок громкости, тембра, и раздельная регулировки каждого канала.
Из минусов только то, что радиоприемник аналоговый (и нужно городить синтезатор частоты для его управления), ну или под искать тюнер с цифровым управление. Хотя тут уже другой вопрос: нужен ли он!?
Вот не большое видео работы веб морды.
П.Ы. динамик подключен только один.
Hey! Du scheinst an dieser Unterhaltung interessiert zu sein, hast aber noch kein Konto.
Hast du es satt, bei jedem Besuch durch die gleichen Beiträge zu scrollen? Wenn du dich für ein Konto anmeldest, kommst du immer genau dorthin zurück, wo du zuvor warst, und kannst dich über neue Antworten benachrichtigen lassen (entweder per E-Mail oder Push-Benachrichtigung). Du kannst auch Lesezeichen speichern und Beiträge positiv bewerten, um anderen Community-Mitgliedern deine Wertschätzung zu zeigen.
Mit deinem Input könnte dieser Beitrag noch besser werden 💗
Registrieren Anmelden