Sharp Aquos TV Driver

Yes. Did it change the channel??? anything???

From the data you posted (thank you), It looks like the TV does not report when it is actually working as a TV... The closest it comes is reporting the channel it is on with the channel select queries... Rather strange, but I can work with it...

No it didn't change the channel or do anything.

A "toggleMute" function would be great....that would free me a button on my Dashboard this will all be feeding!

I was actually asking about the DA2P0702 command... But we cross posted, and your post gave me the info I needed... But it will take a bit of time to code the channel change function...

In the meantime, here is the updates for the mute/unmute/toggleMute functions.

I rewrote the mute/unmute functions so that the will use the RCKY31 command for setting mute/unmute IF you turn on the new "Use alternate MUTE method"...

Please test and report on the mute functions... While I prepare yet another new version 8-}

/**
 *  Sharp Aquos TV for Hubitat
 *  	Works on Sharp TVs
 *  	Very basic asynchronous, non-polling control of most Sharp TVs made since 2010
 *
 *  	VERY losely based on: https://github.com/halkeye/sharp.aquos.devicetype.groovy
 *      Modified for Hubitat by CybrMage
 */

def version() {return "v0.24"}

import groovy.transform.Field
@Field static java.util.concurrent.Semaphore mutex = new java.util.concurrent.Semaphore(1)
@Field static volatile String currentHandler = "parse"
@Field static volatile Integer SequenceNumber = 0
@Field static volatile Integer ParseSequence = 0
@Field static volatile Long LastMutex = 0

preferences {
	input("destIp", "text", title: "IP", description: "The IP Address of the Sharp TV",required:true)
	input("destPort", "number", title: "Port", description: "The IP port of the Sharp TV", required:true)
	input("login", "text", title: "Login", description: "The login username")
	input("password", "password", title: "Password", description: "The login password")

	input ("logDebug", "bool", title: "Enable debug logging", defaultValue: true)
	def pollTime = [:]
	pollTime << ["1" : "Retry every minute"]
	pollTime << ["5" : "Retry every 5 minutes"]
	pollTime << ["10" : "Retry every 10 minutes"]
	pollTime << ["15" : "Retry every 15 minutes"]
	pollTime << ["30" : "Retry every 30 minutes"]
	pollTime << ["60" : "Retry every 1 hour"]
	input ("pollRate", "enum", title: "Device poll rate", options: pollTime, defaultValue: "5")
	input("altMUTE", "bool", title: "Use alternate MUTE method", description: "(enable if MUTE/UNMUTE do not work)", defaultValue: false)
}

metadata {
	definition (name: "Sharp Aquos TV", namespace: "SharpAquos", author: "various") {
		capability "Actuator"
		capability "AudioVolume"
		capability "TV"
		capability "Initialize"
		capability "Switch"
		capability "Refresh"

		attribute "input", "string"
		attribute "inputName", "string"

		command "on"
		command "off"
		
		command "toggleMute"
		command "mute"
		command "unmute"
		
		command "setViewMode", [[name: "View Mode ID*", type: "NUMBER"]]
		command "setSurroundMode", [[name: "Surround Mode ID*", type: "NUMBER"]]
		command "setVideoMode", [[name: "AV Mode ID*", type: "NUMBER"]]
		
		command "inputNext"
		command "inputSelect", [[name: "Input ID*", type: "NUMBER"]]
		command "inputRemoteCommand", [[name: "Remote Control Command ID*", type: "NUMBER"]]

		command "testParse", [[name: "Handler*", type:"STRING"],[name: "Data*", type: "STRING"]]
		command "testCommand", [[name: "CMD*", type:"STRING"],[name: "PARAM*", type: "STRING"]]
		
	}
}

def refresh() {
	getDeviceState()
}

def initialize() {
	log_debug "initialize - Driver " + version()
	unschedule()
	mutex.release()
	closeSocket()
	pauseExecution(500)
	
	if ((destIp == null)||(destIp == "")) {
		log_debug "Initialize error. TV IP Address not set"
		return
	}
	if ((destPort == null)||(destPort == "")) {
		log_debug "request error. TV IP Port not set"
		return
	}
	
	pollRate = pollRate ?: "5"
	
	log_debug "initialize - IP: ${destIp}  PORT: ${destPort}  USER: ${login}  PASS: ${password}  Poll Rate: ${pollRate}"
	currentHandler = "parse"
	
	// set the deviceNetworkIdentifier. Ideally, this should be the MAC address of the device
	// If the MAC can not be determined, use the IP address
	def TVmac = null
	def macTries = 0
	while ((macTries < 5) && (TVmac == null)) {
		macTries++
		TVmac = getMACFromIP(destIp)
		if (TVmac == null) {
			log_debug "initialize - TV mac address not yet available. Retry in 1 second."
			pauseExecution(1000)
		}
	}
	if (TVmac != null) {
		device.deviceNetworkId = "$TVmac"
	} else {
		device.deviceNetworkId = convertIPtoHex(destIp)
	}
	log_debug "initialize - Set DNI = [${device.deviceNetworkId}]"
	
	if (openSocket() == false) {
		log_debug "initialize - Could not connect to TV. Retry pending"
		runIn(60,"initialize")
		return
	}
	
	switch(pollRate) {
		case "1" :
			runEvery1Minute("getDeviceState")
			log_debug("initialize - Poll Rate to every 1 minute")
			break
		case "5" :
			runEvery5Minutes("getDeviceState")
			log_debug("initialize - Poll Rate set to every 5 minutes")
			break
		case "10" :
			runEvery10Minutes("getDeviceState")
			log_debug("initialize - Poll Rate set to every 10 minutes")
			break
		case "15" :
			runEvery15Minutes("getDeviceState")
			log_debug("initialize - Poll Rate set to every 15 minutes")
			break
		case "30" :
			runEvery30Minutes("getDeviceState")
			log_debug("initialize - Poll Rate set to every 30 minutes")
			break
		case "60" :
			runEvery1hour("getDeviceState")
			log_debug("initialize - Poll Rate set to every 1 hour")
			break
	}
	
	request("RSPW","2")
	getDeviceState()
	
}

def closeSocket() {
	log_debug("closeSocket: Socket close requested.")
	state.socketState = "closing"
	interfaces.rawSocket.close()
	state.socketState = "closed"
	pauseExecution(1000)
	mutex.release()
	log_debug("closeSocket: Socket closed.")
}

def openSocket() {
	if (state.socketState == "open") {
		log_debug("openSocket: Socket already opened.")
		return true
	}
	log_debug("openSocket: Connecting to ${destIp}:${destPort}")
	try {
		interfaces.rawSocket.connect(destIp,destPort as int, readDelay: 50)
		pauseExecution(1000)
		state.socketState = "open"
		log_debug("openSocket: Socket opened.")
		return true
	}
	catch(e) {
		log_debug("openSocket: exception = [${e}]")
		state.socketState == "closed"
		return false
	}
}

def updated() {
	log_debug "updated - IP: ${destIp}  PORT: ${destPort}  USER: ${login}  PASS: ${password}"
	initialize()
}

def installed() {
	log_debug "installed"
}

// global constants
def getvalidViewModes() {
	return [
		1: "Side Bar", 
		2: "S.Stretch",
		3: "Zoom",
		4: "Stretch",
		5: "Normal [PC]",
		6: "Zoom [PC]",
		7: "Stretch [PC]",
		8: "Dot by Dot",
		9: "Full Screen",
		10: "Auto",
		11: "Original"
	]
}

def getvalidSurroundModes() {
	return [
		1: "Normal (On)", 
		2: "Off", 
		4: "3D Hall", 
		5: "3D Movie", 
		6: "3D Standard", 
		7: "3D Stadium"
	]
}

def getvalidVideoModes() {
	return [
		1: "STANDARD",
		2: "MOVIE",
		3: "GAME",
		4: "USER",
		5: "DYNAMIC (Fixed)",
		6: "DYNAMIC",
		7: "PC",
		8: "x.v.Color",
		14: "STANDARD (3D)",
		15: "MOVIE (3D)",
		16: "GAME (3D)",
		100: "AUTO"
	]
}

// NOTE: valid inputs based on LE84x/LE74x models.
//  They may need to be modified to reflect the inputs on other models
def getvalidInputs() {
	return [
		0: "TV",
		1: "HDMI IN 1",
		2: "HDMI IN 2",
		3: "HDMI IN 3",
		4: "HDMI IN 4",
		5: "COMPONENT",
		6: "VIDEO 1",
		7: "VIDEO 2",
		8: "PC IN"
	]
}

def getvalidRemoteCommands() {
	return [
		0: "0",
		1: "1",
		2: "2",
		3: "3",
		4: "4",
		5: "5",
		6: "6",
		7: "7",
		8: "8",
		9: "9",
		10: ".",
		11: "ENT",
		12: "POWER",
		13: "DISPLAY", 
		14: "POWER (SOURCE)",
		15: "REWIND", 
		16: "PLAY", 
		17: "FAST FORWARD", 
		18: "PAUSE", 
		19: "SKIP BACK", 
		20: "STOP", 
		21: "SKIP FORWARD", 
		22: "REC", 
		23: "OPTION", 
		24: "SLEEP", 
		27: "CC", 
		28: "AV MODE", 
		29: "VIEW MODE", 
		30: "FLASHBACK", 
		31: "MUTE", 
		32: "VOL -", 
		33: "VOL +", 
		34: "CH Up", 
		35: "CH Down", 
		36: "INPUT", 
		38: "MENU", 
		39: "SmartCentral", 
		40: "ENTER", 
		41: "UP", 
		42: "DOWN", 
		43: "LEFT", 
		44: "RIGHT",  
		45: "RETURN", 
		46: "EXIT", 
		47: "FAVORITE CH", 
		48: "3D Surround", 
		49: "AUDIO", 
		50: "A (red)", 
		51: "B (green)", 
		52: "C (blue)", 
		53: "D (yellow)", 
		54: "FREEZE", 
		55: "FAV APP 1", 
		56: "FAV APP 2", 
		57: "FAV APP 3",
		58: "3D", 
		59: "NETFLIX",
		60: "AAL",
		61: "MANUAL"
	]
}

//  This is the primary parser for the device responses
def parse(String rawData) {
	def PID = ParseSequence++
	log_debug("parse ${PID} - RAW DATA [${rawData}]  HANDLER [${currentHandler}]")
	if ((rawData == null) || (rawData == "")) {
		log_debug "parse ${PID} - command response 'NULL'"
		// release the mutex on error
		releaseMutex()
		return
	}
	if (rawData == "4552520D") {
		// received 'ERR' response...
		log_debug "parse ${PID} - command response [ERR]"
		releaseMutex(PID)
		return
	} else if (rawData == "4F4B0D") {
		// received 'OK' response...
		if (currentHandler == "parse") {
			log_debug "parse ${PID} - command response [OK]"
			releaseMutex(PID)
			return
		} else {
			log_debug "parse ${PID} - command response [OK] - data pending"
			return
		}
	} else if (rawData.take(6) == "4F4B0D") {
		while (rawData.take(6) == "4F4B0D") {
			rawData = rawData.substring(6)
		}
	}
	log_debug "parse ${PID} - Processing DATA [${rawData}]   HANDLER [${currentHandler}]"
	def resp = new String(hubitat.helper.HexUtils.hexStringToByteArray(rawData))
	if ((resp == null) || (resp == "")) {
		log_debug "parse ${PID} - Could not decode command response [${rawData}]"
		// release the mutex on error
		releaseMutex(PID)
		return
	}
	resp = resp.tokenize("\r")
	if ((resp != null) && (resp[0] != "")) {
		log_debug "parse ${PID} - command response [${resp}] - handler [${currentHandler}]"
		if ((resp != null) && (resp != "") && (resp.size() > 0)) {
			if (currentHandler == "parseVolume") parseVolume(resp[0])
			if (currentHandler == "parseMute") parseMute(resp[0])
			if (currentHandler == "parsePower") parsePower(resp[0])
			if (currentHandler == "parseInput") parseInput(resp[0])
			if (currentHandler == "parseViewMode") parseViewMode(resp[0])
			if (currentHandler == "parseSurroundMode") parseSurroundMode(resp[0])
			if (currentHandler == "parseVideoMode") parseVideoMode(resp[0])
			if (currentHandler == "parse") {
				log_debug "parse ${PID}- Could not process command response [${resp}]"
			}
		}
	} else {
		log_debug "parse ${PID} - Could not decode command response [${resp}]"
	}
	// release the mutex on completion
	releaseMutex(PID)
}

def parseVolume(resp) {
	log_debug "parseVolume - response '${resp}'"
	def VOLdata = resp.toInteger()
	log_debug "parseVolume - PARSED response VOLUME = '${VOLdata ?: 0}'"
	sendEvent(name: "volume", value: VOLdata ?: 0)
}

def parseMute(resp) {
	log_debug "parseMute - response '${resp}'"
	def MUTEdata = resp.toInteger()
	def val = (MUTEdata == 2) ? "unmuted" : "muted"
	log_debug "parseMute - PARSED response MUTE = '${val}'"
	sendEvent(name: "mute", value: val)
}

def parsePower(resp) {
	log_debug "parsePower - response '${resp}'"
	def POWRdata = resp.toInteger()
	def val = (POWRdata == 1) ? "on" : "off"
	log_debug "parsePower - PARSED response POWER = '${val}'"
	sendEvent(name: "power", value: val)
}

def parseInput(resp) {
	log_debug "parseInput - response '${resp}'"
	val = resp.toInteger()
	if ((val != null) && (validInputs[val] != null)) {
		sendEvent(name: "input", value: val)
		sendEvent(name: "inputName", value: validInputs[val])
		log_debug "parseInput - received inputvalue '${val}' [${validInputs[val]}]"
	}
}

def parseViewMode(resp) {
	log_debug "parseViewMode - response '${resp}'"
	val = resp.toInteger()
	if ((val != null) && (validViewModes[val] != null)) {
		sendEvent(name: "ViewMode", value: val)
		sendEvent(name: "ViewModeName", value: validViewModes[val])
		log_debug "parseViewMode - received inputvalue '${val}' [${validViewModes[val]}]"
	}
}

def parseSurroundMode(resp) {
	log_debug "parseSurround - response '${resp}'"
	val = resp.toInteger()
	if ((val != null) && (validSurroundModes[val] != null)) {
		sendEvent(name: "SurroundMode", value: val)
		sendEvent(name: "SurroundModeName", value: validSurroundModes[val])
		log_debug "parseSurroundMode - received inputvalue '${val}' [${validSurroundModes[val]}]"
	}
}

def parseVideoMode(resp) {
	log_debug "parseVideoMode - response '${resp}'"
	val = resp.toInteger()
	if ((val != null) && (validVideoModes[val] != null)) {
		sendEvent(name: "VideoMode", value: val)
		sendEvent(name: "VideoModeName", value: validVideoModes[val])
		log_debug "parseVideoMode - received inputvalue '${val}' [${validSurroundModes[val]}]"
	}
}

def getDeviceState() {
	log_debug("getDeviceState() Starting")
	request("POWR","?","parsePower")
	request("MUTE","?","parseMute")
	request("VOLM","?","parseVolume")
	request("IAVD","?","parseInput")
	request("WIDE","?","parseViewMode")
	request("ACSU","?","parseSurroundMode")
	request("AVMD","?","parseVideoMode")
	log_debug("getDeviceState() Completed.")
}

// device commands
def setVolume(val) {
	log_debug("setVolume(${val})")
	if (val < 0) { val = 0 }
	if (val > 60) { val = 60 }
	val = sprintf("%d",val)
	sendEvent(name: "mute", value: "unmuted")
	sendEvent(name: "volume", value: val)
	request("VOLM",val)
}

def toggleMute() {
	log_debug("toggleMute()")
	request("RCKY","31")
	pauseExecution(250)
	request("MUTE","?","parseMute")
	log_debug("toggleMute() - completed")
}

def mute() {
	def currentMute = device.latestValue("mute")
	log_debug("mute()     Currently: [${currentMute}]  altMUTE [${altMUTE}]")
	if (currentMute == "muted") {
		log_debug("mute() - Already muted - command complete")
		return
	}
	if (altMUTE != true) {
		request("MUTE","1")
	} else {
		request("RCKY","31")
	}
	pauseExecution(250)
	request("MUTE","?","parseMute")
	log_debug("mute() - completed")
}

def unmute() {
	def currentMute = device.latestValue("mute")
	log_debug("unmute()   Currently: [${currentMute}]  altMUTE [${altMUTE}]")
	if (currentMute == "unmuted") {
		log_debug("unmute() - Already unmuted - command complete")
		return
	}
	if (altMUTE != true) {
		request("MUTE","2")
	} else {
		request("RCKY","31")
	}
	pauseExecution(250)
	request("MUTE","?","parseMute")
	log_debug("mute() - completed")
}

def volumeUp() {
	log_debug("volumeUp()")
	request("RCKY","33")
	request("VOLM","?","parseVolume")
}

def volumeDown() {
	log_debug("volumeDown()")
	request("RCKY","32")
	request("VOLM","?","parseVolume")
}

def inputNext() {
	log_debug("inputNext()")
	def current = device.currentValue("input")
	def selectedInputs = ["1","2","3","4","5","6","1"]
	def semaphore = 0

	for(selectedInput in selectedInputs) {
		if(semaphore == 1) {
		return inputSelect(selectedInput)
    	}
		if(current == selectedInput) {
		semaphore = 1
    	}
	}

	return inputSelect(selectedInputs[0])
}


def inputRemoteCommand(cmd) {
	log_debug("inputRemoteCommand(${cmd})")
	def cmdInt = cmd.toInteger()
	if ((cmdInt == null) || (validRemoteCommands[cmdInt] == null)) {
		log_debug("inputRemoteCommand - invalid command (${cmd})")
	}
	log_debug("executing inputRemoteCommand('${validRemoteCommands[cmdInt]}')")
	request("RCKY",cmdInt.toString())
}

def inputSelect(channel) {
	log_debug("inputSelect(${channel})")
	sendEvent(name: "input", value: channel)
	if ((channel == 0) || (channel == "0")) {
		// 0 = TV - not handled by IAVD command
		request("ITVD","0", "parseInput")
	} else {
		request("IAVD",channel.toString(), "parseInput")
	}
}

def on() {
	log_debug("Turn on TV")
	request("POWR","1")
	request("POWR","?", "parsePower")
}

def off() {
	log_debug("Turn off TV")
	request("POWR","0")
	request("POWR","?", "parsePower")
}

def channelUp() {
	log_debug("Channel Up")
	request("CHUP","0")
}

def channelDown() {
	log_debug("Channel Down")
	request("CHDW","0")
}

def setViewMode(Mode) {
	log_debug("setViewMode(${Mode})")
	if (validViewModes[Mode as int] == null) {
		log_debug("setViewMode(${Mode}) - Invalid View mode ID")
		return
	}
	log_debug("setViewMode - Setting view mode (${Mode} = ${validViewModes[Mode as int]}]")
	request("WIDE",Mode.toString(),"parseViewMode")
}

def setSurroundMode(Mode) {
	log_debug("setSurroundMode(${Mode})")
	if (validSurroundModes[Mode as int] == null) {
		log_debug("setSurroundMode(${Mode}) - Invalid Surround mode ID")
		return
	}
	log_debug("setSurroundMode - Setting view mode (${Mode} = ${validSurroundModes[Mode as int]}]")
	request("ACSU",Mode.toString(),"parseSurroundMode")
}

def setVideoMode(Mode) {
	log_debug("setVideoMode(${Mode})")
	if (validVideoModes[Mode as int] == null) {
		log_debug("setVideoMode(${Mode}) - Invalid Video mode ID")
		return
	}
	log_debug("setVideoMode - Setting video mode (${Mode} = ${validVideoModes[Mode as int]}]")
	request("AVMD",Mode.toString(),"parseVideoMode")
}


// support functions

def testParse(String handler, String Response) {
	log_debug "testParse - Handler '${handler}' [${Response}]"
	currentHandler = handler
	parse(Response)
}

def testCommand(String CMD, String PARAMS) {
	log_debug "rawCommand - CMD [${CMD}] PARAMS [${PARAMS}]"
	request(CMD,PARAMS)

}

def getMutex(Integer PId = null) {
	def MaxMutexLock = 60
	def permitTries = 0
	def permit = false
	def PID = (PId == null) ? "?"+(SequenceNumber-1).toString()+"?" : PId
	if ((state.socketState == "closing") || (state.socketState == "closed")) { 
		log_debug("getMutex ${PID} - Failed to acquired mutex permit - socket closed")
		return false
	}
	while ((permitTries < MaxMutexLock) && (permit == false)) {
		permitTries++
		permit = mutex.tryAcquire()
		if (permit == false) {
			if (permitTries == 1) { 
				log_debug("getMutex ${PID} - mutex permit not yet available. Waiting up to 60 seconds.")
				def MutexLag = now() - LastMutex
				if (MutexLag > (MaxMutexLock * 2)) {
					log_debug("getMutex ${PID} - Detected stale mutex - forcing mutex release.")
					mutex.release()
				}
			}
			pauseExecution(1000)
		}
	}
	if (permit) {
		LastMutex = now()
		log_debug("getMutex ${PID} - Acquired mutex permit")
	} else {
		log_debug("getMutex ${PID} - Failed to acquired mutex permit")
	}
	return permit
}

//def releaseMutex(Integer PId = null) {
//	def PID = (PId == null) ? "?"+(SequenceNumber-1).toString()+"?" : PId
//	log_debug("releaseMutex ${PID} - Released mutex permit")
//	mutex.release()
//}

def releaseMutex(PId = null) {
	def PID = (PId == null) ? "?"+(SequenceNumber-1).toString()+"?" : PId
	log_debug("releaseMutex ${PID} - Released mutex permit")
	mutex.release()
}

def request(String CMD, String Params , String callbackHandler = "parse") {
	// block the thread if the mutex is locked
//	def CR = "\r\n"  // required for emulator
	def CR = "\r"    // required for actual TV
	def PID = SequenceNumber++
	if (getMutex(PID) == false) {
		log_debug("request ${PID} - Socket [${state.socketState}]  CMD [${CMD}]  Params [${Params}]  Handler [${callbackHandler}]")
		log_debug("request ${PID} - ERROR. Unable to acquire mutex permit.")
		return
	}
	log_debug("request ${PID} - Socket [${state.socketState}]  CMD [${CMD}]  Params [${Params}]  Handler [${callbackHandler}]")
	if ((state.socketState == "closed") || (state.socketState == "closing")) {
		log_debug("request ${PID} - error. TV connection is closed.")
		// release the mutex on error
		releaseMutex()
		if (openSocket() == false) {
			log_debug("request ${PID} - ERROR. Unable to reconnect to TV.")
			return
		}
	}

	if (destIp == null) {
		log_debug("request ${PID} - ERROR. TV IP Address not set")
		// release the mutex on error
		releaseMutex(PID)
	}
	def Credentials = ""
	if (destPort == null) {
		log_debug("request ${PID} - ERROR. TV IP Port not set")
		// release the mutex on error
		releaseMutex(PID)
		return
	}
	if (login != null) {
		if ((password == null) || (password == "")) {
			log_debug("request ${PID} - ERROR. TV login username is set, so login password must also be set")
			// release the mutex on error
			releaseMutex(PID)
			return
		}
		Credentials = login + "\r" + password + "\r"
	}

	CMD = CMD + "    "
	Params = Params + "    "
	def Command = Credentials + CMD.take(4) + Params.take(4)

	currentHandler = callbackHandler
//	log_debug("request - Trying raw socket...")
	try {
		log_debug("request ${PID} - request = [" + Command + "] to ${destIp}:${destPort}")
		interfaces.rawSocket.sendMessage(Command + CR)
	}
	catch(e) {
		log_debug("request - rawSocket - Caught exception '${e}'")
		// release the mutex on error
		releaseMutex(PID)
		return
	}
	pauseExecution(250)
}

def socketStatus(String message) {
	log_debug("socketStatus - Socket [${state.socketState}]  Message [${message}]")
	// error is implied - release any open mutex
	releaseMutex()
	if (state.socketState == "closed") { return }
	switch(message) {
		case "send error: Broken pipe (Write failed)":
			state.socketState = "closed"
			log_debug("socketStatus - Write Failed - Attempting reconnect")
			openSocket()
			return
			break;
		case "receive error: Stream closed.":
//			if (state.socketState != "closing") {
//				log_debug("socketStatus - Stream Closed - Attempting reconnect")
//				return openSocket()
//			}
			state.socketState = "closed"
			return
			break;
		case "send error: Socket closed":
			state.socketState = "closed"
			log_debug("socketStatus - Socket Closed - Attempting reconnect")
			return openSocket()
			break;
	}
	log_debug("socketStatus - UNHANDLED socket status [${message}]")
}

private log_debug(debugData) {
	log.debug("SharpAquos - " + debugData)
}

private String convertIPtoHex(ipAddress) {
	String hex = ipAddress.tokenize( '.' ).collect {  String.format( '%02X', it.toInteger() ) }.join()
	return hex
}

private String convertPortToHex(port) {
	String hexport = port.toString().format( '%04X', port.toInteger() )
	return hexport
}

You da man.......again, thank you very much for your hard work and expertise!

With the use alternate mute method NOT enabled the mute and unmute buttons do not work but the new toggle mute button work greats.

I enabled the use alternate mute method and the mute button works now but the unmute button still does not work. I had to unmute it with the toggle mute button which sill worked....here are the logs for that.

Summary

dev:8972019-12-11 10:55:38.804 pm debugSharpAquos - toggleMute() - completed

dev:8972019-12-11 10:55:38.640 pm debugSharpAquos - releaseMutex 57 - Released mutex permit

dev:8972019-12-11 10:55:38.637 pm debugSharpAquos - parseMute - PARSED response MUTE = 'unmuted'

dev:8972019-12-11 10:55:38.633 pm debugSharpAquos - parseMute - response '2'

dev:8972019-12-11 10:55:38.629 pm debugSharpAquos - parse 57 - command response [[2]] - handler [parseMute]

dev:8972019-12-11 10:55:38.625 pm debugSharpAquos - parse 57 - Processing DATA [320D] HANDLER [parseMute]

dev:8972019-12-11 10:55:38.620 pm debugSharpAquos - parse 57 - RAW DATA [320D] HANDLER [parseMute]

dev:8972019-12-11 10:55:38.556 pm debugSharpAquos - request 57 - request = [MUTE? ] to 192.168.254.205:10002

dev:8972019-12-11 10:55:38.551 pm debugSharpAquos - request 57 - Socket [open] CMD [MUTE] Params [?] Handler [parseMute]

dev:8972019-12-11 10:55:38.543 pm debugSharpAquos - getMutex 57 - Acquired mutex permit

dev:8972019-12-11 10:55:38.062 pm debugSharpAquos - releaseMutex 56 - Released mutex permit

dev:8972019-12-11 10:55:38.058 pm debugSharpAquos - parse 56 - command response [OK]

dev:8972019-12-11 10:55:38.055 pm debugSharpAquos - parse 56 - RAW DATA [4F4B0D] HANDLER [parse]

dev:8972019-12-11 10:55:38.026 pm debugSharpAquos - request 56 - request = [RCKY31 ] to 192.168.254.205:10002

dev:8972019-12-11 10:55:38.022 pm debugSharpAquos - request 56 - Socket [open] CMD [RCKY] Params [31] Handler [parse]

dev:8972019-12-11 10:55:38.018 pm debugSharpAquos - getMutex 56 - Acquired mutex permit

dev:8972019-12-11 10:55:38.013 pm debugSharpAquos - toggleMute()

dev:8972019-12-11 10:55:31.895 pm debugSharpAquos - unmute() - Already unmuted - command complete

dev:8972019-12-11 10:55:31.890 pm debugSharpAquos - unmute() Currently: [unmuted] altMUTE [true]

dev:8972019-12-11 10:55:28.973 pm debugSharpAquos - mute() - completed

dev:8972019-12-11 10:55:28.776 pm debugSharpAquos - releaseMutex 55 - Released mutex permit

dev:8972019-12-11 10:55:28.772 pm debugSharpAquos - parseMute - PARSED response MUTE = 'unmuted'

dev:8972019-12-11 10:55:28.768 pm debugSharpAquos - parseMute - response '2'

dev:8972019-12-11 10:55:28.762 pm debugSharpAquos - parse 55 - command response [[2]] - handler [parseMute]

dev:8972019-12-11 10:55:28.758 pm debugSharpAquos - parse 55 - Processing DATA [320D] HANDLER [parseMute]

dev:8972019-12-11 10:55:28.753 pm debugSharpAquos - parse 55 - RAW DATA [320D] HANDLER [parseMute]

dev:8972019-12-11 10:55:28.725 pm debugSharpAquos - request 55 - request = [MUTE? ] to 192.168.254.205:10002

dev:8972019-12-11 10:55:28.720 pm debugSharpAquos - request 55 - Socket [open] CMD [MUTE] Params [?] Handler [parseMute]

dev:8972019-12-11 10:55:28.715 pm debugSharpAquos - getMutex 55 - Acquired mutex permit

dev:8972019-12-11 10:55:28.248 pm debugSharpAquos - releaseMutex 54 - Released mutex permit

dev:8972019-12-11 10:55:28.244 pm debugSharpAquos - parse 54 - command response [OK]

dev:8972019-12-11 10:55:28.240 pm debugSharpAquos - parse 54 - RAW DATA [4F4B0D] HANDLER [parse]

dev:8972019-12-11 10:55:28.214 pm debugSharpAquos - request 54 - request = [RCKY31 ] to 192.168.254.205:10002

dev:8972019-12-11 10:55:28.210 pm debugSharpAquos - request 54 - Socket [open] CMD [RCKY] Params [31] Handler [parse]

dev:8972019-12-11 10:55:28.206 pm debugSharpAquos - getMutex 54 - Acquired mutex permit

dev:8972019-12-11 10:55:28.202 pm debugSharpAquos - mute() Currently: [unmuted] altMUTE [true]

Checking the code... I previously had an error with the mute parsing... please click on refresh to correct the TV states recorded by the driver, and test the mute/unmute again.... sorry 'bout that...

With the use alternate mute method enabled, I hit refresh and then the mute button, it muted, and then hit the unmute, nothing happened, I then hit the toggle mute button and it unmuted.
logs.....

Summary

dev:8972019-12-11 11:34:26.872 pm debugSharpAquos - releaseMutex 197 - Released mutex permit

dev:8972019-12-11 11:34:26.868 pm debugSharpAquos - parseMute - PARSED response MUTE = 'unmuted'

dev:8972019-12-11 11:34:26.863 pm debugSharpAquos - parseMute - response '2'

dev:8972019-12-11 11:34:26.859 pm debugSharpAquos - parse 197 - command response [[2]] - handler [parseMute]

dev:8972019-12-11 11:34:26.854 pm debugSharpAquos - parse 197 - Processing DATA [320D] HANDLER [parseMute]

dev:8972019-12-11 11:34:26.849 pm debugSharpAquos - parse 197 - RAW DATA [320D] HANDLER [parseMute]

dev:8972019-12-11 11:34:26.829 pm debugSharpAquos - toggleMute() - completed

dev:8972019-12-11 11:34:26.577 pm debugSharpAquos - request 217 - request = [MUTE? ] to 192.168.254.205:10002

dev:8972019-12-11 11:34:26.574 pm debugSharpAquos - request 217 - Socket [open] CMD [MUTE] Params [?] Handler [parseMute]

dev:8972019-12-11 11:34:26.570 pm debugSharpAquos - getMutex 217 - Acquired mutex permit

dev:8972019-12-11 11:34:26.141 pm debugSharpAquos - releaseMutex 196 - Released mutex permit

dev:8972019-12-11 11:34:26.137 pm debugSharpAquos - parse 196 - command response [OK]

dev:8972019-12-11 11:34:26.133 pm debugSharpAquos - parse 196 - RAW DATA [4F4B0D] HANDLER [parse]

dev:8972019-12-11 11:34:26.069 pm debugSharpAquos - request 216 - request = [RCKY31 ] to 192.168.254.205:10002

dev:8972019-12-11 11:34:26.065 pm debugSharpAquos - request 216 - Socket [open] CMD [RCKY] Params [31] Handler [parse]

dev:8972019-12-11 11:34:26.062 pm debugSharpAquos - getMutex 216 - Acquired mutex permit

dev:8972019-12-11 11:34:26.057 pm debugSharpAquos - toggleMute()

dev:8972019-12-11 11:34:20.135 pm debugSharpAquos - unmute() - Already unmuted - command complete

dev:8972019-12-11 11:34:20.129 pm debugSharpAquos - unmute() Currently: [unmuted] altMUTE [true]

dev:8972019-12-11 11:34:17.995 pm debugSharpAquos - mute() - completed

dev:8972019-12-11 11:34:17.796 pm debugSharpAquos - releaseMutex 195 - Released mutex permit

dev:8972019-12-11 11:34:17.793 pm debugSharpAquos - parseMute - PARSED response MUTE = 'unmuted'

dev:8972019-12-11 11:34:17.788 pm debugSharpAquos - parseMute - response '2'

dev:8972019-12-11 11:34:17.784 pm debugSharpAquos - parse 195 - command response [[2]] - handler [parseMute]

dev:8972019-12-11 11:34:17.779 pm debugSharpAquos - parse 195 - Processing DATA [320D] HANDLER [parseMute]

dev:8972019-12-11 11:34:17.773 pm debugSharpAquos - parse 195 - RAW DATA [320D] HANDLER [parseMute]

dev:8972019-12-11 11:34:17.743 pm debugSharpAquos - request 215 - request = [MUTE? ] to 192.168.254.205:10002

dev:8972019-12-11 11:34:17.739 pm debugSharpAquos - request 215 - Socket [open] CMD [MUTE] Params [?] Handler [parseMute]

dev:8972019-12-11 11:34:17.734 pm debugSharpAquos - getMutex 215 - Acquired mutex permit

dev:8972019-12-11 11:34:17.272 pm debugSharpAquos - releaseMutex 194 - Released mutex permit

dev:8972019-12-11 11:34:17.268 pm debugSharpAquos - parse 194 - command response [OK]

dev:8972019-12-11 11:34:17.264 pm debugSharpAquos - parse 194 - RAW DATA [4F4B0D] HANDLER [parse]

dev:8972019-12-11 11:34:17.232 pm debugSharpAquos - request 214 - request = [RCKY31 ] to 192.168.254.205:10002

dev:8972019-12-11 11:34:17.228 pm debugSharpAquos - request 214 - Socket [open] CMD [RCKY] Params [31] Handler [parse]

dev:8972019-12-11 11:34:17.225 pm debugSharpAquos - getMutex 214 - Acquired mutex permit

dev:8972019-12-11 11:34:17.220 pm debugSharpAquos - mute() Currently: [unmuted] altMUTE [true]

dev:8972019-12-11 11:34:15.004 pm debugSharpAquos - getDeviceState() Completed.

dev:8972019-12-11 11:34:14.791 pm debugSharpAquos - releaseMutex 193 - Released mutex permit

dev:8972019-12-11 11:34:14.787 pm debugSharpAquos - parseVideoMode - received inputvalue '4' [3D Hall]

dev:8972019-12-11 11:34:14.783 pm debugSharpAquos - parseVideoMode - response '4'

dev:8972019-12-11 11:34:14.779 pm debugSharpAquos - parse 193 - command response [[4]] - handler [parseVideoMode]

dev:8972019-12-11 11:34:14.776 pm debugSharpAquos - parse 193 - Processing DATA [340D] HANDLER [parseVideoMode]

dev:8972019-12-11 11:34:14.772 pm debugSharpAquos - parse 193 - RAW DATA [340D] HANDLER [parseVideoMode]

dev:8972019-12-11 11:34:14.755 pm debugSharpAquos - request 213 - request = [AVMD? ] to 192.168.254.205:10002

dev:8972019-12-11 11:34:14.751 pm debugSharpAquos - request 213 - Socket [open] CMD [AVMD] Params [?] Handler [parseVideoMode]

dev:8972019-12-11 11:34:14.747 pm debugSharpAquos - getMutex 213 - Acquired mutex permit

dev:8972019-12-11 11:34:14.536 pm debugSharpAquos - releaseMutex 192 - Released mutex permit

dev:8972019-12-11 11:34:14.533 pm debugSharpAquos - parseSurroundMode - received inputvalue '2' [Off]

dev:8972019-12-11 11:34:14.529 pm debugSharpAquos - parseSurround - response '2'

dev:8972019-12-11 11:34:14.525 pm debugSharpAquos - parse 192 - command response [[2]] - handler [parseSurroundMode]

dev:8972019-12-11 11:34:14.522 pm debugSharpAquos - parse 192 - Processing DATA [320D] HANDLER [parseSurroundMode]

dev:8972019-12-11 11:34:14.518 pm debugSharpAquos - parse 192 - RAW DATA [320D] HANDLER [parseSurroundMode]

dev:8972019-12-11 11:34:14.498 pm debugSharpAquos - request 212 - request = [ACSU? ] to 192.168.254.205:10002

dev:8972019-12-11 11:34:14.494 pm debugSharpAquos - request 212 - Socket [open] CMD [ACSU] Params [?] Handler [parseSurroundMode]

dev:8972019-12-11 11:34:14.490 pm debugSharpAquos - getMutex 212 - Acquired mutex permit

dev:8972019-12-11 11:34:14.287 pm debugSharpAquos - releaseMutex 191 - Released mutex permit

dev:8972019-12-11 11:34:14.283 pm debugSharpAquos - parseViewMode - received inputvalue '8' [Dot by Dot]

dev:8972019-12-11 11:34:14.278 pm debugSharpAquos - parseViewMode - response '8'

dev:8972019-12-11 11:34:14.274 pm debugSharpAquos - parse 191 - command response [[8]] - handler [parseViewMode]

dev:8972019-12-11 11:34:14.270 pm debugSharpAquos - parse 191 - Processing DATA [380D] HANDLER [parseViewMode]

dev:8972019-12-11 11:34:14.267 pm debugSharpAquos - parse 191 - RAW DATA [380D] HANDLER [parseViewMode]

dev:8972019-12-11 11:34:14.241 pm debugSharpAquos - request 211 - request = [WIDE? ] to 192.168.254.205:10002

dev:8972019-12-11 11:34:14.237 pm debugSharpAquos - request 211 - Socket [open] CMD [WIDE] Params [?] Handler [parseViewMode]

dev:8972019-12-11 11:34:14.234 pm debugSharpAquos - getMutex 211 - Acquired mutex permit

dev:8972019-12-11 11:34:14.032 pm debugSharpAquos - releaseMutex 190 - Released mutex permit

dev:8972019-12-11 11:34:14.029 pm debugSharpAquos - parseInput - received inputvalue '1' [HDMI IN 1]

dev:8972019-12-11 11:34:14.025 pm debugSharpAquos - parseInput - response '1'

dev:8972019-12-11 11:34:14.022 pm debugSharpAquos - parse 190 - command response [[1]] - handler [parseInput]

dev:8972019-12-11 11:34:14.018 pm debugSharpAquos - parse 190 - Processing DATA [310D] HANDLER [parseInput]

dev:8972019-12-11 11:34:14.014 pm debugSharpAquos - parse 190 - RAW DATA [310D] HANDLER [parseInput]

dev:8972019-12-11 11:34:13.987 pm debugSharpAquos - request 210 - request = [IAVD? ] to 192.168.254.205:10002

dev:8972019-12-11 11:34:13.983 pm debugSharpAquos - request 210 - Socket [open] CMD [IAVD] Params [?] Handler [parseInput]

dev:8972019-12-11 11:34:13.978 pm debugSharpAquos - getMutex 210 - Acquired mutex permit

dev:8972019-12-11 11:34:13.780 pm debugSharpAquos - releaseMutex 189 - Released mutex permit

dev:8972019-12-11 11:34:13.776 pm debugSharpAquos - parseVolume - PARSED response VOLUME = '1'

dev:8972019-12-11 11:34:13.772 pm debugSharpAquos - parseVolume - response '1'

dev:8972019-12-11 11:34:13.769 pm debugSharpAquos - parse 189 - command response [[1]] - handler [parseVolume]

dev:8972019-12-11 11:34:13.765 pm debugSharpAquos - parse 189 - Processing DATA [310D] HANDLER [parseVolume]

dev:8972019-12-11 11:34:13.761 pm debugSharpAquos - parse 189 - RAW DATA [310D] HANDLER [parseVolume]

dev:8972019-12-11 11:34:13.727 pm debugSharpAquos - request 209 - request = [VOLM? ] to 192.168.254.205:10002

dev:8972019-12-11 11:34:13.723 pm debugSharpAquos - request 209 - Socket [open] CMD [VOLM] Params [?] Handler [parseVolume]

dev:8972019-12-11 11:34:13.719 pm debugSharpAquos - getMutex 209 - Acquired mutex permit

dev:8972019-12-11 11:34:13.531 pm debugSharpAquos - releaseMutex 188 - Released mutex permit

dev:8972019-12-11 11:34:13.527 pm debugSharpAquos - parseMute - PARSED response MUTE = 'unmuted'

dev:8972019-12-11 11:34:13.520 pm debugSharpAquos - parseMute - response '2'

dev:8972019-12-11 11:34:13.516 pm debugSharpAquos - parse 188 - command response [[2]] - handler [parseMute]

dev:8972019-12-11 11:34:13.513 pm debugSharpAquos - parse 188 - Processing DATA [320D] HANDLER [parseMute]

dev:8972019-12-11 11:34:13.509 pm debugSharpAquos - parse 188 - RAW DATA [320D] HANDLER [parseMute]

dev:8972019-12-11 11:34:13.470 pm debugSharpAquos - request 208 - request = [MUTE? ] to 192.168.254.205:10002

dev:8972019-12-11 11:34:13.466 pm debugSharpAquos - request 208 - Socket [open] CMD [MUTE] Params [?] Handler [parseMute]

dev:8972019-12-11 11:34:13.462 pm debugSharpAquos - getMutex 208 - Acquired mutex permit

dev:8972019-12-11 11:34:13.291 pm debugSharpAquos - releaseMutex 187 - Released mutex permit

dev:8972019-12-11 11:34:13.273 pm debugSharpAquos - parsePower - PARSED response POWER = 'on'

dev:8972019-12-11 11:34:13.269 pm debugSharpAquos - parsePower - response '1'

dev:8972019-12-11 11:34:13.264 pm debugSharpAquos - parse 187 - command response [[1]] - handler [parsePower]

dev:8972019-12-11 11:34:13.260 pm debugSharpAquos - parse 187 - Processing DATA [310D] HANDLER [parsePower]

dev:8972019-12-11 11:34:13.256 pm debugSharpAquos - parse 187 - RAW DATA [310D] HANDLER [parsePower]

dev:8972019-12-11 11:34:13.211 pm debugSharpAquos - request 207 - request = [POWR? ] to 192.168.254.205:10002

dev:8972019-12-11 11:34:13.207 pm debugSharpAquos - request 207 - Socket [open] CMD [POWR] Params [?] Handler [parsePower]

dev:8972019-12-11 11:34:13.203 pm debugSharpAquos - getMutex 207 - Acquired mutex permit

dev:8972019-12-11 11:34:13.198 pm debugSharpAquos - getDeviceState() Starting

Ok... Here is the summary...

  1. The MUTE issue... When the TV is controlling the audio of a receiver via HDMI, it does not appear to track the mute state (The MUTE? query always returns the same value), So the "mute" attribute is only valid when the TV is the audio playback device. I have reverted the mute()/unmute() functions to the previous functionality and removed the altMUTE functionality. The toggleMute() function remains and used the "MUTE" remote control key command.

  2. Added function to set the 3D Mode. set3DMode().

  3. Added function to set the sleep timer. setSleepTimer().

  4. Added function to set the TV channel. This function is lets you specify Anolog/Digital, Air/Cable, and the channel number identifier.

[Old version removed]

Sound good, I will give her a test....

I installed it and hit refresh and here are the logs. There is one error I see.

parseDA2P - response '7.1' - Is this something left over from my testing yesterday. The TV is not on over the air were this channel is, maybe that it is.

Summary

dev:8972019-12-12 07:38:26.622 pm debugSharpAquos - getDeviceState() Completed.

dev:8972019-12-12 07:38:26.619 pm debugSharpAquos - getChannelStatus() Completed.

dev:8972019-12-12 07:38:26.444 pm debugSharpAquos - releaseMutex 119 - Released mutex permit

dev:8972019-12-12 07:38:26.441 pm debugSharpAquos - parse 119 - command response [ERR]

dev:8972019-12-12 07:38:26.438 pm debugSharpAquos - parse 119 - RAW DATA [4552520D] HANDLER [parseDC11]

dev:8972019-12-12 07:38:26.369 pm debugSharpAquos - request 120 - request = [DC11? ] to 192.168.254.205:10002

dev:8972019-12-12 07:38:26.366 pm debugSharpAquos - request 120 - Socket [open] CMD [DC11] Params [?] Handler [parseDC11]

dev:8972019-12-12 07:38:26.363 pm debugSharpAquos - getMutex 120 - Acquired mutex permit

dev:8972019-12-12 07:38:26.148 pm debugSharpAquos - releaseMutex 118 - Released mutex permit

dev:8972019-12-12 07:38:26.145 pm debugSharpAquos - parse 118 - command response [ERR]

dev:8972019-12-12 07:38:26.142 pm debugSharpAquos - parse 118 - RAW DATA [4552520D] HANDLER [parseDC10]

dev:8972019-12-12 07:38:26.113 pm debugSharpAquos - request 119 - request = [DC10? ] to 192.168.254.205:10002

dev:8972019-12-12 07:38:26.110 pm debugSharpAquos - request 119 - Socket [open] CMD [DC10] Params [?] Handler [parseDC10]

dev:8972019-12-12 07:38:26.107 pm debugSharpAquos - getMutex 119 - Acquired mutex permit

dev:8972019-12-12 07:38:25.895 pm debugSharpAquos - releaseMutex 117 - Released mutex permit

dev:8972019-12-12 07:38:25.892 pm debugSharpAquos - parse 117 - command response [ERR]

dev:8972019-12-12 07:38:25.890 pm debugSharpAquos - parse 117 - RAW DATA [4552520D] HANDLER [parseDC2L]

dev:8972019-12-12 07:38:25.856 pm debugSharpAquos - request 118 - request = [DC2L? ] to 192.168.254.205:10002

dev:8972019-12-12 07:38:25.853 pm debugSharpAquos - request 118 - Socket [open] CMD [DC2L] Params [?] Handler [parseDC2L]

dev:8972019-12-12 07:38:25.850 pm debugSharpAquos - getMutex 118 - Acquired mutex permit

dev:8972019-12-12 07:38:25.642 pm debugSharpAquos - releaseMutex 116 - Released mutex permit

dev:8972019-12-12 07:38:25.639 pm debugSharpAquos - parse 116 - command response [ERR]

dev:8972019-12-12 07:38:25.636 pm debugSharpAquos - parse 116 - RAW DATA [4552520D] HANDLER [parseDC2U]

dev:8972019-12-12 07:38:25.599 pm debugSharpAquos - request 117 - request = [DC2U? ] to 192.168.254.205:10002

dev:8972019-12-12 07:38:25.597 pm debugSharpAquos - request 117 - Socket [open] CMD [DC2U] Params [?] Handler [parseDC2U]

dev:8972019-12-12 07:38:25.594 pm debugSharpAquos - getMutex 117 - Acquired mutex permit

dev:8972019-12-12 07:38:25.419 pm errorjava.lang.NumberFormatException: For input string: "7." on line 512 (parse)

dev:8972019-12-12 07:38:25.388 pm debugSharpAquos - parseDA2P - response '7.1'

dev:8972019-12-12 07:38:25.385 pm debugSharpAquos - parse 115 - command response [[7.1]] - handler [parseDA2P]

dev:8972019-12-12 07:38:25.382 pm debugSharpAquos - parse 115 - Processing DATA [372E310D] HANDLER [parseDA2P]

dev:8972019-12-12 07:38:25.379 pm debugSharpAquos - parse 115 - RAW DATA [372E310D] HANDLER [parseDA2P]

dev:8972019-12-12 07:38:25.343 pm debugSharpAquos - request 116 - request = [DA2P? ] to 192.168.254.205:10002

dev:8972019-12-12 07:38:25.340 pm debugSharpAquos - request 116 - Socket [open] CMD [DA2P] Params [?] Handler [parseDA2P]

dev:8972019-12-12 07:38:25.337 pm debugSharpAquos - getMutex 116 - Acquired mutex permit

dev:8972019-12-12 07:38:25.135 pm debugSharpAquos - releaseMutex 114 - Released mutex permit

dev:8972019-12-12 07:38:25.132 pm debugSharpAquos - parse 114 - command response [ERR]

dev:8972019-12-12 07:38:25.129 pm debugSharpAquos - parse 114 - RAW DATA [4552520D] HANDLER [parseDCCH]

dev:8972019-12-12 07:38:25.089 pm debugSharpAquos - request 115 - request = [DCCH? ] to 192.168.254.205:10002

dev:8972019-12-12 07:38:25.085 pm debugSharpAquos - request 115 - Socket [open] CMD [DCCH] Params [?] Handler [parseDCCH]

dev:8972019-12-12 07:38:25.082 pm debugSharpAquos - getMutex 115 - Acquired mutex permit

dev:8972019-12-12 07:38:25.079 pm debugSharpAquos - getChannelStatus() Starting

dev:8972019-12-12 07:38:24.885 pm debugSharpAquos - releaseMutex 113 - Released mutex permit

dev:8972019-12-12 07:38:24.882 pm debugSharpAquos - parseSleepTimer - SET - SleepTimer [0] SleepTimerSetting [Off]

dev:8972019-12-12 07:38:24.879 pm debugSharpAquos - parseSleepTimer - response '0'

dev:8972019-12-12 07:38:24.876 pm debugSharpAquos - parse 113 - command response [[0]] - handler [parseSleepTimer]

dev:8972019-12-12 07:38:24.873 pm debugSharpAquos - parse 113 - Processing DATA [300D] HANDLER [parseSleepTimer]

dev:8972019-12-12 07:38:24.870 pm debugSharpAquos - parse 113 - RAW DATA [300D] HANDLER [parseSleepTimer]

dev:8972019-12-12 07:38:24.829 pm debugSharpAquos - request 114 - request = [OFTM? ] to 192.168.254.205:10002

dev:8972019-12-12 07:38:24.826 pm debugSharpAquos - request 114 - Socket [open] CMD [OFTM] Params [?] Handler [parseSleepTimer]

dev:8972019-12-12 07:38:24.823 pm debugSharpAquos - getMutex 114 - Acquired mutex permit

dev:8972019-12-12 07:38:23.873 pm debugSharpAquos - releaseMutex 112 - Released mutex permit

dev:8972019-12-12 07:38:23.870 pm debugSharpAquos - parse3DMode - SET - 3DMode [0] 3DModeName [3D Off]

dev:8972019-12-12 07:38:23.862 pm debugSharpAquos - parse3DMode - response '0'

dev:8972019-12-12 07:38:23.857 pm debugSharpAquos - parse 112 - command response [[0]] - handler [parse3DMode]

dev:8972019-12-12 07:38:23.851 pm debugSharpAquos - parse 112 - Processing DATA [300D] HANDLER [parse3DMode]

dev:8972019-12-12 07:38:23.846 pm debugSharpAquos - parse 112 - RAW DATA [300D] HANDLER [parse3DMode]

dev:8972019-12-12 07:38:23.823 pm debugSharpAquos - getMutex 114 - Detected stale mutex - forcing mutex release.

dev:8972019-12-12 07:38:23.819 pm debugSharpAquos - getMutex 114 - mutex permit not yet available. Waiting up to 60 seconds.

dev:8972019-12-12 07:38:23.569 pm debugSharpAquos - request 113 - request = [TDCH? ] to 192.168.254.205:10002

dev:8972019-12-12 07:38:23.566 pm debugSharpAquos - request 113 - Socket [open] CMD [TDCH] Params [?] Handler [parse3DMode]

dev:8972019-12-12 07:38:23.563 pm debugSharpAquos - getMutex 113 - Acquired mutex permit

dev:8972019-12-12 07:38:23.376 pm debugSharpAquos - releaseMutex 111 - Released mutex permit

dev:8972019-12-12 07:38:23.373 pm debugSharpAquos - parseVideoMode - SET - VideoMode [4] VideoModeName [3D Hall]

dev:8972019-12-12 07:38:23.369 pm debugSharpAquos - parseVideoMode - response '4'

dev:8972019-12-12 07:38:23.367 pm debugSharpAquos - parse 111 - command response [[4]] - handler [parseVideoMode]

dev:8972019-12-12 07:38:23.364 pm debugSharpAquos - parse 111 - Processing DATA [340D] HANDLER [parseVideoMode]

dev:8972019-12-12 07:38:23.361 pm debugSharpAquos - parse 111 - RAW DATA [340D] HANDLER [parseVideoMode]

dev:8972019-12-12 07:38:23.317 pm debugSharpAquos - request 112 - request = [AVMD? ] to 192.168.254.205:10002

dev:8972019-12-12 07:38:23.314 pm debugSharpAquos - request 112 - Socket [open] CMD [AVMD] Params [?] Handler [parseVideoMode]

dev:8972019-12-12 07:38:23.311 pm debugSharpAquos - getMutex 112 - Acquired mutex permit

dev:8972019-12-12 07:38:23.181 pm debugSharpAquos - releaseMutex 110 - Released mutex permit

dev:8972019-12-12 07:38:23.158 pm debugSharpAquos - parseSurroundMode - SET - SurroundMode [2] SurroundModeName [Off]

dev:8972019-12-12 07:38:23.155 pm debugSharpAquos - parseSurround - response '2'

dev:8972019-12-12 07:38:23.152 pm debugSharpAquos - parse 110 - command response [[2]] - handler [parseSurroundMode]

dev:8972019-12-12 07:38:23.137 pm debugSharpAquos - parse 110 - Processing DATA [320D] HANDLER [parseSurroundMode]

dev:8972019-12-12 07:38:23.134 pm debugSharpAquos - parse 110 - RAW DATA [320D] HANDLER [parseSurroundMode]

dev:8972019-12-12 07:38:23.054 pm debugSharpAquos - request 111 - request = [ACSU? ] to 192.168.254.205:10002

dev:8972019-12-12 07:38:23.050 pm debugSharpAquos - request 111 - Socket [open] CMD [ACSU] Params [?] Handler [parseSurroundMode]

dev:8972019-12-12 07:38:23.047 pm debugSharpAquos - getMutex 111 - Acquired mutex permit

dev:8972019-12-12 07:38:22.847 pm debugSharpAquos - releaseMutex 109 - Released mutex permit

dev:8972019-12-12 07:38:22.844 pm debugSharpAquos - parseViewMode - SET - ViewMode [8] ViewModeName [Dot by Dot]

dev:8972019-12-12 07:38:22.841 pm debugSharpAquos - parseViewMode - response '8'

dev:8972019-12-12 07:38:22.838 pm debugSharpAquos - parse 109 - command response [[8]] - handler [parseViewMode]

dev:8972019-12-12 07:38:22.835 pm debugSharpAquos - parse 109 - Processing DATA [380D] HANDLER [parseViewMode]

dev:8972019-12-12 07:38:22.831 pm debugSharpAquos - parse 109 - RAW DATA [380D] HANDLER [parseViewMode]

dev:8972019-12-12 07:38:22.796 pm debugSharpAquos - request 110 - request = [WIDE? ] to 192.168.254.205:10002

dev:8972019-12-12 07:38:22.793 pm debugSharpAquos - request 110 - Socket [open] CMD [WIDE] Params [?] Handler [parseViewMode]

dev:8972019-12-12 07:38:22.790 pm debugSharpAquos - getMutex 110 - Acquired mutex permit

dev:8972019-12-12 07:38:22.602 pm debugSharpAquos - releaseMutex 108 - Released mutex permit

dev:8972019-12-12 07:38:22.599 pm debugSharpAquos - parseInput - SET - input [1] InputName [HDMI IN 1]

dev:8972019-12-12 07:38:22.595 pm debugSharpAquos - parseInput - response '1'

dev:8972019-12-12 07:38:22.593 pm debugSharpAquos - parse 108 - command response [[1]] - handler [parseInput]

dev:8972019-12-12 07:38:22.579 pm debugSharpAquos - parse 108 - Processing DATA [310D] HANDLER [parseInput]

dev:8972019-12-12 07:38:22.576 pm debugSharpAquos - parse 108 - RAW DATA [310D] HANDLER [parseInput]

dev:8972019-12-12 07:38:22.538 pm debugSharpAquos - request 109 - request = [IAVD? ] to 192.168.254.205:10002

dev:8972019-12-12 07:38:22.535 pm debugSharpAquos - request 109 - Socket [open] CMD [IAVD] Params [?] Handler [parseInput]

dev:8972019-12-12 07:38:22.532 pm debugSharpAquos - getMutex 109 - Acquired mutex permit

dev:8972019-12-12 07:38:22.336 pm debugSharpAquos - releaseMutex 107 - Released mutex permit

dev:8972019-12-12 07:38:22.334 pm debugSharpAquos - parseVolume - SET - volume [1]

dev:8972019-12-12 07:38:22.331 pm debugSharpAquos - parseVolume - response '1'

dev:8972019-12-12 07:38:22.328 pm debugSharpAquos - parse 107 - command response [[1]] - handler [parseVolume]

dev:8972019-12-12 07:38:22.325 pm debugSharpAquos - parse 107 - Processing DATA [310D] HANDLER [parseVolume]

dev:8972019-12-12 07:38:22.322 pm debugSharpAquos - parse 107 - RAW DATA [310D] HANDLER [parseVolume]

dev:8972019-12-12 07:38:22.281 pm debugSharpAquos - request 108 - request = [VOLM? ] to 192.168.254.205:10002

dev:8972019-12-12 07:38:22.278 pm debugSharpAquos - request 108 - Socket [open] CMD [VOLM] Params [?] Handler [parseVolume]

dev:8972019-12-12 07:38:22.274 pm debugSharpAquos - getMutex 108 - Acquired mutex permit

dev:8972019-12-12 07:38:22.102 pm debugSharpAquos - releaseMutex 106 - Released mutex permit

dev:8972019-12-12 07:38:22.098 pm debugSharpAquos - parseMute - SET - mute [unmuted]

dev:8972019-12-12 07:38:22.095 pm debugSharpAquos - parseMute - response '2'

dev:8972019-12-12 07:38:22.087 pm debugSharpAquos - parse 106 - command response [[2]] - handler [parseMute]

dev:8972019-12-12 07:38:22.081 pm debugSharpAquos - parse 106 - Processing DATA [320D] HANDLER [parseMute]

dev:8972019-12-12 07:38:22.074 pm debugSharpAquos - parse 106 - RAW DATA [320D] HANDLER [parseMute]

dev:8972019-12-12 07:38:22.024 pm debugSharpAquos - request 107 - request = [MUTE? ] to 192.168.254.205:10002

dev:8972019-12-12 07:38:22.021 pm debugSharpAquos - request 107 - Socket [open] CMD [MUTE] Params [?] Handler [parseMute]

dev:8972019-12-12 07:38:22.018 pm debugSharpAquos - getMutex 107 - Acquired mutex permit

dev:8972019-12-12 07:38:21.895 pm debugSharpAquos - releaseMutex 105 - Released mutex permit

dev:8972019-12-12 07:38:21.892 pm debugSharpAquos - parsePower - SET - power [on]

dev:8972019-12-12 07:38:21.889 pm debugSharpAquos - parsePower - response '1'

dev:8972019-12-12 07:38:21.886 pm debugSharpAquos - parse 105 - command response [[1]] - handler [parsePower]

dev:8972019-12-12 07:38:21.882 pm debugSharpAquos - parse 105 - Processing DATA [310D] HANDLER [parsePower]

dev:8972019-12-12 07:38:21.879 pm debugSharpAquos - parse 105 - RAW DATA [310D] HANDLER [parsePower]

dev:8972019-12-12 07:38:21.875 pm debugSharpAquos - request 106 - request = [POWR? ] to 192.168.254.205:10002

dev:8972019-12-12 07:38:21.872 pm debugSharpAquos - request 106 - Socket [open] CMD [POWR] Params [?] Handler [parsePower]

dev:8972019-12-12 07:38:21.869 pm debugSharpAquos - getMutex 106 - Acquired mutex permit

dev:8972019-12-12 07:38:21.844 pm debugSharpAquos - getDeviceState() Starting

That is a standard operating mode for most TV sets... They remember the last channel that the inbuilt tuner uses, so that it has a default for when it is switched back to the TV input.

Sounds good, thanks.

Something happened.....lost volume and toggle mute. Had to hit initialize to get them working again.

Summary

dev:8972019-12-13 03:45:56.448 pm debugSharpAquos - toggleMute() - completed

dev:8972019-12-13 03:45:56.444 pm debugSharpAquos - request 3768 - ERROR. Unable to acquire mutex permit.

dev:8972019-12-13 03:45:56.441 pm debugSharpAquos - request 3768 - Socket [closed] CMD [MUTE] Params [?] Handler [parseMute]

dev:8972019-12-13 03:45:56.436 pm debugSharpAquos - getMutex 3768 - Failed to acquired mutex permit - socket closed

dev:8972019-12-13 03:45:56.181 pm debugSharpAquos - request 3767 - ERROR. Unable to acquire mutex permit.

dev:8972019-12-13 03:45:56.178 pm debugSharpAquos - request 3767 - Socket [closed] CMD [RCKY] Params [31] Handler [parse]

dev:8972019-12-13 03:45:56.173 pm debugSharpAquos - getMutex 3767 - Failed to acquired mutex permit - socket closed

dev:8972019-12-13 03:45:56.165 pm debugSharpAquos - toggleMute()

dev:8972019-12-13 03:45:52.307 pm debugSharpAquos - request 3766 - ERROR. Unable to acquire mutex permit.

dev:8972019-12-13 03:45:52.303 pm debugSharpAquos - request 3766 - Socket [closed] CMD [VOLM] Params [?] Handler [parseVolume]

dev:8972019-12-13 03:45:52.298 pm debugSharpAquos - getMutex 3766 - Failed to acquired mutex permit - socket closed

dev:8972019-12-13 03:45:52.294 pm debugSharpAquos - request 3765 - ERROR. Unable to acquire mutex permit.

dev:8972019-12-13 03:45:52.290 pm debugSharpAquos - request 3765 - Socket [closed] CMD [RCKY] Params [32] Handler [parse]

dev:8972019-12-13 03:45:52.286 pm debugSharpAquos - getMutex 3765 - Failed to acquired mutex permit - socket closed

dev:8972019-12-13 03:45:52.278 pm debugSharpAquos - volumeDown()

dev:8972019-12-13 03:45:49.429 pm debugSharpAquos - request 3764 - ERROR. Unable to acquire mutex permit.

dev:8972019-12-13 03:45:49.426 pm debugSharpAquos - request 3764 - Socket [closed] CMD [VOLM] Params [?] Handler [parseVolume]

dev:8972019-12-13 03:45:49.421 pm debugSharpAquos - getMutex 3764 - Failed to acquired mutex permit - socket closed

dev:8972019-12-13 03:45:49.417 pm debugSharpAquos - request 3763 - ERROR. Unable to acquire mutex permit.

dev:8972019-12-13 03:45:49.413 pm debugSharpAquos - request 3763 - Socket [closed] CMD [RCKY] Params [33] Handler [parse]

dev:8972019-12-13 03:45:49.408 pm debugSharpAquos - getMutex 3763 - Failed to acquired mutex permit - socket closed

dev:8972019-12-13 03:45:49.400 pm debugSharpAquos - volumeUp()

Not sure when it started, this is as far back as my logs go....

dev:8972019-12-13 02:39:55.353 pm debugSharpAquos - getMutex 3536 - Failed to acquired mutex permit - socket closed

dev:8972019-12-13 02:39:55.349 pm debugSharpAquos - request 3535 - ERROR. Unable to acquire mutex permit.

dev:8972019-12-13 02:39:55.343 pm debugSharpAquos - request 3535 - Socket [closed] CMD [POWR] Params [?] Handler [parsePower]

dev:8972019-12-13 02:39:55.331 pm debugSharpAquos - getMutex 3535 - Failed to acquired mutex permit - socket closed

New version...

  1. Changes to commands and attributes to eliminate duplicate commands in RM and dashboards
  2. tweak auto-reconnect logic to prevent mutex lockout due to unexpectedly closed socket.

[Old version removed]

Sounds great.....testing.....here are install logs....

Summary

dev:8972019-12-13 09:35:15.396 pm debugSharpAquos - getDeviceState() Completed.

dev:8972019-12-13 09:35:15.393 pm debugSharpAquos - getChannelStatus() Completed.

dev:8972019-12-13 09:35:15.225 pm debugSharpAquos - releaseMutex 30 - Released mutex permit

dev:8972019-12-13 09:35:15.221 pm debugSharpAquos - parse 30 - command response [ERR]

dev:8972019-12-13 09:35:15.217 pm debugSharpAquos - parse 30 - RAW DATA [4552520D] HANDLER [parseDC11]

dev:8972019-12-13 09:35:15.138 pm debugSharpAquos - request 30 - request = [DC11? ] to 192.168.254.205:10002

dev:8972019-12-13 09:35:15.133 pm debugSharpAquos - getMutex 30 - Acquired mutex permit

dev:8972019-12-13 09:35:15.129 pm debugSharpAquos - request 30 - Socket [open] CMD [DC11] Params [?] Handler [parseDC11]

dev:8972019-12-13 09:35:14.995 pm debugSharpAquos - releaseMutex 29 - Released mutex permit

dev:8972019-12-13 09:35:14.992 pm debugSharpAquos - parse 29 - command response [ERR]

dev:8972019-12-13 09:35:14.988 pm debugSharpAquos - parse 29 - RAW DATA [4552520D] HANDLER [parseDC10]

dev:8972019-12-13 09:35:14.874 pm debugSharpAquos - request 29 - request = [DC10? ] to 192.168.254.205:10002

dev:8972019-12-13 09:35:14.869 pm debugSharpAquos - getMutex 29 - Acquired mutex permit

dev:8972019-12-13 09:35:14.865 pm debugSharpAquos - request 29 - Socket [open] CMD [DC10] Params [?] Handler [parseDC10]

dev:8972019-12-13 09:35:14.687 pm debugSharpAquos - releaseMutex 28 - Released mutex permit

dev:8972019-12-13 09:35:14.683 pm debugSharpAquos - parse 28 - command response [ERR]

dev:8972019-12-13 09:35:14.680 pm debugSharpAquos - parse 28 - RAW DATA [4552520D] HANDLER [parseDC2L]

dev:8972019-12-13 09:35:14.622 pm debugSharpAquos - releaseMutex 27 - Released mutex permit

dev:8972019-12-13 09:35:14.618 pm debugSharpAquos - parse 27 - command response [ERR]

dev:8972019-12-13 09:35:14.614 pm debugSharpAquos - parse 27 - RAW DATA [4552520D] HANDLER [parseDC2L]

dev:8972019-12-13 09:35:14.609 pm debugSharpAquos - request 28 - request = [DC2L? ] to 192.168.254.205:10002

dev:8972019-12-13 09:35:14.605 pm debugSharpAquos - getMutex 28 - Acquired mutex permit

dev:8972019-12-13 09:35:14.601 pm debugSharpAquos - request 28 - Socket [open] CMD [DC2L] Params [?] Handler [parseDC2L]

dev:8972019-12-13 09:35:14.346 pm debugSharpAquos - request 27 - request = [DC2U? ] to 192.168.254.205:10002

dev:8972019-12-13 09:35:14.341 pm debugSharpAquos - getMutex 27 - Acquired mutex permit

dev:8972019-12-13 09:35:14.337 pm debugSharpAquos - request 27 - Socket [open] CMD [DC2U] Params [?] Handler [parseDC2U]

dev:8972019-12-13 09:35:14.203 pm errorjava.lang.NumberFormatException: For input string: "7." on line 544 (parse)

dev:8972019-12-13 09:35:14.167 pm debugSharpAquos - parseDA2P - response '7.1'

dev:8972019-12-13 09:35:14.164 pm debugSharpAquos - parse 26 - command response [[7.1]] - handler [parseDA2P]

dev:8972019-12-13 09:35:14.159 pm debugSharpAquos - parse 26 - Processing DATA [372E310D] HANDLER [parseDA2P]

dev:8972019-12-13 09:35:14.155 pm debugSharpAquos - parse 26 - RAW DATA [372E310D] HANDLER [parseDA2P]

dev:8972019-12-13 09:35:14.082 pm debugSharpAquos - request 26 - request = [DA2P? ] to 192.168.254.205:10002

dev:8972019-12-13 09:35:14.077 pm debugSharpAquos - getMutex 26 - Acquired mutex permit

dev:8972019-12-13 09:35:14.073 pm debugSharpAquos - request 26 - Socket [open] CMD [DA2P] Params [?] Handler [parseDA2P]

dev:8972019-12-13 09:35:13.954 pm debugSharpAquos - releaseMutex 25 - Released mutex permit

dev:8972019-12-13 09:35:13.950 pm debugSharpAquos - parse 25 - command response [ERR]

dev:8972019-12-13 09:35:13.946 pm debugSharpAquos - parse 25 - RAW DATA [4552520D] HANDLER [parseDCCH]

dev:8972019-12-13 09:35:13.819 pm debugSharpAquos - request 25 - request = [DCCH? ] to 192.168.254.205:10002

dev:8972019-12-13 09:35:13.812 pm debugSharpAquos - getMutex 25 - Acquired mutex permit

dev:8972019-12-13 09:35:13.796 pm debugSharpAquos - request 25 - Socket [open] CMD [DCCH] Params [?] Handler [parseDCCH]

dev:8972019-12-13 09:35:13.786 pm debugSharpAquos - getChannelStatus() Starting

dev:8972019-12-13 09:35:13.667 pm debugSharpAquos - releaseMutex 24 - Released mutex permit

dev:8972019-12-13 09:35:13.663 pm debugSharpAquos - parseSleepTimer - SET - SleepTimer [0] SleepTimerSetting [Off]

dev:8972019-12-13 09:35:13.655 pm debugSharpAquos - parseSleepTimer - response '0'

dev:8972019-12-13 09:35:13.651 pm debugSharpAquos - parse 24 - command response [[0]] - handler [parseSleepTimer]

dev:8972019-12-13 09:35:13.646 pm debugSharpAquos - parse 24 - Processing DATA [300D] HANDLER [parseSleepTimer]

dev:8972019-12-13 09:35:13.642 pm debugSharpAquos - parse 24 - RAW DATA [300D] HANDLER [parseSleepTimer]

dev:8972019-12-13 09:35:13.530 pm debugSharpAquos - request 24 - request = [OFTM? ] to 192.168.254.205:10002

dev:8972019-12-13 09:35:13.525 pm debugSharpAquos - getMutex 24 - Acquired mutex permit

dev:8972019-12-13 09:35:13.521 pm debugSharpAquos - request 24 - Socket [open] CMD [OFTM] Params [?] Handler [parseSleepTimer]

dev:8972019-12-13 09:35:13.381 pm debugSharpAquos - releaseMutex 23 - Released mutex permit

dev:8972019-12-13 09:35:13.377 pm debugSharpAquos - parse3DMode - SET - 3DMode [0] 3DModeName [3D Off]

dev:8972019-12-13 09:35:13.364 pm debugSharpAquos - parse3DMode - response '0'

dev:8972019-12-13 09:35:13.360 pm debugSharpAquos - parse 23 - command response [[0]] - handler [parse3DMode]

dev:8972019-12-13 09:35:13.355 pm debugSharpAquos - parse 23 - Processing DATA [300D] HANDLER [parse3DMode]

dev:8972019-12-13 09:35:13.351 pm debugSharpAquos - parse 23 - RAW DATA [300D] HANDLER [parse3DMode]

dev:8972019-12-13 09:35:13.273 pm debugSharpAquos - request 23 - request = [TDCH? ] to 192.168.254.205:10002

dev:8972019-12-13 09:35:13.268 pm debugSharpAquos - getMutex 23 - Acquired mutex permit

dev:8972019-12-13 09:35:13.261 pm debugSharpAquos - request 23 - Socket [open] CMD [TDCH] Params [?] Handler [parse3DMode]

dev:8972019-12-13 09:35:13.206 pm debugSharpAquos - releaseMutex 22 - Released mutex permit

dev:8972019-12-13 09:35:13.202 pm debugSharpAquos - parseVideoMode - SET - VideoMode [4] VideoModeName [3D Hall]

dev:8972019-12-13 09:35:13.198 pm debugSharpAquos - parseVideoMode - response '4'

dev:8972019-12-13 09:35:13.195 pm debugSharpAquos - parse 22 - command response [[4]] - handler [parseVideoMode]

dev:8972019-12-13 09:35:13.176 pm debugSharpAquos - parse 22 - Processing DATA [340D] HANDLER [parseVideoMode]

dev:8972019-12-13 09:35:13.172 pm debugSharpAquos - parse 22 - RAW DATA [340D] HANDLER [parseVideoMode]

dev:8972019-12-13 09:35:13.063 pm debugSharpAquos - releaseMutex 21 - Released mutex permit

dev:8972019-12-13 09:35:13.059 pm debugSharpAquos - parseVideoMode - SET - VideoMode [2] VideoModeName [Off]

dev:8972019-12-13 09:35:13.052 pm debugSharpAquos - parseVideoMode - response '2'

dev:8972019-12-13 09:35:13.048 pm debugSharpAquos - parse 21 - command response [[2]] - handler [parseVideoMode]

dev:8972019-12-13 09:35:13.044 pm debugSharpAquos - parse 21 - Processing DATA [320D] HANDLER [parseVideoMode]

dev:8972019-12-13 09:35:13.039 pm debugSharpAquos - parse 21 - RAW DATA [320D] HANDLER [parseVideoMode]

dev:8972019-12-13 09:35:12.991 pm debugSharpAquos - request 22 - request = [AVMD? ] to 192.168.254.205:10002

dev:8972019-12-13 09:35:12.982 pm debugSharpAquos - getMutex 22 - Acquired mutex permit

dev:8972019-12-13 09:35:12.978 pm debugSharpAquos - request 22 - Socket [open] CMD [AVMD] Params [?] Handler [parseVideoMode]

dev:8972019-12-13 09:35:12.719 pm debugSharpAquos - request 21 - request = [ACSU? ] to 192.168.254.205:10002

dev:8972019-12-13 09:35:12.712 pm debugSharpAquos - getMutex 21 - Acquired mutex permit

dev:8972019-12-13 09:35:12.708 pm debugSharpAquos - request 21 - Socket [open] CMD [ACSU] Params [?] Handler [parseSurroundMode]

dev:8972019-12-13 09:35:12.647 pm debugSharpAquos - releaseMutex 20 - Released mutex permit

dev:8972019-12-13 09:35:12.642 pm debugSharpAquos - parseViewMode - SET - ViewMode [8] ViewModeName [Dot by Dot]

dev:8972019-12-13 09:35:12.635 pm debugSharpAquos - parseViewMode - response '8'

dev:8972019-12-13 09:35:12.631 pm debugSharpAquos - parse 20 - command response [[8]] - handler [parseViewMode]

dev:8972019-12-13 09:35:12.626 pm debugSharpAquos - parse 20 - Processing DATA [380D] HANDLER [parseViewMode]

dev:8972019-12-13 09:35:12.622 pm debugSharpAquos - parse 20 - RAW DATA [380D] HANDLER [parseViewMode]

dev:8972019-12-13 09:35:12.510 pm debugSharpAquos - releaseMutex 19 - Released mutex permit

dev:8972019-12-13 09:35:12.506 pm debugSharpAquos - parseViewMode - SET - ViewMode [1] ViewModeName [Side Bar]

dev:8972019-12-13 09:35:12.499 pm debugSharpAquos - parseViewMode - response '1'

dev:8972019-12-13 09:35:12.495 pm debugSharpAquos - parse 19 - command response [[1]] - handler [parseViewMode]

dev:8972019-12-13 09:35:12.490 pm debugSharpAquos - parse 19 - Processing DATA [310D] HANDLER [parseViewMode]

dev:8972019-12-13 09:35:12.486 pm debugSharpAquos - parse 19 - RAW DATA [310D] HANDLER [parseViewMode]

dev:8972019-12-13 09:35:12.453 pm debugSharpAquos - request 20 - request = [WIDE? ] to 192.168.254.205:10002

dev:8972019-12-13 09:35:12.447 pm debugSharpAquos - getMutex 20 - Acquired mutex permit

dev:8972019-12-13 09:35:12.444 pm debugSharpAquos - request 20 - Socket [open] CMD [WIDE] Params [?] Handler [parseViewMode]

dev:8972019-12-13 09:35:12.188 pm debugSharpAquos - request 19 - request = [IAVD? ] to 192.168.254.205:10002

dev:8972019-12-13 09:35:12.183 pm debugSharpAquos - getMutex 19 - Acquired mutex permit

dev:8972019-12-13 09:35:12.179 pm debugSharpAquos - request 19 - Socket [open] CMD [IAVD] Params [?] Handler [parseInput]

dev:8972019-12-13 09:35:12.042 pm debugSharpAquos - releaseMutex 18 - Released mutex permit

dev:8972019-12-13 09:35:12.038 pm debugSharpAquos - parseVolume - SET - volume [2]

dev:8972019-12-13 09:35:12.034 pm debugSharpAquos - parseVolume - response '2'

dev:8972019-12-13 09:35:11.989 pm debugSharpAquos - parse 18 - command response [[2]] - handler [parseVolume]

dev:8972019-12-13 09:35:11.984 pm debugSharpAquos - parse 18 - Processing DATA [320D] HANDLER [parseVolume]

dev:8972019-12-13 09:35:11.980 pm debugSharpAquos - parse 18 - RAW DATA [320D] HANDLER [parseVolume]

dev:8972019-12-13 09:35:11.924 pm debugSharpAquos - request 18 - request = [VOLM? ] to 192.168.254.205:10002

dev:8972019-12-13 09:35:11.919 pm debugSharpAquos - getMutex 18 - Acquired mutex permit

dev:8972019-12-13 09:35:11.915 pm debugSharpAquos - request 18 - Socket [open] CMD [VOLM] Params [?] Handler [parseVolume]

dev:8972019-12-13 09:35:11.784 pm debugSharpAquos - releaseMutex 17 - Released mutex permit

dev:8972019-12-13 09:35:11.780 pm debugSharpAquos - parseMute - SET - mute [unmuted]

dev:8972019-12-13 09:35:11.776 pm debugSharpAquos - parseMute - response '2'

dev:8972019-12-13 09:35:11.767 pm debugSharpAquos - parse 17 - command response [[2]] - handler [parseMute]

dev:8972019-12-13 09:35:11.762 pm debugSharpAquos - parse 17 - Processing DATA [320D] HANDLER [parseMute]

dev:8972019-12-13 09:35:11.758 pm debugSharpAquos - parse 17 - RAW DATA [320D] HANDLER [parseMute]

dev:8972019-12-13 09:35:11.662 pm debugSharpAquos - request 17 - request = [MUTE? ] to 192.168.254.205:10002

dev:8972019-12-13 09:35:11.654 pm debugSharpAquos - getMutex 17 - Acquired mutex permit

dev:8972019-12-13 09:35:11.649 pm debugSharpAquos - request 17 - Socket [open] CMD [MUTE] Params [?] Handler [parseMute]

dev:8972019-12-13 09:35:11.498 pm debugSharpAquos - releaseMutex 16 - Released mutex permit

dev:8972019-12-13 09:35:11.494 pm debugSharpAquos - parsePower - SET - power [on]

dev:8972019-12-13 09:35:11.489 pm debugSharpAquos - parsePower - response '1'

dev:8972019-12-13 09:35:11.480 pm debugSharpAquos - parse 16 - command response [[1]] - handler [parsePower]

dev:8972019-12-13 09:35:11.475 pm debugSharpAquos - parse 16 - Processing DATA [310D] HANDLER [parsePower]

dev:8972019-12-13 09:35:11.471 pm debugSharpAquos - parse 16 - RAW DATA [310D] HANDLER [parsePower]

dev:8972019-12-13 09:35:11.394 pm debugSharpAquos - request 16 - request = [POWR? ] to 192.168.254.205:10002

dev:8972019-12-13 09:35:11.389 pm debugSharpAquos - getMutex 16 - Acquired mutex permit

dev:8972019-12-13 09:35:11.385 pm debugSharpAquos - request 16 - Socket [open] CMD [POWR] Params [?] Handler [parsePower]

dev:8972019-12-13 09:35:11.376 pm debugSharpAquos - getDeviceState() Starting

dev:8972019-12-13 09:34:23.786 pm debugSharpAquos - getDeviceState() Completed.

dev:8972019-12-13 09:34:23.782 pm debugSharpAquos - getChannelStatus() Completed.

dev:8972019-12-13 09:34:23.632 pm debugSharpAquos - releaseMutex 15 - Released mutex permit

dev:8972019-12-13 09:34:23.628 pm debugSharpAquos - parse 15 - command response [ERR]

dev:8972019-12-13 09:34:23.624 pm debugSharpAquos - parse 15 - RAW DATA [4552520D] HANDLER [parseDC11]

dev:8972019-12-13 09:34:23.528 pm debugSharpAquos - request 15 - request = [DC11? ] to 192.168.254.205:10002

dev:8972019-12-13 09:34:23.523 pm debugSharpAquos - getMutex 15 - Acquired mutex permit

dev:8972019-12-13 09:34:23.519 pm debugSharpAquos - request 15 - Socket [open] CMD [DC11] Params [?] Handler [parseDC11]

dev:8972019-12-13 09:34:23.355 pm debugSharpAquos - releaseMutex 14 - Released mutex permit

dev:8972019-12-13 09:34:23.351 pm debugSharpAquos - parse 14 - command response [ERR]

dev:8972019-12-13 09:34:23.347 pm debugSharpAquos - parse 14 - RAW DATA [4552520D] HANDLER [parseDC10]

dev:8972019-12-13 09:34:23.257 pm debugSharpAquos - request 14 - request = [DC10? ] to 192.168.254.205:10002

dev:8972019-12-13 09:34:23.247 pm debugSharpAquos - getMutex 14 - Acquired mutex permit

dev:8972019-12-13 09:34:23.239 pm debugSharpAquos - request 14 - Socket [open] CMD [DC10] Params [?] Handler [parseDC10]

dev:8972019-12-13 09:34:23.071 pm debugSharpAquos - releaseMutex 13 - Released mutex permit

dev:8972019-12-13 09:34:23.067 pm debugSharpAquos - parse 13 - command response [ERR]

dev:8972019-12-13 09:34:23.063 pm debugSharpAquos - parse 13 - RAW DATA [4552520D] HANDLER [parseDC2L]

dev:8972019-12-13 09:34:22.983 pm debugSharpAquos - request 13 - request = [DC2L? ] to 192.168.254.205:10002

dev:8972019-12-13 09:34:22.978 pm debugSharpAquos - getMutex 13 - Acquired mutex permit

dev:8972019-12-13 09:34:22.974 pm debugSharpAquos - request 13 - Socket [open] CMD [DC2L] Params [?] Handler [parseDC2L]

dev:8972019-12-13 09:34:22.873 pm debugSharpAquos - releaseMutex 12 - Released mutex permit

dev:8972019-12-13 09:34:22.869 pm debugSharpAquos - parse 12 - command response [ERR]

dev:8972019-12-13 09:34:22.865 pm debugSharpAquos - parse 12 - RAW DATA [4552520D] HANDLER [parseDC2U]

dev:8972019-12-13 09:34:22.782 pm errorjava.lang.NumberFormatException: For input string: "7." on line 544 (parse)

dev:8972019-12-13 09:34:22.740 pm debugSharpAquos - parseDA2P - response '7.1'

dev:8972019-12-13 09:34:22.722 pm debugSharpAquos - request 12 - request = [DC2U? ] to 192.168.254.205:10002

dev:8972019-12-13 09:34:22.718 pm debugSharpAquos - parse 11 - command response [[7.1]] - handler [parseDA2P]

dev:8972019-12-13 09:34:22.713 pm debugSharpAquos - getMutex 12 - Acquired mutex permit

dev:8972019-12-13 09:34:22.709 pm debugSharpAquos - request 12 - Socket [open] CMD [DC2U] Params [?] Handler [parseDC2U]

dev:8972019-12-13 09:34:22.705 pm debugSharpAquos - parse 11 - Processing DATA [372E310D] HANDLER [parseDA2P]

dev:8972019-12-13 09:34:22.700 pm debugSharpAquos - parse 11 - RAW DATA [372E310D] HANDLER [parseDA2P]

dev:8972019-12-13 09:34:22.447 pm debugSharpAquos - request 11 - request = [DA2P? ] to 192.168.254.205:10002

dev:8972019-12-13 09:34:22.442 pm debugSharpAquos - getMutex 11 - Acquired mutex permit

dev:8972019-12-13 09:34:22.437 pm debugSharpAquos - request 11 - Socket [open] CMD [DA2P] Params [?] Handler [parseDA2P]

dev:8972019-12-13 09:34:22.248 pm debugSharpAquos - releaseMutex 10 - Released mutex permit

dev:8972019-12-13 09:34:22.244 pm debugSharpAquos - parse 10 - command response [ERR]

dev:8972019-12-13 09:34:22.240 pm debugSharpAquos - parse 10 - RAW DATA [4552520D] HANDLER [parseDCCH]

dev:8972019-12-13 09:34:22.179 pm debugSharpAquos - request 10 - request = [DCCH? ] to 192.168.254.205:10002

dev:8972019-12-13 09:34:22.172 pm debugSharpAquos - getMutex 10 - Acquired mutex permit

dev:8972019-12-13 09:34:22.167 pm debugSharpAquos - request 10 - Socket [open] CMD [DCCH] Params [?] Handler [parseDCCH]

dev:8972019-12-13 09:34:22.160 pm debugSharpAquos - getChannelStatus() Starting

dev:8972019-12-13 09:34:22.049 pm debugSharpAquos - releaseMutex 9 - Released mutex permit

dev:8972019-12-13 09:34:22.045 pm debugSharpAquos - parseSleepTimer - SET - SleepTimer [0] SleepTimerSetting [Off]

dev:8972019-12-13 09:34:22.034 pm debugSharpAquos - parseSleepTimer - response '0'

dev:8972019-12-13 09:34:22.025 pm debugSharpAquos - parse 9 - command response [[0]] - handler [parseSleepTimer]

dev:8972019-12-13 09:34:22.019 pm debugSharpAquos - parse 9 - Processing DATA [300D] HANDLER [parseSleepTimer]

dev:8972019-12-13 09:34:22.014 pm debugSharpAquos - parse 9 - RAW DATA [300D] HANDLER [parseSleepTimer]

dev:8972019-12-13 09:34:21.910 pm debugSharpAquos - request 9 - request = [OFTM? ] to 192.168.254.205:10002

dev:8972019-12-13 09:34:21.895 pm debugSharpAquos - getMutex 9 - Acquired mutex permit

dev:8972019-12-13 09:34:21.891 pm debugSharpAquos - request 9 - Socket [open] CMD [OFTM] Params [?] Handler [parseSleepTimer]

dev:8972019-12-13 09:34:21.766 pm debugSharpAquos - releaseMutex 8 - Released mutex permit

dev:8972019-12-13 09:34:21.762 pm debugSharpAquos - parse3DMode - SET - 3DMode [0] 3DModeName [3D Off]

dev:8972019-12-13 09:34:21.752 pm debugSharpAquos - parse3DMode - response '0'

dev:8972019-12-13 09:34:21.742 pm debugSharpAquos - parse 8 - command response [[0]] - handler [parse3DMode]

dev:8972019-12-13 09:34:21.736 pm debugSharpAquos - parse 8 - Processing DATA [300D] HANDLER [parse3DMode]

dev:8972019-12-13 09:34:21.731 pm debugSharpAquos - parse 8 - RAW DATA [300D] HANDLER [parse3DMode]

dev:8972019-12-13 09:34:21.634 pm debugSharpAquos - request 8 - request = [TDCH? ] to 192.168.254.205:10002

dev:8972019-12-13 09:34:21.628 pm debugSharpAquos - getMutex 8 - Acquired mutex permit

dev:8972019-12-13 09:34:21.623 pm debugSharpAquos - request 8 - Socket [open] CMD [TDCH] Params [?] Handler [parse3DMode]

dev:8972019-12-13 09:34:21.464 pm debugSharpAquos - releaseMutex 7 - Released mutex permit

dev:8972019-12-13 09:34:21.460 pm debugSharpAquos - parseVideoMode - SET - VideoMode [4] VideoModeName [3D Hall]

dev:8972019-12-13 09:34:21.449 pm debugSharpAquos - parseVideoMode - response '4'

dev:8972019-12-13 09:34:21.438 pm debugSharpAquos - parse 7 - command response [[4]] - handler [parseVideoMode]

dev:8972019-12-13 09:34:21.433 pm debugSharpAquos - parse 7 - Processing DATA [340D] HANDLER [parseVideoMode]

dev:8972019-12-13 09:34:21.428 pm debugSharpAquos - parse 7 - RAW DATA [340D] HANDLER [parseVideoMode]

dev:8972019-12-13 09:34:21.367 pm debugSharpAquos - request 7 - request = [AVMD? ] to 192.168.254.205:10002

dev:8972019-12-13 09:34:21.360 pm debugSharpAquos - getMutex 7 - Acquired mutex permit

dev:8972019-12-13 09:34:21.356 pm debugSharpAquos - request 7 - Socket [open] CMD [AVMD] Params [?] Handler [parseVideoMode]

dev:8972019-12-13 09:34:21.222 pm debugSharpAquos - releaseMutex 6 - Released mutex permit

dev:8972019-12-13 09:34:21.218 pm debugSharpAquos - parseSurroundMode - SET - SurroundMode [2] SurroundModeName [Off]

dev:8972019-12-13 09:34:21.196 pm debugSharpAquos - parseSurround - response '2'

dev:8972019-12-13 09:34:21.186 pm debugSharpAquos - parse 6 - command response [[2]] - handler [parseSurroundMode]

dev:8972019-12-13 09:34:21.181 pm debugSharpAquos - parse 6 - Processing DATA [320D] HANDLER [parseSurroundMode]

dev:8972019-12-13 09:34:21.176 pm debugSharpAquos - parse 6 - RAW DATA [320D] HANDLER [parseSurroundMode]

dev:8972019-12-13 09:34:21.100 pm debugSharpAquos - request 6 - request = [ACSU? ] to 192.168.254.205:10002

dev:8972019-12-13 09:34:21.094 pm debugSharpAquos - getMutex 6 - Acquired mutex permit

dev:8972019-12-13 09:34:21.090 pm debugSharpAquos - request 6 - Socket [open] CMD [ACSU] Params [?] Handler [parseSurroundMode]

dev:8972019-12-13 09:34:20.959 pm debugSharpAquos - releaseMutex 5 - Released mutex permit

dev:8972019-12-13 09:34:20.955 pm debugSharpAquos - parseViewMode - SET - ViewMode [8] ViewModeName [Dot by Dot]

dev:8972019-12-13 09:34:20.951 pm debugSharpAquos - parseViewMode - response '8'

dev:8972019-12-13 09:34:20.931 pm debugSharpAquos - parse 5 - command response [[8]] - handler [parseViewMode]

dev:8972019-12-13 09:34:20.926 pm debugSharpAquos - parse 5 - Processing DATA [380D] HANDLER [parseViewMode]

dev:8972019-12-13 09:34:20.921 pm debugSharpAquos - parse 5 - RAW DATA [380D] HANDLER [parseViewMode]

dev:8972019-12-13 09:34:20.832 pm debugSharpAquos - request 5 - request = [WIDE? ] to 192.168.254.205:10002

dev:8972019-12-13 09:34:20.825 pm debugSharpAquos - getMutex 5 - Acquired mutex permit

dev:8972019-12-13 09:34:20.821 pm debugSharpAquos - request 5 - Socket [open] CMD [WIDE] Params [?] Handler [parseViewMode]

dev:8972019-12-13 09:34:20.650 pm debugSharpAquos - releaseMutex 4 - Released mutex permit

dev:8972019-12-13 09:34:20.647 pm debugSharpAquos - parseInput - SET - input [1] InputName [HDMI IN 1]

dev:8972019-12-13 09:34:20.637 pm debugSharpAquos - parseInput - response '1'

dev:8972019-12-13 09:34:20.627 pm debugSharpAquos - parse 4 - command response [[1]] - handler [parseInput]

dev:8972019-12-13 09:34:20.622 pm debugSharpAquos - parse 4 - Processing DATA [310D] HANDLER [parseInput]

dev:8972019-12-13 09:34:20.617 pm debugSharpAquos - parse 4 - RAW DATA [310D] HANDLER [parseInput]

dev:8972019-12-13 09:34:20.565 pm debugSharpAquos - request 4 - request = [IAVD? ] to 192.168.254.205:10002

dev:8972019-12-13 09:34:20.559 pm debugSharpAquos - getMutex 4 - Acquired mutex permit

dev:8972019-12-13 09:34:20.231 pm debugSharpAquos - releaseMutex 3 - Released mutex permit

dev:8972019-12-13 09:34:20.226 pm debugSharpAquos - parseVolume - SET - volume [2]

dev:8972019-12-13 09:34:20.219 pm debugSharpAquos - parseVolume - response '2'

dev:8972019-12-13 09:34:20.215 pm debugSharpAquos - parse 3 - command response [[2]] - handler [parseVolume]

dev:8972019-12-13 09:34:20.210 pm debugSharpAquos - parse 3 - Processing DATA [320D] HANDLER [parseVolume]

dev:8972019-12-13 09:34:20.205 pm debugSharpAquos - parse 3 - RAW DATA [320D] HANDLER [parseVolume]

dev:8972019-12-13 09:34:20.082 pm debugSharpAquos - releaseMutex 2 - Released mutex permit

dev:8972019-12-13 09:34:20.078 pm debugSharpAquos - parseVolume - SET - volume [2]

dev:8972019-12-13 09:34:20.074 pm debugSharpAquos - parseVolume - response '2'

dev:8972019-12-13 09:34:20.070 pm debugSharpAquos - parse 2 - command response [[2]] - handler [parseVolume]

dev:8972019-12-13 09:34:20.065 pm debugSharpAquos - parse 2 - Processing DATA [320D] HANDLER [parseVolume]

dev:8972019-12-13 09:34:20.059 pm debugSharpAquos - parse 2 - RAW DATA [320D] HANDLER [parseVolume]

dev:8972019-12-13 09:34:19.707 pm debugSharpAquos - releaseMutex 1 - Released mutex permit

dev:8972019-12-13 09:34:19.696 pm debugSharpAquos - parseVolume - SET - volume [1]

dev:8972019-12-13 09:34:19.691 pm debugSharpAquos - parseVolume - response '1'

dev:8972019-12-13 09:34:19.681 pm debugSharpAquos - parse 1 - command response [[1]] - handler [parseVolume]

dev:8972019-12-13 09:34:19.647 pm debugSharpAquos - parse 1 - Processing DATA [310D] HANDLER [parseVolume]

dev:8972019-12-13 09:34:19.643 pm debugSharpAquos - parse 1 - RAW DATA [310D] HANDLER [parseVolume]

dev:8972019-12-13 09:34:19.554 pm debugSharpAquos - getMutex 4 - Detected stale mutex - forcing mutex release.

dev:8972019-12-13 09:34:19.549 pm debugSharpAquos - getMutex 4 - mutex permit not yet available. Waiting up to 60 seconds.

dev:8972019-12-13 09:34:19.544 pm debugSharpAquos - request 4 - Socket [open] CMD [IAVD] Params [?] Handler [parseInput]

dev:8972019-12-13 09:34:19.519 pm debugSharpAquos - parse 0 - command response [OK] - data pending

dev:8972019-12-13 09:34:19.514 pm debugSharpAquos - parse 0 - RAW DATA [4F4B0D] HANDLER [parseVolume]

dev:8972019-12-13 09:34:19.287 pm debugSharpAquos - request 3 - request = [VOLM? ] to 192.168.254.205:10002

dev:8972019-12-13 09:34:19.281 pm debugSharpAquos - getMutex 3 - Acquired mutex permit

dev:8972019-12-13 09:34:19.277 pm debugSharpAquos - request 3 - Socket [open] CMD [VOLM] Params [?] Handler [parseVolume]

dev:8972019-12-13 09:34:19.019 pm debugSharpAquos - request 2 - request = [MUTE? ] to 192.168.254.205:10002

dev:8972019-12-13 09:34:19.013 pm debugSharpAquos - getMutex 2 - Acquired mutex permit

dev:8972019-12-13 09:34:19.009 pm debugSharpAquos - request 2 - Socket [open] CMD [MUTE] Params [?] Handler [parseMute]

dev:8972019-12-13 09:34:18.753 pm debugSharpAquos - request 1 - request = [POWR? ] to 192.168.254.205:10002

dev:8972019-12-13 09:34:18.746 pm debugSharpAquos - getMutex 1 - Acquired mutex permit

dev:8972019-12-13 09:34:18.742 pm debugSharpAquos - request 1 - Socket [open] CMD [POWR] Params [?] Handler [parsePower]

dev:8972019-12-13 09:34:18.734 pm debugSharpAquos - getDeviceState() Starting

dev:8972019-12-13 09:34:18.460 pm debugSharpAquos - request 0 - request = [RSPW2 ] to 192.168.254.205:10002

dev:8972019-12-13 09:34:18.453 pm debugSharpAquos - getMutex 0 - Acquired mutex permit

dev:8972019-12-13 09:34:18.435 pm debugSharpAquos - request 0 - Socket [open] CMD [RSPW] Params [2] Handler [parse]

dev:8972019-12-13 09:34:18.430 pm debugSharpAquos - initialize - Poll Rate set to every 5 minutes

dev:8972019-12-13 09:34:18.382 pm debugSharpAquos - openSocket: Socket opened.

dev:8972019-12-13 09:34:17.356 pm debugSharpAquos - openSocket: Connecting to 192.168.254.205:10002

dev:8972019-12-13 09:34:17.351 pm debugSharpAquos - initialize - Set DNI = [9CC7D1ED5F5F]

dev:8972019-12-13 09:34:17.328 pm debugSharpAquos - initialize - IP: 192.168.254.205 PORT: 10002 USER: null PASS: null Poll Rate: 5

dev:8972019-12-13 09:34:16.818 pm debugSharpAquos - closeSocket: Socket closed.

dev:8972019-12-13 09:34:15.906 pm debugSharpAquos - releaseMutex ?-1? - Released mutex permit

dev:8972019-12-13 09:34:15.902 pm debugSharpAquos - socketStatus - Socket [open] Message [receive error: Stream closed.]

dev:8972019-12-13 09:34:15.769 pm debugSharpAquos - closeSocket: Socket close requested.

dev:8972019-12-13 09:34:15.708 pm debugSharpAquos - initialize - Driver v0.28

dev:8972019-12-13 09:34:15.704 pm debugSharpAquos - updated - IP: 192.168.254.205 PORT: 10002 USER: null PASS: null

Here's the device page snapshot.

@albertsmark @cybrmage I setup a virtual TV device and couldn't be more thrilled. This is fantastic. Very much appreciated. This was my weak link in making a movie night scene.

Please post screen shots. Scrolling through your incessant logs is tiring my finger out! :slight_smile:

1 Like