// // Menue_Hue_Color // // Steuern einer Hue-Color artigen Lampe. // var stateval var user; var command; var Lampenname; var Lampenpfad; var bri; var hue; var sat; var transitiontime; function ShowKeyboard() { sendTo('telegram.0', { user: (Empfaenger), parse_mode: 'markdown', text: '*< '+Lampenname+' >*', reply_markup: { inline_keyboard: [ [ { text: ' H ['+Fstr( bri,3,1 )+"]" , callback_data: '#H' }, { text: ' -50 ' , callback_data: '#H-50' }, { text: ' -10 ' , callback_data: '#H-10' }, { text: ' +10 ' , callback_data: '#H+10' }, { text: ' +50 ' , callback_data: '#H+50' } ], [ { text: ' F ['+Fstr( hue,3,1 )+"]" , callback_data: '#F' }, { text: ' -50 ' , callback_data: '#F-50' }, { text: ' -10 ' , callback_data: '#F-10' }, { text: ' +10 ' , callback_data: '#F+10' }, { text: ' +50 ' , callback_data: '#F+50' } ], [ { text: ' S ['+Fstr( sat,3,1 )+"]" , callback_data: '#S' }, { text: ' -50 ' , callback_data: '#S-50' }, { text: ' -10 ' , callback_data: '#S-10' }, { text: ' +10 ' , callback_data: '#S+10' }, { text: ' +50 ' , callback_data: '#S+50' } ], [ { text: ' T ['+Fstr( trans,5,1 )+"]" , callback_data: '#T' }, { text: ' -50 ' , callback_data: '#T-50' }, { text: ' -10 ' , callback_data: '#T-10' }, { text: ' +10 ' , callback_data: '#T+10' }, { text: ' +50 ' , callback_data: '#T+50' } ], [ { text: ' Aus ' , callback_data: '#Aus' }, { text: ' zurück ' , callback_data: '#Ende' } ], ], resize_keyboard: true, one_time_keyboard: true, disable_notification: true, remove_Keyboard: true } // replay markup },); // sendTo } // Pfad zum Namen finden. Lampenpfad = getIdByName( Lampenname ); console.log( '##### Menu Hue Color: Lampenname '+Lampenname+'' ); console.log( '##### Menu Hue Color: Lampenpfad '+Lampenpfad+'' ); if ( Lampenpfad == undefined ) { // Meldung im Log console.warn( '### Menu Hue Color: Lampenname nicht gefunden '+Lampenname+'' ); // Meldung via Telegram sendTo('telegram.0', { user: (Empfaenger), text: '*Fehler:* Name unbekannt\n'+Lampenname+'', parse_mode: 'markdown' }); } else { // Einschalten damit man steuern kann. setState( Lampenpfad+'.on', true ); // Startwerte console.log( '##### Menu Hue Color: startwerte' ); var bri = getState( Lampenpfad+'.bri' ).val; var hue = getState( Lampenpfad+'.hue' ).val; var sat = getState( Lampenpfad+'.sat' ).val; var trans = getState( Lampenpfad+'.transitiontime' ).val; ShowKeyboard() // Eingabe verarbeiten on({id: 'telegram.0.communicate.request', change: 'any'}, function (obj) { var stateval = getState('telegram.0.communicate.request').val; // save Statevalue received from your Bot var user = stateval.substring(1,stateval.indexOf("]")); // extract user from the message var command = stateval.substring(stateval.indexOf("]")+1,stateval.length); // extract command/text from the message switch ( command ) { case '#Aus': setState( Lampenpfad+'.on', false ); return; break; case '#Ende': return; break; case '#H': bri = Math.floor(Math.random()*255); break; case '#H+50': bri = bri + 50; break; case '#H+10': bri = bri + 10; break; case '#H-10': bri = bri - 10 ;break; case '#H-50': bri = bri - 50 ;break; case '#F': hue = Math.floor(Math.random()*360); break; case '#F+50': hue = hue + 50; break; case '#F+10': hue = hue + 10; break; case '#F-10': hue = hue - 10 ;break; case '#F-50': hue = hue - 50 ;break; case '#S': sat = Math.floor(Math.random()*255); break; case '#S+50': sat = sat + 50; break; case '#S+10': sat = sat + 10; break; case '#S-10': sat = sat - 10 ;break; case '#S-50': sat = sat - 50 ;break; case '#T': trans = Math.floor(Math.random()*36000); break; case '#T+50': trans = trans + 50; break; case '#T+10': trans = trans + 10; break; case '#T-10': trans = trans - 10 ;break; case '#T-50': trans = trans - 50 ;break; default: console.warn( '### Menu Hue_Color: unbekannter Parameter '+command+'' ) ; break; }; // switch // Kurzzeitig auf Null damit man Änderungen direkt sieht setState( Lampenpfad+'.transitiontime', 0 ); // Werte begrenzen bri = Math.min( Math.max( bri, 0), 254); hue = Math.min( Math.max( hue, 0), 360); sat = Math.min( Math.max( sat, 0), 254); trans = Math.min( Math.max( trans, 0), 36000); // Werte schreiben setState( Lampenpfad+'.bri', bri ); setState( Lampenpfad+'.hue', hue ); setState( Lampenpfad+'.sat', sat ); // setState( Lampenpfad+'.transitiontime', trans ); // ShowKeyboard() }); // on } // if Lampenpfad