Sharp Aquos TV Driver

Everything works ok but seeing a parse null error, maybe thats normal......

Summary

dev:10252019-12-18 09:37:24.440 am debugSharpAquos - releaseMutex ?868? - Released mutex permit [1]

dev:10252019-12-18 09:37:24.438 am debugSharpAquos - releaseMutex ?868? - ERROR - Permit release not required [1]

dev:10252019-12-18 09:37:24.435 am debugSharpAquos - releaseMutex ?868? - Release mutex request [1]

dev:10252019-12-18 09:37:24.432 am debugSharpAquos - parse - IOBUFFER: 0 entries [[]]

dev:10252019-12-18 09:37:24.429 am errorSharpAquos - parse null - Purging orphan response data [1].

dev:10252019-12-18 09:37:24.424 am debugSharpAquos - releaseMutex ?868? - Released mutex permit [1]

dev:10252019-12-18 09:37:24.421 am debugSharpAquos - releaseMutex ?868? - ERROR - Permit release not required [1]

dev:10252019-12-18 09:37:24.418 am debugSharpAquos - releaseMutex ?868? - Release mutex request [1]

dev:10252019-12-18 09:37:24.409 am debugSharpAquos - parse - IOBUFFER: 0 entries [[]]

dev:10252019-12-18 09:37:24.406 am errorSharpAquos - parse null - Purging orphan response data [OK].

dev:10252019-12-18 09:37:24.381 am debugSharpAquos - releaseMutex ?868? - Released mutex permit [1]

dev:10252019-12-18 09:37:24.378 am debugSharpAquos - releaseMutex ?868? - Release mutex request [0]

dev:10252019-12-18 09:37:24.375 am debugSharpAquos - parsePower - ERROR - invalid power [ERR]

dev:10252019-12-18 09:37:24.372 am debugSharpAquos - parsePower - response 'ERR'

dev:10252019-12-18 09:37:24.369 am debugSharpAquos - parse - 1 - COMMAND [POWR? ] RESPONSE [ERR]

dev:10252019-12-18 09:37:24.366 am debugSharpAquos - parse - IOBUFFER: 2 entries [[POWR? , ERR]]

dev:10252019-12-18 09:37:24.362 am debugSharpAquos - sendSocketCommand - telnet - sending [POWR? ]

dev:10252019-12-18 09:37:24.359 am debugSharpAquos - request 869 - IOBUFFER [ [] ]

dev:10252019-12-18 09:37:24.356 am debugSharpAquos - request 869 - Interface [telnet] Socket [open] CMD [POWR] Params [?]

dev:10252019-12-18 09:37:24.353 am debugSharpAquos - releaseMutex ?868? - Released mutex permit [1]

dev:10252019-12-18 09:37:24.350 am debugSharpAquos - getMutex 869 - Acquired mutex permit [0]

dev:10252019-12-18 09:37:24.343 am debugSharpAquos - releaseMutex ?868? - Release mutex request [0]

dev:10252019-12-18 09:37:24.340 am debugSharpAquos - parsePower - ERROR - invalid power [ERR]

dev:10252019-12-18 09:37:24.337 am debugSharpAquos - parsePower - response 'ERR'

dev:10252019-12-18 09:37:24.334 am debugSharpAquos - parse - 1 - COMMAND [POWR1 ] RESPONSE [ERR]

dev:10252019-12-18 09:37:24.331 am debugSharpAquos - parse - IOBUFFER: 2 entries [[POWR1 , ERR]]

dev:10252019-12-18 09:37:24.323 am debugSharpAquos - getMutex 869 - Acquire mutex request [0]

dev:10252019-12-18 09:37:24.320 am debugSharpAquos - sendSocketCommand - telnet - sending [POWR1 ]

dev:10252019-12-18 09:37:24.316 am debugSharpAquos - request 868 - IOBUFFER [ [] ]

dev:10252019-12-18 09:37:24.313 am debugSharpAquos - request 868 - Interface [telnet] Socket [open] CMD [POWR] Params [1]

dev:10252019-12-18 09:37:24.311 am debugSharpAquos - getMutex 868 - Acquired mutex permit [0]

dev:10252019-12-18 09:37:24.308 am debugSharpAquos - getMutex 868 - Acquire mutex request [1]

dev:10252019-12-18 09:37:24.306 am debugSharpAquos - Turn on TV

Looks like there is an anomoly in the system telnet code...

This should fix it...

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

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

import groovy.transform.Field
@Field static java.util.concurrent.TimeUnit SECONDS = java.util.concurrent.TimeUnit.SECONDS
@Field static java.util.concurrent.Semaphore mutex = new java.util.concurrent.Semaphore(1)
@Field static java.util.concurrent.Semaphore parseMutex = new java.util.concurrent.Semaphore(1)
@Field static volatile java.util.concurrent.CopyOnWriteArrayList IOBUFFER = []
@Field static volatile String tv_channel_DC2U = ""
@Field static volatile String tv_channel_DC2L = ""
@Field static volatile String tv_channel_DC10 = ""
@Field static volatile String tv_channel_DC11 = ""
@Field static volatile Integer SequenceNumber = 0
@Field static volatile Integer SocketErrors = 0
@Field static volatile Integer MutexErrors = 0
@Field static volatile Boolean InitMode
@Field static volatile String CR = "\r"

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)
	input ("verboseDebug", "bool", title: "Enable verbose debug logging", defaultValue: true)
	input ("eventDebug", "bool", title: "Enable event logging", defaultValue: true)
	def pollTime = [:]
	pollTime << ["1" : "Refresh every minute"]
	pollTime << ["5" : "Refresh every 5 minutes"]
	pollTime << ["10" : "Refresh every 10 minutes"]
	pollTime << ["15" : "Refresh every 15 minutes"]
	pollTime << ["30" : "Refresh every 30 minutes"]
	pollTime << ["60" : "Refresh every 1 hour"]
	input ("pollRate", "enum", title: "Device poll rate", options: pollTime, defaultValue: "5")
//	input ("InterfaceProtocol", "enum", title: "Select the Interface Protocol", options: ["telnet","socket","rawSocket"], defaultValue: "telnet")
}

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"
		attribute "3DMode", "string"
		attribute "3DModeName", "string"
		attribute "SleepTimer", "string"
		attribute "SleepTimerSetting", "string"
		attribute "ViewMode", "string"
		attribute "ViewModeName", "string"
		attribute "SurroundMode", "string"
		attribute "SurroundModeName", "string"
		attribute "VideoMode", "string"
		attribute "VideoModeName", "string"
		attribute "channel_type", "string"
		attribute "channel_source", "string"
		attribute "channel", "string"

		command "AA"
		
		command "channelUp"
		command "channelDown"
		
		command "initialize"
		
//		command "on"
//		command "off"
		
		command "toggleMute"
//		command "mute"
//		command "unmute"
		
		command "set3DMode", [[name:"3D Mode", type: "ENUM", description: "Select a 3D Mode", constraints: getvalid3DModes()]]
		command "setSleepTimer", [[name:"Sleep Timer Setting", type: "ENUM", description: "Set a Sleep Timer", constraints: getvalidSleepTimes()]]
							   
		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 "setChannel", [[name:"ChannelType", type: "ENUM", description: "Select channel Type", constraints: ["Analog","Digital"]],[name:"ChannelSource", type: "ENUM", description: "Select channel Source", constraints: ["Air","Cable"]],[name:"ChannelID", type:"STRING"]]
		

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

def AA() {
	InitMode = false
}

def refresh() {
	getDeviceState()
}

def initialize() {
	logDebug = logDebug ?: true
	device.updateSetting("logDebug",logDebug)
	verboseDebug = verboseDebug ?: true
	device.updateSetting("verboseDebug",verboseDebug)
	eventDebug = eventDebug ?: true
	device.updateSetting("eventDebug",eventDebug)
//	state.interface = InterfaceProtocol ?: "telnet"
	state.interface = "telnet"
//	device.updateSetting("InterfaceProtocol",state.interface)
	Init()
}

def Init() {
	if (InitMode == true) {
		log.debug("initialize - Driver " + version() + " - ERROR - initialize() already in progress. Aborting.")
		return
	}
	SocketErrors = 0
	MutexErrors = 0
	log.warn("initialize - Driver " + version() + "  debug [${logDebug}]  verbose [${verboseDebug}]  events [${eventDebug}]  INTERFACE [${state.interface}]  permits [${mutex.availablePermits()}] Init [${InitMode}]  Queue [${mutex.getQueueLength()}]")

	InitMode = true
	
	unschedule()
	releaseMutex()
	parseMutex.reducePermits(Math.abs(1 - parseMutex.availablePermits()))
	closeSocket()
	pauseExecution(500)
	
	if ((destIp == null)||(destIp == "")) {
		log_error("initialize - ERROR - TV IP Address not set")
		InitMode = false
		return
	}
	if ((destPort == null)||(destPort == "")) {
		log_error("initialize - ERROR - TV IP Port not set")
		InitMode = false
		return
	}
	
	pollRate = pollRate ?: "5"
	
	log_info("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_info("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_info("initialize - Set DNI = [${device.deviceNetworkId}]")
	
	if (openSocket() == false) {
		InitMode = false
		log_error("initialize - ERROR - Could not connect to TV. Retry pending")
		runIn(10,"Init")
		return
	}
	
	switch(pollRate) {
		case "1" :
			runEvery1Minute("getDeviceState")
			log_info("initialize - Poll Rate setto every 1 minute")
			break
		case "5" :
			runEvery5Minutes("getDeviceState")
			log_info("initialize - Poll Rate set to every 5 minutes")
			break
		case "10" :
			runEvery10Minutes("getDeviceState")
			log_info("initialize - Poll Rate set to every 10 minutes")
			break
		case "15" :
			runEvery15Minutes("getDeviceState")
			log_info("initialize - Poll Rate set to every 15 minutes")
			break
		case "30" :
			runEvery30Minutes("getDeviceState")
			log_info("initialize - Poll Rate set to every 30 minutes")
			break
		case "60" :
			runEvery1hour("getDeviceState")
			log_info("initialize - Poll Rate set to every 1 hour")
			break
	}

	InitMode = false
	request("RSPW","2")
	getTvInfo()
	getDeviceState()
	log_debug("initialize - COMPLETED")
}

def updated() {
	log_debug("updated - IP [${destIp}]  PORT [${destPort}]  USER [${login}]  PASS [${password}]  INTERFACE [${InterfaceProtocol}]")
	initialize()
}

def installed() {
	log_debug("installed")
}

// global constants
def getvalidSleepTimes() {
	return [
		0: "Off",
		1: "30 Minutes",
		2: "60 Minutes",
		3: "90 Minutes",
		4: "120 Minutes"
	]
}

def getvalid3DModes() {
	return [
		0: "3D Off",
		1: "2D to 3D",
		2: "SBS",
		3: "TAB",
		4: "3D to 2D (SBS)",
		5: "3D to 2D (TAB)",
		6: "3D auto",
		7: "2D auto" 
	]
}

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"
	]
}

def getvalidCommands() {
	return [
		"RSPW","POWR","ITGD","ITVD","IAVD","AVMD","VOLM","HPOS",
		"VPOS","CLCK","PHSE","WIDE","MUTE","ACSU","ACHA","OFTM",
		"DCCH","DA2P","DC2U","DC2L","DC10","DC11","CHUP","CHDW",
		"CLCP","TVNM","MNRD","SWVN","IPPV","TDCH","RCKY"
	]
}

def isValidCommand(String Command) {
	if (Command == null) { Command = "NULL" }
	def CMD = Command.take(4)
	def valid = (getvalidCommands().indexOf(CMD) == -1) ? false : true
//	log_info("isValidCommand [${CMD}] = ${valid}")
	return valid
}

def getNextResponse() {
	def idx = -1
	if (IOBUFFER.size() > 1) {
		IOBUFFER.eachWithIndex { it, i -> 
			// `it` is the current element, while `i` is the index
			if ((isValidCommand(it) == false) && (idx == -1)) {
				idx = i
			}
		}
	}
	return idx
}

//  This is the primary parser for the device responses
def parse(String rawData) {
	parseMutex.acquire()
//	if (state.interface != "telnet") {
	if (rawData.reverse().take(2).reverse() == "0D") {
		// rawSocket and socket interfaces return Hex encoded string data
		rawData = new String(hubitat.helper.HexUtils.hexStringToByteArray(rawData))
	}
	IOBUFFER = IOBUFFER + rawData.tokenize("\r")
	if (InitMode == true) {
		log_error("parse ${PID} - Plugin initializing, not parsing.")
		parseMutex.release()
		return
	}
	if (!isValidCommand(IOBUFFER[0])) {
		log_error("parse ${PID} - Purging orphan response data [${IOBUFFER[0]}].")
		IOBUFFER.remove(0)
	}
	log_info("parse - IOBUFFER: ${IOBUFFER.size()} entries\r [${IOBUFFER}]")
	while (getNextResponse() > 0) {
		if (isValidCommand(IOBUFFER[0]) && !isValidCommand(IOBUFFER[1])) {
			// valid command/response pair at head of buffer
			def Command = IOBUFFER.remove(0)
			def Response = IOBUFFER.remove(0)
			log_info("parse - 1 - COMMAND [${Command}]  RESPONSE [${Response}]")
			if ((this."parse${Command.take(4)}") && (Response != "OK")) this."parse${Command.take(4)}"(Response)
		} else if (isValidCommand(IOBUFFER[0])) {
			def rIdx = getNextResponse()
			if (rIdx > 0) {
				def Response = IOBUFFER.remove(rIdx)
				def Command = IOBUFFER.remove(0)
				log_info("parse - 2 - COMMAND [${Command}]  RESPONSE [${Response}]")
				if ((this."parse${Command.take(4)}") && (Response != "OK")) this."parse${Command.take(4)}"(Response)
			}
		}
	}
	parseMutex.release()
	releaseMutex()
}

def parseTVNM(resp) {
	log_debug("parseTVNM - response '${resp}'")
	state.tv_tvnm = resp
}

def parseMNRD(resp) {
	log_debug("parseMNRD - response '${resp}'")
	state.tv_mnrd = resp
}

def parseSWVN(resp) {
	log_debug("parseSWVN - response '${resp}'")
	state.tv_swvn = resp
}

def parseIPPV(resp) {
	log_debug("parseIPPV - response '${resp}'")
	state.tv_ippv = resp
}

//def parseVolume(resp) {
def parseVOLM(resp) {
	log_debug("parseVolume - response '${resp}'")
	if ((resp != null) && (resp != "ERR")) {
		def VOLdata = 0
		try { VOLdata = resp.toInteger() } catch(e) {}
		send_Event(name: "volume", value: VOLdata ?: 0)
		log_info("parseVolume - SET - volume [${VOLdata ?: 0}]")
	} else {
		log_info("parseVolume - ERROR - invalid volume [${VOLdata}]")
	}
}

//def parseMute(resp) {
def parseMUTE(resp) {
	log_debug("parseMute - response '${resp}'")
	if ((resp != null) && (resp != "ERR")) {
		def MUTEdata = 2
		try { MUTEdata = resp.toInteger() } catch(e) {}
		def val = (MUTEdata == 2) ? "unmuted" : "muted"
		send_Event(name: "mute", value: val)
		log_info("parseMute - SET - mute [${val}]")
	} else {
		log_info("parseMute - ERROR - invalid mute [${resp}]")
	}
}

//def parsePower(resp) {
def parsePOWR(resp) {
	log_debug("parsePower - response '${resp}'")
	if ((resp != null) && (resp != "ERR")) {
		def POWRdata = -1
		try { POWRdata = resp.toInteger() } catch(e) {}
		def val = (POWRdata == 1) ? "on" : "off"
		send_Event(name: "power", value: val)
		send_Event(name: "switch", value: val)
		log_info("parsePower - SET - power [${val}]")
	} else {
		log_info("parsePower - ERROR - invalid power [${resp}]")
	}
}

//def parseInput(resp) {
def parseIAVD(resp) {
	log_debug("parseInput - response '${(resp == "ERR")?"ERR -> 0":resp}'")
	def val = 0
	try { val = resp.toInteger() } catch(e) { val = 0 }
	if (validInputs[val] != null) {
		send_Event(name: "input", value: val)
		send_Event(name: "inputName", value: validInputs[val])
		log_info("parseInput - SET - input [${val}]  InputName [${validInputs[val]}]")
	} else {
		log_info("parseInput - ERROR - Invalid Input [${val}]")
	}
}

//def parse3DMode(resp) {
def parseTDCH(val) {
	log_debug("parse3DMode - response '${val}'")
	if ((val != null) && (val != "ERR") && (valid3DModes[val.toInteger()] != null)) {
		send_Event(name: "3DMode", value: val)
		send_Event(name: "3DModeName", value: valid3DModes[val.toInteger()])
		log_info("parse3DMode - SET - 3DMode [${val}]  3DModeName [${valid3DModes[val.toInteger()]}]")
	} else {
		log_info("parse3DMode - ERROR - Invalid 3DMode [${val}]")
	}
}

//def parseSleepTimer(resp) {
def parseOFTM(val) {
	log_debug("parseSleepTimer - response '${val}'")
	if ((val != null) && (val != "ERR") && (validSleepTimes[val.toInteger()] != null)) {
		send_Event(name: "SleepTimer", value: val)
		send_Event(name: "SleepTimerSetting", value: validSleepTimes[val.toInteger()])
		log_info("parseSleepTimer - SET - SleepTimer [${val}]  SleepTimerSetting [${validSleepTimes[val.toInteger()]}]")
	} else {
		log_info("parseSleepTimer - ERROR - Invalid SleepTimer [${val}]")
	}
}

//def parseViewMode(resp) {
def parseWIDE(val) {
	log_debug("parseViewMode - response '${val}'")
	if ((val != null) && (val != "ERR") && (validViewModes[val.toInteger()] != null)) {
		send_Event(name: "ViewMode", value: val)
		send_Event(name: "ViewModeName", value: validViewModes[val.toInteger()])
		log_info("parseViewMode - SET - ViewMode [${val}]  ViewModeName [${validViewModes[val.toInteger()]}]")
	} else {
		log_info("parseViewMode - ERROR - Invalid ViewMode [${val}]")
	}
}

//def parseSurroundMode(resp) {
def parseACSU(val) {
	log_debug("parseSurround - response '${val}'")
	if ((val != null) && (val != "ERR") && (validSurroundModes[val.toInteger()] != null)) {
		send_Event(name: "SurroundMode", value: val)
		send_Event(name: "SurroundModeName", value: validSurroundModes[val.toInteger()])
		log_info("parseSurroundMode - SET - SurroundMode [${val}]  SurroundModeName [${validSurroundModes[val.toInteger()]}]")
	} else {
		log_info("parseSurroundMode - ERROR - Invalid SurroundMode [${val}]")
	}
}

//def parseVideoMode(resp) {
def parseAVMD(val) {
	log_debug("parseVideoMode - response '${val}'")
	if ((val != null) && (val != "ERR") && (validVideoModes[val.toInteger()] != null)) {
		send_Event(name: "VideoMode", value: val)
		send_Event(name: "VideoModeName", value: validVideoModes[val.toInteger()])
		log_info("parseVideoMode - SET - VideoMode [${val}]  VideoModeName [${validVideoModes[val.toInteger()]}]")
	} else {
		log_info("parseVideoMode - ERROR - Invalid VideoMode [${val}]")
	}
}

def parseDCCH(resp) {
	log_debug("parseDCCH - response '${resp}'")
	if (resp == "ERR") {
		log_info("parseDCCH - ERROR - received [${resp}]")
		return
	}
	send_Event(name: "channel_type", value: "Analog")
	send_Event(name: "channel_source", value: "Air/Cable")
	send_Event(name: "channel", value: resp)
	log_info("parseDCCH - SET - channel_type [Analog]  channel_source [Air/Cable]  channel [${resp}]")
}

def parseDA2P(resp) {
	// TV returns channel data in a different format than required to set the channel...
	log_debug("parseDA2P - response '${resp}'")
	if (resp == "ERR") {
		log_info("parseDA2P - ERROR - received [${resp}]")
		return
	}
	send_Event(name: "channel_type", value: "Digital")
	send_Event(name: "channel_source", value: "Air")
	send_Event(name: "channel", value: resp)
	log_info("parseDA2P - SET - channel_type [Digital]  channel_source [Air]  channel [${resp}]")
}

def parseDC2U(resp) {
	log_debug("parseDC2U - response '${resp}'")
	try {
		tv_channel_DC2U = resp.toInteger()
	} catch(e) {
		log_info("parseDC2U - ERROR - could not process response [${resp}]")
		return false
	}
	def channel = resp.toInteger().toString() + ".0"
	send_Event(name: "channel_type", value: "Digital")
	send_Event(name: "channel_source", value: "Cable")
	send_Event(name: "channel", value: channel)
	log_info("parseDC2U - SET - channel_type [Digital]  channel_source [Air]  channel [${channel}]")
}

def parseDC2L(resp) {
	log_debug("parseDC2L - response '${resp}'")
	try {
		tv_channel_DC2L = resp.toInteger()
	} catch(e) {
		log_info("parseDC2L - ERROR - could not process response [${resp}]")
		return false
	}
	def channel = tv_channel_DC2U + "." + tv_channel_DC2L
	send_Event(name: "channel_type", value: "Digital")
	send_Event(name: "channel_source", value: "Cable")
	send_Event(name: "channel", value: channel)
	log_info("parseDC2L - SET - channel_type [Digital]  channel_source [Air]  channel [${channel}]")
}

def parseDC10(resp) {
	log_debug("parseDC10 - response '${resp}'")
	if (resp == "ERR") {
		log_info("parseDC10 - ERROR - received [${resp}]")
		return
	}
	tv_channel_DC10 = resp
	def channel = null
	try {
		channel = (tv_channel_DC10 ?: "?") + resp.toInteger().toString()
	} catch(e) {
		log_info("parseDC10 - ERROR - could not process response [${resp}]")
		return false
	}
	send_Event(name: "channel_type", value: "Digital")
	send_Event(name: "channel_source", value: "Cable")
	send_Event(name: "channel", value: channel)
	log_info("parseDC10 - SET - channel_type [Digital]  channel_source [Air]  channel [${channel}]")
}

def parseDC11(resp) {
	log_debug("parseDC11 - response '${resp}'")
	if (resp == "ERR") {
		log_info("parseDC11 - ERROR - received [${resp}]")
		return
	}
	tv_channel_DC11 = resp
	def channel = null
	try {
		channel = tv_channel_DC11 + (tv_channel_DC10 ?: "????")
	} catch(e) {
		log_info("parseDC11 - ERROR - could not process response [${resp}]")
		return false
	}
	send_Event(name: "channel_type", value: "Digital")
	send_Event(name: "channel_source", value: "Cable")
	send_Event(name: "channel", value: channel)
	log_info("parseDC11 - SET - channel_type [Digital]  channel_source [Air]  channel [${channel}]")
}

def getTvInfo() {
	request("TVNM","1")
	request("MNRD","1")
	request("SWVN","1")
	request("IPPV","1")
	return true
}

def abortDeviceState() {
	log_debug("getDeviceState() ABORTED.")
	return false
}

def getDeviceState() {
	log_debug("getDeviceState() Starting")
	if (request("POWR","?") == "abort") {	return abortDeviceState() }
	if (request("MUTE","?") == "abort") {	return abortDeviceState() }
	if (request("VOLM","?") == "abort") {	return abortDeviceState() }
	if (request("IAVD","?") == "abort") {	return abortDeviceState() }
	if (request("WIDE","?") == "abort") {	return abortDeviceState() }
	if (request("ACSU","?") == "abort") {	return abortDeviceState() }
	if (request("AVMD","?") == "abort") {	return abortDeviceState() }
	if (request("TDCH","?") == "abort") {	return abortDeviceState() }
	if (request("OFTM","?") == "abort") {	return abortDeviceState() }
	def currentInput = device.latestValue("input")
	if ((currentInput == 0) || (currentInput == "0")) {
		// only query channel data if the input is set to TV
		if (!getChannelStatus()) {	return abortDeviceState() }
	}
	log_debug("getDeviceState() Completed.")
	return true
}

def abortChannelStatus() {
	log_debug("getChannelStatus() ABORTED.")
	return "abort"
}

def getChannelStatus() {
	log_debug("getChannelStatus() Starting")
	if (request("DCCH","?") == "abort") { return abortChannelStatus() } 
	if (request("DA2P","?") == "abort") { return abortChannelStatus() }
	if (request("DC2U","?") == "abort") { return abortChannelStatus() }
	if (request("DC2L","?") == "abort") { return abortChannelStatus() }
	if (request("DC10","?") == "abort") { return abortChannelStatus() }
	if (request("DC11","?") == "abort") { return abortChannelStatus() }
	log_debug("getChannelStatus() Completed.")
	return true
}

// device commands
def setVolume(val) {
	log_debug("setVolume(${val})")
	try {
		val = val.toInteger()
	} catch(e) {
		log_info("setVolume - ERROR - invalid volume vale [${val}]")
	}
	if (val < 0) { val = 0 }
	if (val > 60) { val = 60 }
	log_info("setVolume - SET - volume [${channel}]")
	send_Event(name: "mute", value: "unmuted")
	send_Event(name: "volume", value: val.toString())
	request("VOLM",val.toString())
}

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

def mute() {
	def currentMute = device.latestValue("mute")
	log_debug("mute()     Currently: [${currentMute}]")
//	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","?")
	log_debug("mute() - completed")
}

def unmute() {
	def currentMute = device.latestValue("mute")
	log_debug("unmute()   Currently: [${currentMute}]")
//	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","?")
	log_debug("mute() - completed")
}

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

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

def inputNext() {
	log_debug("inputNext()")
	def current = device.currentValue("input")
	def selectedInputs = ["1","2","3","4","5","6","7","8","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_info("inputRemoteCommand - invalid command (${cmd})")
	}
	log_info("executing inputRemoteCommand('${validRemoteCommands[cmdInt]}')")
	request("RCKY",cmdInt.toString())
}

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

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

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

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

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

def set3DMode(Mode) {
	def idx = null
	getvalid3DModes().each { key, value -> if (value == Mode) idx = key }
	log_debug("set3DMode(${Mode})   IDX: [${idx}]")
	if (idx == null) {
		log_info("set3DMode(${Mode}) - ERROR - 3D Mode is not valid")
		return
	}
	request("TDCH",idx.toString())
	request("TDCH","?")
}

def setSleepTimer(Mode) {
	def idx = null
	getvalidSleepTimes().each { key, value -> if (value == Mode) idx = key }
	log_debug("setSleepTimer(${Mode})   IDX: [${idx}]")
	if (idx == null) {
		log_info("setSleepTimer(${Mode}) - ERROR - Sleep Timer value is not valid")
		return
	}
	request("OFTM",idx.toString())
	request("OFTM","?")
}

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

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

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

def setChannel(String Type, String Source, String ID) {
	log_debug("setChannel(\"${Type}\",\"${Source}\",\"${ID}\")")
	def setID = null
	try {
		setID = ID.toFloat()
	} catch(e) {
		log_info("setChannel - ERROR - Invalid channel Identifier")
		return
	}
	if (Type == "Analog") {
		// analog channel... Air = 2 - 69, cable = 1 - 135
		try {
			setID = ID.toInteger()
		} catch(e) {
			log_info("setChannel - ERROR - Invalid channel Identifier for Analog channels")
			return
		}
		if (Source == "Air") {
			if ((setID < 2) || (setID > 69)) {
				log_info("setChannel - ERROR - Invalid channel Identifier for Analog Air channels")
				return
			}
		} else {
			if ((setID < 1) || (setID > 135)) {
				log_info("setChannel - ERROR - Invalid channel Identifier for Analog Cable channels")
				return
			}
		}
		request("DCCH",setID.toString())
	} else {
		if (Source == "Air") {
			if (ID.length() == 4) {
				def chanx = ID.substring(0,1)+"."+ID.substring(2,3)
				ID = chanx
			}
			if (ID.contains(".")) {
				def chan = ID.tokenize(".")
				def chanMajor = chan[0].toInteger()
				def chanMinor = chan[1].toInteger()
				if ((chanMajor < 0) || (chanMajor > 99) || (chanMinor < 0) || (chanMinor > 99)) {
					log_info("setChannel - ERROR - Invalid channel Identifier for Digital Air channels")
					return
				}
				setID = ("00"+chanMajor.toString()).substring(-2) + ("00"+chanMinor.toString()).substring(-2)
			}
			request("DA2P",setID)
		} else {
			// Digital cable channels
			if (ID.contains(".")) {
				// two part channel numbers
				def chan = ID.tokenize(".")
				def chanMajor = chan[0].toInteger()
				def chanMinor = chan[1].toInteger()
				if ((chanMajor < 0) || (chanMajor > 999) || (chanMinor < 0) || (chanMinor > 999)) {
					log_info("setChannel - ERROR - Invalid channel Identifier for Digital Cable channels")
					return
				}
				setID = ("000" + chanMajor.toString()).reverse().take(3).reverse() + "." + ("000" + chanMinor.toString()).reverse().take(3).reverse()
				request("DC2U",("000" + chanMajor.toString()).reverse().take(3).reverse())
				request("DC2L",("000" + chanMinor.toString()).reverse().take(3).reverse())
			} else {
				// one part channel numbers
				setID = ID.toInteger()
				if (setID > 99999) {
					log_info("setChannel - ERROR - Invalid channel Identifier for Digital Cable channels")
					return
				}
				if (setID < 10000) {
					request("DC10",setID.toString())
					request("DC11","0")
				} else {
					request("DC10",(setID.toString()).reverse().take(4).reverse())
					request("DC11",(setID.toString()).take(1))
				}
			}
		}
	}
	if (setID == null) {
		log_info("setChannel - ERROR Could not determine channels to set for [${Type}][${Source}][${ID}]")
		return
	}
	log_info("setChannel - Setting [${Type}][${Source}] Channel [${setID}]")
//	pauseExecution(250)
	getChannelStatus()
}


// 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) {
	log_info("getMutex ${PId} - Acquire mutex request [${mutex.availablePermits()}]")
	def MaxMutexLock = 2
	def PID = (PId == null) ? "?"+(SequenceNumber-1).toString()+"?" : PId
	if (!mutex.tryAcquire(MaxMutexLock, SECONDS)) {
		log_info("getMutex ${PID} - Failed to acquire mutex permit [${mutex.availablePermits()}]")
		MutexErrors = MutexErrors + 1
		if (MutexErrors > 4) {
			// this many mutex errors mean the connection has stalled
			log_info("getMutex ${PId} - Connection STALLED??? [${mutex.availablePermits()}]")
			//runIn(1,"Init")
		}
		return false
	}
	log_info("getMutex ${PId} - Acquired mutex permit [${mutex.availablePermits()}]")
	return true
}

def releaseMutex(PId = null) {
	def PID = (PId == null) ? "?"+(SequenceNumber-2).toString()+"?" : PId
	log_info("releaseMutex ${PID} - Release mutex request [${mutex.availablePermits()}]")
	if (mutex.availablePermits() == 0) {
		mutex.release()
	} else {
		if (mutex.availablePermits() > 0) {
			mutex.reducePermits(Math.abs(1 - mutex.availablePermits()))
		}
		log_info("releaseMutex ${PID} - ERROR - Permit release not required [${mutex.availablePermits()}]")
	}
	log_info("releaseMutex ${PID} - Released mutex permit [${mutex.availablePermits()}]")
}

def flushMutex() {
	log.warn("FLUSHMUTEX - flushing mutex queue. Queued [${mutex.hasQueuedThreads()}]  Waiting [${mutex.getQueueLength()}] permits [${mutex.availablePermits()}]")
	// prevent command send / response parsing
	mutex.release(1000)
	def LMC = mutex.availablePermits()
	pauseExecution(100)
	while (LMC != mutex.availablePermits()) { 
		if ( mutex.availablePermits() < 2 ) { break }
		LMC = mutex.availablePermits()
		pauseExecution(100)
	}
	pauseExecution(1000)
	mutex.reducePermits(Math.abs(1 - mutex.availablePermits()))
	MutexErrors = 0
	log.warn("FLUSHMUTEX - FLUSHED - Queued [${mutex.hasQueuedThreads()}]  Waiting [${mutex.getQueueLength()}] permits [${mutex.availablePermits()}]")
}

def flushMutex2() {
	log_debug("flushMutex - flushing mutex queue. waiting threads [${mutex.getQueueLength()}] permits [${mutex.availablePermits()}]")
	// prevent command send / response parsing
	def InitialMode = InitMode
	InitMode = true
	// provide enough permits to allow the queued threads to acquire a permit and exit
	mutex.release(999)
	log_debug("flushMutex - Allowing mutex queue to drain. [${mutex.availablePermits()}]")
	pauseExecution(7000)
	// restore the available permits to 1
	def aMutex = mutex.availablePermits()
	mutex.reducePermits(aMutex - 1)
	// restore initial InitMode value
	InitMode = InitialMode
	log_debug("flushMutex - Mutex queue flushed [${mutex.availablePermits()}]")
}

def checkConnectionState() {
	if ((state.socketState == "closed") || (state.socketState == "closing")) {
		log_error("checkConnectionState - ERROR. TV connection is closed. Attempting reconnect.")
		// release the mutex on error
		parseMutex.release()
		releaseMutex()
		if (openSocket() == false) {
			log_error("checkConnectionState - ERROR. Unable to reconnect to TV.")
			return false
		}
	}
	return true
}

def request(String CMD, String Params) {
	// block the thread if the mutex is locked
	if (InitMode == true) {
		log_error("request - ERROR. Request [$CMD] [$Params] dropped. Plugin initializing.")
		return false
	}
	def PID = SequenceNumber++
	if (getMutex(PID) == false) {
		log_debug("request ${PID} - Interface [${state.interface}]  Socket [${state.socketState}]  CMD [${CMD}]  Params [${Params}]")
		log_error("request ${PID} - ERROR. Unable to acquire mutex permit.[${mutex.availablePermits()}]")
		if (MutexErrors > 4) {
			return "abort"
		}
		return false
	} else if (mutex.availablePermits() > 500) {
		log_debug("request ${PID} - Interface [${state.interface}]  Socket [${state.socketState}]  CMD [${CMD}]  Params [${Params}]")
		log_error("request ${PID} - ERROR. Thread aborted by mutex flush. [${mutex.availablePermits()}]")
		return "abort"
	}
	if (InitMode == true) {
		log_error("request - ERROR. Request ${PID} [$CMD] [$Params] dropped. Plugin initializing.")
		return "abort"
	}
	log_info("request ${PID} - Interface [${state.interface}]  Socket [${state.socketState}]  CMD [${CMD}]  Params [${Params}]")
	log_info("request ${PID} - IOBUFFER [\r${IOBUFFER}\r]")

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

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

	if (!sendSocketCommand(Command)) {
//	try {
//		log_debug("request ${PID} - request = [" + Command + "] to ${destIp}:${destPort}")
//		sendSocketCommand(Command + CR)
//	}
//	catch(e) {
		log_error("request - ${state.interface} - ERROR - send to device failed")
		// release the mutex on error
		releaseMutex(PID)
		return false
	}
//	parseMutex.acquire()
//	IOBUFFER.add(Command)
//	parseMutex.release()
	return true
}

def sendSocketCommand(Command) {
	try {
		log_debug("sendSocketCommand - ${state.interface} - sending [${Command}]")
		parseMutex.acquire()
		if (state.interface == "rawSocket") {
			interfaces.rawSocket.sendMessage(Command + CR)
		} else if (state.interface == "socket") {
			hubitat.helper.InterfaceUtils.sendSocketMessage(device, Command + CR)
		} else if (state.interface == "telnet") {
			def msg = new hubitat.device.HubAction(Command, hubitat.device.Protocol.TELNET)
			sendHubCommand(msg)
		}
		IOBUFFER.add(Command)
		parseMutex.release()
		return true
	} catch(e) {
		log_error("sendSocketCommand - ${state.interface} - ERROR - Caught exception '${e}'")
		return false
	}
	return true
}

def closeSocket() {
	log_debug("closeSocket: Socket close requested.")
	state.socketState = "closing"
//	if (state.interface == "rawSocket") {
		interfaces.rawSocket.close()
//	} else if (state.interface == "socket") {
		hubitat.helper.InterfaceUtils.socketClose(device)
//	} else if (state.interface == "telnet") {
		telnetClose()
//	}
	state.socketState = "closed"
	pauseExecution(100)
	flushMutex()
	parseMutex.release()
	parseMutex.release()
	parseMutex.release()
	parseMutex.reducePermits(Math.abs(1 - parseMutex.availablePermits()))
	log_debug("closeSocket: Socket closed. [${mutex.availablePermits()}]  [${parseMutex.availablePermits()}]")
	return true
}

def openSocket() {
	if (state.socketState == "open") {
		log_debug("openSocket: Socket already opened.")
		return true
	}
	log_debug("openSocket: Connecting to ${destIp}:${destPort}")
	try {
		if (state.interface == "rawSocket") {
			interfaces.rawSocket.connect(destIp,destPort.toInteger(), readDelay: 50)
		} else if (state.interface == "socket") {
			hubitat.helper.InterfaceUtils.socketConnect(device, destIp, destPort.toInteger(), byteInterface: false)
		} else if (state.interface == "telnet") {
			telnetConnect([termChars:[13]], destIp, destPort.toInteger(), null, null)
		}
		pauseExecution(1000)
		state.socketState = "open"
		log_debug("openSocket: Socket opened.")
		parseMutex.acquire()
		IOBUFFER = []
		parseMutex.release()
		SocketErrors = 0
		return true
	}
	catch(e) {
		log_error("openSocket: exception = [${e}]")
		state.socketState == "closed"
		return false
	}
}

def telnetStatus(String message) {
	log_debug("telnetStatus - Socket [${state.socketState}]  Message [${message}] - Passing to socketStatus...")
	return socketStatus(message)
}

def socketStatus(String message) {
	log.warn("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)":
			closeSocket()
			state.socketState = "closed"
			log_debug("socketStatus - Write Failed - Attempting reconnect")
			pauseExecution(5000)
			return openSocket()
			break;
		case "receive error: Stream is closed":
		case "receive error: Stream closed.":
			SocketErrors = SocketErrors + 1
			if ((state.socketState != "closing") && (SocketErrors < 10)) {
				closeSocket()
				state.socketState = "closed"
				log_debug("socketStatus - Stream Closed - Attempting reconnect [${SocketErrors}]")
				pauseExecution(5000)
				return openSocket()
			}
			state.socketState = "closed"
			if (SocketErrors > 9) {
				log_debug("socketStatus - Stream Closed - Too many reconnects - execute initialize() to restart")
			}
			return
			break;
		case "send error: Socket closed":
			closeSocket()
			state.socketState = "closed"
			log_debug("socketStatus - Socket Closed - Attempting reconnect")
			pauseExecution(5000)
			return openSocket()
			break;
	}
	log_debug("socketStatus - UNHANDLED socket status [${message}]")
}

def send_Event(eData) {
	if (eventDebug) log.info("SharpAquos - EVENT - [${eData.toString()}]")
	if (eData.isStateChange == null) { eData.isStateChange = false }
	sendEvent(name: eData.name, value: eData.value, displayed:false, isStateChange: eData.isStateChange)
}

def log_debug(debugData) {
	if (logDebug) log.debug("SharpAquos - " + debugData)
}

def log_info(debugData) {
	if (verboseDebug) log_debug(debugData)
}

private log_error(debugData) {
	log.error("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
}

Thank you....yep that fixed it....here are some logs after the install and after a little bit....

Summary

dev:10252019-12-18 05:02:35.559 pm debugSharpAquos - releaseMutex ?134? - Released mutex permit [1]

dev:10252019-12-18 05:02:35.555 pm debugSharpAquos - releaseMutex ?134? - Release mutex request [0]

dev:10252019-12-18 05:02:35.552 pm debugSharpAquos - parseSleepTimer - SET - SleepTimer [0] SleepTimerSetting [Off]

dev:10252019-12-18 05:02:35.547 pm infoSharpAquos - EVENT - [[name:SleepTimerSetting, value:Off]]

dev:10252019-12-18 05:02:35.543 pm infoSharpAquos - EVENT - [[name:SleepTimer, value:0]]

dev:10252019-12-18 05:02:35.530 pm debugSharpAquos - parseSleepTimer - response '0'

dev:10252019-12-18 05:02:35.525 pm debugSharpAquos - parse - 1 - COMMAND [OFTM? ] RESPONSE [0]

dev:10252019-12-18 05:02:35.519 pm debugSharpAquos - parse - IOBUFFER: 2 entries [[OFTM? , 0]]

dev:10252019-12-18 05:02:35.504 pm debugSharpAquos - getDeviceState() Completed.

dev:10252019-12-18 05:02:35.500 pm debugSharpAquos - releaseMutex ?134? - Released mutex permit [0]

dev:10252019-12-18 05:02:35.489 pm debugSharpAquos - sendSocketCommand - telnet - sending [OFTM? ]

dev:10252019-12-18 05:02:35.485 pm debugSharpAquos - request 135 - IOBUFFER [ [] ]

dev:10252019-12-18 05:02:35.481 pm debugSharpAquos - request 135 - Interface [telnet] Socket [open] CMD [OFTM] Params [?]

dev:10252019-12-18 05:02:35.477 pm debugSharpAquos - getMutex 135 - Acquired mutex permit [0]

dev:10252019-12-18 05:02:35.473 pm debugSharpAquos - releaseMutex ?134? - Release mutex request [0]

dev:10252019-12-18 05:02:35.469 pm debugSharpAquos - parse3DMode - SET - 3DMode [0] 3DModeName [3D Off]

dev:10252019-12-18 05:02:35.465 pm infoSharpAquos - EVENT - [[name:3DModeName, value:3D Off]]

dev:10252019-12-18 05:02:35.462 pm infoSharpAquos - EVENT - [[name:3DMode, value:0]]

dev:10252019-12-18 05:02:35.458 pm debugSharpAquos - parse3DMode - response '0'

dev:10252019-12-18 05:02:35.454 pm debugSharpAquos - parse - 1 - COMMAND [TDCH? ] RESPONSE [0]

dev:10252019-12-18 05:02:35.451 pm debugSharpAquos - parse - IOBUFFER: 2 entries [[TDCH? , 0]]

dev:10252019-12-18 05:02:35.447 pm debugSharpAquos - getMutex 135 - Acquire mutex request [0]

dev:10252019-12-18 05:02:35.443 pm debugSharpAquos - releaseMutex ?133? - Released mutex permit [0]

dev:10252019-12-18 05:02:35.439 pm debugSharpAquos - sendSocketCommand - telnet - sending [TDCH? ]

dev:10252019-12-18 05:02:35.436 pm debugSharpAquos - request 134 - IOBUFFER [ [] ]

dev:10252019-12-18 05:02:35.432 pm debugSharpAquos - request 134 - Interface [telnet] Socket [open] CMD [TDCH] Params [?]

dev:10252019-12-18 05:02:35.428 pm debugSharpAquos - getMutex 134 - Acquired mutex permit [0]

dev:10252019-12-18 05:02:35.424 pm debugSharpAquos - releaseMutex ?133? - Release mutex request [0]

dev:10252019-12-18 05:02:35.420 pm debugSharpAquos - parseVideoMode - SET - VideoMode [4] VideoModeName [USER]

dev:10252019-12-18 05:02:35.416 pm infoSharpAquos - EVENT - [[name:VideoModeName, value:USER]]

dev:10252019-12-18 05:02:35.412 pm infoSharpAquos - EVENT - [[name:VideoMode, value:4]]

dev:10252019-12-18 05:02:35.409 pm debugSharpAquos - parseVideoMode - response '4'

dev:10252019-12-18 05:02:35.405 pm debugSharpAquos - parse - 1 - COMMAND [AVMD? ] RESPONSE [4]

dev:10252019-12-18 05:02:35.401 pm debugSharpAquos - parse - IOBUFFER: 2 entries [[AVMD? , 4]]

dev:10252019-12-18 05:02:35.397 pm debugSharpAquos - getMutex 134 - Acquire mutex request [0]

dev:10252019-12-18 05:02:35.394 pm debugSharpAquos - releaseMutex ?132? - Released mutex permit [0]

dev:10252019-12-18 05:02:35.391 pm debugSharpAquos - sendSocketCommand - telnet - sending [AVMD? ]

dev:10252019-12-18 05:02:35.387 pm debugSharpAquos - request 133 - IOBUFFER [ [] ]

dev:10252019-12-18 05:02:35.383 pm debugSharpAquos - request 133 - Interface [telnet] Socket [open] CMD [AVMD] Params [?]

dev:10252019-12-18 05:02:35.380 pm debugSharpAquos - getMutex 133 - Acquired mutex permit [0]

dev:10252019-12-18 05:02:35.376 pm debugSharpAquos - releaseMutex ?132? - Release mutex request [0]

dev:10252019-12-18 05:02:35.372 pm debugSharpAquos - parseSurroundMode - SET - SurroundMode [2] SurroundModeName [Off]

dev:10252019-12-18 05:02:35.368 pm infoSharpAquos - EVENT - [[name:SurroundModeName, value:Off]]

dev:10252019-12-18 05:02:35.364 pm infoSharpAquos - EVENT - [[name:SurroundMode, value:2]]

dev:10252019-12-18 05:02:35.360 pm debugSharpAquos - parseSurround - response '2'

dev:10252019-12-18 05:02:35.356 pm debugSharpAquos - parse - 1 - COMMAND [ACSU? ] RESPONSE [2]

dev:10252019-12-18 05:02:35.352 pm debugSharpAquos - parse - IOBUFFER: 2 entries [[ACSU? , 2]]

dev:10252019-12-18 05:02:35.348 pm debugSharpAquos - getMutex 133 - Acquire mutex request [0]

dev:10252019-12-18 05:02:35.345 pm debugSharpAquos - releaseMutex ?131? - Released mutex permit [0]

dev:10252019-12-18 05:02:35.341 pm debugSharpAquos - sendSocketCommand - telnet - sending [ACSU? ]

dev:10252019-12-18 05:02:35.337 pm debugSharpAquos - request 132 - IOBUFFER [ [] ]

dev:10252019-12-18 05:02:35.334 pm debugSharpAquos - request 132 - Interface [telnet] Socket [open] CMD [ACSU] Params [?]

dev:10252019-12-18 05:02:35.330 pm debugSharpAquos - getMutex 132 - Acquired mutex permit [0]

dev:10252019-12-18 05:02:35.326 pm debugSharpAquos - releaseMutex ?131? - Release mutex request [0]

dev:10252019-12-18 05:02:35.322 pm debugSharpAquos - parseViewMode - SET - ViewMode [8] ViewModeName [Dot by Dot]

dev:10252019-12-18 05:02:35.318 pm infoSharpAquos - EVENT - [[name:ViewModeName, value:Dot by Dot]]

dev:10252019-12-18 05:02:35.315 pm infoSharpAquos - EVENT - [[name:ViewMode, value:8]]

dev:10252019-12-18 05:02:35.311 pm debugSharpAquos - parseViewMode - response '8'

dev:10252019-12-18 05:02:35.307 pm debugSharpAquos - parse - 1 - COMMAND [WIDE? ] RESPONSE [8]

dev:10252019-12-18 05:02:35.304 pm debugSharpAquos - parse - IOBUFFER: 2 entries [[WIDE? , 8]]

dev:10252019-12-18 05:02:35.300 pm debugSharpAquos - getMutex 132 - Acquire mutex request [0]

dev:10252019-12-18 05:02:35.296 pm debugSharpAquos - releaseMutex ?130? - Released mutex permit [0]

dev:10252019-12-18 05:02:35.293 pm debugSharpAquos - sendSocketCommand - telnet - sending [WIDE? ]

dev:10252019-12-18 05:02:35.289 pm debugSharpAquos - request 131 - IOBUFFER [ [] ]

dev:10252019-12-18 05:02:35.285 pm debugSharpAquos - request 131 - Interface [telnet] Socket [open] CMD [WIDE] Params [?]

dev:10252019-12-18 05:02:35.282 pm debugSharpAquos - getMutex 131 - Acquired mutex permit [0]

dev:10252019-12-18 05:02:35.278 pm debugSharpAquos - releaseMutex ?130? - Release mutex request [0]

dev:10252019-12-18 05:02:35.274 pm debugSharpAquos - parseInput - SET - input [1] InputName [HDMI IN 1]

dev:10252019-12-18 05:02:35.270 pm infoSharpAquos - EVENT - [[name:inputName, value:HDMI IN 1]]

dev:10252019-12-18 05:02:35.266 pm infoSharpAquos - EVENT - [[name:input, value:1]]

dev:10252019-12-18 05:02:35.263 pm debugSharpAquos - parseInput - response '1'

dev:10252019-12-18 05:02:35.259 pm debugSharpAquos - parse - 1 - COMMAND [IAVD? ] RESPONSE [1]

dev:10252019-12-18 05:02:35.256 pm debugSharpAquos - parse - IOBUFFER: 2 entries [[IAVD? , 1]]

dev:10252019-12-18 05:02:35.252 pm debugSharpAquos - getMutex 131 - Acquire mutex request [0]

dev:10252019-12-18 05:02:35.249 pm debugSharpAquos - sendSocketCommand - telnet - sending [IAVD? ]

dev:10252019-12-18 05:02:35.245 pm debugSharpAquos - request 130 - IOBUFFER [ [] ]

dev:10252019-12-18 05:02:35.241 pm debugSharpAquos - request 130 - Interface [telnet] Socket [open] CMD [IAVD] Params [?]

dev:10252019-12-18 05:02:35.238 pm debugSharpAquos - getMutex 130 - Acquired mutex permit [0]

dev:10252019-12-18 05:02:35.234 pm debugSharpAquos - releaseMutex ?129? - Released mutex permit [1]

dev:10252019-12-18 05:02:35.230 pm debugSharpAquos - releaseMutex ?129? - Release mutex request [0]

dev:10252019-12-18 05:02:35.226 pm debugSharpAquos - parseVolume - SET - volume [12]

dev:10252019-12-18 05:02:35.222 pm infoSharpAquos - EVENT - [[name:volume, value:12]]

dev:10252019-12-18 05:02:35.218 pm debugSharpAquos - parseVolume - response '12'

dev:10252019-12-18 05:02:35.214 pm debugSharpAquos - parse - 1 - COMMAND [VOLM? ] RESPONSE [12]

dev:10252019-12-18 05:02:35.211 pm debugSharpAquos - parse - IOBUFFER: 2 entries [[VOLM? , 12]]

dev:10252019-12-18 05:02:35.207 pm debugSharpAquos - getMutex 130 - Acquire mutex request [0]

dev:10252019-12-18 05:02:35.203 pm debugSharpAquos - sendSocketCommand - telnet - sending [VOLM? ]

dev:10252019-12-18 05:02:35.199 pm debugSharpAquos - request 129 - IOBUFFER [ [] ]

dev:10252019-12-18 05:02:35.196 pm debugSharpAquos - request 129 - Interface [telnet] Socket [open] CMD [VOLM] Params [?]

dev:10252019-12-18 05:02:35.192 pm debugSharpAquos - releaseMutex ?128? - Released mutex permit [1]

dev:10252019-12-18 05:02:35.189 pm debugSharpAquos - getMutex 129 - Acquired mutex permit [0]

dev:10252019-12-18 05:02:35.185 pm debugSharpAquos - releaseMutex ?128? - Release mutex request [0]

dev:10252019-12-18 05:02:35.181 pm debugSharpAquos - parseMute - SET - mute [unmuted]

dev:10252019-12-18 05:02:35.177 pm infoSharpAquos - EVENT - [[name:mute, value:unmuted]]

dev:10252019-12-18 05:02:35.174 pm debugSharpAquos - parseMute - response '2'

dev:10252019-12-18 05:02:35.170 pm debugSharpAquos - parse - 1 - COMMAND [MUTE? ] RESPONSE [2]

dev:10252019-12-18 05:02:35.165 pm debugSharpAquos - parse - IOBUFFER: 2 entries [[MUTE? , 2]]

dev:10252019-12-18 05:02:35.159 pm debugSharpAquos - getMutex 129 - Acquire mutex request [0]

dev:10252019-12-18 05:02:35.156 pm debugSharpAquos - releaseMutex ?127? - Released mutex permit [0]

dev:10252019-12-18 05:02:35.152 pm debugSharpAquos - sendSocketCommand - telnet - sending [MUTE? ]

dev:10252019-12-18 05:02:35.149 pm debugSharpAquos - request 128 - IOBUFFER [ [] ]

dev:10252019-12-18 05:02:35.145 pm debugSharpAquos - request 128 - Interface [telnet] Socket [open] CMD [MUTE] Params [?]

dev:10252019-12-18 05:02:35.142 pm debugSharpAquos - getMutex 128 - Acquired mutex permit [0]

dev:10252019-12-18 05:02:35.138 pm debugSharpAquos - releaseMutex ?127? - Release mutex request [0]

dev:10252019-12-18 05:02:35.134 pm debugSharpAquos - parsePower - SET - power [on]

dev:10252019-12-18 05:02:35.131 pm infoSharpAquos - EVENT - [[name:switch, value:on]]

dev:10252019-12-18 05:02:35.127 pm infoSharpAquos - EVENT - [[name:power, value:on]]

dev:10252019-12-18 05:02:35.124 pm debugSharpAquos - parsePower - response '1'

dev:10252019-12-18 05:02:35.120 pm debugSharpAquos - parse - 1 - COMMAND [POWR? ] RESPONSE [1]

dev:10252019-12-18 05:02:35.117 pm debugSharpAquos - parse - IOBUFFER: 2 entries [[POWR? , 1]]

dev:10252019-12-18 05:02:35.114 pm debugSharpAquos - getMutex 128 - Acquire mutex request [0]

dev:10252019-12-18 05:02:35.111 pm debugSharpAquos - sendSocketCommand - telnet - sending [POWR? ]

dev:10252019-12-18 05:02:35.106 pm debugSharpAquos - request 127 - IOBUFFER [ [] ]

dev:10252019-12-18 05:02:35.102 pm debugSharpAquos - request 127 - Interface [telnet] Socket [open] CMD [POWR] Params [?]

dev:10252019-12-18 05:02:35.098 pm debugSharpAquos - getMutex 127 - Acquired mutex permit [0]

dev:10252019-12-18 05:02:35.094 pm debugSharpAquos - getMutex 127 - Acquire mutex request [1]

dev:10252019-12-18 05:02:35.089 pm debugSharpAquos - getDeviceState() Starting

Logs after volume changes and mute toggles, looks good.

Summary

dev:10252019-12-18 05:05:07.848 pm debugSharpAquos - releaseMutex ?142? - Released mutex permit [1]

dev:10252019-12-18 05:05:07.843 pm debugSharpAquos - releaseMutex ?142? - Release mutex request [0]

dev:10252019-12-18 05:05:07.838 pm debugSharpAquos - parseMute - SET - mute [unmuted]

dev:10252019-12-18 05:05:07.834 pm infoSharpAquos - EVENT - [[name:mute, value:unmuted]]

dev:10252019-12-18 05:05:07.829 pm debugSharpAquos - parseMute - response '2'

dev:10252019-12-18 05:05:07.825 pm debugSharpAquos - parse - 1 - COMMAND [MUTE? ] RESPONSE [2]

dev:10252019-12-18 05:05:07.815 pm debugSharpAquos - parse - IOBUFFER: 2 entries [[MUTE? , 2]]

dev:10252019-12-18 05:05:07.811 pm debugSharpAquos - toggleMute() - completed

dev:10252019-12-18 05:05:07.806 pm debugSharpAquos - sendSocketCommand - telnet - sending [MUTE? ]

dev:10252019-12-18 05:05:07.802 pm debugSharpAquos - request 143 - IOBUFFER [ [] ]

dev:10252019-12-18 05:05:07.797 pm debugSharpAquos - request 143 - Interface [telnet] Socket [open] CMD [MUTE] Params [?]

dev:10252019-12-18 05:05:07.793 pm debugSharpAquos - releaseMutex ?142? - Released mutex permit [1]

dev:10252019-12-18 05:05:07.788 pm debugSharpAquos - getMutex 143 - Acquired mutex permit [0]

dev:10252019-12-18 05:05:07.784 pm debugSharpAquos - releaseMutex ?142? - Release mutex request [0]

dev:10252019-12-18 05:05:07.780 pm debugSharpAquos - parse - 1 - COMMAND [RCKY31 ] RESPONSE [OK]

dev:10252019-12-18 05:05:07.776 pm debugSharpAquos - parse - IOBUFFER: 2 entries [[RCKY31 , OK]]

dev:10252019-12-18 05:05:07.772 pm debugSharpAquos - getMutex 143 - Acquire mutex request [0]

dev:10252019-12-18 05:05:07.768 pm debugSharpAquos - sendSocketCommand - telnet - sending [RCKY31 ]

dev:10252019-12-18 05:05:07.765 pm debugSharpAquos - request 142 - IOBUFFER [ [] ]

dev:10252019-12-18 05:05:07.761 pm debugSharpAquos - request 142 - Interface [telnet] Socket [open] CMD [RCKY] Params [31]

dev:10252019-12-18 05:05:07.756 pm debugSharpAquos - getMutex 142 - Acquired mutex permit [0]

dev:10252019-12-18 05:05:07.752 pm debugSharpAquos - getMutex 142 - Acquire mutex request [1]

dev:10252019-12-18 05:05:07.747 pm debugSharpAquos - toggleMute()

dev:10252019-12-18 05:05:05.901 pm debugSharpAquos - releaseMutex ?140? - Released mutex permit [1]

dev:10252019-12-18 05:05:05.894 pm debugSharpAquos - releaseMutex ?140? - Release mutex request [0]

dev:10252019-12-18 05:05:05.889 pm debugSharpAquos - parseMute - SET - mute [unmuted]

dev:10252019-12-18 05:05:05.882 pm infoSharpAquos - EVENT - [[name:mute, value:unmuted]]

dev:10252019-12-18 05:05:05.878 pm debugSharpAquos - parseMute - response '2'

dev:10252019-12-18 05:05:05.873 pm debugSharpAquos - parse - 1 - COMMAND [MUTE? ] RESPONSE [2]

dev:10252019-12-18 05:05:05.869 pm debugSharpAquos - parse - IOBUFFER: 2 entries [[MUTE? , 2]]

dev:10252019-12-18 05:05:05.862 pm debugSharpAquos - toggleMute() - completed

dev:10252019-12-18 05:05:05.857 pm debugSharpAquos - sendSocketCommand - telnet - sending [MUTE? ]

dev:10252019-12-18 05:05:05.852 pm debugSharpAquos - request 141 - IOBUFFER [ [] ]

dev:10252019-12-18 05:05:05.848 pm debugSharpAquos - request 141 - Interface [telnet] Socket [open] CMD [MUTE] Params [?]

dev:10252019-12-18 05:05:05.843 pm debugSharpAquos - getMutex 141 - Acquired mutex permit [0]

dev:10252019-12-18 05:05:05.839 pm debugSharpAquos - releaseMutex ?140? - Released mutex permit [1]

dev:10252019-12-18 05:05:05.832 pm debugSharpAquos - releaseMutex ?140? - Release mutex request [0]

dev:10252019-12-18 05:05:05.828 pm debugSharpAquos - parse - 1 - COMMAND [RCKY31 ] RESPONSE [OK]

dev:10252019-12-18 05:05:05.823 pm debugSharpAquos - parse - IOBUFFER: 2 entries [[RCKY31 , OK]]

dev:10252019-12-18 05:05:05.812 pm debugSharpAquos - getMutex 141 - Acquire mutex request [0]

dev:10252019-12-18 05:05:05.808 pm debugSharpAquos - sendSocketCommand - telnet - sending [RCKY31 ]

dev:10252019-12-18 05:05:05.802 pm debugSharpAquos - request 140 - IOBUFFER [ [] ]

dev:10252019-12-18 05:05:05.797 pm debugSharpAquos - request 140 - Interface [telnet] Socket [open] CMD [RCKY] Params [31]

dev:10252019-12-18 05:05:05.782 pm debugSharpAquos - getMutex 140 - Acquired mutex permit [0]

dev:10252019-12-18 05:05:05.774 pm debugSharpAquos - getMutex 140 - Acquire mutex request [1]

dev:10252019-12-18 05:05:05.767 pm debugSharpAquos - toggleMute()

dev:10252019-12-18 05:04:59.526 pm debugSharpAquos - releaseMutex ?138? - Released mutex permit [1]

dev:10252019-12-18 05:04:59.521 pm debugSharpAquos - releaseMutex ?138? - Release mutex request [0]

dev:10252019-12-18 05:04:59.516 pm debugSharpAquos - parseVolume - SET - volume [12]

dev:10252019-12-18 05:04:59.509 pm infoSharpAquos - EVENT - [[name:volume, value:12]]

dev:10252019-12-18 05:04:59.506 pm debugSharpAquos - parseVolume - response '12'

dev:10252019-12-18 05:04:59.500 pm debugSharpAquos - parse - 1 - COMMAND [VOLM? ] RESPONSE [12]

dev:10252019-12-18 05:04:59.496 pm debugSharpAquos - parse - IOBUFFER: 2 entries [[VOLM? , 12]]

dev:10252019-12-18 05:04:59.288 pm debugSharpAquos - sendSocketCommand - telnet - sending [VOLM? ]

dev:10252019-12-18 05:04:59.284 pm debugSharpAquos - request 139 - IOBUFFER [ [] ]

dev:10252019-12-18 05:04:59.280 pm debugSharpAquos - request 139 - Interface [telnet] Socket [open] CMD [VOLM] Params [?]

dev:10252019-12-18 05:04:59.276 pm debugSharpAquos - releaseMutex ?138? - Released mutex permit [1]

dev:10252019-12-18 05:04:59.271 pm debugSharpAquos - getMutex 139 - Acquired mutex permit [0]

dev:10252019-12-18 05:04:59.267 pm debugSharpAquos - releaseMutex ?138? - Release mutex request [0]

dev:10252019-12-18 05:04:59.263 pm debugSharpAquos - parse - 1 - COMMAND [RCKY32 ] RESPONSE [OK]

dev:10252019-12-18 05:04:59.259 pm debugSharpAquos - parse - IOBUFFER: 2 entries [[RCKY32 , OK]]

dev:10252019-12-18 05:04:59.255 pm debugSharpAquos - getMutex 139 - Acquire mutex request [0]

dev:10252019-12-18 05:04:59.250 pm debugSharpAquos - sendSocketCommand - telnet - sending [RCKY32 ]

dev:10252019-12-18 05:04:59.246 pm debugSharpAquos - request 138 - IOBUFFER [ [] ]

dev:10252019-12-18 05:04:59.241 pm debugSharpAquos - request 138 - Interface [telnet] Socket [open] CMD [RCKY] Params [32]

dev:10252019-12-18 05:04:59.237 pm debugSharpAquos - getMutex 138 - Acquired mutex permit [0]

dev:10252019-12-18 05:04:59.234 pm debugSharpAquos - getMutex 138 - Acquire mutex request [1]

dev:10252019-12-18 05:04:59.229 pm debugSharpAquos - volumeDown()

dev:10252019-12-18 05:04:56.511 pm debugSharpAquos - releaseMutex ?136? - Released mutex permit [1]

dev:10252019-12-18 05:04:56.491 pm debugSharpAquos - releaseMutex ?136? - Release mutex request [0]

dev:10252019-12-18 05:04:56.486 pm debugSharpAquos - parseVolume - SET - volume [12]

dev:10252019-12-18 05:04:56.482 pm infoSharpAquos - EVENT - [[name:volume, value:12]]

dev:10252019-12-18 05:04:56.473 pm debugSharpAquos - parseVolume - response '12'

dev:10252019-12-18 05:04:56.466 pm debugSharpAquos - parse - 1 - COMMAND [VOLM? ] RESPONSE [12]

dev:10252019-12-18 05:04:56.458 pm debugSharpAquos - parse - IOBUFFER: 2 entries [[VOLM? , 12]]

dev:10252019-12-18 05:04:56.437 pm debugSharpAquos - sendSocketCommand - telnet - sending [VOLM? ]

dev:10252019-12-18 05:04:56.432 pm debugSharpAquos - request 137 - IOBUFFER [ [] ]

dev:10252019-12-18 05:04:56.428 pm debugSharpAquos - request 137 - Interface [telnet] Socket [open] CMD [VOLM] Params [?]

dev:10252019-12-18 05:04:56.423 pm debugSharpAquos - releaseMutex ?136? - Released mutex permit [1]

dev:10252019-12-18 05:04:56.419 pm debugSharpAquos - getMutex 137 - Acquired mutex permit [0]

dev:10252019-12-18 05:04:56.414 pm debugSharpAquos - releaseMutex ?136? - Release mutex request [0]

dev:10252019-12-18 05:04:56.400 pm debugSharpAquos - parse - 1 - COMMAND [RCKY33 ] RESPONSE [OK]

dev:10252019-12-18 05:04:56.395 pm debugSharpAquos - parse - IOBUFFER: 2 entries [[RCKY33 , OK]]

dev:10252019-12-18 05:04:56.169 pm debugSharpAquos - getMutex 137 - Acquire mutex request [0]

dev:10252019-12-18 05:04:56.164 pm debugSharpAquos - sendSocketCommand - telnet - sending [RCKY33 ]

dev:10252019-12-18 05:04:56.160 pm debugSharpAquos - request 136 - IOBUFFER [ [] ]

dev:10252019-12-18 05:04:56.156 pm debugSharpAquos - request 136 - Interface [telnet] Socket [open] CMD [RCKY] Params [33]

dev:10252019-12-18 05:04:56.150 pm debugSharpAquos - getMutex 136 - Acquired mutex permit [0]

dev:10252019-12-18 05:04:56.146 pm debugSharpAquos - getMutex 136 - Acquire mutex request [1]

dev:10252019-12-18 05:04:56.141 pm debugSharpAquos - volumeUp()

@cybrmage everything is running great....here is a sample of the latest logs for your viewing pleasure:wink:

Summary

dev:10252019-12-18 10:45:45.053 pm debugSharpAquos - openSocket: Socket opened.

dev:10252019-12-18 10:45:44.024 pm debugSharpAquos - openSocket: Connecting to 192.168.254.205:10002

dev:10252019-12-18 10:45:39.004 pm debugSharpAquos - socketStatus - Stream Closed - Attempting reconnect [1]

dev:10252019-12-18 10:45:39.000 pm debugSharpAquos - closeSocket: Socket closed. [1] [1]

dev:10252019-12-18 10:45:38.992 pm warnFLUSHMUTEX - FLUSHED - Queued [false] Waiting [0] permits [1]

dev:10252019-12-18 10:45:37.872 pm warnFLUSHMUTEX - flushing mutex queue. Queued [false] Waiting [0] permits [1]

dev:10252019-12-18 10:45:37.788 pm debugSharpAquos - closeSocket: Socket close requested.

dev:10252019-12-18 10:45:37.784 pm debugSharpAquos - releaseMutex ?850? - Released mutex permit [1]

dev:10252019-12-18 10:45:37.774 pm debugSharpAquos - releaseMutex ?850? - ERROR - Permit release not required [1]

dev:10252019-12-18 10:45:37.770 pm debugSharpAquos - releaseMutex ?850? - Release mutex request [1]

dev:10252019-12-18 10:45:37.765 pm warnsocketStatus - Socket [open] Message [receive error: Stream is closed]

dev:10252019-12-18 10:45:37.760 pm debugSharpAquos - telnetStatus - Socket [open] Message [receive error: Stream is closed] - Passing to socketStatus...

dev:10252019-12-18 10:42:35.897 pm debugSharpAquos - releaseMutex ?850? - Released mutex permit [1]

dev:10252019-12-18 10:42:35.892 pm debugSharpAquos - releaseMutex ?850? - Release mutex request [0]

dev:10252019-12-18 10:42:35.887 pm debugSharpAquos - parseSleepTimer - SET - SleepTimer [0] SleepTimerSetting [Off]

dev:10252019-12-18 10:42:35.881 pm infoSharpAquos - EVENT - [[name:SleepTimerSetting, value:Off]]

dev:10252019-12-18 10:42:35.876 pm infoSharpAquos - EVENT - [[name:SleepTimer, value:0]]

dev:10252019-12-18 10:42:35.871 pm debugSharpAquos - parseSleepTimer - response '0'

dev:10252019-12-18 10:42:35.866 pm debugSharpAquos - parse - 1 - COMMAND [OFTM? ] RESPONSE [0]

dev:10252019-12-18 10:42:35.861 pm debugSharpAquos - parse - IOBUFFER: 2 entries [[OFTM? , 0]]

dev:10252019-12-18 10:42:35.849 pm debugSharpAquos - getDeviceState() Completed.

dev:10252019-12-18 10:42:35.844 pm debugSharpAquos - releaseMutex ?850? - Released mutex permit [0]

dev:10252019-12-18 10:42:35.839 pm debugSharpAquos - sendSocketCommand - telnet - sending [OFTM? ]

dev:10252019-12-18 10:42:35.834 pm debugSharpAquos - request 851 - IOBUFFER [ [] ]

dev:10252019-12-18 10:42:35.829 pm debugSharpAquos - request 851 - Interface [telnet] Socket [open] CMD [OFTM] Params [?]

dev:10252019-12-18 10:42:35.824 pm debugSharpAquos - getMutex 851 - Acquired mutex permit [0]

dev:10252019-12-18 10:42:35.819 pm debugSharpAquos - releaseMutex ?850? - Release mutex request [0]

dev:10252019-12-18 10:42:35.814 pm debugSharpAquos - parse3DMode - SET - 3DMode [0] 3DModeName [3D Off]

dev:10252019-12-18 10:42:35.808 pm infoSharpAquos - EVENT - [[name:3DModeName, value:3D Off]]

dev:10252019-12-18 10:42:35.803 pm infoSharpAquos - EVENT - [[name:3DMode, value:0]]

dev:10252019-12-18 10:42:35.798 pm debugSharpAquos - parse3DMode - response '0'

dev:10252019-12-18 10:42:35.793 pm debugSharpAquos - parse - 1 - COMMAND [TDCH? ] RESPONSE [0]

dev:10252019-12-18 10:42:35.789 pm debugSharpAquos - parse - IOBUFFER: 2 entries [[TDCH? , 0]]

dev:10252019-12-18 10:42:35.784 pm debugSharpAquos - getMutex 851 - Acquire mutex request [0]

dev:10252019-12-18 10:42:35.779 pm debugSharpAquos - releaseMutex ?849? - Released mutex permit [0]

dev:10252019-12-18 10:42:35.774 pm debugSharpAquos - sendSocketCommand - telnet - sending [TDCH? ]

dev:10252019-12-18 10:42:35.769 pm debugSharpAquos - request 850 - IOBUFFER [ [] ]

dev:10252019-12-18 10:42:35.764 pm debugSharpAquos - request 850 - Interface [telnet] Socket [open] CMD [TDCH] Params [?]

dev:10252019-12-18 10:42:35.759 pm debugSharpAquos - getMutex 850 - Acquired mutex permit [0]

dev:10252019-12-18 10:42:35.754 pm debugSharpAquos - releaseMutex ?849? - Release mutex request [0]

dev:10252019-12-18 10:42:35.749 pm debugSharpAquos - parseVideoMode - SET - VideoMode [4] VideoModeName [USER]

dev:10252019-12-18 10:42:35.744 pm infoSharpAquos - EVENT - [[name:VideoModeName, value:USER]]

dev:10252019-12-18 10:42:35.739 pm infoSharpAquos - EVENT - [[name:VideoMode, value:4]]

dev:10252019-12-18 10:42:35.734 pm debugSharpAquos - parseVideoMode - response '4'

dev:10252019-12-18 10:42:35.729 pm debugSharpAquos - parse - 1 - COMMAND [AVMD? ] RESPONSE [4]

dev:10252019-12-18 10:42:35.725 pm debugSharpAquos - parse - IOBUFFER: 2 entries [[AVMD? , 4]]

dev:10252019-12-18 10:42:35.718 pm debugSharpAquos - getMutex 850 - Acquire mutex request [0]

dev:10252019-12-18 10:42:35.713 pm debugSharpAquos - releaseMutex ?848? - Released mutex permit [0]

dev:10252019-12-18 10:42:35.708 pm debugSharpAquos - sendSocketCommand - telnet - sending [AVMD? ]

dev:10252019-12-18 10:42:35.703 pm debugSharpAquos - request 849 - IOBUFFER [ [] ]

dev:10252019-12-18 10:42:35.699 pm debugSharpAquos - request 849 - Interface [telnet] Socket [open] CMD [AVMD] Params [?]

dev:10252019-12-18 10:42:35.694 pm debugSharpAquos - getMutex 849 - Acquired mutex permit [0]

dev:10252019-12-18 10:42:35.689 pm debugSharpAquos - releaseMutex ?848? - Release mutex request [0]

dev:10252019-12-18 10:42:35.684 pm debugSharpAquos - parseSurroundMode - SET - SurroundMode [2] SurroundModeName [Off]

dev:10252019-12-18 10:42:35.679 pm infoSharpAquos - EVENT - [[name:SurroundModeName, value:Off]]

dev:10252019-12-18 10:42:35.674 pm infoSharpAquos - EVENT - [[name:SurroundMode, value:2]]

dev:10252019-12-18 10:42:35.670 pm debugSharpAquos - parseSurround - response '2'

dev:10252019-12-18 10:42:35.665 pm debugSharpAquos - parse - 1 - COMMAND [ACSU? ] RESPONSE [2]

dev:10252019-12-18 10:42:35.660 pm debugSharpAquos - parse - IOBUFFER: 2 entries [[ACSU? , 2]]

dev:10252019-12-18 10:42:35.656 pm debugSharpAquos - getMutex 849 - Acquire mutex request [0]

dev:10252019-12-18 10:42:35.651 pm debugSharpAquos - releaseMutex ?847? - Released mutex permit [1]

dev:10252019-12-18 10:42:35.646 pm debugSharpAquos - sendSocketCommand - telnet - sending [ACSU? ]

dev:10252019-12-18 10:42:35.641 pm debugSharpAquos - request 848 - IOBUFFER [ [] ]

dev:10252019-12-18 10:42:35.636 pm debugSharpAquos - request 848 - Interface [telnet] Socket [open] CMD [ACSU] Params [?]

dev:10252019-12-18 10:42:35.631 pm debugSharpAquos - getMutex 848 - Acquired mutex permit [0]

dev:10252019-12-18 10:42:35.625 pm debugSharpAquos - releaseMutex ?847? - Release mutex request [0]

dev:10252019-12-18 10:42:35.620 pm debugSharpAquos - parseViewMode - SET - ViewMode [8] ViewModeName [Dot by Dot]

dev:10252019-12-18 10:42:35.608 pm infoSharpAquos - EVENT - [[name:ViewModeName, value:Dot by Dot]]

dev:10252019-12-18 10:42:35.603 pm infoSharpAquos - EVENT - [[name:ViewMode, value:8]]

dev:10252019-12-18 10:42:35.598 pm debugSharpAquos - parseViewMode - response '8'

dev:10252019-12-18 10:42:35.593 pm debugSharpAquos - parse - 1 - COMMAND [WIDE? ] RESPONSE [8]

dev:10252019-12-18 10:42:35.588 pm debugSharpAquos - parse - IOBUFFER: 2 entries [[WIDE? , 8]]

dev:10252019-12-18 10:42:35.584 pm debugSharpAquos - getMutex 848 - Acquire mutex request [0]

dev:10252019-12-18 10:42:35.579 pm debugSharpAquos - sendSocketCommand - telnet - sending [WIDE? ]

dev:10252019-12-18 10:42:35.574 pm debugSharpAquos - request 847 - IOBUFFER [ [] ]

dev:10252019-12-18 10:42:35.570 pm debugSharpAquos - request 847 - Interface [telnet] Socket [open] CMD [WIDE] Params [?]

dev:10252019-12-18 10:42:35.565 pm debugSharpAquos - getMutex 847 - Acquired mutex permit [0]

dev:10252019-12-18 10:42:35.560 pm debugSharpAquos - releaseMutex ?846? - Released mutex permit [1]

dev:10252019-12-18 10:42:35.554 pm debugSharpAquos - releaseMutex ?846? - Release mutex request [0]

dev:10252019-12-18 10:42:35.549 pm debugSharpAquos - parseInput - SET - input [1] InputName [HDMI IN 1]

dev:10252019-12-18 10:42:35.544 pm infoSharpAquos - EVENT - [[name:inputName, value:HDMI IN 1]]

dev:10252019-12-18 10:42:35.539 pm infoSharpAquos - EVENT - [[name:input, value:1]]

dev:10252019-12-18 10:42:35.533 pm debugSharpAquos - parseInput - response '1'

dev:10252019-12-18 10:42:35.529 pm debugSharpAquos - parse - 1 - COMMAND [IAVD? ] RESPONSE [1]

dev:10252019-12-18 10:42:35.524 pm debugSharpAquos - parse - IOBUFFER: 2 entries [[IAVD? , 1]]

dev:10252019-12-18 10:42:35.512 pm debugSharpAquos - getMutex 847 - Acquire mutex request [0]

dev:10252019-12-18 10:42:35.507 pm debugSharpAquos - sendSocketCommand - telnet - sending [IAVD? ]

dev:10252019-12-18 10:42:35.502 pm debugSharpAquos - request 846 - IOBUFFER [ [] ]

dev:10252019-12-18 10:42:35.497 pm debugSharpAquos - request 846 - Interface [telnet] Socket [open] CMD [IAVD] Params [?]

dev:10252019-12-18 10:42:35.492 pm debugSharpAquos - releaseMutex ?845? - Released mutex permit [1]

dev:10252019-12-18 10:42:35.487 pm debugSharpAquos - getMutex 846 - Acquired mutex permit [0]

dev:10252019-12-18 10:42:35.483 pm debugSharpAquos - releaseMutex ?845? - Release mutex request [0]

dev:10252019-12-18 10:42:35.478 pm debugSharpAquos - parseVolume - SET - volume [12]

dev:10252019-12-18 10:42:35.473 pm infoSharpAquos - EVENT - [[name:volume, value:12]]

dev:10252019-12-18 10:42:35.468 pm debugSharpAquos - parseVolume - response '12'

dev:10252019-12-18 10:42:35.464 pm debugSharpAquos - parse - 1 - COMMAND [VOLM? ] RESPONSE [12]

dev:10252019-12-18 10:42:35.459 pm debugSharpAquos - parse - IOBUFFER: 2 entries [[VOLM? , 12]]

dev:10252019-12-18 10:42:35.455 pm debugSharpAquos - getMutex 846 - Acquire mutex request [0]

dev:10252019-12-18 10:42:35.451 pm debugSharpAquos - sendSocketCommand - telnet - sending [VOLM? ]

dev:10252019-12-18 10:42:35.446 pm debugSharpAquos - request 845 - IOBUFFER [ [] ]

dev:10252019-12-18 10:42:35.442 pm debugSharpAquos - request 845 - Interface [telnet] Socket [open] CMD [VOLM] Params [?]

dev:10252019-12-18 10:42:35.437 pm debugSharpAquos - getMutex 845 - Acquired mutex permit [0]

dev:10252019-12-18 10:42:35.432 pm debugSharpAquos - releaseMutex ?844? - Released mutex permit [1]

dev:10252019-12-18 10:42:35.427 pm debugSharpAquos - releaseMutex ?844? - Release mutex request [0]

dev:10252019-12-18 10:42:35.422 pm debugSharpAquos - parseMute - SET - mute [unmuted]

dev:10252019-12-18 10:42:35.417 pm infoSharpAquos - EVENT - [[name:mute, value:unmuted]]

dev:10252019-12-18 10:42:35.412 pm debugSharpAquos - parseMute - response '2'

dev:10252019-12-18 10:42:35.408 pm debugSharpAquos - parse - 1 - COMMAND [MUTE? ] RESPONSE [2]

dev:10252019-12-18 10:42:35.404 pm debugSharpAquos - parse - IOBUFFER: 2 entries [[MUTE? , 2]]

dev:10252019-12-18 10:42:35.214 pm debugSharpAquos - getMutex 845 - Acquire mutex request [0]

dev:10252019-12-18 10:42:35.208 pm debugSharpAquos - releaseMutex ?843? - Released mutex permit [0]

dev:10252019-12-18 10:42:35.203 pm debugSharpAquos - sendSocketCommand - telnet - sending [MUTE? ]

dev:10252019-12-18 10:42:35.198 pm debugSharpAquos - request 844 - IOBUFFER [ [] ]

dev:10252019-12-18 10:42:35.193 pm debugSharpAquos - request 844 - Interface [telnet] Socket [open] CMD [MUTE] Params [?]

dev:10252019-12-18 10:42:35.188 pm debugSharpAquos - getMutex 844 - Acquired mutex permit [0]

dev:10252019-12-18 10:42:35.176 pm debugSharpAquos - releaseMutex ?843? - Release mutex request [0]

dev:10252019-12-18 10:42:35.168 pm debugSharpAquos - parsePower - SET - power [on]

dev:10252019-12-18 10:42:35.163 pm infoSharpAquos - EVENT - [[name:switch, value:on]]

dev:10252019-12-18 10:42:35.158 pm infoSharpAquos - EVENT - [[name:power, value:on]]

dev:10252019-12-18 10:42:35.153 pm debugSharpAquos - parsePower - response '1'

dev:10252019-12-18 10:42:35.148 pm debugSharpAquos - parse - 1 - COMMAND [POWR? ] RESPONSE [1]

dev:10252019-12-18 10:42:35.143 pm debugSharpAquos - parse - IOBUFFER: 2 entries [[POWR? , 1]]

dev:10252019-12-18 10:42:35.127 pm debugSharpAquos - getMutex 844 - Acquire mutex request [0]

dev:10252019-12-18 10:42:35.121 pm debugSharpAquos - sendSocketCommand - telnet - sending [POWR? ]

dev:10252019-12-18 10:42:35.113 pm debugSharpAquos - request 843 - IOBUFFER [ [] ]

dev:10252019-12-18 10:42:35.107 pm debugSharpAquos - request 843 - Interface [telnet] Socket [open] CMD [POWR] Params [?]

dev:10252019-12-18 10:42:35.085 pm debugSharpAquos - getMutex 843 - Acquired mutex permit [0]

dev:10252019-12-18 10:42:35.077 pm debugSharpAquos - getMutex 843 - Acquire mutex request [1]

dev:10252019-12-18 10:42:35.070 pm debugSharpAquos - getDeviceState() Starting

dev:10252019-12-18 10:40:45.275 pm debugSharpAquos - openSocket: Socket opened.

dev:10252019-12-18 10:40:44.252 pm debugSharpAquos - openSocket: Connecting to 192.168.254.205:10002

dev:10252019-12-18 10:40:39.253 pm debugSharpAquos - socketStatus - Stream Closed - Attempting reconnect [1]

dev:10252019-12-18 10:40:39.249 pm debugSharpAquos - closeSocket: Socket closed. [1] [1]

dev:10252019-12-18 10:40:39.240 pm warnFLUSHMUTEX - FLUSHED - Queued [false] Waiting [0] permits [1]

dev:10252019-12-18 10:40:38.124 pm warnFLUSHMUTEX - flushing mutex queue. Queued [false] Waiting [0] permits [1]

dev:10252019-12-18 10:40:38.028 pm debugSharpAquos - closeSocket: Socket close requested.

dev:10252019-12-18 10:40:38.025 pm debugSharpAquos - releaseMutex ?841? - Released mutex permit [1]

dev:10252019-12-18 10:40:38.022 pm debugSharpAquos - releaseMutex ?841? - ERROR - Permit release not required [1]

dev:10252019-12-18 10:40:38.019 pm debugSharpAquos - releaseMutex ?841? - Release mutex request [1]

dev:10252019-12-18 10:40:38.016 pm warnsocketStatus - Socket [open] Message [receive error: Stream is closed]

dev:10252019-12-18 10:40:38.013 pm debugSharpAquos - telnetStatus - Socket [open] Message [receive error: Stream is closed] - Passing to socketStatus...

Here is another version to test...

No major changes... just code cleanup - removing useless code, removing experimental code, etc - It should not affect the performance at all.... but I do want to mke sure...

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

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

import groovy.transform.Field
@Field static java.util.concurrent.TimeUnit SECONDS = java.util.concurrent.TimeUnit.SECONDS
@Field static java.util.concurrent.Semaphore mutex = new java.util.concurrent.Semaphore(1)
@Field static java.util.concurrent.Semaphore parseMutex = new java.util.concurrent.Semaphore(1)
@Field static volatile java.util.concurrent.CopyOnWriteArrayList IOBUFFER = []
@Field static volatile String tv_channel_DC2U = ""
@Field static volatile String tv_channel_DC2L = ""
@Field static volatile String tv_channel_DC10 = ""
@Field static volatile String tv_channel_DC11 = ""
@Field static volatile Integer SequenceNumber = 0
@Field static volatile Integer SocketErrors = 0
@Field static volatile Integer MutexErrors = 0
@Field static volatile Boolean InitMode

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)
	input ("verboseDebug", "bool", title: "Enable verbose debug logging", defaultValue: true)
	input ("eventDebug", "bool", title: "Enable event logging", defaultValue: true)
	def pollTime = [:]
	pollTime << ["1" : "Refresh every minute"]
	pollTime << ["5" : "Refresh every 5 minutes"]
	pollTime << ["10" : "Refresh every 10 minutes"]
	pollTime << ["15" : "Refresh every 15 minutes"]
	pollTime << ["30" : "Refresh every 30 minutes"]
	pollTime << ["60" : "Refresh every 1 hour"]
	input ("pollRate", "enum", title: "Device poll rate", options: pollTime, defaultValue: "5")
}

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"
		attribute "3DMode", "string"
		attribute "3DModeName", "string"
		attribute "SleepTimer", "string"
		attribute "SleepTimerSetting", "string"
		attribute "ViewMode", "string"
		attribute "ViewModeName", "string"
		attribute "SurroundMode", "string"
		attribute "SurroundModeName", "string"
		attribute "VideoMode", "string"
		attribute "VideoModeName", "string"
		attribute "channel_type", "string"
		attribute "channel_source", "string"
		attribute "channel", "string"

		command "channelUp"
		command "channelDown"
		
		command "initialize"
		
//		command "on"
//		command "off"
		
		command "toggleMute"
//		command "mute"
//		command "unmute"
		
		command "set3DMode", [[name:"3D Mode", type: "ENUM", description: "Select a 3D Mode", constraints: getvalid3DModes()]]
		command "setSleepTimer", [[name:"Sleep Timer Setting", type: "ENUM", description: "Set a Sleep Timer", constraints: getvalidSleepTimes()]]
							   
		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 "setChannel", [[name:"ChannelType", type: "ENUM", description: "Select channel Type", constraints: ["Analog","Digital"]],[name:"ChannelSource", type: "ENUM", description: "Select channel Source", constraints: ["Air","Cable"]],[name:"ChannelID", type:"STRING"]]
		

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

def refresh() {
	getDeviceState()
}

def initialize() {
	logDebug = logDebug ?: true
	device.updateSetting("logDebug",logDebug)
	verboseDebug = verboseDebug ?: true
	device.updateSetting("verboseDebug",verboseDebug)
	eventDebug = eventDebug ?: true
	device.updateSetting("eventDebug",eventDebug)
	Init()
}

def Init() {
	if (InitMode == true) {
		log.debug("initialize - Driver " + version() + " - ERROR - initialize() already in progress. Aborting.")
		return
	}
	SocketErrors = 0
	MutexErrors = 0
	log.warn("initialize - Driver " + version() + "  debug [${logDebug}]  verbose [${verboseDebug}]  events [${eventDebug}]  permits [${mutex.availablePermits()}] Init [${InitMode}]  Queue [${mutex.getQueueLength()}]")

	InitMode = true
	
	unschedule()
	releaseMutex()
	parseMutex.reducePermits(Math.abs(1 - parseMutex.availablePermits()))
	closeSocket()
	pauseExecution(500)
	
	if ((destIp == null)||(destIp == "")) {
		log_error("initialize - ERROR - TV IP Address not set")
		InitMode = false
		return
	}
	if ((destPort == null)||(destPort == "")) {
		log_error("initialize - ERROR - TV IP Port not set")
		InitMode = false
		return
	}
	
	pollRate = pollRate ?: "5"
	
	log_info("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_info("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_info("initialize - Set DNI = [${device.deviceNetworkId}]")
	
	if (openSocket() == false) {
		InitMode = false
		log_error("initialize - ERROR - Could not connect to TV. Retry pending")
		runIn(10,"Init")
		return
	}
	
	switch(pollRate) {
		case "1" :
			runEvery1Minute("getDeviceState")
			log_info("initialize - Poll Rate setto every 1 minute")
			break
		case "5" :
			runEvery5Minutes("getDeviceState")
			log_info("initialize - Poll Rate set to every 5 minutes")
			break
		case "10" :
			runEvery10Minutes("getDeviceState")
			log_info("initialize - Poll Rate set to every 10 minutes")
			break
		case "15" :
			runEvery15Minutes("getDeviceState")
			log_info("initialize - Poll Rate set to every 15 minutes")
			break
		case "30" :
			runEvery30Minutes("getDeviceState")
			log_info("initialize - Poll Rate set to every 30 minutes")
			break
		case "60" :
			runEvery1hour("getDeviceState")
			log_info("initialize - Poll Rate set to every 1 hour")
			break
	}

	InitMode = false
	request("RSPW","2")
	getTvInfo()
	getDeviceState()
	log_debug("initialize - COMPLETED")
}

def updated() {
	log_debug("updated - IP [${destIp}]  PORT [${destPort}]  USER [${login}]  PASS [${password}]  DEBUG [${LogDebug}]  VERBOSE [${VerboseDebug}]  EVENTS[${eventDebug}]")
	initialize()
}

def installed() {
	log_debug("installed")
}

// global constants
def getvalidSleepTimes() {
	return [
		0: "Off",
		1: "30 Minutes",
		2: "60 Minutes",
		3: "90 Minutes",
		4: "120 Minutes"
	]
}

def getvalid3DModes() {
	return [
		0: "3D Off",
		1: "2D to 3D",
		2: "SBS",
		3: "TAB",
		4: "3D to 2D (SBS)",
		5: "3D to 2D (TAB)",
		6: "3D auto",
		7: "2D auto" 
	]
}

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"
	]
}

def getvalidCommands() {
	return [
		"RSPW","POWR","ITGD","ITVD","IAVD","AVMD","VOLM","HPOS",
		"VPOS","CLCK","PHSE","WIDE","MUTE","ACSU","ACHA","OFTM",
		"DCCH","DA2P","DC2U","DC2L","DC10","DC11","CHUP","CHDW",
		"CLCP","TVNM","MNRD","SWVN","IPPV","TDCH","RCKY"
	]
}

def isValidCommand(String Command) {
	if (Command == null) { Command = "NULL" }
	def CMD = Command.take(4)
	def valid = (getvalidCommands().indexOf(CMD) == -1) ? false : true
	return valid
}

def getNextResponse() {
	def idx = -1
	if (IOBUFFER.size() > 1) {
		IOBUFFER.eachWithIndex { it, i -> 
			// `it` is the current element, while `i` is the index
			if ((isValidCommand(it) == false) && (idx == -1)) {
				idx = i
			}
		}
	}
	return idx
}

//  This is the primary parser for the device responses
def parse(String rawData) {
	parseMutex.acquire()
	if (rawData.reverse().take(2).reverse() == "0D") {
		// rawSocket and socket interfaces return Hex encoded string data
		rawData = new String(hubitat.helper.HexUtils.hexStringToByteArray(rawData))
	}
	IOBUFFER = IOBUFFER + rawData.tokenize("\r")
	if (InitMode == true) {
		log_error("parse - Plugin initializing, not parsing.")
		parseMutex.release()
		return
	}
	if (!isValidCommand(IOBUFFER[0])) {
		log_error("parse - Purging orphan response data [${IOBUFFER[0]}].")
		IOBUFFER.remove(0)
	}
	log_info("parse - IOBUFFER: ${IOBUFFER.size()} entries\r [${IOBUFFER}]")
	while (getNextResponse() > 0) {
		if (isValidCommand(IOBUFFER[0]) && !isValidCommand(IOBUFFER[1])) {
			// valid command/response pair at head of buffer
			def Command = IOBUFFER.remove(0)
			def Response = IOBUFFER.remove(0)
			log_info("parse - 1 - COMMAND [${Command}]  RESPONSE [${Response}]")
			if ((this."parse${Command.take(4)}") && (Response != "OK")) this."parse${Command.take(4)}"(Response)
		} else if (isValidCommand(IOBUFFER[0])) {
			def rIdx = getNextResponse()
			if (rIdx > 0) {
				def Response = IOBUFFER.remove(rIdx)
				def Command = IOBUFFER.remove(0)
				log_info("parse - 2 - COMMAND [${Command}]  RESPONSE [${Response}]")
				if ((this."parse${Command.take(4)}") && (Response != "OK")) this."parse${Command.take(4)}"(Response)
			}
		}
	}
	parseMutex.release()
	releaseMutex()
}

def parseTVNM(resp) {
	log_debug("parseTVNM - response '${resp}'")
	state.tv_tvnm = resp
}

def parseMNRD(resp) {
	log_debug("parseMNRD - response '${resp}'")
	state.tv_mnrd = resp
}

def parseSWVN(resp) {
	log_debug("parseSWVN - response '${resp}'")
	state.tv_swvn = resp
}

def parseIPPV(resp) {
	log_debug("parseIPPV - response '${resp}'")
	state.tv_ippv = resp
}

//def parseVolume(resp) {
def parseVOLM(resp) {
	log_debug("parseVolume - response '${resp}'")
	if ((resp != null) && (resp != "ERR")) {
		def VOLdata = 0
		try { VOLdata = resp.toInteger() } catch(e) {}
		send_Event(name: "volume", value: VOLdata ?: 0)
		log_info("parseVolume - SET - volume [${VOLdata ?: 0}]")
	} else {
		log_info("parseVolume - ERROR - invalid volume [${VOLdata}]")
	}
}

//def parseMute(resp) {
def parseMUTE(resp) {
	log_debug("parseMute - response '${resp}'")
	if ((resp != null) && (resp != "ERR")) {
		def MUTEdata = 2
		try { MUTEdata = resp.toInteger() } catch(e) {}
		def val = (MUTEdata == 2) ? "unmuted" : "muted"
		send_Event(name: "mute", value: val)
		log_info("parseMute - SET - mute [${val}]")
	} else {
		log_info("parseMute - ERROR - invalid mute [${resp}]")
	}
}

//def parsePower(resp) {
def parsePOWR(resp) {
	log_debug("parsePower - response '${resp}'")
	if ((resp != null) && (resp != "ERR")) {
		def POWRdata = -1
		try { POWRdata = resp.toInteger() } catch(e) {}
		def val = (POWRdata == 1) ? "on" : "off"
		send_Event(name: "power", value: val)
		send_Event(name: "switch", value: val)
		log_info("parsePower - SET - power [${val}]")
	} else {
		log_info("parsePower - ERROR - invalid power [${resp}]")
	}
}

//def parseInput(resp) {
def parseIAVD(resp) {
	log_debug("parseInput - response '${(resp == "ERR")?"ERR -> 0":resp}'")
	def val = 0
	try { val = resp.toInteger() } catch(e) { val = 0 }
	if (validInputs[val] != null) {
		send_Event(name: "input", value: val)
		send_Event(name: "inputName", value: validInputs[val])
		log_info("parseInput - SET - input [${val}]  InputName [${validInputs[val]}]")
	} else {
		log_info("parseInput - ERROR - Invalid Input [${val}]")
	}
}

//def parse3DMode(resp) {
def parseTDCH(val) {
	log_debug("parse3DMode - response '${val}'")
	if ((val != null) && (val != "ERR") && (valid3DModes[val.toInteger()] != null)) {
		send_Event(name: "3DMode", value: val)
		send_Event(name: "3DModeName", value: valid3DModes[val.toInteger()])
		log_info("parse3DMode - SET - 3DMode [${val}]  3DModeName [${valid3DModes[val.toInteger()]}]")
	} else {
		log_info("parse3DMode - ERROR - Invalid 3DMode [${val}]")
	}
}

//def parseSleepTimer(resp) {
def parseOFTM(val) {
	log_debug("parseSleepTimer - response '${val}'")
	if ((val != null) && (val != "ERR") && (validSleepTimes[val.toInteger()] != null)) {
		send_Event(name: "SleepTimer", value: val)
		send_Event(name: "SleepTimerSetting", value: validSleepTimes[val.toInteger()])
		log_info("parseSleepTimer - SET - SleepTimer [${val}]  SleepTimerSetting [${validSleepTimes[val.toInteger()]}]")
	} else {
		log_info("parseSleepTimer - ERROR - Invalid SleepTimer [${val}]")
	}
}

//def parseViewMode(resp) {
def parseWIDE(val) {
	log_debug("parseViewMode - response '${val}'")
	if ((val != null) && (val != "ERR") && (validViewModes[val.toInteger()] != null)) {
		send_Event(name: "ViewMode", value: val)
		send_Event(name: "ViewModeName", value: validViewModes[val.toInteger()])
		log_info("parseViewMode - SET - ViewMode [${val}]  ViewModeName [${validViewModes[val.toInteger()]}]")
	} else {
		log_info("parseViewMode - ERROR - Invalid ViewMode [${val}]")
	}
}

//def parseSurroundMode(resp) {
def parseACSU(val) {
	log_debug("parseSurround - response '${val}'")
	if ((val != null) && (val != "ERR") && (validSurroundModes[val.toInteger()] != null)) {
		send_Event(name: "SurroundMode", value: val)
		send_Event(name: "SurroundModeName", value: validSurroundModes[val.toInteger()])
		log_info("parseSurroundMode - SET - SurroundMode [${val}]  SurroundModeName [${validSurroundModes[val.toInteger()]}]")
	} else {
		log_info("parseSurroundMode - ERROR - Invalid SurroundMode [${val}]")
	}
}

//def parseVideoMode(resp) {
def parseAVMD(val) {
	log_debug("parseVideoMode - response '${val}'")
	if ((val != null) && (val != "ERR") && (validVideoModes[val.toInteger()] != null)) {
		send_Event(name: "VideoMode", value: val)
		send_Event(name: "VideoModeName", value: validVideoModes[val.toInteger()])
		log_info("parseVideoMode - SET - VideoMode [${val}]  VideoModeName [${validVideoModes[val.toInteger()]}]")
	} else {
		log_info("parseVideoMode - ERROR - Invalid VideoMode [${val}]")
	}
}

def parseDCCH(resp) {
	log_debug("parseDCCH - response '${resp}'")
	if (resp == "ERR") {
		log_info("parseDCCH - ERROR - received [${resp}]")
		return
	}
	send_Event(name: "channel_type", value: "Analog")
	send_Event(name: "channel_source", value: "Air/Cable")
	send_Event(name: "channel", value: resp)
	log_info("parseDCCH - SET - channel_type [Analog]  channel_source [Air/Cable]  channel [${resp}]")
}

def parseDA2P(resp) {
	// TV returns channel data in a different format than required to set the channel...
	log_debug("parseDA2P - response '${resp}'")
	if (resp == "ERR") {
		log_info("parseDA2P - ERROR - received [${resp}]")
		return
	}
	send_Event(name: "channel_type", value: "Digital")
	send_Event(name: "channel_source", value: "Air")
	send_Event(name: "channel", value: resp)
	log_info("parseDA2P - SET - channel_type [Digital]  channel_source [Air]  channel [${resp}]")
}

def parseDC2U(resp) {
	log_debug("parseDC2U - response '${resp}'")
	try {
		tv_channel_DC2U = resp.toInteger()
	} catch(e) {
		log_info("parseDC2U - ERROR - could not process response [${resp}]")
		return false
	}
	def channel = resp.toInteger().toString() + ".0"
	send_Event(name: "channel_type", value: "Digital")
	send_Event(name: "channel_source", value: "Cable")
	send_Event(name: "channel", value: channel)
	log_info("parseDC2U - SET - channel_type [Digital]  channel_source [Air]  channel [${channel}]")
}

def parseDC2L(resp) {
	log_debug("parseDC2L - response '${resp}'")
	try {
		tv_channel_DC2L = resp.toInteger()
	} catch(e) {
		log_info("parseDC2L - ERROR - could not process response [${resp}]")
		return false
	}
	def channel = tv_channel_DC2U + "." + tv_channel_DC2L
	send_Event(name: "channel_type", value: "Digital")
	send_Event(name: "channel_source", value: "Cable")
	send_Event(name: "channel", value: channel)
	log_info("parseDC2L - SET - channel_type [Digital]  channel_source [Air]  channel [${channel}]")
}

def parseDC10(resp) {
	log_debug("parseDC10 - response '${resp}'")
	if (resp == "ERR") {
		log_info("parseDC10 - ERROR - received [${resp}]")
		return
	}
	tv_channel_DC10 = resp
	def channel = null
	try {
		channel = (tv_channel_DC10 ?: "?") + resp.toInteger().toString()
	} catch(e) {
		log_info("parseDC10 - ERROR - could not process response [${resp}]")
		return false
	}
	send_Event(name: "channel_type", value: "Digital")
	send_Event(name: "channel_source", value: "Cable")
	send_Event(name: "channel", value: channel)
	log_info("parseDC10 - SET - channel_type [Digital]  channel_source [Air]  channel [${channel}]")
}

def parseDC11(resp) {
	log_debug("parseDC11 - response '${resp}'")
	if (resp == "ERR") {
		log_info("parseDC11 - ERROR - received [${resp}]")
		return
	}
	tv_channel_DC11 = resp
	def channel = null
	try {
		channel = tv_channel_DC11 + (tv_channel_DC10 ?: "????")
	} catch(e) {
		log_info("parseDC11 - ERROR - could not process response [${resp}]")
		return false
	}
	send_Event(name: "channel_type", value: "Digital")
	send_Event(name: "channel_source", value: "Cable")
	send_Event(name: "channel", value: channel)
	log_info("parseDC11 - SET - channel_type [Digital]  channel_source [Air]  channel [${channel}]")
}

def getTvInfo() {
	request("TVNM","1")
	request("MNRD","1")
	request("SWVN","1")
	request("IPPV","1")
	return true
}

def abortDeviceState() {
	log_debug("getDeviceState() ABORTED.")
	return false
}

def getDeviceState() {
	log_debug("getDeviceState() Starting")
	if (request("POWR","?") == "abort") {	return abortDeviceState() }
	if (request("MUTE","?") == "abort") {	return abortDeviceState() }
	if (request("VOLM","?") == "abort") {	return abortDeviceState() }
	if (request("IAVD","?") == "abort") {	return abortDeviceState() }
	if (request("WIDE","?") == "abort") {	return abortDeviceState() }
	if (request("ACSU","?") == "abort") {	return abortDeviceState() }
	if (request("AVMD","?") == "abort") {	return abortDeviceState() }
	if (request("TDCH","?") == "abort") {	return abortDeviceState() }
	if (request("OFTM","?") == "abort") {	return abortDeviceState() }
	def currentInput = device.latestValue("input")
	if ((currentInput == 0) || (currentInput == "0")) {
		// only query channel data if the input is set to TV
		if (!getChannelStatus()) {	return abortDeviceState() }
	}
	log_debug("getDeviceState() Completed.")
	return true
}

def abortChannelStatus() {
	log_debug("getChannelStatus() ABORTED.")
	return "abort"
}

def getChannelStatus() {
	log_debug("getChannelStatus() Starting")
	if (request("DCCH","?") == "abort") { return abortChannelStatus() } 
	if (request("DA2P","?") == "abort") { return abortChannelStatus() }
	if (request("DC2U","?") == "abort") { return abortChannelStatus() }
	if (request("DC2L","?") == "abort") { return abortChannelStatus() }
	if (request("DC10","?") == "abort") { return abortChannelStatus() }
	if (request("DC11","?") == "abort") { return abortChannelStatus() }
	log_debug("getChannelStatus() Completed.")
	return true
}

// device commands
def setVolume(val) {
	log_debug("setVolume(${val})")
	try {
		val = val.toInteger()
	} catch(e) {
		log_info("setVolume - ERROR - invalid volume vale [${val}]")
	}
	if (val < 0) { val = 0 }
	if (val > 60) { val = 60 }
	log_info("setVolume - SET - volume [${channel}]")
	send_Event(name: "mute", value: "unmuted")
	send_Event(name: "volume", value: val.toString())
	request("VOLM",val.toString())
}

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

def mute() {
	def currentMute = device.latestValue("mute")
	log_debug("mute()     Currently: [${currentMute}]")
	request("MUTE","1")
	request("MUTE","?")
	log_debug("mute() - completed")
}

def unmute() {
	def currentMute = device.latestValue("mute")
	log_debug("unmute()   Currently: [${currentMute}]")
	request("MUTE","2")
	request("MUTE","?")
	log_debug("mute() - completed")
}

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

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

def inputNext() {
	log_debug("inputNext()")
	def current = device.currentValue("input")
	def selectedInputs = ["1","2","3","4","5","6","7","8","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_info("inputRemoteCommand - invalid command (${cmd})")
	}
	log_info("executing inputRemoteCommand('${validRemoteCommands[cmdInt]}')")
	request("RCKY",cmdInt.toString())
}

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

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

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

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

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

def set3DMode(Mode) {
	def idx = null
	getvalid3DModes().each { key, value -> if (value == Mode) idx = key }
	log_debug("set3DMode(${Mode})   IDX: [${idx}]")
	if (idx == null) {
		log_info("set3DMode(${Mode}) - ERROR - 3D Mode is not valid")
		return
	}
	request("TDCH",idx.toString())
	request("TDCH","?")
}

def setSleepTimer(Mode) {
	def idx = null
	getvalidSleepTimes().each { key, value -> if (value == Mode) idx = key }
	log_debug("setSleepTimer(${Mode})   IDX: [${idx}]")
	if (idx == null) {
		log_info("setSleepTimer(${Mode}) - ERROR - Sleep Timer value is not valid")
		return
	}
	request("OFTM",idx.toString())
	request("OFTM","?")
}

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

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

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

def setChannel(String Type, String Source, String ID) {
	log_debug("setChannel(\"${Type}\",\"${Source}\",\"${ID}\")")
	def setID = null
	try {
		setID = ID.toFloat()
	} catch(e) {
		log_info("setChannel - ERROR - Invalid channel Identifier")
		return
	}
	if (Type == "Analog") {
		// analog channel... Air = 2 - 69, cable = 1 - 135
		try {
			setID = ID.toInteger()
		} catch(e) {
			log_info("setChannel - ERROR - Invalid channel Identifier for Analog channels")
			return
		}
		if (Source == "Air") {
			if ((setID < 2) || (setID > 69)) {
				log_info("setChannel - ERROR - Invalid channel Identifier for Analog Air channels")
				return
			}
		} else {
			if ((setID < 1) || (setID > 135)) {
				log_info("setChannel - ERROR - Invalid channel Identifier for Analog Cable channels")
				return
			}
		}
		request("DCCH",setID.toString())
	} else {
		if (Source == "Air") {
			if (ID.length() == 4) {
				def chanx = ID.substring(0,1)+"."+ID.substring(2,3)
				ID = chanx
			}
			if (ID.contains(".")) {
				def chan = ID.tokenize(".")
				def chanMajor = chan[0].toInteger()
				def chanMinor = chan[1].toInteger()
				if ((chanMajor < 0) || (chanMajor > 99) || (chanMinor < 0) || (chanMinor > 99)) {
					log_info("setChannel - ERROR - Invalid channel Identifier for Digital Air channels")
					return
				}
				setID = ("00"+chanMajor.toString()).substring(-2) + ("00"+chanMinor.toString()).substring(-2)
			}
			request("DA2P",setID)
		} else {
			// Digital cable channels
			if (ID.contains(".")) {
				// two part channel numbers
				def chan = ID.tokenize(".")
				def chanMajor = chan[0].toInteger()
				def chanMinor = chan[1].toInteger()
				if ((chanMajor < 0) || (chanMajor > 999) || (chanMinor < 0) || (chanMinor > 999)) {
					log_info("setChannel - ERROR - Invalid channel Identifier for Digital Cable channels")
					return
				}
				setID = ("000" + chanMajor.toString()).reverse().take(3).reverse() + "." + ("000" + chanMinor.toString()).reverse().take(3).reverse()
				request("DC2U",("000" + chanMajor.toString()).reverse().take(3).reverse())
				request("DC2L",("000" + chanMinor.toString()).reverse().take(3).reverse())
			} else {
				// one part channel numbers
				setID = ID.toInteger()
				if (setID > 99999) {
					log_info("setChannel - ERROR - Invalid channel Identifier for Digital Cable channels")
					return
				}
				if (setID < 10000) {
					request("DC10",setID.toString())
					request("DC11","0")
				} else {
					request("DC10",(setID.toString()).reverse().take(4).reverse())
					request("DC11",(setID.toString()).take(1))
				}
			}
		}
	}
	if (setID == null) {
		log_info("setChannel - ERROR Could not determine channels to set for [${Type}][${Source}][${ID}]")
		return
	}
	log_info("setChannel - Setting [${Type}][${Source}] Channel [${setID}]")
	getChannelStatus()
}


// 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) {
	log_info("getMutex ${PId} - Acquire mutex request [${mutex.availablePermits()}]")
	def MaxMutexLock = 2
	def PID = (PId == null) ? "?"+(SequenceNumber-1).toString()+"?" : PId
	if (!mutex.tryAcquire(MaxMutexLock, SECONDS)) {
		log_info("getMutex ${PID} - Failed to acquire mutex permit [${mutex.availablePermits()}]")
		MutexErrors = MutexErrors + 1
		if (MutexErrors > 4) {
			// this many mutex errors mean the connection has stalled
			log_info("getMutex ${PId} - Connection STALLED??? [${mutex.availablePermits()}]")
			//runIn(1,"Init")
		}
		return false
	}
	log_info("getMutex ${PId} - Acquired mutex permit [${mutex.availablePermits()}]")
	return true
}

def releaseMutex(PId = null) {
	def PID = (PId == null) ? "?"+(SequenceNumber-2).toString()+"?" : PId
	log_info("releaseMutex ${PID} - Release mutex request [${mutex.availablePermits()}]")
	if (mutex.availablePermits() == 0) {
		mutex.release()
	} else {
		if (mutex.availablePermits() > 0) {
			mutex.reducePermits(Math.abs(1 - mutex.availablePermits()))
		}
		log_info("releaseMutex ${PID} - ERROR - Permit release not required [${mutex.availablePermits()}]")
	}
	log_info("releaseMutex ${PID} - Released mutex permit [${mutex.availablePermits()}]")
}

def flushMutex() {
	log_warn("FLUSHMUTEX - flushing mutex queue. Queued [${mutex.hasQueuedThreads()}]  Waiting [${mutex.getQueueLength()}] permits [${mutex.availablePermits()}]")
	// prevent command send / response parsing
	mutex.release(1000)
	def LMC = mutex.availablePermits()
	pauseExecution(100)
	while (LMC != mutex.availablePermits()) { 
		if ( mutex.availablePermits() < 2 ) { break }
		LMC = mutex.availablePermits()
		pauseExecution(100)
	}
	pauseExecution(1000)
	mutex.reducePermits(Math.abs(1 - mutex.availablePermits()))
	MutexErrors = 0
	log_warn("FLUSHMUTEX - FLUSHED - Queued [${mutex.hasQueuedThreads()}]  Waiting [${mutex.getQueueLength()}] permits [${mutex.availablePermits()}]")
}

def request(String CMD, String Params) {
	// block the thread if the mutex is locked
	if (InitMode == true) {
		log_error("request - ERROR. Request [$CMD] [$Params] dropped. Plugin initializing.")
		return false
	}
	def PID = SequenceNumber++
	if (getMutex(PID) == false) {
		log_debug("request ${PID} - Socket [${state.socketState}]  CMD [${CMD}]  Params [${Params}]")
		log_error("request ${PID} - ERROR. Unable to acquire mutex permit.[${mutex.availablePermits()}]")
		if (MutexErrors > 4) {
			return "abort"
		}
		return false
	} else if (mutex.availablePermits() > 500) {
		log_debug("request ${PID} - Socket [${state.socketState}]  CMD [${CMD}]  Params [${Params}]")
		log_error("request ${PID} - ERROR. Thread aborted by mutex flush. [${mutex.availablePermits()}]")
		return "abort"
	}
	if (InitMode == true) {
		log_error("request - ERROR. Request ${PID} [$CMD] [$Params] dropped. Plugin initializing.")
		return "abort"
	}
	log_info("request ${PID} - Socket [${state.socketState}]  CMD [${CMD}]  Params [${Params}]")
	log_info("request ${PID} - IOBUFFER [\r${IOBUFFER}\r]")

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

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

	if (!sendSocketCommand(Command)) {
		log_error("request - ERROR - send to device failed")
		// release the mutex on error
		releaseMutex(PID)
		return false
	}
	return true
}

def sendSocketCommand(Command) {
	try {
		log_debug("sendSocketCommand - sending [${Command}]")
		parseMutex.acquire()
		def msg = new hubitat.device.HubAction(Command, hubitat.device.Protocol.TELNET)
		sendHubCommand(msg)
		IOBUFFER.add(Command)
		parseMutex.release()
		return true
	} catch(e) {
		log_error("sendSocketCommand - ERROR - Caught exception '${e}'")
		return false
	}
	return true
}

def closeSocket() {
	log_debug("closeSocket: Socket close requested.")
	state.socketState = "closing"
//		interfaces.rawSocket.close()
//		hubitat.helper.InterfaceUtils.socketClose(device)
	telnetClose()
	state.socketState = "closed"
	pauseExecution(100)
	flushMutex()
	parseMutex.release()
	parseMutex.release()
	parseMutex.release()
	parseMutex.reducePermits(Math.abs(1 - parseMutex.availablePermits()))
	log_debug("closeSocket: Socket closed. [${mutex.availablePermits()}]  [${parseMutex.availablePermits()}]")
	return true
}

def openSocket() {
	if (state.socketState == "open") {
		log_debug("openSocket: Socket already opened.")
		return true
	}
	log_debug("openSocket: Connecting to ${destIp}:${destPort}")
	try {
		telnetConnect([termChars:[13]], destIp, destPort.toInteger(), null, null)
		pauseExecution(1000)
		state.socketState = "open"
		log_debug("openSocket: Socket opened.")
		parseMutex.acquire()
		IOBUFFER = []
		parseMutex.release()
		SocketErrors = 0
		return true
	}
	catch(e) {
		log_error("openSocket: exception = [${e}]")
		state.socketState == "closed"
		return false
	}
}

def telnetStatus(String message) {
	log.warn("telnetStatus - Socket [${state.socketState}]  Message [${message}]")
	if (state.socketState == "closed") { return }
	switch(message) {
		case "send error: Broken pipe (Write failed)":
			closeSocket()
			state.socketState = "closed"
			log_debug("telnetStatus - Write Failed - Attempting reconnect")
			pauseExecution(5000)
			return openSocket()
			break;
		case "receive error: Stream is closed":
		case "receive error: Stream closed.":
			SocketErrors = SocketErrors + 1
			if ((state.socketState != "closing") && (SocketErrors < 10)) {
				closeSocket()
				state.socketState = "closed"
				log_debug("telnetStatus - Stream Closed - Attempting reconnect [${SocketErrors}]")
				pauseExecution(5000)
				return openSocket()
			}
			state.socketState = "closed"
			if (SocketErrors > 9) {
				log_debug("telnetStatus - Stream Closed - Too many reconnects - execute initialize() to restart")
			}
			return
			break;
		case "send error: Socket closed":
			closeSocket()
			state.socketState = "closed"
			log_debug("telnetStatus - Socket Closed - Attempting reconnect")
			pauseExecution(5000)
			return openSocket()
			break;
	}
	log_debug("telnetStatus - UNHANDLED socket status [${message}]")
}

def send_Event(eData) {
	if (eventDebug) log.info("SharpAquos - EVENT - [${eData.toString()}]")
	if (eData.isStateChange == null) { eData.isStateChange = false }
	sendEvent(name: eData.name, value: eData.value, displayed:false, isStateChange: eData.isStateChange)
}

def log_debug(debugData) {
	if (logDebug) log.debug("SharpAquos - " + debugData)
}

def log_warn(debugData) {
	if (logDebug) log.warn("SharpAquos - " + debugData)
}

def log_info(debugData) {
	if (verboseDebug) log_debug("SharpAquos - " + debugData)
}

private log_error(debugData) {
	log.error("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
}

Cool, will let you know how it goes....startup logs....

Summary

dev:10252019-12-19 01:28:04.695 am debugSharpAquos - SharpAquos - request 20 - Socket [open] CMD [POWR] Params [?]

dev:10252019-12-19 01:28:04.690 am debugSharpAquos - SharpAquos - getMutex 20 - Acquired mutex permit [0]

dev:10252019-12-19 01:28:04.686 am debugSharpAquos - SharpAquos - releaseMutex ?19? - Released mutex permit [1]

dev:10252019-12-19 01:28:04.681 am debugSharpAquos - SharpAquos - releaseMutex ?19? - Release mutex request [0]

dev:10252019-12-19 01:28:04.676 am debugSharpAquos - parseIPPV - response 'ERR'

dev:10252019-12-19 01:28:04.672 am debugSharpAquos - SharpAquos - parse - 1 - COMMAND [IPPV1 ] RESPONSE [ERR]

dev:10252019-12-19 01:28:04.667 am debugSharpAquos - SharpAquos - parse - IOBUFFER: 2 entries [[IPPV1 , ERR]]

dev:10252019-12-19 01:28:04.653 am debugSharpAquos - SharpAquos - getMutex 20 - Acquire mutex request [0]

dev:10252019-12-19 01:28:04.648 am debugSharpAquos - getDeviceState() Starting

dev:10252019-12-19 01:28:04.644 am debugSharpAquos - sendSocketCommand - sending [IPPV1 ]

dev:10252019-12-19 01:28:04.639 am debugSharpAquos - SharpAquos - request 19 - IOBUFFER [ [] ]

dev:10252019-12-19 01:28:04.635 am debugSharpAquos - SharpAquos - request 19 - Socket [open] CMD [IPPV] Params [1]

dev:10252019-12-19 01:28:04.630 am debugSharpAquos - SharpAquos - releaseMutex ?18? - Released mutex permit [1]

dev:10252019-12-19 01:28:04.625 am debugSharpAquos - SharpAquos - getMutex 19 - Acquired mutex permit [0]

dev:10252019-12-19 01:28:04.620 am debugSharpAquos - SharpAquos - releaseMutex ?18? - Release mutex request [0]

dev:10252019-12-19 01:28:04.615 am debugSharpAquos - parseSWVN - response 'ERR'

dev:10252019-12-19 01:28:04.611 am debugSharpAquos - SharpAquos - parse - 1 - COMMAND [SWVN1 ] RESPONSE [ERR]

dev:10252019-12-19 01:28:04.606 am debugSharpAquos - SharpAquos - parse - IOBUFFER: 2 entries [[SWVN1 , ERR]]

dev:10252019-12-19 01:28:04.394 am debugSharpAquos - SharpAquos - getMutex 19 - Acquire mutex request [0]

dev:10252019-12-19 01:28:04.389 am debugSharpAquos - sendSocketCommand - sending [SWVN1 ]

dev:10252019-12-19 01:28:04.384 am debugSharpAquos - SharpAquos - request 18 - IOBUFFER [ [] ]

dev:10252019-12-19 01:28:04.380 am debugSharpAquos - SharpAquos - request 18 - Socket [open] CMD [SWVN] Params [1]

dev:10252019-12-19 01:28:04.375 am debugSharpAquos - SharpAquos - getMutex 18 - Acquired mutex permit [0]

dev:10252019-12-19 01:28:04.370 am debugSharpAquos - SharpAquos - releaseMutex ?17? - Released mutex permit [1]

dev:10252019-12-19 01:28:04.364 am debugSharpAquos - SharpAquos - releaseMutex ?17? - Release mutex request [0]

dev:10252019-12-19 01:28:04.359 am debugSharpAquos - parseMNRD - response 'ERR'

dev:10252019-12-19 01:28:04.354 am debugSharpAquos - SharpAquos - parse - 1 - COMMAND [MNRD1 ] RESPONSE [ERR]

dev:10252019-12-19 01:28:04.348 am debugSharpAquos - SharpAquos - parse - IOBUFFER: 2 entries [[MNRD1 , ERR]]

dev:10252019-12-19 01:28:04.326 am debugSharpAquos - SharpAquos - getMutex 18 - Acquire mutex request [0]

dev:10252019-12-19 01:28:04.321 am debugSharpAquos - sendSocketCommand - sending [MNRD1 ]

dev:10252019-12-19 01:28:04.317 am debugSharpAquos - SharpAquos - request 17 - IOBUFFER [ [] ]

dev:10252019-12-19 01:28:04.312 am debugSharpAquos - SharpAquos - request 17 - Socket [open] CMD [MNRD] Params [1]

dev:10252019-12-19 01:28:04.307 am debugSharpAquos - SharpAquos - getMutex 17 - Acquired mutex permit [0]

dev:10252019-12-19 01:28:04.302 am debugSharpAquos - SharpAquos - releaseMutex ?16? - Released mutex permit [1]

dev:10252019-12-19 01:28:04.291 am debugSharpAquos - SharpAquos - releaseMutex ?16? - Release mutex request [0]

dev:10252019-12-19 01:28:04.286 am debugSharpAquos - parseTVNM - response 'ERR'

dev:10252019-12-19 01:28:04.281 am debugSharpAquos - SharpAquos - parse - 1 - COMMAND [TVNM1 ] RESPONSE [ERR]

dev:10252019-12-19 01:28:04.276 am debugSharpAquos - SharpAquos - parse - IOBUFFER: 2 entries [[TVNM1 , ERR]]

dev:10252019-12-19 01:28:04.242 am debugSharpAquos - SharpAquos - getMutex 17 - Acquire mutex request [0]

dev:10252019-12-19 01:28:04.237 am debugSharpAquos - sendSocketCommand - sending [TVNM1 ]

dev:10252019-12-19 01:28:04.232 am debugSharpAquos - SharpAquos - request 16 - IOBUFFER [ [] ]

dev:10252019-12-19 01:28:04.226 am debugSharpAquos - SharpAquos - releaseMutex ?15? - Released mutex permit [1]

dev:10252019-12-19 01:28:04.220 am debugSharpAquos - SharpAquos - request 16 - Socket [open] CMD [TVNM] Params [1]

dev:10252019-12-19 01:28:04.215 am debugSharpAquos - SharpAquos - getMutex 16 - Acquired mutex permit [0]

dev:10252019-12-19 01:28:04.210 am debugSharpAquos - SharpAquos - releaseMutex ?15? - Release mutex request [0]

dev:10252019-12-19 01:28:04.197 am debugSharpAquos - SharpAquos - parse - 1 - COMMAND [RSPW2 ] RESPONSE [OK]

dev:10252019-12-19 01:28:04.191 am debugSharpAquos - SharpAquos - parse - IOBUFFER: 2 entries [[RSPW2 , OK]]

dev:10252019-12-19 01:28:04.145 am debugSharpAquos - SharpAquos - getMutex 16 - Acquire mutex request [0]

dev:10252019-12-19 01:28:04.140 am debugSharpAquos - sendSocketCommand - sending [RSPW2 ]

dev:10252019-12-19 01:28:04.135 am debugSharpAquos - SharpAquos - request 15 - IOBUFFER [ [] ]

dev:10252019-12-19 01:28:04.130 am debugSharpAquos - SharpAquos - request 15 - Socket [open] CMD [RSPW] Params [2]

dev:10252019-12-19 01:28:04.125 am debugSharpAquos - SharpAquos - getMutex 15 - Acquired mutex permit [0]

dev:10252019-12-19 01:28:04.120 am debugSharpAquos - SharpAquos - getMutex 15 - Acquire mutex request [1]

dev:10252019-12-19 01:28:04.114 am debugSharpAquos - SharpAquos - initialize - Poll Rate set to every 5 minutes

dev:10252019-12-19 01:28:04.073 am debugSharpAquos - openSocket: Socket opened.

dev:10252019-12-19 01:28:03.055 am debugSharpAquos - openSocket: Connecting to 192.168.254.205:10002

dev:10252019-12-19 01:28:03.049 am debugSharpAquos - SharpAquos - initialize - Set DNI = [9CC7D1ED5F5F]

dev:10252019-12-19 01:28:03.012 am debugSharpAquos - SharpAquos - initialize - IP: 192.168.254.205 PORT: 10002 USER: null PASS: null Poll Rate: 5

dev:10252019-12-19 01:28:02.511 am debugSharpAquos - closeSocket: Socket closed. [1] [1]

dev:10252019-12-19 01:28:02.505 am warnSharpAquos - FLUSHMUTEX - FLUSHED - Queued [false] Waiting [0] permits [1]

dev:10252019-12-19 01:28:01.399 am warnSharpAquos - FLUSHMUTEX - flushing mutex queue. Queued [false] Waiting [0] permits [1]

dev:10252019-12-19 01:28:01.297 am debugSharpAquos - closeSocket: Socket close requested.

dev:10252019-12-19 01:28:01.291 am debugSharpAquos - SharpAquos - releaseMutex ?13? - Released mutex permit [1]

dev:10252019-12-19 01:28:01.286 am debugSharpAquos - SharpAquos - releaseMutex ?13? - ERROR - Permit release not required [1]

dev:10252019-12-19 01:28:01.280 am debugSharpAquos - SharpAquos - releaseMutex ?13? - Release mutex request [1]

dev:10252019-12-19 01:28:01.214 am warninitialize - Driver v0.39 debug [true] verbose [true] events [true] permits [1] Init [null] Queue [0]

dev:10252019-12-19 01:28:01.018 am debugSharpAquos - updated - IP [192.168.254.205] PORT [10002] USER [null] PASS [null] DEBUG [null] VERBOSE [null] EVENTS[true]

dev:10252019-12-19 01:27:36.949 am debugSharpAquos - SharpAquos - releaseMutex ?13? - Released mutex permit [1]

dev:10252019-12-19 01:27:36.944 am debugSharpAquos - SharpAquos - releaseMutex ?13? - Release mutex request [0]

dev:10252019-12-19 01:27:36.939 am debugSharpAquos - SharpAquos - parseDC11 - ERROR - received [ERR]

dev:10252019-12-19 01:27:36.934 am debugSharpAquos - parseDC11 - response 'ERR'

dev:10252019-12-19 01:27:36.929 am debugSharpAquos - SharpAquos - parse - 1 - COMMAND [DC11? ] RESPONSE [ERR]

dev:10252019-12-19 01:27:36.924 am debugSharpAquos - SharpAquos - parse - IOBUFFER: 2 entries [[DC11? , ERR]]

dev:10252019-12-19 01:27:36.919 am debugSharpAquos - getDeviceState() Completed.

dev:10252019-12-19 01:27:36.914 am debugSharpAquos - getChannelStatus() Completed.

dev:10252019-12-19 01:27:36.908 am debugSharpAquos - sendSocketCommand - sending [DC11? ]

dev:10252019-12-19 01:27:36.894 am debugSharpAquos - SharpAquos - request 14 - IOBUFFER [ [] ]

dev:10252019-12-19 01:27:36.890 am debugSharpAquos - SharpAquos - request 14 - Socket [open] CMD [DC11] Params [?]

dev:10252019-12-19 01:27:36.885 am debugSharpAquos - SharpAquos - releaseMutex ?13? - Released mutex permit [1]

dev:10252019-12-19 01:27:36.880 am debugSharpAquos - SharpAquos - getMutex 14 - Acquired mutex permit [0]

dev:10252019-12-19 01:27:36.875 am debugSharpAquos - SharpAquos - releaseMutex ?13? - Release mutex request [0]

dev:10252019-12-19 01:27:36.869 am debugSharpAquos - SharpAquos - parseDC10 - ERROR - received [ERR]

dev:10252019-12-19 01:27:36.864 am debugSharpAquos - parseDC10 - response 'ERR'

dev:10252019-12-19 01:27:36.860 am debugSharpAquos - SharpAquos - parse - 1 - COMMAND [DC10? ] RESPONSE [ERR]

dev:10252019-12-19 01:27:36.855 am debugSharpAquos - SharpAquos - parse - IOBUFFER: 2 entries [[DC10? , ERR]]

dev:10252019-12-19 01:27:36.850 am debugSharpAquos - SharpAquos - getMutex 14 - Acquire mutex request [0]

dev:10252019-12-19 01:27:36.845 am debugSharpAquos - sendSocketCommand - sending [DC10? ]

dev:10252019-12-19 01:27:36.841 am debugSharpAquos - SharpAquos - request 13 - IOBUFFER [ [] ]

dev:10252019-12-19 01:27:36.836 am debugSharpAquos - SharpAquos - request 13 - Socket [open] CMD [DC10] Params [?]

dev:10252019-12-19 01:27:36.832 am debugSharpAquos - SharpAquos - getMutex 13 - Acquired mutex permit [0]

dev:10252019-12-19 01:27:36.827 am debugSharpAquos - SharpAquos - releaseMutex ?12? - Released mutex permit [1]

dev:10252019-12-19 01:27:36.822 am debugSharpAquos - SharpAquos - releaseMutex ?12? - Release mutex request [0]

dev:10252019-12-19 01:27:36.817 am debugSharpAquos - SharpAquos - parseDC2L - ERROR - could not process response [ERR]

dev:10252019-12-19 01:27:36.813 am debugSharpAquos - parseDC2L - response 'ERR'

dev:10252019-12-19 01:27:36.808 am debugSharpAquos - SharpAquos - parse - 1 - COMMAND [DC2L? ] RESPONSE [ERR]

dev:10252019-12-19 01:27:36.804 am debugSharpAquos - SharpAquos - parse - IOBUFFER: 2 entries [[DC2L? , ERR]]

dev:10252019-12-19 01:27:36.799 am debugSharpAquos - SharpAquos - getMutex 13 - Acquire mutex request [0]

dev:10252019-12-19 01:27:36.794 am debugSharpAquos - sendSocketCommand - sending [DC2L? ]

dev:10252019-12-19 01:27:36.759 am debugSharpAquos - SharpAquos - request 12 - IOBUFFER [ [] ]

dev:10252019-12-19 01:27:36.755 am debugSharpAquos - SharpAquos - request 12 - Socket [open] CMD [DC2L] Params [?]

dev:10252019-12-19 01:27:36.750 am debugSharpAquos - SharpAquos - releaseMutex ?11? - Released mutex permit [1]

dev:10252019-12-19 01:27:36.745 am debugSharpAquos - SharpAquos - getMutex 12 - Acquired mutex permit [0]

dev:10252019-12-19 01:27:36.740 am debugSharpAquos - SharpAquos - releaseMutex ?11? - Release mutex request [0]

dev:10252019-12-19 01:27:36.735 am debugSharpAquos - SharpAquos - parseDC2U - ERROR - could not process response [ERR]

dev:10252019-12-19 01:27:36.730 am debugSharpAquos - parseDC2U - response 'ERR'

dev:10252019-12-19 01:27:36.726 am debugSharpAquos - SharpAquos - parse - 1 - COMMAND [DC2U? ] RESPONSE [ERR]

dev:10252019-12-19 01:27:36.721 am debugSharpAquos - SharpAquos - parse - IOBUFFER: 2 entries [[DC2U? , ERR]]

dev:10252019-12-19 01:27:36.709 am debugSharpAquos - SharpAquos - getMutex 12 - Acquire mutex request [0]

dev:10252019-12-19 01:27:36.705 am debugSharpAquos - sendSocketCommand - sending [DC2U? ]

dev:10252019-12-19 01:27:36.700 am debugSharpAquos - SharpAquos - request 11 - IOBUFFER [ [] ]

dev:10252019-12-19 01:27:36.695 am debugSharpAquos - SharpAquos - request 11 - Socket [open] CMD [DC2U] Params [?]

dev:10252019-12-19 01:27:36.690 am debugSharpAquos - SharpAquos - releaseMutex ?10? - Released mutex permit [1]

dev:10252019-12-19 01:27:36.684 am debugSharpAquos - SharpAquos - getMutex 11 - Acquired mutex permit [0]

dev:10252019-12-19 01:27:36.679 am debugSharpAquos - SharpAquos - releaseMutex ?10? - Release mutex request [0]

dev:10252019-12-19 01:27:36.674 am debugSharpAquos - SharpAquos - parseDA2P - ERROR - received [ERR]

dev:10252019-12-19 01:27:36.669 am debugSharpAquos - parseDA2P - response 'ERR'

dev:10252019-12-19 01:27:36.663 am debugSharpAquos - SharpAquos - parse - 1 - COMMAND [DA2P? ] RESPONSE [ERR]

dev:10252019-12-19 01:27:36.658 am debugSharpAquos - SharpAquos - parse - IOBUFFER: 2 entries [[DA2P? , ERR]]

dev:10252019-12-19 01:27:36.645 am debugSharpAquos - SharpAquos - getMutex 11 - Acquire mutex request [0]

dev:10252019-12-19 01:27:36.639 am debugSharpAquos - sendSocketCommand - sending [DA2P? ]

dev:10252019-12-19 01:27:36.634 am debugSharpAquos - SharpAquos - request 10 - IOBUFFER [ [] ]

dev:10252019-12-19 01:27:36.629 am debugSharpAquos - SharpAquos - request 10 - Socket [open] CMD [DA2P] Params [?]

dev:10252019-12-19 01:27:36.623 am debugSharpAquos - SharpAquos - releaseMutex ?9? - Released mutex permit [1]

dev:10252019-12-19 01:27:36.617 am debugSharpAquos - SharpAquos - getMutex 10 - Acquired mutex permit [0]

dev:10252019-12-19 01:27:36.611 am debugSharpAquos - SharpAquos - releaseMutex ?9? - Release mutex request [0]

dev:10252019-12-19 01:27:36.606 am debugSharpAquos - SharpAquos - parseDCCH - ERROR - received [ERR]

dev:10252019-12-19 01:27:36.600 am debugSharpAquos - parseDCCH - response 'ERR'

dev:10252019-12-19 01:27:36.595 am debugSharpAquos - SharpAquos - parse - 1 - COMMAND [DCCH? ] RESPONSE [ERR]

dev:10252019-12-19 01:27:36.590 am debugSharpAquos - SharpAquos - parse - IOBUFFER: 2 entries [[DCCH? , ERR]]

dev:10252019-12-19 01:27:36.562 am debugSharpAquos - SharpAquos - getMutex 10 - Acquire mutex request [0]

dev:10252019-12-19 01:27:36.556 am debugSharpAquos - sendSocketCommand - sending [DCCH? ]

dev:10252019-12-19 01:27:36.551 am debugSharpAquos - SharpAquos - request 9 - IOBUFFER [ [] ]

dev:10252019-12-19 01:27:36.546 am debugSharpAquos - SharpAquos - request 9 - Socket [open] CMD [DCCH] Params [?]

dev:10252019-12-19 01:27:36.540 am debugSharpAquos - SharpAquos - getMutex 9 - Acquired mutex permit [0]

dev:10252019-12-19 01:27:36.535 am debugSharpAquos - SharpAquos - releaseMutex ?8? - Released mutex permit [1]

dev:10252019-12-19 01:27:36.530 am debugSharpAquos - SharpAquos - releaseMutex ?8? - Release mutex request [0]

dev:10252019-12-19 01:27:36.525 am debugSharpAquos - SharpAquos - parseSleepTimer - ERROR - Invalid SleepTimer [ERR]

dev:10252019-12-19 01:27:36.519 am debugSharpAquos - parseSleepTimer - response 'ERR'

dev:10252019-12-19 01:27:36.513 am debugSharpAquos - SharpAquos - parse - 1 - COMMAND [OFTM? ] RESPONSE [ERR]

dev:10252019-12-19 01:27:36.508 am debugSharpAquos - SharpAquos - parse - IOBUFFER: 2 entries [[OFTM? , ERR]]

dev:10252019-12-19 01:27:36.479 am debugSharpAquos - SharpAquos - getMutex 9 - Acquire mutex request [0]

dev:10252019-12-19 01:27:36.474 am debugSharpAquos - getChannelStatus() Starting

dev:10252019-12-19 01:27:36.469 am debugSharpAquos - sendSocketCommand - sending [OFTM? ]

dev:10252019-12-19 01:27:36.464 am debugSharpAquos - SharpAquos - request 8 - IOBUFFER [ [] ]

dev:10252019-12-19 01:27:36.459 am debugSharpAquos - SharpAquos - request 8 - Socket [open] CMD [OFTM] Params [?]

dev:10252019-12-19 01:27:36.454 am debugSharpAquos - SharpAquos - getMutex 8 - Acquired mutex permit [0]

dev:10252019-12-19 01:27:36.449 am debugSharpAquos - SharpAquos - releaseMutex ?7? - Released mutex permit [1]

dev:10252019-12-19 01:27:36.444 am debugSharpAquos - SharpAquos - releaseMutex ?7? - Release mutex request [0]

dev:10252019-12-19 01:27:36.438 am debugSharpAquos - SharpAquos - parse3DMode - ERROR - Invalid 3DMode [ERR]

dev:10252019-12-19 01:27:36.433 am debugSharpAquos - parse3DMode - response 'ERR'

dev:10252019-12-19 01:27:36.429 am debugSharpAquos - SharpAquos - parse - 1 - COMMAND [TDCH? ] RESPONSE [ERR]

dev:10252019-12-19 01:27:36.423 am debugSharpAquos - SharpAquos - parse - IOBUFFER: 2 entries [[TDCH? , ERR]]

dev:10252019-12-19 01:27:36.197 am debugSharpAquos - SharpAquos - getMutex 8 - Acquire mutex request [0]

dev:10252019-12-19 01:27:36.191 am debugSharpAquos - SharpAquos - releaseMutex ?6? - Released mutex permit [0]

dev:10252019-12-19 01:27:36.185 am debugSharpAquos - sendSocketCommand - sending [TDCH? ]

dev:10252019-12-19 01:27:36.179 am debugSharpAquos - SharpAquos - request 7 - IOBUFFER [ [] ]

dev:10252019-12-19 01:27:36.173 am debugSharpAquos - SharpAquos - request 7 - Socket [open] CMD [TDCH] Params [?]

dev:10252019-12-19 01:27:36.168 am debugSharpAquos - SharpAquos - getMutex 7 - Acquired mutex permit [0]

dev:10252019-12-19 01:27:36.162 am debugSharpAquos - SharpAquos - releaseMutex ?6? - Release mutex request [0]

dev:10252019-12-19 01:27:36.156 am debugSharpAquos - SharpAquos - parseVideoMode - ERROR - Invalid VideoMode [ERR]

dev:10252019-12-19 01:27:36.151 am debugSharpAquos - parseVideoMode - response 'ERR'

dev:10252019-12-19 01:27:36.146 am debugSharpAquos - SharpAquos - parse - 1 - COMMAND [AVMD? ] RESPONSE [ERR]

dev:10252019-12-19 01:27:36.141 am debugSharpAquos - SharpAquos - parse - IOBUFFER: 2 entries [[AVMD? , ERR]]

dev:10252019-12-19 01:27:36.125 am debugSharpAquos - SharpAquos - getMutex 7 - Acquire mutex request [0]

dev:10252019-12-19 01:27:36.120 am debugSharpAquos - SharpAquos - releaseMutex ?5? - Released mutex permit [0]

dev:10252019-12-19 01:27:36.114 am debugSharpAquos - sendSocketCommand - sending [AVMD? ]

dev:10252019-12-19 01:27:36.109 am debugSharpAquos - SharpAquos - request 6 - IOBUFFER [ [] ]

dev:10252019-12-19 01:27:36.104 am debugSharpAquos - SharpAquos - request 6 - Socket [open] CMD [AVMD] Params [?]

dev:10252019-12-19 01:27:36.098 am debugSharpAquos - SharpAquos - getMutex 6 - Acquired mutex permit [0]

dev:10252019-12-19 01:27:36.093 am debugSharpAquos - SharpAquos - releaseMutex ?5? - Release mutex request [0]

dev:10252019-12-19 01:27:36.087 am debugSharpAquos - SharpAquos - parseSurroundMode - ERROR - Invalid SurroundMode [ERR]

dev:10252019-12-19 01:27:36.078 am debugSharpAquos - parseSurround - response 'ERR'

dev:10252019-12-19 01:27:36.072 am debugSharpAquos - SharpAquos - parse - 1 - COMMAND [ACSU? ] RESPONSE [ERR]

dev:10252019-12-19 01:27:36.067 am debugSharpAquos - SharpAquos - parse - IOBUFFER: 2 entries [[ACSU? , ERR]]

dev:10252019-12-19 01:27:36.051 am debugSharpAquos - SharpAquos - getMutex 6 - Acquire mutex request [0]

dev:10252019-12-19 01:27:36.046 am debugSharpAquos - sendSocketCommand - sending [ACSU? ]

dev:10252019-12-19 01:27:36.040 am debugSharpAquos - SharpAquos - request 5 - IOBUFFER [ [] ]

dev:10252019-12-19 01:27:36.034 am debugSharpAquos - SharpAquos - request 5 - Socket [open] CMD [ACSU] Params [?]

dev:10252019-12-19 01:27:36.028 am debugSharpAquos - SharpAquos - releaseMutex ?4? - Released mutex permit [1]

dev:10252019-12-19 01:27:36.022 am debugSharpAquos - SharpAquos - getMutex 5 - Acquired mutex permit [0]

dev:10252019-12-19 01:27:36.016 am debugSharpAquos - SharpAquos - releaseMutex ?4? - Release mutex request [0]

dev:10252019-12-19 01:27:36.010 am debugSharpAquos - SharpAquos - parseViewMode - ERROR - Invalid ViewMode [ERR]

dev:10252019-12-19 01:27:36.004 am debugSharpAquos - parseViewMode - response 'ERR'

dev:10252019-12-19 01:27:35.998 am debugSharpAquos - SharpAquos - parse - 1 - COMMAND [WIDE? ] RESPONSE [ERR]

dev:10252019-12-19 01:27:35.993 am debugSharpAquos - SharpAquos - parse - IOBUFFER: 2 entries [[WIDE? , ERR]]

dev:10252019-12-19 01:27:35.959 am debugSharpAquos - SharpAquos - getMutex 5 - Acquire mutex request [0]

dev:10252019-12-19 01:27:35.953 am debugSharpAquos - sendSocketCommand - sending [WIDE? ]

dev:10252019-12-19 01:27:35.948 am debugSharpAquos - SharpAquos - request 4 - IOBUFFER [ [] ]

dev:10252019-12-19 01:27:35.943 am debugSharpAquos - SharpAquos - request 4 - Socket [open] CMD [WIDE] Params [?]

dev:10252019-12-19 01:27:35.937 am debugSharpAquos - SharpAquos - releaseMutex ?3? - Released mutex permit [1]

dev:10252019-12-19 01:27:35.932 am debugSharpAquos - SharpAquos - getMutex 4 - Acquired mutex permit [0]

dev:10252019-12-19 01:27:35.927 am debugSharpAquos - SharpAquos - releaseMutex ?3? - Release mutex request [0]

dev:10252019-12-19 01:27:35.921 am debugSharpAquos - SharpAquos - parseInput - SET - input [0] InputName [TV]

dev:10252019-12-19 01:27:35.913 am infoSharpAquos - EVENT - [[name:inputName, value:TV]]

dev:10252019-12-19 01:27:35.905 am infoSharpAquos - EVENT - [[name:input, value:0]]

dev:10252019-12-19 01:27:35.900 am debugSharpAquos - parseInput - response 'ERR -> 0'

dev:10252019-12-19 01:27:35.895 am debugSharpAquos - SharpAquos - parse - 1 - COMMAND [IAVD? ] RESPONSE [ERR]

dev:10252019-12-19 01:27:35.889 am debugSharpAquos - SharpAquos - parse - IOBUFFER: 2 entries [[IAVD? , ERR]]

dev:10252019-12-19 01:27:35.877 am debugSharpAquos - SharpAquos - getMutex 4 - Acquire mutex request [0]

dev:10252019-12-19 01:27:35.872 am debugSharpAquos - sendSocketCommand - sending [IAVD? ]

dev:10252019-12-19 01:27:35.867 am debugSharpAquos - SharpAquos - request 3 - IOBUFFER [ [] ]

dev:10252019-12-19 01:27:35.862 am debugSharpAquos - SharpAquos - request 3 - Socket [open] CMD [IAVD] Params [?]

dev:10252019-12-19 01:27:35.857 am debugSharpAquos - SharpAquos - releaseMutex ?2? - Released mutex permit [1]

dev:10252019-12-19 01:27:35.852 am debugSharpAquos - SharpAquos - getMutex 3 - Acquired mutex permit [0]

dev:10252019-12-19 01:27:35.847 am debugSharpAquos - SharpAquos - releaseMutex ?2? - Release mutex request [0]

dev:10252019-12-19 01:27:35.841 am debugSharpAquos - SharpAquos - parseVolume - ERROR - invalid volume [null]

dev:10252019-12-19 01:27:35.836 am debugSharpAquos - parseVolume - response 'ERR'

dev:10252019-12-19 01:27:35.832 am debugSharpAquos - SharpAquos - parse - 1 - COMMAND [VOLM? ] RESPONSE [ERR]

dev:10252019-12-19 01:27:35.827 am debugSharpAquos - SharpAquos - parse - IOBUFFER: 2 entries [[VOLM? , ERR]]

dev:10252019-12-19 01:27:35.610 am debugSharpAquos - SharpAquos - getMutex 3 - Acquire mutex request [0]

dev:10252019-12-19 01:27:35.605 am debugSharpAquos - sendSocketCommand - sending [VOLM? ]

dev:10252019-12-19 01:27:35.600 am debugSharpAquos - SharpAquos - request 2 - IOBUFFER [ [] ]

dev:10252019-12-19 01:27:35.595 am debugSharpAquos - SharpAquos - request 2 - Socket [open] CMD [VOLM] Params [?]

dev:10252019-12-19 01:27:35.590 am debugSharpAquos - SharpAquos - getMutex 2 - Acquired mutex permit [0]

dev:10252019-12-19 01:27:35.585 am debugSharpAquos - SharpAquos - releaseMutex ?1? - Released mutex permit [1]

dev:10252019-12-19 01:27:35.580 am debugSharpAquos - SharpAquos - releaseMutex ?1? - Release mutex request [0]

dev:10252019-12-19 01:27:35.575 am debugSharpAquos - SharpAquos - parseMute - ERROR - invalid mute [ERR]

dev:10252019-12-19 01:27:35.570 am debugSharpAquos - parseMute - response 'ERR'

dev:10252019-12-19 01:27:35.565 am debugSharpAquos - SharpAquos - parse - 1 - COMMAND [MUTE? ] RESPONSE [ERR]

dev:10252019-12-19 01:27:35.559 am debugSharpAquos - SharpAquos - parse - IOBUFFER: 2 entries [[MUTE? , ERR]]

dev:10252019-12-19 01:27:35.500 am debugSharpAquos - SharpAquos - getMutex 2 - Acquire mutex request [0]

dev:10252019-12-19 01:27:35.496 am debugSharpAquos - sendSocketCommand - sending [MUTE? ]

dev:10252019-12-19 01:27:35.491 am debugSharpAquos - SharpAquos - request 1 - IOBUFFER [ [] ]

dev:10252019-12-19 01:27:35.486 am debugSharpAquos - SharpAquos - request 1 - Socket [open] CMD [MUTE] Params [?]

dev:10252019-12-19 01:27:35.480 am debugSharpAquos - SharpAquos - releaseMutex ?0? - Released mutex permit [1]

dev:10252019-12-19 01:27:35.475 am debugSharpAquos - SharpAquos - getMutex 1 - Acquired mutex permit [0]

dev:10252019-12-19 01:27:35.470 am debugSharpAquos - SharpAquos - releaseMutex ?0? - Release mutex request [0]

dev:10252019-12-19 01:27:35.465 am debugSharpAquos - SharpAquos - parsePower - SET - power [off]

dev:10252019-12-19 01:27:35.460 am infoSharpAquos - EVENT - [[name:switch, value:off]]

dev:10252019-12-19 01:27:35.456 am infoSharpAquos - EVENT - [[name:power, value:off]]

dev:10252019-12-19 01:27:35.450 am debugSharpAquos - parsePower - response '0'

dev:10252019-12-19 01:27:35.444 am debugSharpAquos - SharpAquos - parse - 1 - COMMAND [POWR? ] RESPONSE [0]

dev:10252019-12-19 01:27:35.432 am debugSharpAquos - SharpAquos - parse - IOBUFFER: 2 entries [[POWR? , 0]]

dev:10252019-12-19 01:27:35.216 am debugSharpAquos - SharpAquos - getMutex 1 - Acquire mutex request [0]

dev:10252019-12-19 01:27:35.211 am debugSharpAquos - sendSocketCommand - sending [POWR? ]

dev:10252019-12-19 01:27:35.206 am debugSharpAquos - SharpAquos - request 0 - IOBUFFER [ [] ]

dev:10252019-12-19 01:27:35.201 am debugSharpAquos - SharpAquos - request 0 - Socket [open] CMD [POWR] Params [?]

dev:10252019-12-19 01:27:35.196 am debugSharpAquos - SharpAquos - getMutex 0 - Acquired mutex permit [0]

dev:10252019-12-19 01:27:35.191 am debugSharpAquos - SharpAquos - getMutex 0 - Acquire mutex request [1]

dev:10252019-12-19 01:27:35.177 am debugSharpAquos - getDeviceState() Starting

All working great so far.

Everything is running good, maybe a little slow to react when the button it pushed but that my just be my system load, here are some sample logs along with a toggle mute in it.

Summary

dev:10252019-12-19 10:33:29.924 pm debugSharpAquos - SharpAquos - releaseMutex ?2957? - Released mutex permit [1]

dev:10252019-12-19 10:33:29.921 pm debugSharpAquos - SharpAquos - releaseMutex ?2957? - Release mutex request [0]

dev:10252019-12-19 10:33:29.917 pm debugSharpAquos - SharpAquos - parseMute - SET - mute [unmuted]

dev:10252019-12-19 10:33:29.910 pm infoSharpAquos - EVENT - [[name:mute, value:unmuted]]

dev:10252019-12-19 10:33:29.906 pm debugSharpAquos - parseMute - response '2'

dev:10252019-12-19 10:33:29.902 pm debugSharpAquos - SharpAquos - parse - 1 - COMMAND [MUTE? ] RESPONSE [2]

dev:10252019-12-19 10:33:29.898 pm debugSharpAquos - SharpAquos - parse - IOBUFFER: 2 entries [[MUTE? , 2]]

dev:10252019-12-19 10:33:29.830 pm debugSharpAquos - toggleMute() - completed

dev:10252019-12-19 10:33:29.826 pm debugSharpAquos - sendSocketCommand - sending [MUTE? ]

dev:10252019-12-19 10:33:29.823 pm debugSharpAquos - SharpAquos - request 2958 - IOBUFFER [ [] ]

dev:10252019-12-19 10:33:29.819 pm debugSharpAquos - SharpAquos - request 2958 - Socket [open] CMD [MUTE] Params [?]

dev:10252019-12-19 10:33:29.815 pm debugSharpAquos - SharpAquos - getMutex 2958 - Acquired mutex permit [0]

dev:10252019-12-19 10:33:29.812 pm debugSharpAquos - SharpAquos - releaseMutex ?2957? - Released mutex permit [1]

dev:10252019-12-19 10:33:29.808 pm debugSharpAquos - SharpAquos - releaseMutex ?2957? - Release mutex request [0]

dev:10252019-12-19 10:33:29.802 pm debugSharpAquos - SharpAquos - parse - 1 - COMMAND [RCKY31 ] RESPONSE [OK]

dev:10252019-12-19 10:33:29.797 pm debugSharpAquos - SharpAquos - parse - IOBUFFER: 2 entries [[RCKY31 , OK]]

dev:10252019-12-19 10:33:29.743 pm debugSharpAquos - SharpAquos - getMutex 2958 - Acquire mutex request [0]

dev:10252019-12-19 10:33:29.737 pm debugSharpAquos - sendSocketCommand - sending [RCKY31 ]

dev:10252019-12-19 10:33:29.732 pm debugSharpAquos - SharpAquos - request 2957 - IOBUFFER [ [] ]

dev:10252019-12-19 10:33:29.729 pm debugSharpAquos - SharpAquos - request 2957 - Socket [open] CMD [RCKY] Params [31]

dev:10252019-12-19 10:33:29.720 pm debugSharpAquos - SharpAquos - getMutex 2957 - Acquired mutex permit [0]

dev:10252019-12-19 10:33:29.713 pm debugSharpAquos - SharpAquos - getMutex 2957 - Acquire mutex request [1]

dev:10252019-12-19 10:33:29.709 pm debugSharpAquos - toggleMute()

dev:10252019-12-19 10:33:23.248 pm debugSharpAquos - SharpAquos - releaseMutex ?2955? - Released mutex permit [1]

dev:10252019-12-19 10:33:23.236 pm debugSharpAquos - SharpAquos - releaseMutex ?2955? - Release mutex request [0]

dev:10252019-12-19 10:33:23.233 pm debugSharpAquos - SharpAquos - parseMute - SET - mute [unmuted]

dev:10252019-12-19 10:33:23.216 pm infoSharpAquos - EVENT - [[name:mute, value:unmuted]]

dev:10252019-12-19 10:33:23.213 pm debugSharpAquos - parseMute - response '2'

dev:10252019-12-19 10:33:23.209 pm debugSharpAquos - SharpAquos - parse - 1 - COMMAND [MUTE? ] RESPONSE [2]

dev:10252019-12-19 10:33:23.204 pm debugSharpAquos - SharpAquos - parse - IOBUFFER: 2 entries [[MUTE? , 2]]

dev:10252019-12-19 10:33:23.150 pm debugSharpAquos - toggleMute() - completed

dev:10252019-12-19 10:33:23.146 pm debugSharpAquos - sendSocketCommand - sending [MUTE? ]

dev:10252019-12-19 10:33:23.143 pm debugSharpAquos - SharpAquos - request 2956 - IOBUFFER [ [] ]

dev:10252019-12-19 10:33:23.139 pm debugSharpAquos - SharpAquos - request 2956 - Socket [open] CMD [MUTE] Params [?]

dev:10252019-12-19 10:33:23.136 pm debugSharpAquos - SharpAquos - getMutex 2956 - Acquired mutex permit [0]

dev:10252019-12-19 10:33:23.132 pm debugSharpAquos - SharpAquos - releaseMutex ?2955? - Released mutex permit [1]

dev:10252019-12-19 10:33:23.128 pm debugSharpAquos - SharpAquos - releaseMutex ?2955? - Release mutex request [0]

dev:10252019-12-19 10:33:23.123 pm debugSharpAquos - SharpAquos - parse - 1 - COMMAND [RCKY31 ] RESPONSE [OK]

dev:10252019-12-19 10:33:23.118 pm debugSharpAquos - SharpAquos - parse - IOBUFFER: 2 entries [[RCKY31 , OK]]

dev:10252019-12-19 10:33:23.050 pm debugSharpAquos - SharpAquos - getMutex 2956 - Acquire mutex request [0]

dev:10252019-12-19 10:33:23.026 pm debugSharpAquos - sendSocketCommand - sending [RCKY31 ]

dev:10252019-12-19 10:33:23.021 pm debugSharpAquos - SharpAquos - request 2955 - IOBUFFER [ [] ]

dev:10252019-12-19 10:33:23.017 pm debugSharpAquos - SharpAquos - request 2955 - Socket [open] CMD [RCKY] Params [31]

dev:10252019-12-19 10:33:23.009 pm debugSharpAquos - SharpAquos - getMutex 2955 - Acquired mutex permit [0]

dev:10252019-12-19 10:33:23.004 pm debugSharpAquos - SharpAquos - getMutex 2955 - Acquire mutex request [1]

dev:10252019-12-19 10:33:23.000 pm debugSharpAquos - toggleMute()

dev:10252019-12-19 10:33:15.068 pm debugSharpAquos - SharpAquos - releaseMutex ?2953? - Released mutex permit [1]

dev:10252019-12-19 10:33:15.051 pm debugSharpAquos - SharpAquos - releaseMutex ?2953? - Release mutex request [0]

dev:10252019-12-19 10:33:15.048 pm debugSharpAquos - SharpAquos - parseMute - SET - mute [unmuted]

dev:10252019-12-19 10:33:15.044 pm infoSharpAquos - EVENT - [[name:mute, value:unmuted]]

dev:10252019-12-19 10:33:15.041 pm debugSharpAquos - parseMute - response '2'

dev:10252019-12-19 10:33:15.037 pm debugSharpAquos - SharpAquos - parse - 1 - COMMAND [MUTE? ] RESPONSE [2]

dev:10252019-12-19 10:33:15.034 pm debugSharpAquos - SharpAquos - parse - IOBUFFER: 2 entries [[MUTE? , 2]]

dev:10252019-12-19 10:33:14.946 pm debugSharpAquos - toggleMute() - completed

dev:10252019-12-19 10:33:14.942 pm debugSharpAquos - sendSocketCommand - sending [MUTE? ]

dev:10252019-12-19 10:33:14.938 pm debugSharpAquos - SharpAquos - request 2954 - IOBUFFER [ [] ]

dev:10252019-12-19 10:33:14.935 pm debugSharpAquos - SharpAquos - request 2954 - Socket [open] CMD [MUTE] Params [?]

dev:10252019-12-19 10:33:14.931 pm debugSharpAquos - SharpAquos - getMutex 2954 - Acquired mutex permit [0]

dev:10252019-12-19 10:33:14.928 pm debugSharpAquos - SharpAquos - releaseMutex ?2953? - Released mutex permit [1]

dev:10252019-12-19 10:33:14.924 pm debugSharpAquos - SharpAquos - releaseMutex ?2953? - Release mutex request [0]

dev:10252019-12-19 10:33:14.918 pm debugSharpAquos - SharpAquos - parse - 1 - COMMAND [RCKY31 ] RESPONSE [OK]

dev:10252019-12-19 10:33:14.913 pm debugSharpAquos - SharpAquos - parse - IOBUFFER: 2 entries [[RCKY31 , OK]]

dev:10252019-12-19 10:33:14.859 pm debugSharpAquos - SharpAquos - getMutex 2954 - Acquire mutex request [0]

dev:10252019-12-19 10:33:14.853 pm debugSharpAquos - sendSocketCommand - sending [RCKY31 ]

dev:10252019-12-19 10:33:14.848 pm debugSharpAquos - SharpAquos - request 2953 - IOBUFFER [ [] ]

dev:10252019-12-19 10:33:14.845 pm debugSharpAquos - SharpAquos - request 2953 - Socket [open] CMD [RCKY] Params [31]

dev:10252019-12-19 10:33:14.836 pm debugSharpAquos - SharpAquos - getMutex 2953 - Acquired mutex permit [0]

dev:10252019-12-19 10:33:14.832 pm debugSharpAquos - SharpAquos - getMutex 2953 - Acquire mutex request [1]

dev:10252019-12-19 10:33:14.827 pm debugSharpAquos - toggleMute()

dev:10252019-12-19 10:33:05.182 pm debugSharpAquos - SharpAquos - releaseMutex ?2951? - Released mutex permit [1]

dev:10252019-12-19 10:33:05.173 pm debugSharpAquos - SharpAquos - releaseMutex ?2951? - Release mutex request [0]

dev:10252019-12-19 10:33:05.169 pm debugSharpAquos - SharpAquos - parseMute - SET - mute [unmuted]

dev:10252019-12-19 10:33:05.166 pm infoSharpAquos - EVENT - [[name:mute, value:unmuted]]

dev:10252019-12-19 10:33:05.162 pm debugSharpAquos - parseMute - response '2'

dev:10252019-12-19 10:33:05.144 pm debugSharpAquos - SharpAquos - parse - 1 - COMMAND [MUTE? ] RESPONSE [2]

dev:10252019-12-19 10:33:05.139 pm debugSharpAquos - SharpAquos - parse - IOBUFFER: 2 entries [[MUTE? , 2]]

dev:10252019-12-19 10:33:05.084 pm debugSharpAquos - toggleMute() - completed

dev:10252019-12-19 10:33:05.080 pm debugSharpAquos - sendSocketCommand - sending [MUTE? ]

dev:10252019-12-19 10:33:05.076 pm debugSharpAquos - SharpAquos - request 2952 - IOBUFFER [ [] ]

dev:10252019-12-19 10:33:05.073 pm debugSharpAquos - SharpAquos - request 2952 - Socket [open] CMD [MUTE] Params [?]

dev:10252019-12-19 10:33:05.069 pm debugSharpAquos - SharpAquos - getMutex 2952 - Acquired mutex permit [0]

dev:10252019-12-19 10:33:05.065 pm debugSharpAquos - SharpAquos - releaseMutex ?2951? - Released mutex permit [1]

dev:10252019-12-19 10:33:05.061 pm debugSharpAquos - SharpAquos - releaseMutex ?2951? - Release mutex request [0]

dev:10252019-12-19 10:33:05.056 pm debugSharpAquos - SharpAquos - parse - 1 - COMMAND [RCKY31 ] RESPONSE [OK]

dev:10252019-12-19 10:33:05.051 pm debugSharpAquos - SharpAquos - parse - IOBUFFER: 2 entries [[RCKY31 , OK]]

dev:10252019-12-19 10:33:04.997 pm debugSharpAquos - SharpAquos - getMutex 2952 - Acquire mutex request [0]

dev:10252019-12-19 10:33:04.987 pm debugSharpAquos - sendSocketCommand - sending [RCKY31 ]

dev:10252019-12-19 10:33:04.982 pm debugSharpAquos - SharpAquos - request 2951 - IOBUFFER [ [] ]

dev:10252019-12-19 10:33:04.978 pm debugSharpAquos - SharpAquos - request 2951 - Socket [open] CMD [RCKY] Params [31]

dev:10252019-12-19 10:33:04.970 pm debugSharpAquos - SharpAquos - getMutex 2951 - Acquired mutex permit [0]

dev:10252019-12-19 10:33:04.966 pm debugSharpAquos - SharpAquos - getMutex 2951 - Acquire mutex request [1]

dev:10252019-12-19 10:33:04.961 pm debugSharpAquos - toggleMute()

dev:10252019-12-19 10:32:39.864 pm debugSharpAquos - SharpAquos - releaseMutex ?2949? - Released mutex permit [1]

dev:10252019-12-19 10:32:39.849 pm debugSharpAquos - SharpAquos - releaseMutex ?2949? - Release mutex request [0]

dev:10252019-12-19 10:32:39.844 pm debugSharpAquos - SharpAquos - parseSleepTimer - SET - SleepTimer [0] SleepTimerSetting [Off]

dev:10252019-12-19 10:32:39.834 pm infoSharpAquos - EVENT - [[name:SleepTimerSetting, value:Off]]

dev:10252019-12-19 10:32:39.824 pm infoSharpAquos - EVENT - [[name:SleepTimer, value:0]]

dev:10252019-12-19 10:32:39.820 pm debugSharpAquos - parseSleepTimer - response '0'

dev:10252019-12-19 10:32:39.816 pm debugSharpAquos - SharpAquos - parse - 1 - COMMAND [OFTM? ] RESPONSE [0]

dev:10252019-12-19 10:32:39.810 pm debugSharpAquos - SharpAquos - parse - IOBUFFER: 2 entries [[OFTM? , 0]]

dev:10252019-12-19 10:32:39.776 pm debugSharpAquos - getDeviceState() Completed.

dev:10252019-12-19 10:32:39.678 pm debugSharpAquos - sendSocketCommand - sending [OFTM? ]

dev:10252019-12-19 10:32:39.675 pm debugSharpAquos - SharpAquos - request 2950 - IOBUFFER [ [] ]

dev:10252019-12-19 10:32:39.671 pm debugSharpAquos - SharpAquos - request 2950 - Socket [open] CMD [OFTM] Params [?]

dev:10252019-12-19 10:32:39.667 pm debugSharpAquos - SharpAquos - releaseMutex ?2949? - Released mutex permit [1]

dev:10252019-12-19 10:32:39.663 pm debugSharpAquos - SharpAquos - getMutex 2950 - Acquired mutex permit [0]

dev:10252019-12-19 10:32:39.659 pm debugSharpAquos - SharpAquos - releaseMutex ?2949? - Release mutex request [0]

dev:10252019-12-19 10:32:39.641 pm debugSharpAquos - SharpAquos - parse3DMode - SET - 3DMode [0] 3DModeName [3D Off]

dev:10252019-12-19 10:32:39.637 pm infoSharpAquos - EVENT - [[name:3DModeName, value:3D Off]]

dev:10252019-12-19 10:32:39.619 pm infoSharpAquos - EVENT - [[name:3DMode, value:0]]

dev:10252019-12-19 10:32:39.614 pm debugSharpAquos - parse3DMode - response '0'

dev:10252019-12-19 10:32:39.607 pm debugSharpAquos - SharpAquos - parse - 1 - COMMAND [TDCH? ] RESPONSE [0]

dev:10252019-12-19 10:32:39.597 pm debugSharpAquos - SharpAquos - parse - IOBUFFER: 2 entries [[TDCH? , 0]]

dev:10252019-12-19 10:32:39.293 pm debugSharpAquos - SharpAquos - getMutex 2950 - Acquire mutex request [0]

dev:10252019-12-19 10:32:39.289 pm debugSharpAquos - sendSocketCommand - sending [TDCH? ]

dev:10252019-12-19 10:32:39.285 pm debugSharpAquos - SharpAquos - request 2949 - IOBUFFER [ [] ]

dev:10252019-12-19 10:32:39.272 pm debugSharpAquos - SharpAquos - request 2949 - Socket [open] CMD [TDCH] Params [?]

dev:10252019-12-19 10:32:39.265 pm debugSharpAquos - SharpAquos - releaseMutex ?2948? - Released mutex permit [1]

dev:10252019-12-19 10:32:39.261 pm debugSharpAquos - SharpAquos - getMutex 2949 - Acquired mutex permit [0]

dev:10252019-12-19 10:32:39.256 pm debugSharpAquos - SharpAquos - releaseMutex ?2948? - Release mutex request [0]

dev:10252019-12-19 10:32:39.252 pm debugSharpAquos - SharpAquos - parseVideoMode - SET - VideoMode [4] VideoModeName [USER]

dev:10252019-12-19 10:32:39.244 pm infoSharpAquos - EVENT - [[name:VideoModeName, value:USER]]

dev:10252019-12-19 10:32:39.238 pm infoSharpAquos - EVENT - [[name:VideoMode, value:4]]

dev:10252019-12-19 10:32:39.234 pm debugSharpAquos - parseVideoMode - response '4'

dev:10252019-12-19 10:32:39.230 pm debugSharpAquos - SharpAquos - parse - 1 - COMMAND [AVMD? ] RESPONSE [4]

dev:10252019-12-19 10:32:39.225 pm debugSharpAquos - SharpAquos - parse - IOBUFFER: 2 entries [[AVMD? , 4]]

dev:10252019-12-19 10:32:39.092 pm debugSharpAquos - SharpAquos - getMutex 2949 - Acquire mutex request [0]

dev:10252019-12-19 10:32:39.088 pm debugSharpAquos - sendSocketCommand - sending [AVMD? ]

dev:10252019-12-19 10:32:39.084 pm debugSharpAquos - SharpAquos - request 2948 - IOBUFFER [ [] ]

dev:10252019-12-19 10:32:39.081 pm debugSharpAquos - SharpAquos - releaseMutex ?2947? - Released mutex permit [0]

dev:10252019-12-19 10:32:39.077 pm debugSharpAquos - SharpAquos - request 2948 - Socket [open] CMD [AVMD] Params [?]

dev:10252019-12-19 10:32:39.073 pm debugSharpAquos - SharpAquos - getMutex 2948 - Acquired mutex permit [0]

dev:10252019-12-19 10:32:39.069 pm debugSharpAquos - SharpAquos - releaseMutex ?2947? - Release mutex request [0]

dev:10252019-12-19 10:32:39.065 pm debugSharpAquos - SharpAquos - parseSurroundMode - SET - SurroundMode [2] SurroundModeName [Off]

dev:10252019-12-19 10:32:39.061 pm infoSharpAquos - EVENT - [[name:SurroundModeName, value:Off]]

dev:10252019-12-19 10:32:39.048 pm infoSharpAquos - EVENT - [[name:SurroundMode, value:2]]

dev:10252019-12-19 10:32:39.035 pm debugSharpAquos - parseSurround - response '2'

dev:10252019-12-19 10:32:39.032 pm debugSharpAquos - SharpAquos - parse - 1 - COMMAND [ACSU? ] RESPONSE [2]

dev:10252019-12-19 10:32:39.028 pm debugSharpAquos - SharpAquos - parse - IOBUFFER: 2 entries [[ACSU? , 2]]

dev:10252019-12-19 10:32:38.967 pm debugSharpAquos - SharpAquos - getMutex 2948 - Acquire mutex request [0]

dev:10252019-12-19 10:32:38.963 pm debugSharpAquos - sendSocketCommand - sending [ACSU? ]

dev:10252019-12-19 10:32:38.959 pm debugSharpAquos - SharpAquos - request 2947 - IOBUFFER [ [] ]

dev:10252019-12-19 10:32:38.956 pm debugSharpAquos - SharpAquos - releaseMutex ?2946? - Released mutex permit [0]

dev:10252019-12-19 10:32:38.936 pm debugSharpAquos - SharpAquos - request 2947 - Socket [open] CMD [ACSU] Params [?]

dev:10252019-12-19 10:32:38.932 pm debugSharpAquos - SharpAquos - getMutex 2947 - Acquired mutex permit [0]

dev:10252019-12-19 10:32:38.905 pm debugSharpAquos - SharpAquos - releaseMutex ?2946? - Release mutex request [0]

dev:10252019-12-19 10:32:38.901 pm debugSharpAquos - SharpAquos - parseViewMode - SET - ViewMode [8] ViewModeName [Dot by Dot]

dev:10252019-12-19 10:32:38.897 pm infoSharpAquos - EVENT - [[name:ViewModeName, value:Dot by Dot]]

dev:10252019-12-19 10:32:38.893 pm infoSharpAquos - EVENT - [[name:ViewMode, value:8]]

dev:10252019-12-19 10:32:38.890 pm debugSharpAquos - parseViewMode - response '8'

dev:10252019-12-19 10:32:38.876 pm debugSharpAquos - SharpAquos - parse - 1 - COMMAND [WIDE? ] RESPONSE [8]

dev:10252019-12-19 10:32:38.871 pm debugSharpAquos - SharpAquos - parse - IOBUFFER: 2 entries [[WIDE? , 8]]

dev:10252019-12-19 10:32:38.822 pm debugSharpAquos - SharpAquos - getMutex 2947 - Acquire mutex request [0]

dev:10252019-12-19 10:32:38.818 pm debugSharpAquos - sendSocketCommand - sending [WIDE? ]

dev:10252019-12-19 10:32:38.814 pm debugSharpAquos - SharpAquos - request 2946 - IOBUFFER [ [] ]

dev:10252019-12-19 10:32:38.811 pm debugSharpAquos - SharpAquos - releaseMutex ?2945? - Released mutex permit [0]

dev:10252019-12-19 10:32:38.807 pm debugSharpAquos - SharpAquos - request 2946 - Socket [open] CMD [WIDE] Params [?]

dev:10252019-12-19 10:32:38.803 pm debugSharpAquos - SharpAquos - getMutex 2946 - Acquired mutex permit [0]

dev:10252019-12-19 10:32:38.767 pm debugSharpAquos - SharpAquos - releaseMutex ?2945? - Release mutex request [0]

dev:10252019-12-19 10:32:38.763 pm debugSharpAquos - SharpAquos - parseInput - SET - input [1] InputName [HDMI IN 1]

dev:10252019-12-19 10:32:38.757 pm infoSharpAquos - EVENT - [[name:inputName, value:HDMI IN 1]]

dev:10252019-12-19 10:32:38.751 pm infoSharpAquos - EVENT - [[name:input, value:1]]

dev:10252019-12-19 10:32:38.747 pm debugSharpAquos - parseInput - response '1'

dev:10252019-12-19 10:32:38.743 pm debugSharpAquos - SharpAquos - parse - 1 - COMMAND [IAVD? ] RESPONSE [1]

dev:10252019-12-19 10:32:38.738 pm debugSharpAquos - SharpAquos - parse - IOBUFFER: 2 entries [[IAVD? , 1]]

dev:10252019-12-19 10:32:38.687 pm debugSharpAquos - SharpAquos - getMutex 2946 - Acquire mutex request [0]

dev:10252019-12-19 10:32:38.672 pm debugSharpAquos - sendSocketCommand - sending [IAVD? ]

dev:10252019-12-19 10:32:38.668 pm debugSharpAquos - SharpAquos - request 2945 - IOBUFFER [ [] ]

dev:10252019-12-19 10:32:38.657 pm debugSharpAquos - SharpAquos - releaseMutex ?2944? - Released mutex permit [0]

dev:10252019-12-19 10:32:38.653 pm debugSharpAquos - SharpAquos - request 2945 - Socket [open] CMD [IAVD] Params [?]

dev:10252019-12-19 10:32:38.644 pm debugSharpAquos - SharpAquos - getMutex 2945 - Acquired mutex permit [0]

dev:10252019-12-19 10:32:38.640 pm debugSharpAquos - SharpAquos - releaseMutex ?2944? - Release mutex request [0]

dev:10252019-12-19 10:32:38.636 pm debugSharpAquos - SharpAquos - parseVolume - SET - volume [12]

dev:10252019-12-19 10:32:38.630 pm infoSharpAquos - EVENT - [[name:volume, value:12]]

dev:10252019-12-19 10:32:38.626 pm debugSharpAquos - parseVolume - response '12'

dev:10252019-12-19 10:32:38.622 pm debugSharpAquos - SharpAquos - parse - 1 - COMMAND [VOLM? ] RESPONSE [12]

dev:10252019-12-19 10:32:38.616 pm debugSharpAquos - SharpAquos - parse - IOBUFFER: 2 entries [[VOLM? , 12]]

dev:10252019-12-19 10:32:38.519 pm debugSharpAquos - SharpAquos - getMutex 2945 - Acquire mutex request [0]

dev:10252019-12-19 10:32:38.516 pm debugSharpAquos - SharpAquos - releaseMutex ?2943? - Released mutex permit [0]

dev:10252019-12-19 10:32:38.509 pm debugSharpAquos - sendSocketCommand - sending [VOLM? ]

dev:10252019-12-19 10:32:38.490 pm debugSharpAquos - SharpAquos - request 2944 - IOBUFFER [ [] ]

dev:10252019-12-19 10:32:38.486 pm debugSharpAquos - SharpAquos - request 2944 - Socket [open] CMD [VOLM] Params [?]

dev:10252019-12-19 10:32:38.478 pm debugSharpAquos - SharpAquos - getMutex 2944 - Acquired mutex permit [0]

dev:10252019-12-19 10:32:38.466 pm debugSharpAquos - SharpAquos - releaseMutex ?2943? - Release mutex request [0]

dev:10252019-12-19 10:32:38.453 pm debugSharpAquos - SharpAquos - parseMute - SET - mute [unmuted]

dev:10252019-12-19 10:32:38.441 pm infoSharpAquos - EVENT - [[name:mute, value:unmuted]]

dev:10252019-12-19 10:32:38.437 pm debugSharpAquos - parseMute - response '2'

dev:10252019-12-19 10:32:38.433 pm debugSharpAquos - SharpAquos - parse - 1 - COMMAND [MUTE? ] RESPONSE [2]

dev:10252019-12-19 10:32:38.417 pm debugSharpAquos - SharpAquos - parse - IOBUFFER: 2 entries [[MUTE? , 2]]

dev:10252019-12-19 10:32:38.403 pm debugSharpAquos - SharpAquos - getMutex 2944 - Acquire mutex request [0]

dev:10252019-12-19 10:32:38.398 pm debugSharpAquos - sendSocketCommand - sending [MUTE? ]

dev:10252019-12-19 10:32:38.395 pm debugSharpAquos - SharpAquos - request 2943 - IOBUFFER [ [] ]

dev:10252019-12-19 10:32:38.383 pm debugSharpAquos - SharpAquos - request 2943 - Socket [open] CMD [MUTE] Params [?]

dev:10252019-12-19 10:32:38.379 pm debugSharpAquos - SharpAquos - releaseMutex ?2942? - Released mutex permit [0]

dev:10252019-12-19 10:32:38.366 pm debugSharpAquos - SharpAquos - getMutex 2943 - Acquired mutex permit [0]

dev:10252019-12-19 10:32:38.362 pm debugSharpAquos - SharpAquos - releaseMutex ?2942? - Release mutex request [0]

dev:10252019-12-19 10:32:38.345 pm debugSharpAquos - SharpAquos - parsePower - SET - power [on]

dev:10252019-12-19 10:32:38.328 pm infoSharpAquos - EVENT - [[name:switch, value:on]]

dev:10252019-12-19 10:32:38.309 pm infoSharpAquos - EVENT - [[name:power, value:on]]

dev:10252019-12-19 10:32:38.299 pm debugSharpAquos - parsePower - response '1'

dev:10252019-12-19 10:32:38.294 pm debugSharpAquos - SharpAquos - parse - 1 - COMMAND [POWR? ] RESPONSE [1]

dev:10252019-12-19 10:32:38.275 pm debugSharpAquos - SharpAquos - parse - IOBUFFER: 2 entries [[POWR? , 1]]

dev:10252019-12-19 10:32:38.172 pm debugSharpAquos - SharpAquos - getMutex 2943 - Acquire mutex request [0]

dev:10252019-12-19 10:32:38.167 pm debugSharpAquos - sendSocketCommand - sending [POWR? ]

dev:10252019-12-19 10:32:38.163 pm debugSharpAquos - SharpAquos - request 2942 - IOBUFFER [ [] ]

dev:10252019-12-19 10:32:38.153 pm debugSharpAquos - SharpAquos - request 2942 - Socket [open] CMD [POWR] Params [?]

dev:10252019-12-19 10:32:38.149 pm debugSharpAquos - SharpAquos - getMutex 2942 - Acquired mutex permit [0]

dev:10252019-12-19 10:32:38.131 pm debugSharpAquos - SharpAquos - getMutex 2942 - Acquire mutex request [1]

dev:10252019-12-19 10:32:38.114 pm debugSharpAquos - getDeviceState() Starting

dev:10252019-12-19 10:30:50.089 pm debugSharpAquos - openSocket: Socket opened.

dev:10252019-12-19 10:30:48.056 pm debugSharpAquos - openSocket: Connecting to 192.168.254.205:10002

dev:10252019-12-19 10:30:43.047 pm debugSharpAquos - telnetStatus - Stream Closed - Attempting reconnect [1]

dev:10252019-12-19 10:30:43.042 pm debugSharpAquos - closeSocket: Socket closed. [1] [1]

dev:10252019-12-19 10:30:43.016 pm warnSharpAquos - FLUSHMUTEX - FLUSHED - Queued [false] Waiting [0] permits [1]

dev:10252019-12-19 10:30:41.900 pm warnSharpAquos - FLUSHMUTEX - flushing mutex queue. Queued [false] Waiting [0] permits [1]

dev:10252019-12-19 10:30:41.732 pm debugSharpAquos - closeSocket: Socket close requested.

dev:10252019-12-19 10:30:41.703 pm warntelnetStatus - Socket [open] Message [receive error: Stream is closed]

dev:10252019-12-19 10:27:39.341 pm debugSharpAquos - SharpAquos - releaseMutex ?2940? - Released mutex permit [1]

dev:10252019-12-19 10:27:39.338 pm debugSharpAquos - SharpAquos - releaseMutex ?2940? - Release mutex request [0]

dev:10252019-12-19 10:27:39.333 pm debugSharpAquos - SharpAquos - parseSleepTimer - SET - SleepTimer [0] SleepTimerSetting [Off]

dev:10252019-12-19 10:27:39.323 pm infoSharpAquos - EVENT - [[name:SleepTimerSetting, value:Off]]

dev:10252019-12-19 10:27:39.314 pm infoSharpAquos - EVENT - [[name:SleepTimer, value:0]]

dev:10252019-12-19 10:27:39.310 pm debugSharpAquos - parseSleepTimer - response '0'

dev:10252019-12-19 10:27:39.306 pm debugSharpAquos - SharpAquos - parse - 1 - COMMAND [OFTM? ] RESPONSE [0]

dev:10252019-12-19 10:27:39.301 pm debugSharpAquos - SharpAquos - parse - IOBUFFER: 2 entries [[OFTM? , 0]]

Maybe I spoke too soon, hit toggle mute and nothing.....finally started working a little bit later. Here are the logs....

Summary

dev:10252019-12-19 11:11:12.034 pm debugSharpAquos - SharpAquos - releaseMutex ?3025? - Released mutex permit [1]

dev:10252019-12-19 11:11:12.010 pm debugSharpAquos - SharpAquos - releaseMutex ?3025? - Release mutex request [0]

dev:10252019-12-19 11:11:11.986 pm debugSharpAquos - SharpAquos - parseMute - SET - mute [unmuted]

dev:10252019-12-19 11:11:11.976 pm infoSharpAquos - EVENT - [[name:mute, value:unmuted]]

dev:10252019-12-19 11:11:11.962 pm debugSharpAquos - parseMute - response '2'

dev:10252019-12-19 11:11:11.954 pm debugSharpAquos - SharpAquos - parse - 1 - COMMAND [MUTE? ] RESPONSE [2]

dev:10252019-12-19 11:11:11.945 pm debugSharpAquos - SharpAquos - parse - IOBUFFER: 2 entries [[MUTE? , 2]]

dev:10252019-12-19 11:11:11.866 pm debugSharpAquos - toggleMute() - completed

dev:10252019-12-19 11:11:11.863 pm debugSharpAquos - sendSocketCommand - sending [MUTE? ]

dev:10252019-12-19 11:11:11.855 pm debugSharpAquos - SharpAquos - request 3026 - IOBUFFER [ [] ]

dev:10252019-12-19 11:11:11.851 pm debugSharpAquos - SharpAquos - request 3026 - Socket [open] CMD [MUTE] Params [?]

dev:10252019-12-19 11:11:11.847 pm debugSharpAquos - SharpAquos - releaseMutex ?3025? - Released mutex permit [0]

dev:10252019-12-19 11:11:11.826 pm debugSharpAquos - SharpAquos - getMutex 3026 - Acquired mutex permit [0]

dev:10252019-12-19 11:11:11.798 pm debugSharpAquos - SharpAquos - releaseMutex ?3025? - Release mutex request [0]

dev:10252019-12-19 11:11:11.792 pm debugSharpAquos - SharpAquos - parse - 1 - COMMAND [RCKY31 ] RESPONSE [OK]

dev:10252019-12-19 11:11:11.774 pm debugSharpAquos - SharpAquos - parse - IOBUFFER: 2 entries [[RCKY31 , OK]]

dev:10252019-12-19 11:11:11.699 pm debugSharpAquos - SharpAquos - getMutex 3026 - Acquire mutex request [0]

dev:10252019-12-19 11:11:11.677 pm debugSharpAquos - sendSocketCommand - sending [RCKY31 ]

dev:10252019-12-19 11:11:11.661 pm debugSharpAquos - SharpAquos - request 3025 - IOBUFFER [ [] ]

dev:10252019-12-19 11:11:11.653 pm debugSharpAquos - SharpAquos - request 3025 - Socket [open] CMD [RCKY] Params [31]

dev:10252019-12-19 11:11:11.638 pm debugSharpAquos - SharpAquos - getMutex 3025 - Acquired mutex permit [0]

dev:10252019-12-19 11:11:11.630 pm debugSharpAquos - SharpAquos - getMutex 3025 - Acquire mutex request [1]

dev:10252019-12-19 11:11:11.621 pm debugSharpAquos - toggleMute()

dev:10252019-12-19 11:10:49.645 pm debugSharpAquos - openSocket: Socket opened.

dev:10252019-12-19 11:10:48.632 pm debugSharpAquos - openSocket: Connecting to 192.168.254.205:10002

dev:10252019-12-19 11:10:43.623 pm debugSharpAquos - telnetStatus - Stream Closed - Attempting reconnect [1]

dev:10252019-12-19 11:10:43.603 pm debugSharpAquos - closeSocket: Socket closed. [1] [1]

dev:10252019-12-19 11:10:43.588 pm warnSharpAquos - FLUSHMUTEX - FLUSHED - Queued [false] Waiting [0] permits [1]

dev:10252019-12-19 11:10:42.476 pm warnSharpAquos - FLUSHMUTEX - flushing mutex queue. Queued [false] Waiting [0] permits [0]

dev:10252019-12-19 11:10:42.336 pm debugSharpAquos - closeSocket: Socket close requested.

dev:10252019-12-19 11:10:42.331 pm warntelnetStatus - Socket [open] Message [receive error: Stream is closed]

dev:10252019-12-19 11:10:35.706 pm debugSharpAquos - toggleMute() - completed

dev:10252019-12-19 11:10:35.698 pm errorSharpAquos - request 3024 - ERROR. Unable to acquire mutex permit.[0]

dev:10252019-12-19 11:10:35.690 pm debugSharpAquos - request 3024 - Socket [open] CMD [MUTE] Params [?]

dev:10252019-12-19 11:10:35.680 pm debugSharpAquos - SharpAquos - getMutex 3024 - Connection STALLED??? [0]

dev:10252019-12-19 11:10:35.671 pm debugSharpAquos - SharpAquos - getMutex 3024 - Failed to acquire mutex permit [0]

dev:10252019-12-19 11:10:33.649 pm debugSharpAquos - SharpAquos - getMutex 3024 - Acquire mutex request [0]

dev:10252019-12-19 11:10:33.640 pm errorSharpAquos - request 3023 - ERROR. Unable to acquire mutex permit.[0]

dev:10252019-12-19 11:10:33.625 pm debugSharpAquos - request 3023 - Socket [open] CMD [RCKY] Params [31]

dev:10252019-12-19 11:10:33.612 pm debugSharpAquos - SharpAquos - getMutex 3023 - Connection STALLED??? [0]

dev:10252019-12-19 11:10:33.607 pm debugSharpAquos - SharpAquos - getMutex 3023 - Failed to acquire mutex permit [0]

dev:10252019-12-19 11:10:31.597 pm debugSharpAquos - SharpAquos - getMutex 3023 - Acquire mutex request [0]

dev:10252019-12-19 11:10:31.553 pm debugSharpAquos - toggleMute()

dev:10252019-12-19 11:08:40.361 pm debugSharpAquos - toggleMute() - completed

dev:10252019-12-19 11:08:40.357 pm errorSharpAquos - request 3022 - ERROR. Unable to acquire mutex permit.[0]

dev:10252019-12-19 11:08:40.352 pm debugSharpAquos - request 3022 - Socket [open] CMD [MUTE] Params [?]

dev:10252019-12-19 11:08:40.346 pm debugSharpAquos - SharpAquos - getMutex 3022 - Connection STALLED??? [0]

dev:10252019-12-19 11:08:40.341 pm debugSharpAquos - SharpAquos - getMutex 3022 - Failed to acquire mutex permit [0]

dev:10252019-12-19 11:08:38.329 pm debugSharpAquos - SharpAquos - getMutex 3022 - Acquire mutex request [0]

dev:10252019-12-19 11:08:38.325 pm errorSharpAquos - request 3021 - ERROR. Unable to acquire mutex permit.[0]

dev:10252019-12-19 11:08:38.319 pm debugSharpAquos - request 3021 - Socket [open] CMD [RCKY] Params [31]

dev:10252019-12-19 11:08:38.308 pm debugSharpAquos - SharpAquos - getMutex 3021 - Connection STALLED??? [0]

dev:10252019-12-19 11:08:38.303 pm debugSharpAquos - SharpAquos - getMutex 3021 - Failed to acquire mutex permit [0]

dev:10252019-12-19 11:08:36.278 pm debugSharpAquos - SharpAquos - getMutex 3021 - Acquire mutex request [0]

dev:10252019-12-19 11:08:36.273 pm debugSharpAquos - toggleMute()

dev:10252019-12-19 11:07:48.294 pm debugSharpAquos - getDeviceState() ABORTED.

dev:10252019-12-19 11:07:48.291 pm errorSharpAquos - request 3020 - ERROR. Unable to acquire mutex permit.[0]

dev:10252019-12-19 11:07:48.287 pm debugSharpAquos - request 3020 - Socket [open] CMD [ACSU] Params [?]

dev:10252019-12-19 11:07:48.283 pm debugSharpAquos - SharpAquos - getMutex 3020 - Connection STALLED??? [0]

dev:10252019-12-19 11:07:48.278 pm debugSharpAquos - SharpAquos - getMutex 3020 - Failed to acquire mutex permit [0]

dev:10252019-12-19 11:07:46.273 pm debugSharpAquos - SharpAquos - getMutex 3020 - Acquire mutex request [0]

dev:10252019-12-19 11:07:46.267 pm errorSharpAquos - request 3019 - ERROR. Unable to acquire mutex permit.[0]

dev:10252019-12-19 11:07:46.262 pm debugSharpAquos - request 3019 - Socket [open] CMD [WIDE] Params [?]

dev:10252019-12-19 11:07:46.254 pm debugSharpAquos - SharpAquos - getMutex 3019 - Failed to acquire mutex permit [0]

dev:10252019-12-19 11:07:44.216 pm debugSharpAquos - SharpAquos - getMutex 3019 - Acquire mutex request [0]

dev:10252019-12-19 11:07:44.212 pm errorSharpAquos - request 3018 - ERROR. Unable to acquire mutex permit.[0]

dev:10252019-12-19 11:07:44.208 pm debugSharpAquos - request 3018 - Socket [open] CMD [IAVD] Params [?]

dev:10252019-12-19 11:07:44.204 pm debugSharpAquos - SharpAquos - getMutex 3018 - Failed to acquire mutex permit [0]

dev:10252019-12-19 11:07:42.195 pm debugSharpAquos - SharpAquos - getMutex 3018 - Acquire mutex request [0]

dev:10252019-12-19 11:07:42.187 pm errorSharpAquos - request 3017 - ERROR. Unable to acquire mutex permit.[0]

dev:10252019-12-19 11:07:42.179 pm debugSharpAquos - request 3017 - Socket [open] CMD [VOLM] Params [?]

dev:10252019-12-19 11:07:42.170 pm debugSharpAquos - SharpAquos - getMutex 3017 - Failed to acquire mutex permit [0]

dev:10252019-12-19 11:07:41.321 pm debugSharpAquos - openSocket: Socket opened.

dev:10252019-12-19 11:07:40.311 pm debugSharpAquos - openSocket: Connecting to 192.168.254.205:10002

dev:10252019-12-19 11:07:40.165 pm debugSharpAquos - SharpAquos - getMutex 3017 - Acquire mutex request [0]

dev:10252019-12-19 11:07:40.161 pm errorSharpAquos - request 3016 - ERROR. Unable to acquire mutex permit.[0]

dev:10252019-12-19 11:07:40.147 pm debugSharpAquos - request 3016 - Socket [open] CMD [MUTE] Params [?]

dev:10252019-12-19 11:07:40.143 pm debugSharpAquos - SharpAquos - getMutex 3016 - Failed to acquire mutex permit [0]

dev:10252019-12-19 11:07:38.138 pm debugSharpAquos - SharpAquos - getMutex 3016 - Acquire mutex request [0]

dev:10252019-12-19 11:07:38.132 pm debugSharpAquos - sendSocketCommand - sending [POWR? ]

dev:10252019-12-19 11:07:38.128 pm debugSharpAquos - SharpAquos - request 3015 - IOBUFFER [ [] ]

Some morning code.....everything works but sometimes you have to push the buttons a couple times for things to take off....

Summary

dev:10252019-12-20 06:22:38.194 am debugSharpAquos - SharpAquos - request 4064 - Socket [open] CMD [POWR] Params [?]

dev:10252019-12-20 06:22:38.186 am debugSharpAquos - SharpAquos - getMutex 4064 - Acquired mutex permit [0]

dev:10252019-12-20 06:22:38.180 am debugSharpAquos - SharpAquos - getMutex 4064 - Acquire mutex request [1]

dev:10252019-12-20 06:22:38.176 am debugSharpAquos - getDeviceState() Starting

dev:10252019-12-20 06:22:30.628 am debugSharpAquos - openSocket: Socket opened.

dev:10252019-12-20 06:22:29.617 am debugSharpAquos - openSocket: Connecting to 192.168.254.205:10002

dev:10252019-12-20 06:22:24.610 am debugSharpAquos - telnetStatus - Stream Closed - Attempting reconnect [1]

dev:10252019-12-20 06:22:24.605 am debugSharpAquos - closeSocket: Socket closed. [1] [1]

dev:10252019-12-20 06:22:24.598 am warnSharpAquos - FLUSHMUTEX - FLUSHED - Queued [false] Waiting [0] permits [1]

dev:10252019-12-20 06:22:23.490 am warnSharpAquos - FLUSHMUTEX - flushing mutex queue. Queued [false] Waiting [0] permits [1]

dev:10252019-12-20 06:22:23.384 am debugSharpAquos - closeSocket: Socket close requested.

dev:10252019-12-20 06:22:23.379 am warntelnetStatus - Socket [open] Message [receive error: Stream is closed]

dev:10252019-12-20 06:19:21.672 am debugSharpAquos - SharpAquos - releaseMutex ?4062? - Released mutex permit [1]

dev:10252019-12-20 06:19:21.668 am debugSharpAquos - SharpAquos - releaseMutex ?4062? - Release mutex request [0]

dev:10252019-12-20 06:19:21.663 am debugSharpAquos - SharpAquos - parsePower - SET - power [on]

dev:10252019-12-20 06:19:21.649 am infoSharpAquos - EVENT - [[name:switch, value:on]]

dev:10252019-12-20 06:19:21.608 am infoSharpAquos - EVENT - [[name:power, value:on]]

dev:10252019-12-20 06:19:21.604 am debugSharpAquos - parsePower - response '1'

dev:10252019-12-20 06:19:21.600 am debugSharpAquos - SharpAquos - parse - 1 - COMMAND [POWR? ] RESPONSE [1]

dev:10252019-12-20 06:19:21.595 am debugSharpAquos - SharpAquos - parse - IOBUFFER: 2 entries [[POWR? , 1]]

dev:10252019-12-20 06:19:21.387 am debugSharpAquos - sendSocketCommand - sending [POWR? ]

dev:10252019-12-20 06:19:21.383 am debugSharpAquos - SharpAquos - request 4063 - IOBUFFER [ [] ]

dev:10252019-12-20 06:19:21.376 am debugSharpAquos - SharpAquos - request 4063 - Socket [open] CMD [POWR] Params [?]

dev:10252019-12-20 06:19:21.372 am debugSharpAquos - SharpAquos - releaseMutex ?4062? - Released mutex permit [1]

dev:10252019-12-20 06:19:21.372 am debugSharpAquos - SharpAquos - getMutex 4063 - Acquired mutex permit [0]

dev:10252019-12-20 06:19:21.368 am debugSharpAquos - SharpAquos - releaseMutex ?4062? - Release mutex request [0]

dev:10252019-12-20 06:19:21.364 am debugSharpAquos - SharpAquos - parse - 1 - COMMAND [POWR1 ] RESPONSE [OK]

dev:10252019-12-20 06:19:21.359 am debugSharpAquos - SharpAquos - parse - IOBUFFER: 2 entries [[POWR1 , OK]]

dev:10252019-12-20 06:19:21.219 am debugSharpAquos - SharpAquos - getMutex 4063 - Acquire mutex request [0]

dev:10252019-12-20 06:19:21.215 am debugSharpAquos - sendSocketCommand - sending [POWR1 ]

dev:10252019-12-20 06:19:21.210 am debugSharpAquos - SharpAquos - request 4062 - IOBUFFER [ [] ]

dev:10252019-12-20 06:19:21.206 am debugSharpAquos - SharpAquos - request 4062 - Socket [open] CMD [POWR] Params [1]

dev:10252019-12-20 06:19:21.198 am debugSharpAquos - SharpAquos - getMutex 4062 - Acquired mutex permit [0]

dev:10252019-12-20 06:19:21.194 am debugSharpAquos - SharpAquos - getMutex 4062 - Acquire mutex request [1]

dev:10252019-12-20 06:19:21.191 am debugSharpAquos - Turn on TV

dev:10252019-12-20 06:19:12.530 am debugSharpAquos - SharpAquos - releaseMutex ?4060? - Released mutex permit [1]

dev:10252019-12-20 06:19:12.526 am debugSharpAquos - SharpAquos - releaseMutex ?4060? - Release mutex request [0]

dev:10252019-12-20 06:19:12.522 am debugSharpAquos - SharpAquos - parsePower - SET - power [on]

dev:10252019-12-20 06:19:12.518 am infoSharpAquos - EVENT - [[name:switch, value:on]]

dev:10252019-12-20 06:19:12.514 am infoSharpAquos - EVENT - [[name:power, value:on]]

dev:10252019-12-20 06:19:12.511 am debugSharpAquos - parsePower - response '1'

dev:10252019-12-20 06:19:12.506 am debugSharpAquos - SharpAquos - parse - 1 - COMMAND [POWR? ] RESPONSE [1]

dev:10252019-12-20 06:19:12.501 am debugSharpAquos - SharpAquos - parse - IOBUFFER: 2 entries [[POWR? , 1]]

dev:10252019-12-20 06:19:12.353 am debugSharpAquos - sendSocketCommand - sending [POWR? ]

dev:10252019-12-20 06:19:12.336 am debugSharpAquos - SharpAquos - request 4061 - IOBUFFER [ [] ]

dev:10252019-12-20 06:19:12.332 am debugSharpAquos - SharpAquos - request 4061 - Socket [open] CMD [POWR] Params [?]

dev:10252019-12-20 06:19:12.328 am debugSharpAquos - SharpAquos - releaseMutex ?4060? - Released mutex permit [1]

dev:10252019-12-20 06:19:12.328 am debugSharpAquos - SharpAquos - getMutex 4061 - Acquired mutex permit [0]

dev:10252019-12-20 06:19:12.324 am debugSharpAquos - SharpAquos - releaseMutex ?4060? - Release mutex request [0]

dev:10252019-12-20 06:19:12.320 am debugSharpAquos - SharpAquos - parse - 1 - COMMAND [POWR1 ] RESPONSE [OK]

dev:10252019-12-20 06:19:12.315 am debugSharpAquos - SharpAquos - parse - IOBUFFER: 2 entries [[POWR1 , OK]]

dev:10252019-12-20 06:19:12.169 am debugSharpAquos - SharpAquos - getMutex 4061 - Acquire mutex request [0]

dev:10252019-12-20 06:19:12.164 am debugSharpAquos - sendSocketCommand - sending [POWR1 ]

dev:10252019-12-20 06:19:12.159 am debugSharpAquos - SharpAquos - request 4060 - IOBUFFER [ [] ]

dev:10252019-12-20 06:19:12.155 am debugSharpAquos - SharpAquos - request 4060 - Socket [open] CMD [POWR] Params [1]

dev:10252019-12-20 06:19:12.147 am debugSharpAquos - SharpAquos - getMutex 4060 - Acquired mutex permit [0]

dev:10252019-12-20 06:19:12.143 am debugSharpAquos - SharpAquos - getMutex 4060 - Acquire mutex request [1]

dev:10252019-12-20 06:19:12.140 am debugSharpAquos - Turn on TV

dev:10252019-12-20 06:19:00.281 am debugSharpAquos - SharpAquos - releaseMutex ?4058? - Released mutex permit [1]

dev:10252019-12-20 06:19:00.276 am debugSharpAquos - SharpAquos - releaseMutex ?4058? - Release mutex request [0]

dev:10252019-12-20 06:19:00.271 am debugSharpAquos - SharpAquos - parseMute - SET - mute [unmuted]

dev:10252019-12-20 06:19:00.267 am infoSharpAquos - EVENT - [[name:mute, value:unmuted]]

dev:10252019-12-20 06:19:00.264 am debugSharpAquos - parseMute - response '2'

dev:10252019-12-20 06:19:00.259 am debugSharpAquos - SharpAquos - parse - 1 - COMMAND [MUTE? ] RESPONSE [2]

dev:10252019-12-20 06:19:00.255 am debugSharpAquos - SharpAquos - parse - IOBUFFER: 2 entries [[MUTE? , 2]]

dev:10252019-12-20 06:19:00.200 am debugSharpAquos - toggleMute() - completed

dev:10252019-12-20 06:19:00.195 am debugSharpAquos - sendSocketCommand - sending [MUTE? ]

dev:10252019-12-20 06:19:00.191 am debugSharpAquos - SharpAquos - request 4059 - IOBUFFER [ [] ]

dev:10252019-12-20 06:19:00.186 am debugSharpAquos - SharpAquos - request 4059 - Socket [open] CMD [MUTE] Params [?]

dev:10252019-12-20 06:19:00.182 am debugSharpAquos - SharpAquos - releaseMutex ?4058? - Released mutex permit [1]

dev:10252019-12-20 06:19:00.182 am debugSharpAquos - SharpAquos - getMutex 4059 - Acquired mutex permit [0]

dev:10252019-12-20 06:19:00.178 am debugSharpAquos - SharpAquos - releaseMutex ?4058? - Release mutex request [0]

dev:10252019-12-20 06:19:00.173 am debugSharpAquos - SharpAquos - parse - 1 - COMMAND [RCKY31 ] RESPONSE [OK]

dev:10252019-12-20 06:19:00.169 am debugSharpAquos - SharpAquos - parse - IOBUFFER: 2 entries [[RCKY31 , OK]]

dev:10252019-12-20 06:19:00.095 am debugSharpAquos - SharpAquos - getMutex 4059 - Acquire mutex request [0]

dev:10252019-12-20 06:19:00.090 am debugSharpAquos - sendSocketCommand - sending [RCKY31 ]

dev:10252019-12-20 06:19:00.085 am debugSharpAquos - SharpAquos - request 4058 - IOBUFFER [ [] ]

dev:10252019-12-20 06:19:00.081 am debugSharpAquos - SharpAquos - request 4058 - Socket [open] CMD [RCKY] Params [31]

dev:10252019-12-20 06:19:00.073 am debugSharpAquos - SharpAquos - getMutex 4058 - Acquired mutex permit [0]

dev:10252019-12-20 06:19:00.069 am debugSharpAquos - SharpAquos - getMutex 4058 - Acquire mutex request [1]

dev:10252019-12-20 06:19:00.066 am debugSharpAquos - toggleMute()

dev:10252019-12-20 06:18:57.638 am debugSharpAquos - SharpAquos - releaseMutex ?4056? - Released mutex permit [1]

dev:10252019-12-20 06:18:57.634 am debugSharpAquos - SharpAquos - releaseMutex ?4056? - Release mutex request [0]

dev:10252019-12-20 06:18:57.630 am debugSharpAquos - SharpAquos - parseMute - SET - mute [unmuted]

dev:10252019-12-20 06:18:57.626 am infoSharpAquos - EVENT - [[name:mute, value:unmuted]]

dev:10252019-12-20 06:18:57.622 am debugSharpAquos - parseMute - response '2'

dev:10252019-12-20 06:18:57.618 am debugSharpAquos - SharpAquos - parse - 1 - COMMAND [MUTE? ] RESPONSE [2]

dev:10252019-12-20 06:18:57.614 am debugSharpAquos - SharpAquos - parse - IOBUFFER: 2 entries [[MUTE? , 2]]

dev:10252019-12-20 06:18:57.560 am debugSharpAquos - toggleMute() - completed

dev:10252019-12-20 06:18:57.553 am debugSharpAquos - sendSocketCommand - sending [MUTE? ]

dev:10252019-12-20 06:18:57.549 am debugSharpAquos - SharpAquos - request 4057 - IOBUFFER [ [] ]

dev:10252019-12-20 06:18:57.544 am debugSharpAquos - SharpAquos - request 4057 - Socket [open] CMD [MUTE] Params [?]

dev:10252019-12-20 06:18:57.540 am debugSharpAquos - SharpAquos - releaseMutex ?4056? - Released mutex permit [1]

dev:10252019-12-20 06:18:57.540 am debugSharpAquos - SharpAquos - getMutex 4057 - Acquired mutex permit [0]

dev:10252019-12-20 06:18:57.536 am debugSharpAquos - SharpAquos - releaseMutex ?4056? - Release mutex request [0]

dev:10252019-12-20 06:18:57.532 am debugSharpAquos - SharpAquos - parse - 1 - COMMAND [RCKY31 ] RESPONSE [OK]

dev:10252019-12-20 06:18:57.527 am debugSharpAquos - SharpAquos - parse - IOBUFFER: 2 entries [[RCKY31 , OK]]

dev:10252019-12-20 06:18:57.475 am debugSharpAquos - SharpAquos - getMutex 4057 - Acquire mutex request [0]

dev:10252019-12-20 06:18:57.470 am debugSharpAquos - sendSocketCommand - sending [RCKY31 ]

dev:10252019-12-20 06:18:57.465 am debugSharpAquos - SharpAquos - request 4056 - IOBUFFER [ [] ]

dev:10252019-12-20 06:18:57.461 am debugSharpAquos - SharpAquos - request 4056 - Socket [open] CMD [RCKY] Params [31]

dev:10252019-12-20 06:18:57.453 am debugSharpAquos - SharpAquos - getMutex 4056 - Acquired mutex permit [0]

dev:10252019-12-20 06:18:57.449 am debugSharpAquos - SharpAquos - getMutex 4056 - Acquire mutex request [1]

dev:10252019-12-20 06:18:57.446 am debugSharpAquos - toggleMute()

dev:10252019-12-20 06:18:28.338 am debugSharpAquos - SharpAquos - releaseMutex ?4054? - Released mutex permit [1]

dev:10252019-12-20 06:18:28.334 am debugSharpAquos - SharpAquos - releaseMutex ?4054? - Release mutex request [0]

dev:10252019-12-20 06:18:28.330 am debugSharpAquos - SharpAquos - parsePower - SET - power [on]

dev:10252019-12-20 06:18:28.325 am infoSharpAquos - EVENT - [[name:switch, value:on]]

dev:10252019-12-20 06:18:28.321 am infoSharpAquos - EVENT - [[name:power, value:on]]

dev:10252019-12-20 06:18:28.318 am debugSharpAquos - parsePower - response '1'

dev:10252019-12-20 06:18:28.314 am debugSharpAquos - SharpAquos - parse - 1 - COMMAND [POWR? ] RESPONSE [1]

dev:10252019-12-20 06:18:28.309 am debugSharpAquos - SharpAquos - parse - IOBUFFER: 2 entries [[POWR? , 1]]

dev:10252019-12-20 06:18:28.231 am debugSharpAquos - sendSocketCommand - sending [POWR? ]

dev:10252019-12-20 06:18:28.226 am debugSharpAquos - SharpAquos - request 4055 - IOBUFFER [ [] ]

dev:10252019-12-20 06:18:28.222 am debugSharpAquos - SharpAquos - request 4055 - Socket [open] CMD [POWR] Params [?]

dev:10252019-12-20 06:18:28.218 am debugSharpAquos - SharpAquos - releaseMutex ?4054? - Released mutex permit [1]

dev:10252019-12-20 06:18:28.218 am debugSharpAquos - SharpAquos - getMutex 4055 - Acquired mutex permit [0]

dev:10252019-12-20 06:18:28.214 am debugSharpAquos - SharpAquos - releaseMutex ?4054? - Release mutex request [0]

dev:10252019-12-20 06:18:28.210 am debugSharpAquos - SharpAquos - parse - 1 - COMMAND [POWR1 ] RESPONSE [OK]

dev:10252019-12-20 06:18:28.205 am debugSharpAquos - SharpAquos - parse - IOBUFFER: 2 entries [[POWR1 , OK]]

dev:10252019-12-20 06:18:28.091 am debugSharpAquos - SharpAquos - getMutex 4055 - Acquire mutex request [0]

dev:10252019-12-20 06:18:28.086 am debugSharpAquos - sendSocketCommand - sending [POWR1 ]

dev:10252019-12-20 06:18:28.082 am debugSharpAquos - SharpAquos - request 4054 - IOBUFFER [ [] ]

dev:10252019-12-20 06:18:28.078 am debugSharpAquos - SharpAquos - request 4054 - Socket [open] CMD [POWR] Params [1]

dev:10252019-12-20 06:18:28.070 am debugSharpAquos - SharpAquos - getMutex 4054 - Acquired mutex permit [0]

dev:10252019-12-20 06:18:28.066 am debugSharpAquos - SharpAquos - getMutex 4054 - Acquire mutex request [1]

dev:10252019-12-20 06:18:28.063 am debugSharpAquos - Turn on TV

dev:10252019-12-20 06:17:39.502 am debugSharpAquos - SharpAquos - releaseMutex ?4052? - Released mutex permit [1]

dev:10252019-12-20 06:17:39.498 am debugSharpAquos - SharpAquos - releaseMutex ?4052? - Release mutex request [0]

dev:10252019-12-20 06:17:39.493 am debugSharpAquos - SharpAquos - parseSleepTimer - SET - SleepTimer [0] SleepTimerSetting [Off]

dev:10252019-12-20 06:17:39.487 am infoSharpAquos - EVENT - [[name:SleepTimerSetting, value:Off]]

dev:10252019-12-20 06:17:39.478 am infoSharpAquos - EVENT - [[name:SleepTimer, value:0]]

dev:10252019-12-20 06:17:39.474 am debugSharpAquos - parseSleepTimer - response '0'

dev:10252019-12-20 06:17:39.469 am debugSharpAquos - SharpAquos - parse - 1 - COMMAND [OFTM? ] RESPONSE [0]

dev:10252019-12-20 06:17:39.464 am debugSharpAquos - SharpAquos - parse - IOBUFFER: 2 entries [[OFTM? , 0]]

dev:10252019-12-20 06:17:39.359 am debugSharpAquos - getDeviceState() Completed.

dev:10252019-12-20 06:17:39.332 am debugSharpAquos - sendSocketCommand - sending [OFTM? ]

dev:10252019-12-20 06:17:39.327 am debugSharpAquos - SharpAquos - request 4053 - IOBUFFER [ [] ]

dev:10252019-12-20 06:17:39.322 am debugSharpAquos - SharpAquos - request 4053 - Socket [open] CMD [OFTM] Params [?]

dev:10252019-12-20 06:17:39.318 am debugSharpAquos - SharpAquos - releaseMutex ?4052? - Released mutex permit [1]

dev:10252019-12-20 06:17:39.318 am debugSharpAquos - SharpAquos - getMutex 4053 - Acquired mutex permit [0]

dev:10252019-12-20 06:17:39.314 am debugSharpAquos - SharpAquos - releaseMutex ?4052? - Release mutex request [0]

dev:10252019-12-20 06:17:39.309 am debugSharpAquos - SharpAquos - parse3DMode - SET - 3DMode [0] 3DModeName [3D Off]

dev:10252019-12-20 06:17:39.303 am infoSharpAquos - EVENT - [[name:3DModeName, value:3D Off]]

dev:10252019-12-20 06:17:39.298 am infoSharpAquos - EVENT - [[name:3DMode, value:0]]

dev:10252019-12-20 06:17:39.294 am debugSharpAquos - parse3DMode - response '0'

dev:10252019-12-20 06:17:39.289 am debugSharpAquos - SharpAquos - parse - 1 - COMMAND [TDCH? ] RESPONSE [0]

dev:10252019-12-20 06:17:39.284 am debugSharpAquos - SharpAquos - parse - IOBUFFER: 2 entries [[TDCH? , 0]]

dev:10252019-12-20 06:17:39.204 am debugSharpAquos - SharpAquos - getMutex 4053 - Acquire mutex request [0]

dev:10252019-12-20 06:17:39.189 am debugSharpAquos - sendSocketCommand - sending [TDCH? ]

dev:10252019-12-20 06:17:39.177 am debugSharpAquos - SharpAquos - request 4052 - IOBUFFER [ [] ]

dev:10252019-12-20 06:17:39.173 am debugSharpAquos - SharpAquos - request 4052 - Socket [open] CMD [TDCH] Params [?]

dev:10252019-12-20 06:17:39.168 am debugSharpAquos - SharpAquos - releaseMutex ?4051? - Released mutex permit [1]

dev:10252019-12-20 06:17:39.168 am debugSharpAquos - SharpAquos - getMutex 4052 - Acquired mutex permit [0]

dev:10252019-12-20 06:17:39.164 am debugSharpAquos - SharpAquos - releaseMutex ?4051? - Release mutex request [0]

dev:10252019-12-20 06:17:39.159 am debugSharpAquos - SharpAquos - parseVideoMode - SET - VideoMode [4] VideoModeName [USER]

dev:10252019-12-20 06:17:39.153 am infoSharpAquos - EVENT - [[name:VideoModeName, value:USER]]

dev:10252019-12-20 06:17:39.148 am infoSharpAquos - EVENT - [[name:VideoMode, value:4]]

dev:10252019-12-20 06:17:39.143 am debugSharpAquos - parseVideoMode - response '4'

dev:10252019-12-20 06:17:39.139 am debugSharpAquos - SharpAquos - parse - 1 - COMMAND [AVMD? ] RESPONSE [4]

dev:10252019-12-20 06:17:39.134 am debugSharpAquos - SharpAquos - parse - IOBUFFER: 2 entries [[AVMD? , 4]]

dev:10252019-12-20 06:17:38.877 am debugSharpAquos - SharpAquos - getMutex 4052 - Acquire mutex request [0]

dev:10252019-12-20 06:17:38.863 am debugSharpAquos - sendSocketCommand - sending [AVMD? ]

dev:10252019-12-20 06:17:38.858 am debugSharpAquos - SharpAquos - request 4051 - IOBUFFER [ [] ]

dev:10252019-12-20 06:17:38.853 am debugSharpAquos - SharpAquos - request 4051 - Socket [open] CMD [AVMD] Params [?]

dev:10252019-12-20 06:17:38.848 am debugSharpAquos - SharpAquos - releaseMutex ?4050? - Released mutex permit [1]

dev:10252019-12-20 06:17:38.848 am debugSharpAquos - SharpAquos - getMutex 4051 - Acquired mutex permit [0]

dev:10252019-12-20 06:17:38.844 am debugSharpAquos - SharpAquos - releaseMutex ?4050? - Release mutex request [0]

dev:10252019-12-20 06:17:38.839 am debugSharpAquos - SharpAquos - parseSurroundMode - SET - SurroundMode [2] SurroundModeName [Off]

dev:10252019-12-20 06:17:38.834 am infoSharpAquos - EVENT - [[name:SurroundModeName, value:Off]]

dev:10252019-12-20 06:17:38.828 am infoSharpAquos - EVENT - [[name:SurroundMode, value:2]]

dev:10252019-12-20 06:17:38.824 am debugSharpAquos - parseSurround - response '2'

dev:10252019-12-20 06:17:38.820 am debugSharpAquos - SharpAquos - parse - 1 - COMMAND [ACSU? ] RESPONSE [2]

dev:10252019-12-20 06:17:38.815 am debugSharpAquos - SharpAquos - parse - IOBUFFER: 2 entries [[ACSU? , 2]]

dev:10252019-12-20 06:17:38.753 am debugSharpAquos - SharpAquos - getMutex 4051 - Acquire mutex request [0]

dev:10252019-12-20 06:17:38.747 am debugSharpAquos - sendSocketCommand - sending [ACSU? ]

dev:10252019-12-20 06:17:38.742 am debugSharpAquos - SharpAquos - request 4050 - IOBUFFER [ [] ]

dev:10252019-12-20 06:17:38.737 am debugSharpAquos - SharpAquos - request 4050 - Socket [open] CMD [ACSU] Params [?]

dev:10252019-12-20 06:17:38.733 am debugSharpAquos - SharpAquos - releaseMutex ?4049? - Released mutex permit [1]

dev:10252019-12-20 06:17:38.733 am debugSharpAquos - SharpAquos - getMutex 4050 - Acquired mutex permit [0]

dev:10252019-12-20 06:17:38.729 am debugSharpAquos - SharpAquos - releaseMutex ?4049? - Release mutex request [0]

dev:10252019-12-20 06:17:38.724 am debugSharpAquos - SharpAquos - parseViewMode - SET - ViewMode [8] ViewModeName [Dot by Dot]

dev:10252019-12-20 06:17:38.718 am infoSharpAquos - EVENT - [[name:ViewModeName, value:Dot by Dot]]

dev:10252019-12-20 06:17:38.713 am infoSharpAquos - EVENT - [[name:ViewMode, value:8]]

dev:10252019-12-20 06:17:38.708 am debugSharpAquos - parseViewMode - response '8'

dev:10252019-12-20 06:17:38.704 am debugSharpAquos - SharpAquos - parse - 1 - COMMAND [WIDE? ] RESPONSE [8]

dev:10252019-12-20 06:17:38.699 am debugSharpAquos - SharpAquos - parse - IOBUFFER: 2 entries [[WIDE? , 8]]

dev:10252019-12-20 06:17:38.607 am debugSharpAquos - SharpAquos - getMutex 4050 - Acquire mutex request [0]

dev:10252019-12-20 06:17:38.599 am debugSharpAquos - sendSocketCommand - sending [WIDE? ]

dev:10252019-12-20 06:17:38.590 am debugSharpAquos - SharpAquos - request 4049 - IOBUFFER [ [] ]

dev:10252019-12-20 06:17:38.585 am debugSharpAquos - SharpAquos - request 4049 - Socket [open] CMD [WIDE] Params [?]

dev:10252019-12-20 06:17:38.581 am debugSharpAquos - SharpAquos - releaseMutex ?4048? - Released mutex permit [1]

dev:10252019-12-20 06:17:38.581 am debugSharpAquos - SharpAquos - getMutex 4049 - Acquired mutex permit [0]

dev:10252019-12-20 06:17:38.577 am debugSharpAquos - SharpAquos - releaseMutex ?4048? - Release mutex request [0]

dev:10252019-12-20 06:17:38.572 am debugSharpAquos - SharpAquos - parseInput - SET - input [1] InputName [HDMI IN 1]

dev:10252019-12-20 06:17:38.567 am infoSharpAquos - EVENT - [[name:inputName, value:HDMI IN 1]]

dev:10252019-12-20 06:17:38.563 am infoSharpAquos - EVENT - [[name:input, value:1]]

dev:10252019-12-20 06:17:38.559 am debugSharpAquos - parseInput - response '1'

dev:10252019-12-20 06:17:38.555 am debugSharpAquos - SharpAquos - parse - 1 - COMMAND [IAVD? ] RESPONSE [1]

dev:10252019-12-20 06:17:38.550 am debugSharpAquos - SharpAquos - parse - IOBUFFER: 2 entries [[IAVD? , 1]]

dev:10252019-12-20 06:17:38.493 am debugSharpAquos - SharpAquos - getMutex 4049 - Acquire mutex request [0]

dev:10252019-12-20 06:17:38.488 am debugSharpAquos - sendSocketCommand - sending [IAVD? ]

dev:10252019-12-20 06:17:38.482 am debugSharpAquos - SharpAquos - request 4048 - IOBUFFER [ [] ]

dev:10252019-12-20 06:17:38.477 am debugSharpAquos - SharpAquos - request 4048 - Socket [open] CMD [IAVD] Params [?]

dev:10252019-12-20 06:17:38.473 am debugSharpAquos - SharpAquos - releaseMutex ?4047? - Released mutex permit [1]

dev:10252019-12-20 06:17:38.473 am debugSharpAquos - SharpAquos - getMutex 4048 - Acquired mutex permit [0]

dev:10252019-12-20 06:17:38.469 am debugSharpAquos - SharpAquos - releaseMutex ?4047? - Release mutex request [0]

dev:10252019-12-20 06:17:38.465 am debugSharpAquos - SharpAquos - parseVolume - SET - volume [12]

dev:10252019-12-20 06:17:38.461 am infoSharpAquos - EVENT - [[name:volume, value:12]]

dev:10252019-12-20 06:17:38.457 am debugSharpAquos - parseVolume - response '12'

dev:10252019-12-20 06:17:38.453 am debugSharpAquos - SharpAquos - parse - 1 - COMMAND [VOLM? ] RESPONSE [12]

dev:10252019-12-20 06:17:38.448 am debugSharpAquos - SharpAquos - parse - IOBUFFER: 2 entries [[VOLM? , 12]]

dev:10252019-12-20 06:17:38.374 am debugSharpAquos - SharpAquos - getMutex 4048 - Acquire mutex request [0]

dev:10252019-12-20 06:17:38.369 am debugSharpAquos - sendSocketCommand - sending [VOLM? ]

dev:10252019-12-20 06:17:38.364 am debugSharpAquos - SharpAquos - request 4047 - IOBUFFER [ [] ]

dev:10252019-12-20 06:17:38.360 am debugSharpAquos - SharpAquos - request 4047 - Socket [open] CMD [VOLM] Params [?]

dev:10252019-12-20 06:17:38.356 am debugSharpAquos - SharpAquos - releaseMutex ?4046? - Released mutex permit [1]

dev:10252019-12-20 06:17:38.356 am debugSharpAquos - SharpAquos - getMutex 4047 - Acquired mutex permit [0]

dev:10252019-12-20 06:17:38.352 am debugSharpAquos - SharpAquos - releaseMutex ?4046? - Release mutex request [0]

dev:10252019-12-20 06:17:38.348 am debugSharpAquos - SharpAquos - parseMute - SET - mute [unmuted]

dev:10252019-12-20 06:17:38.343 am infoSharpAquos - EVENT - [[name:mute, value:unmuted]]

dev:10252019-12-20 06:17:38.340 am debugSharpAquos - parseMute - response '2'

dev:10252019-12-20 06:17:38.336 am debugSharpAquos - SharpAquos - parse - 1 - COMMAND [MUTE? ] RESPONSE [2]

dev:10252019-12-20 06:17:38.331 am debugSharpAquos - SharpAquos - parse - IOBUFFER: 2 entries [[MUTE? , 2]]

dev:10252019-12-20 06:17:38.239 am debugSharpAquos - SharpAquos - getMutex 4047 - Acquire mutex request [0]

dev:10252019-12-20 06:17:38.234 am debugSharpAquos - sendSocketCommand - sending [MUTE? ]

dev:10252019-12-20 06:17:38.230 am debugSharpAquos - SharpAquos - request 4046 - IOBUFFER [ [] ]

dev:10252019-12-20 06:17:38.225 am debugSharpAquos - SharpAquos - request 4046 - Socket [open] CMD [MUTE] Params [?]

dev:10252019-12-20 06:17:38.221 am debugSharpAquos - SharpAquos - getMutex 4046 - Acquired mutex permit [0]

dev:10252019-12-20 06:17:38.212 am debugSharpAquos - SharpAquos - releaseMutex ?4045? - Released mutex permit [1]

dev:10252019-12-20 06:17:38.208 am debugSharpAquos - SharpAquos - releaseMutex ?4045? - Release mutex request [0]

dev:10252019-12-20 06:17:38.204 am debugSharpAquos - SharpAquos - parsePower - SET - power [on]

dev:10252019-12-20 06:17:38.200 am infoSharpAquos - EVENT - [[name:switch, value:on]]

dev:10252019-12-20 06:17:38.196 am infoSharpAquos - EVENT - [[name:power, value:on]]

dev:10252019-12-20 06:17:38.193 am debugSharpAquos - parsePower - response '1'

dev:10252019-12-20 06:17:38.188 am debugSharpAquos - SharpAquos - parse - 1 - COMMAND [POWR? ] RESPONSE [1]

dev:10252019-12-20 06:17:38.184 am debugSharpAquos - SharpAquos - parse - IOBUFFER: 2 entries [[POWR? , 1]]

dev:10252019-12-20 06:17:38.132 am debugSharpAquos - SharpAquos - getMutex 4046 - Acquire mutex request [0]

dev:10252019-12-20 06:17:38.127 am debugSharpAquos - sendSocketCommand - sending [POWR? ]

dev:10252019-12-20 06:17:38.123 am debugSharpAquos - SharpAquos - request 4045 - IOBUFFER [ [] ]

dev:10252019-12-20 06:17:38.119 am debugSharpAquos - SharpAquos - request 4045 - Socket [open] CMD [POWR] Params [?]

dev:10252019-12-20 06:17:38.111 am debugSharpAquos - SharpAquos - getMutex 4045 - Acquired mutex permit [0]

dev:10252019-12-20 06:17:38.107 am debugSharpAquos - SharpAquos - getMutex 4045 - Acquire mutex request [1]

dev:10252019-12-20 06:17:38.104 am debugSharpAquos - getDeviceState() Starting

dev:10252019-12-20 06:16:51.873 am debugSharpAquos - SharpAquos - releaseMutex ?4043? - Released mutex permit [1]

dev:10252019-12-20 06:16:51.869 am debugSharpAquos - SharpAquos - releaseMutex ?4043? - Release mutex request [0]

dev:10252019-12-20 06:16:51.866 am debugSharpAquos - SharpAquos - parsePower - SET - power [on]

dev:10252019-12-20 06:16:51.861 am infoSharpAquos - EVENT - [[name:switch, value:on]]

dev:10252019-12-20 06:16:51.857 am infoSharpAquos - EVENT - [[name:power, value:on]]

dev:10252019-12-20 06:16:51.854 am debugSharpAquos - parsePower - response '1'

dev:10252019-12-20 06:16:51.850 am debugSharpAquos - SharpAquos - parse - 1 - COMMAND [POWR? ] RESPONSE [1]

dev:10252019-12-20 06:16:51.845 am debugSharpAquos - SharpAquos - parse - IOBUFFER: 2 entries [[POWR? , 1]]

dev:10252019-12-20 06:16:51.759 am debugSharpAquos - sendSocketCommand - sending [POWR? ]

dev:10252019-12-20 06:16:51.754 am debugSharpAquos - SharpAquos - request 4044 - IOBUFFER [ [] ]

dev:10252019-12-20 06:16:51.750 am debugSharpAquos - SharpAquos - request 4044 - Socket [open] CMD [POWR] Params [?]

dev:10252019-12-20 06:16:51.746 am debugSharpAquos - SharpAquos - releaseMutex ?4043? - Released mutex permit [1]

dev:10252019-12-20 06:16:51.746 am debugSharpAquos - SharpAquos - getMutex 4044 - Acquired mutex permit [0]

dev:10252019-12-20 06:16:51.742 am debugSharpAquos - SharpAquos - releaseMutex ?4043? - Release mutex request [0]

dev:10252019-12-20 06:16:51.738 am debugSharpAquos - SharpAquos - parse - 1 - COMMAND [POWR1 ] RESPONSE [OK]

dev:10252019-12-20 06:16:51.733 am debugSharpAquos - SharpAquos - parse - IOBUFFER: 2 entries [[POWR1 , OK]]

dev:10252019-12-20 06:16:51.619 am debugSharpAquos - SharpAquos - getMutex 4044 - Acquire mutex request [0]

dev:10252019-12-20 06:16:51.614 am debugSharpAquos - sendSocketCommand - sending [POWR1 ]

dev:10252019-12-20 06:16:51.609 am debugSharpAquos - SharpAquos - request 4043 - IOBUFFER [ [] ]

dev:10252019-12-20 06:16:51.605 am debugSharpAquos - SharpAquos - request 4043 - Socket [open] CMD [POWR] Params [1]

dev:10252019-12-20 06:16:51.597 am debugSharpAquos - SharpAquos - getMutex 4043 - Acquired mutex permit [0]

dev:10252019-12-20 06:16:51.593 am debugSharpAquos - SharpAquos - getMutex 4043 - Acquire mutex request [1]

dev:10252019-12-20 06:16:51.590 am debugSharpAquos - Turn on TV

dev:10252019-12-20 06:15:49.949 am debugSharpAquos - openSocket: Socket opened.

dev:10252019-12-20 06:15:48.939 am debugSharpAquos - openSocket: Connecting to 192.168.254.205:10002

dev:10252019-12-20 06:15:43.934 am debugSharpAquos - telnetStatus - Stream Closed - Attempting reconnect [1]

dev:10252019-12-20 06:15:43.931 am debugSharpAquos - closeSocket: Socket closed. [1] [1]

dev:10252019-12-20 06:15:43.926 am warnSharpAquos - FLUSHMUTEX - FLUSHED - Queued [false] Waiting [0] permits [1]

dev:10252019-12-20 06:15:42.821 am warnSharpAquos - FLUSHMUTEX - flushing mutex queue. Queued [false] Waiting [0] permits [1]

dev:10252019-12-20 06:15:42.714 am debugSharpAquos - closeSocket: Socket close requested.

dev:10252019-12-20 06:15:42.709 am warntelnetStatus - Socket [open] Message [receive error: Stream is closed]

dev:10252019-12-20 06:12:40.835 am debugSharpAquos - SharpAquos - releaseMutex ?4041? - Released mutex permit [1]

dev:10252019-12-20 06:12:40.831 am debugSharpAquos - SharpAquos - releaseMutex ?4041? - Release mutex request [0]

dev:10252019-12-20 06:12:40.827 am debugSharpAquos - SharpAquos - parseDC11 - ERROR - received [ERR]

dev:10252019-12-20 06:12:40.823 am debugSharpAquos - parseDC11 - response 'ERR'

dev:10252019-12-20 06:12:40.818 am debugSharpAquos - SharpAquos - parse - 1 - COMMAND [DC11? ] RESPONSE [ERR]

dev:10252019-12-20 06:12:40.813 am debugSharpAquos - SharpAquos - parse - IOBUFFER: 2 entries [[DC11? , ERR]]

dev:10252019-12-20 06:12:40.722 am debugSharpAquos - getDeviceState() Completed.

dev:10252019-12-20 06:12:40.718 am debugSharpAquos - getChannelStatus() Completed.

dev:10252019-12-20 06:12:40.702 am debugSharpAquos - sendSocketCommand - sending [DC11? ]

dev:10252019-12-20 06:12:40.698 am debugSharpAquos - SharpAquos - request 4042 - IOBUFFER [ [] ]

Sometimes theres a little lag....maybe just my system but not sure.

Summary

dev:10252019-12-20 06:53:21.067 am debugSharpAquos - SharpAquos - releaseMutex ?4133? - Released mutex permit [1]

dev:10252019-12-20 06:53:21.063 am debugSharpAquos - SharpAquos - releaseMutex ?4133? - Release mutex request [0]

dev:10252019-12-20 06:53:21.034 am debugSharpAquos - SharpAquos - parsePower - SET - power [on]

dev:10252019-12-20 06:53:20.984 am infoSharpAquos - EVENT - [[name:switch, value:on]]

dev:10252019-12-20 06:53:20.980 am infoSharpAquos - EVENT - [[name:power, value:on]]

dev:10252019-12-20 06:53:20.951 am debugSharpAquos - parsePower - response '1'

dev:10252019-12-20 06:53:20.946 am debugSharpAquos - SharpAquos - parse - 1 - COMMAND [POWR? ] RESPONSE [1]

dev:10252019-12-20 06:53:20.927 am debugSharpAquos - SharpAquos - parse - IOBUFFER: 2 entries [[POWR? , 1]]

dev:10252019-12-20 06:53:20.634 am debugSharpAquos - sendSocketCommand - sending [POWR? ]

dev:10252019-12-20 06:53:20.619 am debugSharpAquos - SharpAquos - releaseMutex ?4133? - Released mutex permit [1]

dev:10252019-12-20 06:53:20.614 am debugSharpAquos - SharpAquos - request 4134 - IOBUFFER [ [] ]

dev:10252019-12-20 06:53:20.606 am debugSharpAquos - SharpAquos - request 4134 - Socket [open] CMD [POWR] Params [?]

dev:10252019-12-20 06:53:20.588 am debugSharpAquos - SharpAquos - getMutex 4134 - Acquired mutex permit [0]

dev:10252019-12-20 06:53:20.583 am debugSharpAquos - SharpAquos - releaseMutex ?4133? - Release mutex request [0]

dev:10252019-12-20 06:53:20.578 am debugSharpAquos - SharpAquos - parse - 1 - COMMAND [POWR1 ] RESPONSE [OK]

dev:10252019-12-20 06:53:20.573 am debugSharpAquos - SharpAquos - parse - IOBUFFER: 2 entries [[POWR1 , OK]]

dev:5602019-12-20 06:53:20.418 am infoLR Safe Motion Sensor is inactive

dev:10252019-12-20 06:53:20.283 am debugSharpAquos - SharpAquos - getMutex 4134 - Acquire mutex request [0]

dev:10252019-12-20 06:53:20.267 am debugSharpAquos - sendSocketCommand - sending [POWR1 ]

dev:10252019-12-20 06:53:20.252 am debugSharpAquos - SharpAquos - request 4133 - IOBUFFER [ [] ]

dev:10252019-12-20 06:53:20.240 am debugSharpAquos - SharpAquos - request 4133 - Socket [open] CMD [POWR] Params [1]

dev:10252019-12-20 06:53:18.680 am debugSharpAquos - SharpAquos - getMutex 4133 - Acquired mutex permit [0]

dev:10252019-12-20 06:53:18.675 am debugSharpAquos - SharpAquos - getMutex 4133 - Acquire mutex request [1]

dev:10252019-12-20 06:53:18.670 am debugSharpAquos - Turn on TV

dev:9322019-12-20 06:53:15.728 am infoStereo/TV ON PC button 1 was pushed

Some lag examples....

Summary

dev:10252019-12-20 06:53:20.267 am debugSharpAquos - sendSocketCommand - sending [POWR1 ]

dev:10252019-12-20 06:53:20.252 am debugSharpAquos - SharpAquos - request 4133 - IOBUFFER [ [] ]

dev:10252019-12-20 06:53:20.240 am debugSharpAquos - SharpAquos - request 4133 - Socket [open] CMD [POWR] Params [1]

dev:10252019-12-20 06:53:18.680 am debugSharpAquos - SharpAquos - getMutex 4133 - Acquired mutex permit [0]

dev:10252019-12-20 06:53:18.675 am debugSharpAquos - SharpAquos - getMutex 4133 - Acquire mutex request [1]

dev:10252019-12-20 06:53:18.670 am debugSharpAquos - Turn on TV

dev:9322019-12-20 06:53:15.728 am infoStereo/TV ON PC button 1 was pushed

dev:5412019-12-20 06:53:10.081 am infoKitchen Motion Sensor 2 is inactive

dev:5862019-12-20 06:53:06.714 am infoLiving Room Receiver is on

dev:5862019-12-20 06:53:06.395 am infoLiving Room Receiver input is Directv

dev:10252019-12-20 06:53:04.942 am debugSharpAquos - SharpAquos - releaseMutex ?4131? - Released mutex permit [1]

dev:10252019-12-20 06:53:04.938 am debugSharpAquos - SharpAquos - releaseMutex ?4131? - Release mutex request [0]

dev:10252019-12-20 06:53:04.914 am debugSharpAquos - SharpAquos - parsePower - SET - power [on]

dev:10252019-12-20 06:53:04.910 am infoSharpAquos - EVENT - [[name:switch, value:on]]

dev:10252019-12-20 06:53:04.887 am infoSharpAquos - EVENT - [[name:power, value:on]]

dev:10252019-12-20 06:53:04.872 am debugSharpAquos - parsePower - response '1'

dev:10252019-12-20 06:53:04.868 am debugSharpAquos - SharpAquos - parse - 1 - COMMAND [POWR? ] RESPONSE [1]

dev:10252019-12-20 06:53:04.864 am debugSharpAquos - SharpAquos - parse - IOBUFFER: 2 entries [[POWR? , 1]]

dev:10252019-12-20 06:53:04.686 am debugSharpAquos - sendSocketCommand - sending [POWR? ]

dev:10252019-12-20 06:53:04.671 am debugSharpAquos - SharpAquos - request 4132 - IOBUFFER [ [] ]

dev:10252019-12-20 06:53:04.660 am debugSharpAquos - SharpAquos - request 4132 - Socket [open] CMD [POWR] Params [?]

dev:10252019-12-20 06:53:04.648 am debugSharpAquos - SharpAquos - getMutex 4132 - Acquired mutex permit [0]

dev:10252019-12-20 06:53:04.643 am debugSharpAquos - SharpAquos - releaseMutex ?4131? - Released mutex permit [1]

dev:10252019-12-20 06:53:04.634 am debugSharpAquos - SharpAquos - releaseMutex ?4131? - Release mutex request [0]

dev:10252019-12-20 06:53:04.612 am debugSharpAquos - SharpAquos - parse - 1 - COMMAND [POWR1 ] RESPONSE [OK]

dev:10252019-12-20 06:53:04.590 am debugSharpAquos - SharpAquos - parse - IOBUFFER: 2 entries [[POWR1 , OK]]

dev:5232019-12-20 06:53:04.472 am infoLoft Motion Sensor temperature is 66.89°F

dev:10252019-12-20 06:53:04.318 am debugSharpAquos - SharpAquos - getMutex 4132 - Acquire mutex request [0]

dev:10252019-12-20 06:53:04.313 am debugSharpAquos - sendSocketCommand - sending [POWR1 ]

dev:10252019-12-20 06:53:04.297 am debugSharpAquos - SharpAquos - request 4131 - IOBUFFER [ [] ]

dev:10252019-12-20 06:53:04.293 am debugSharpAquos - SharpAquos - request 4131 - Socket [open] CMD [POWR] Params [1]

dev:10252019-12-20 06:53:04.281 am debugSharpAquos - SharpAquos - getMutex 4131 - Acquired mutex permit [0]

dev:10252019-12-20 06:53:04.276 am debugSharpAquos - SharpAquos - getMutex 4131 - Acquire mutex request [1]

dev:10252019-12-20 06:53:04.271 am debugSharpAquos - Turn on TV

dev:9312019-12-20 06:53:02.232 am infoStereo/TV ON DTV button 1 was pushed

dev:5862019-12-20 06:52:54.419 am infoLiving Room Receiver is on

dev:5862019-12-20 06:52:53.982 am infoLiving Room Receiver input is AlbertsPC

dev:5912019-12-20 06:52:53.353 am infoFront Deck Motion is inactive

dev:10252019-12-20 06:52:53.049 am debugSharpAquos - SharpAquos - releaseMutex ?4129? - Released mutex permit [1]

dev:10252019-12-20 06:52:53.037 am debugSharpAquos - SharpAquos - releaseMutex ?4129? - Release mutex request [0]

dev:10252019-12-20 06:52:53.033 am debugSharpAquos - SharpAquos - parsePower - SET - power [on]

dev:10252019-12-20 06:52:53.028 am infoSharpAquos - EVENT - [[name:switch, value:on]]

dev:10252019-12-20 06:52:53.017 am infoSharpAquos - EVENT - [[name:power, value:on]]

dev:10252019-12-20 06:52:53.013 am debugSharpAquos - parsePower - response '1'

dev:10252019-12-20 06:52:53.009 am debugSharpAquos - SharpAquos - parse - 1 - COMMAND [POWR? ] RESPONSE [1]

dev:10252019-12-20 06:52:53.004 am debugSharpAquos - SharpAquos - parse - IOBUFFER: 2 entries [[POWR? , 1]]

dev:10252019-12-20 06:52:52.867 am debugSharpAquos - sendSocketCommand - sending [POWR? ]

dev:10252019-12-20 06:52:52.863 am debugSharpAquos - SharpAquos - request 4130 - IOBUFFER [ [] ]

dev:10252019-12-20 06:52:52.858 am debugSharpAquos - SharpAquos - request 4130 - Socket [open] CMD [POWR] Params [?]

dev:10252019-12-20 06:52:52.853 am debugSharpAquos - SharpAquos - releaseMutex ?4129? - Released mutex permit [1]

dev:10252019-12-20 06:52:52.835 am debugSharpAquos - SharpAquos - getMutex 4130 - Acquired mutex permit [0]

dev:10252019-12-20 06:52:52.830 am debugSharpAquos - SharpAquos - releaseMutex ?4129? - Release mutex request [0]

dev:10252019-12-20 06:52:52.821 am debugSharpAquos - SharpAquos - parse - 1 - COMMAND [POWR1 ] RESPONSE [OK]

dev:10252019-12-20 06:52:52.816 am debugSharpAquos - SharpAquos - parse - IOBUFFER: 2 entries [[POWR1 , OK]]

dev:10252019-12-20 06:52:52.644 am debugSharpAquos - SharpAquos - getMutex 4130 - Acquire mutex request [0]

dev:10252019-12-20 06:52:52.638 am debugSharpAquos - sendSocketCommand - sending [POWR1 ]

dev:10252019-12-20 06:52:52.633 am debugSharpAquos - SharpAquos - request 4129 - IOBUFFER [ [] ]

dev:10252019-12-20 06:52:52.629 am debugSharpAquos - SharpAquos - request 4129 - Socket [open] CMD [POWR] Params [1]

dev:10252019-12-20 06:52:52.616 am debugSharpAquos - SharpAquos - getMutex 4129 - Acquired mutex permit [0]

dev:10252019-12-20 06:52:52.608 am debugSharpAquos - SharpAquos - getMutex 4129 - Acquire mutex request [1]

dev:10252019-12-20 06:52:52.603 am debugSharpAquos - Turn on TV

dev:9322019-12-20 06:52:50.988 am infoStereo/TV ON PC button 1 was pushed

Seeing some errors trying to acquire mutex permit......

Summary

dev:10252019-12-20 01:16:15.894 pm errorSharpAquos - request 4836 - ERROR. Unable to acquire mutex permit.[0]

dev:10252019-12-20 01:16:15.885 pm debugSharpAquos - request 4836 - Socket [open] CMD [POWR] Params [?]

dev:10252019-12-20 01:16:15.879 pm debugSharpAquos - SharpAquos - getMutex 4836 - Connection STALLED??? [0]

dev:10252019-12-20 01:16:15.873 pm debugSharpAquos - SharpAquos - getMutex 4836 - Failed to acquire mutex permit [0]

dev:10252019-12-20 01:16:13.861 pm debugSharpAquos - SharpAquos - getMutex 4836 - Acquire mutex request [0]

dev:10252019-12-20 01:16:13.853 pm errorSharpAquos - request 4835 - ERROR. Unable to acquire mutex permit.[0]

dev:10252019-12-20 01:16:13.844 pm debugSharpAquos - request 4835 - Socket [open] CMD [POWR] Params [1]

dev:10252019-12-20 01:16:13.829 pm debugSharpAquos - SharpAquos - getMutex 4835 - Failed to acquire mutex permit [0]

dev:5862019-12-20 01:16:11.880 pm infoLiving Room Receiver volume volume is 100

dev:10252019-12-20 01:16:11.824 pm debugSharpAquos - SharpAquos - getMutex 4835 - Acquire mutex request [0]

dev:10252019-12-20 01:16:11.817 pm debugSharpAquos - Turn on TV

dev:5862019-12-20 01:16:11.729 pm infoLiving Room Receiver is unmuted

dev:5862019-12-20 01:16:11.478 pm infoLiving Room Receiver is off

dev:5862019-12-20 01:16:11.306 pm infoLiving Room Receiver input is Directv

dev:5862019-12-20 01:16:10.996 pm debuginitialize...

dev:9322019-12-20 01:16:10.131 pm infoStereo/TV ON PC button 1 was pushed

dev:5862019-12-20 01:16:03.060 pm infoLiving Room Receiver is off

dev:10252019-12-20 01:16:02.837 pm errorSharpAquos - request 4834 - ERROR. Unable to acquire mutex permit.[0]

dev:10252019-12-20 01:16:02.831 pm debugSharpAquos - request 4834 - Socket [open] CMD [POWR] Params [?]

dev:10252019-12-20 01:16:02.823 pm debugSharpAquos - SharpAquos - getMutex 4834 - Failed to acquire mutex permit [0]

dev:10252019-12-20 01:16:00.830 pm debugSharpAquos - SharpAquos - getMutex 4834 - Acquire mutex request [0]

dev:10252019-12-20 01:16:00.824 pm errorSharpAquos - request 4833 - ERROR. Unable to acquire mutex permit.[0]

dev:10252019-12-20 01:16:00.817 pm debugSharpAquos - request 4833 - Socket [open] CMD [POWR] Params [0]

dev:10252019-12-20 01:16:00.801 pm debugSharpAquos - SharpAquos - getMutex 4833 - Failed to acquire mutex permit [0]

dev:10252019-12-20 01:15:58.795 pm debugSharpAquos - SharpAquos - getMutex 4833 - Acquire mutex request [0]

dev:10252019-12-20 01:15:58.789 pm debugSharpAquos - Turn off TV

dev:9302019-12-20 01:15:57.953 pm infoStereo/TV OFF button 1 was pushed

dev:5862019-12-20 01:15:51.897 pm infoLiving Room Receiver is unmuted

dev:5862019-12-20 01:15:50.927 pm infoLiving Room Receiver is off

dev:10252019-12-20 01:15:49.358 pm debugSharpAquos - openSocket: Socket opened.

dev:10252019-12-20 01:15:48.345 pm debugSharpAquos - openSocket: Connecting to 192.168.254.205:10002

dev:10252019-12-20 01:15:48.339 pm errorSharpAquos - request 4832 - ERROR. Unable to acquire mutex permit.[0]

dev:10252019-12-20 01:15:48.333 pm debugSharpAquos - request 4832 - Socket [open] CMD [POWR] Params [?]

dev:10252019-12-20 01:15:48.325 pm debugSharpAquos - SharpAquos - getMutex 4832 - Failed to acquire mutex permit [0]

dev:5202019-12-20 01:15:46.430 pm infoHeathers Room Motion temperature is 74.53°F

dev:10252019-12-20 01:15:46.326 pm debugSharpAquos - SharpAquos - getMutex 4832 - Acquire mutex request [0]

dev:10252019-12-20 01:15:46.264 pm debugSharpAquos - sendSocketCommand - sending [POWR0 ]

dev:10252019-12-20 01:15:46.254 pm debugSharpAquos - SharpAquos - request 4831 - IOBUFFER [ [] ]

dev:10252019-12-20 01:15:46.249 pm debugSharpAquos - SharpAquos - request 4831 - Socket [open] CMD [POWR] Params [0]

dev:10252019-12-20 01:15:46.240 pm debugSharpAquos - SharpAquos - getMutex 4831 - Acquired mutex permit [0]

dev:10252019-12-20 01:15:46.234 pm debugSharpAquos - SharpAquos - getMutex 4831 - Acquire mutex request [1]

dev:10252019-12-20 01:15:46.216 pm debugSharpAquos - Turn off TV

dev:9302019-12-20 01:15:45.235 pm infoStereo/TV OFF button 1 was pushed

more.....

Summary

dev:10252019-12-20 01:18:57.593 pm debugSharpAquos - openSocket: Socket opened.

dev:10252019-12-20 01:18:56.584 pm debugSharpAquos - openSocket: Connecting to 192.168.254.205:10002

dev:10252019-12-20 01:18:51.550 pm debugSharpAquos - telnetStatus - Stream Closed - Attempting reconnect [1]

dev:10252019-12-20 01:18:51.545 pm debugSharpAquos - closeSocket: Socket closed. [1] [1]

dev:10252019-12-20 01:18:51.540 pm warnSharpAquos - FLUSHMUTEX - FLUSHED - Queued [false] Waiting [0] permits [1]

dev:10252019-12-20 01:18:50.427 pm warnSharpAquos - FLUSHMUTEX - flushing mutex queue. Queued [false] Waiting [0] permits [0]

dev:10252019-12-20 01:18:50.326 pm debugSharpAquos - closeSocket: Socket close requested.

dev:10252019-12-20 01:18:50.318 pm warntelnetStatus - Socket [open] Message [receive error: Stream is closed]

dev:10252019-12-20 01:18:21.861 pm debugSharpAquos - toggleMute() - completed

dev:10252019-12-20 01:18:21.856 pm errorSharpAquos - request 4843 - ERROR. Unable to acquire mutex permit.[0]

dev:10252019-12-20 01:18:21.849 pm debugSharpAquos - request 4843 - Socket [open] CMD [MUTE] Params [?]

dev:10252019-12-20 01:18:21.843 pm debugSharpAquos - SharpAquos - getMutex 4843 - Connection STALLED??? [0]

dev:10252019-12-20 01:18:21.835 pm debugSharpAquos - SharpAquos - getMutex 4843 - Failed to acquire mutex permit [0]

dev:10252019-12-20 01:18:19.845 pm debugSharpAquos - SharpAquos - getMutex 4843 - Acquire mutex request [0]

dev:10252019-12-20 01:18:19.839 pm errorSharpAquos - request 4842 - ERROR. Unable to acquire mutex permit.[0]

dev:10252019-12-20 01:18:19.833 pm debugSharpAquos - request 4842 - Socket [open] CMD [RCKY] Params [31]

dev:10252019-12-20 01:18:19.817 pm debugSharpAquos - SharpAquos - getMutex 4842 - Connection STALLED??? [0]

dev:10252019-12-20 01:18:19.808 pm debugSharpAquos - SharpAquos - getMutex 4842 - Failed to acquire mutex permit [0]

dev:10252019-12-20 01:18:17.803 pm debugSharpAquos - SharpAquos - getMutex 4842 - Acquire mutex request [0]

dev:10252019-12-20 01:18:17.797 pm debugSharpAquos - toggleMute()

dev:10252019-12-20 01:18:07.399 pm errorSharpAquos - request 4841 - ERROR. Unable to acquire mutex permit.[0]

dev:10252019-12-20 01:18:07.393 pm debugSharpAquos - request 4841 - Socket [open] CMD [POWR] Params [?]

dev:10252019-12-20 01:18:07.386 pm debugSharpAquos - SharpAquos - getMutex 4841 - Connection STALLED??? [0]

dev:10252019-12-20 01:18:07.374 pm debugSharpAquos - SharpAquos - getMutex 4841 - Failed to acquire mutex permit [0]

dev:10252019-12-20 01:18:05.371 pm debugSharpAquos - SharpAquos - getMutex 4841 - Acquire mutex request [0]

dev:10252019-12-20 01:18:05.364 pm errorSharpAquos - request 4840 - ERROR. Unable to acquire mutex permit.[0]

dev:10252019-12-20 01:18:05.358 pm debugSharpAquos - request 4840 - Socket [open] CMD [POWR] Params [1]

dev:10252019-12-20 01:18:05.348 pm debugSharpAquos - SharpAquos - getMutex 4840 - Connection STALLED??? [0]

dev:10252019-12-20 01:18:05.331 pm debugSharpAquos - SharpAquos - getMutex 4840 - Failed to acquire mutex permit [0]

dev:10252019-12-20 01:18:03.329 pm debugSharpAquos - SharpAquos - getMutex 4840 - Acquire mutex request [0]

dev:10252019-12-20 01:18:03.321 pm debugSharpAquos - Turn on TV

dev:10252019-12-20 01:17:54.407 pm errorSharpAquos - request 4839 - ERROR. Unable to acquire mutex permit.[0]

dev:10252019-12-20 01:17:54.402 pm debugSharpAquos - request 4839 - Socket [open] CMD [POWR] Params [?]

dev:10252019-12-20 01:17:54.396 pm debugSharpAquos - SharpAquos - getMutex 4839 - Connection STALLED??? [0]

dev:10252019-12-20 01:17:54.390 pm debugSharpAquos - SharpAquos - getMutex 4839 - Failed to acquire mutex permit [0]

dev:10252019-12-20 01:17:52.388 pm debugSharpAquos - SharpAquos - getMutex 4839 - Acquire mutex request [0]

dev:10252019-12-20 01:17:52.382 pm errorSharpAquos - request 4838 - ERROR. Unable to acquire mutex permit.[0]

dev:10252019-12-20 01:17:52.376 pm debugSharpAquos - request 4838 - Socket [open] CMD [POWR] Params [0]

dev:10252019-12-20 01:17:52.370 pm debugSharpAquos - SharpAquos - getMutex 4838 - Connection STALLED??? [0]

dev:10252019-12-20 01:17:52.363 pm debugSharpAquos - SharpAquos - getMutex 4838 - Failed to acquire mutex permit [0]

dev:10252019-12-20 01:17:50.362 pm debugSharpAquos - SharpAquos - getMutex 4838 - Acquire mutex request [0]

dev:10252019-12-20 01:17:50.355 pm debugSharpAquos - Turn off TV

dev:10252019-12-20 01:17:48.055 pm debugSharpAquos - getDeviceState() ABORTED.

dev:10252019-12-20 01:17:48.050 pm errorSharpAquos - request 4837 - ERROR. Unable to acquire mutex permit.[0]

dev:10252019-12-20 01:17:48.044 pm debugSharpAquos - request 4837 - Socket [open] CMD [POWR] Params [?]

dev:10252019-12-20 01:17:48.035 pm debugSharpAquos - SharpAquos - getMutex 4837 - Connection STALLED??? [0]

dev:10252019-12-20 01:17:48.028 pm debugSharpAquos - SharpAquos - getMutex 4837 - Failed to acquire mutex permit [0]

dev:10252019-12-20 01:17:46.003 pm debugSharpAquos - SharpAquos - getMutex 4837 - Acquire mutex request [0]

dev:10252019-12-20 01:17:45.996 pm debugSharpAquos - getDeviceState() Starting

Yep all of a sudden the tv doesn't want to cooperate........logs

Summary

dev:10252019-12-20 01:26:48.097 pm errorSharpAquos - request 4870 - ERROR. Unable to acquire mutex permit.[0]

dev:10252019-12-20 01:26:48.091 pm debugSharpAquos - request 4870 - Socket [open] CMD [POWR] Params [?]

dev:10252019-12-20 01:26:48.086 pm debugSharpAquos - SharpAquos - getMutex 4870 - Connection STALLED??? [0]

dev:10252019-12-20 01:26:48.082 pm debugSharpAquos - SharpAquos - getMutex 4870 - Failed to acquire mutex permit [0]

dev:10252019-12-20 01:26:47.667 pm errorSharpAquos - request 4869 - ERROR. Unable to acquire mutex permit.[0]

dev:10252019-12-20 01:26:47.663 pm debugSharpAquos - request 4869 - Socket [open] CMD [POWR] Params [?]

dev:10252019-12-20 01:26:47.658 pm debugSharpAquos - SharpAquos - getMutex 4869 - Connection STALLED??? [0]

dev:10252019-12-20 01:26:47.652 pm debugSharpAquos - SharpAquos - getMutex 4869 - Failed to acquire mutex permit [0]

dev:10252019-12-20 01:26:46.078 pm debugSharpAquos - SharpAquos - getMutex 4870 - Acquire mutex request [0]

dev:10252019-12-20 01:26:46.073 pm errorSharpAquos - request 4868 - ERROR. Unable to acquire mutex permit.[0]

dev:10252019-12-20 01:26:46.068 pm debugSharpAquos - request 4868 - Socket [open] CMD [POWR] Params [1]

dev:10252019-12-20 01:26:46.042 pm debugSharpAquos - SharpAquos - getMutex 4868 - Connection STALLED??? [0]

dev:10252019-12-20 01:26:46.032 pm debugSharpAquos - SharpAquos - getMutex 4868 - Failed to acquire mutex permit [0]

dev:10252019-12-20 01:26:45.647 pm debugSharpAquos - SharpAquos - getMutex 4869 - Acquire mutex request [0]

dev:10252019-12-20 01:26:45.642 pm errorSharpAquos - request 4867 - ERROR. Unable to acquire mutex permit.[0]

dev:10252019-12-20 01:26:45.638 pm debugSharpAquos - request 4867 - Socket [open] CMD [POWR] Params [1]

dev:10252019-12-20 01:26:45.634 pm debugSharpAquos - SharpAquos - getMutex 4867 - Connection STALLED??? [0]

dev:10252019-12-20 01:26:45.627 pm debugSharpAquos - SharpAquos - getMutex 4867 - Failed to acquire mutex permit [0]

dev:10252019-12-20 01:26:44.026 pm debugSharpAquos - SharpAquos - getMutex 4868 - Acquire mutex request [0]

dev:10252019-12-20 01:26:44.021 pm debugSharpAquos - Turn on TV

dev:10252019-12-20 01:26:43.624 pm debugSharpAquos - SharpAquos - getMutex 4867 - Acquire mutex request [0]

dev:10252019-12-20 01:26:43.619 pm debugSharpAquos - Turn on TV

dev:10252019-12-20 01:26:29.375 pm errorSharpAquos - request 4866 - ERROR. Unable to acquire mutex permit.[0]

dev:10252019-12-20 01:26:29.371 pm debugSharpAquos - request 4866 - Socket [open] CMD [POWR] Params [?]

dev:10252019-12-20 01:26:29.366 pm debugSharpAquos - SharpAquos - getMutex 4866 - Connection STALLED??? [0]

dev:10252019-12-20 01:26:29.362 pm debugSharpAquos - SharpAquos - getMutex 4866 - Failed to acquire mutex permit [0]

dev:10252019-12-20 01:26:27.357 pm debugSharpAquos - SharpAquos - getMutex 4866 - Acquire mutex request [0]

dev:10252019-12-20 01:26:27.353 pm errorSharpAquos - request 4865 - ERROR. Unable to acquire mutex permit.[0]

dev:10252019-12-20 01:26:27.346 pm debugSharpAquos - request 4865 - Socket [open] CMD [POWR] Params [1]

dev:10252019-12-20 01:26:27.338 pm debugSharpAquos - SharpAquos - getMutex 4865 - Failed to acquire mutex permit [0]

dev:10252019-12-20 01:26:25.327 pm debugSharpAquos - SharpAquos - getMutex 4865 - Acquire mutex request [0]

dev:10252019-12-20 01:26:25.318 pm debugSharpAquos - Turn on TV

dev:10252019-12-20 01:26:15.854 pm errorSharpAquos - request 4864 - ERROR. Unable to acquire mutex permit.[0]

dev:10252019-12-20 01:26:15.795 pm debugSharpAquos - request 4864 - Socket [open] CMD [POWR] Params [?]

dev:10252019-12-20 01:26:15.784 pm debugSharpAquos - SharpAquos - getMutex 4864 - Failed to acquire mutex permit [0]

dev:10252019-12-20 01:26:13.782 pm debugSharpAquos - SharpAquos - getMutex 4864 - Acquire mutex request [0]

dev:10252019-12-20 01:26:13.776 pm errorSharpAquos - request 4863 - ERROR. Unable to acquire mutex permit.[0]

dev:10252019-12-20 01:26:13.771 pm debugSharpAquos - request 4863 - Socket [open] CMD [POWR] Params [1]

dev:10252019-12-20 01:26:13.759 pm debugSharpAquos - SharpAquos - getMutex 4863 - Failed to acquire mutex permit [0]

dev:10252019-12-20 01:26:11.752 pm debugSharpAquos - SharpAquos - getMutex 4863 - Acquire mutex request [0]

dev:10252019-12-20 01:26:11.747 pm debugSharpAquos - Turn on TV

dev:10252019-12-20 01:25:54.004 pm errorSharpAquos - request 4862 - ERROR. Unable to acquire mutex permit.[0]

dev:10252019-12-20 01:25:53.997 pm debugSharpAquos - request 4862 - Socket [open] CMD [POWR] Params [?]

dev:10252019-12-20 01:25:53.989 pm debugSharpAquos - SharpAquos - getMutex 4862 - Failed to acquire mutex permit [0]

dev:10252019-12-20 01:25:53.231 pm debugSharpAquos - openSocket: Socket opened.

dev:10252019-12-20 01:25:52.215 pm debugSharpAquos - openSocket: Connecting to 192.168.254.205:10002

dev:10252019-12-20 01:25:51.976 pm debugSharpAquos - SharpAquos - getMutex 4862 - Acquire mutex request [0]

dev:10252019-12-20 01:25:51.964 pm debugSharpAquos - sendSocketCommand - sending [POWR1 ]

dev:10252019-12-20 01:25:51.954 pm debugSharpAquos - SharpAquos - request 4861 - IOBUFFER [ [] ]

dev:10252019-12-20 01:25:51.944 pm debugSharpAquos - SharpAquos - request 4861 - Socket [open] CMD [POWR] Params [1]

dev:10252019-12-20 01:25:51.928 pm debugSharpAquos - SharpAquos - getMutex 4861 - Acquired mutex permit [0]

dev:10252019-12-20 01:25:51.919 pm debugSharpAquos - SharpAquos - getMutex 4861 - Acquire mutex request [1]

dev:10252019-12-20 01:25:51.908 pm debugSharpAquos - Turn on TV

dev:10252019-12-20 01:25:47.161 pm debugSharpAquos - telnetStatus - Stream Closed - Attempting reconnect [1]

dev:10252019-12-20 01:25:47.138 pm debugSharpAquos - closeSocket: Socket closed. [1] [1]

dev:10252019-12-20 01:25:47.123 pm warnSharpAquos - FLUSHMUTEX - FLUSHED - Queued [false] Waiting [0] permits [1]

dev:10252019-12-20 01:25:46.017 pm warnSharpAquos - FLUSHMUTEX - flushing mutex queue. Queued [false] Waiting [0] permits [1]

dev:10252019-12-20 01:25:45.918 pm debugSharpAquos - closeSocket: Socket close requested.

dev:10252019-12-20 01:25:45.896 pm warntelnetStatus - Socket [open] Message [receive error: Stream is closed]

dev:10252019-12-20 01:22:43.469 pm debugSharpAquos - SharpAquos - releaseMutex ?4859? - Released mutex permit [1]

dev:10252019-12-20 01:22:43.463 pm debugSharpAquos - SharpAquos - releaseMutex ?4859? - Release mutex request [0]

dev:10252019-12-20 01:22:43.458 pm debugSharpAquos - SharpAquos - parseDC11 - ERROR - received [ERR]

dev:10252019-12-20 01:22:43.452 pm debugSharpAquos - parseDC11 - response 'ERR'

dev:10252019-12-20 01:22:43.447 pm debugSharpAquos - SharpAquos - parse - 1 - COMMAND [DC11? ] RESPONSE [ERR]

dev:10252019-12-20 01:22:43.441 pm debugSharpAquos - SharpAquos - parse - IOBUFFER: 2 entries [[DC11? , ERR]]

The tv is fighting me to turn off and on......lot of delays.....errors

Summary

dev:10252019-12-20 03:12:42.731 pm debugSharpAquos - getDeviceState() ABORTED.

dev:10252019-12-20 03:12:42.727 pm errorSharpAquos - request 5196 - ERROR. Unable to acquire mutex permit.[0]

dev:10252019-12-20 03:12:42.723 pm debugSharpAquos - request 5196 - Socket [open] CMD [POWR] Params [?]

dev:10252019-12-20 03:12:42.684 pm debugSharpAquos - SharpAquos - getMutex 5196 - Connection STALLED??? [0]

dev:10252019-12-20 03:12:42.677 pm debugSharpAquos - SharpAquos - getMutex 5196 - Failed to acquire mutex permit [0]

dev:10252019-12-20 03:12:40.670 pm debugSharpAquos - SharpAquos - getMutex 5196 - Acquire mutex request [0]

dev:10252019-12-20 03:12:40.665 pm debugSharpAquos - getDeviceState() Starting

dev:10252019-12-20 03:11:47.343 pm errorSharpAquos - request 5195 - ERROR. Unable to acquire mutex permit.[0]

dev:10252019-12-20 03:11:47.339 pm debugSharpAquos - request 5195 - Socket [open] CMD [POWR] Params [?]

dev:10252019-12-20 03:11:47.335 pm debugSharpAquos - SharpAquos - getMutex 5195 - Connection STALLED??? [0]

dev:10252019-12-20 03:11:47.330 pm debugSharpAquos - SharpAquos - getMutex 5195 - Failed to acquire mutex permit [0]

dev:10252019-12-20 03:11:45.325 pm debugSharpAquos - SharpAquos - getMutex 5195 - Acquire mutex request [0]

dev:10252019-12-20 03:11:45.321 pm errorSharpAquos - request 5194 - ERROR. Unable to acquire mutex permit.[0]

dev:10252019-12-20 03:11:45.316 pm debugSharpAquos - request 5194 - Socket [open] CMD [POWR] Params [1]

dev:10252019-12-20 03:11:45.308 pm debugSharpAquos - SharpAquos - getMutex 5194 - Connection STALLED??? [0]

dev:10252019-12-20 03:11:45.304 pm debugSharpAquos - SharpAquos - getMutex 5194 - Failed to acquire mutex permit [0]

dev:10252019-12-20 03:11:43.298 pm debugSharpAquos - SharpAquos - getMutex 5194 - Acquire mutex request [0]

dev:10252019-12-20 03:11:43.294 pm debugSharpAquos - Turn on TV

dev:10252019-12-20 03:11:25.268 pm errorSharpAquos - request 5193 - ERROR. Unable to acquire mutex permit.[0]

dev:10252019-12-20 03:11:25.264 pm debugSharpAquos - request 5193 - Socket [open] CMD [POWR] Params [?]

dev:10252019-12-20 03:11:25.260 pm debugSharpAquos - SharpAquos - getMutex 5193 - Connection STALLED??? [0]

dev:10252019-12-20 03:11:25.255 pm debugSharpAquos - SharpAquos - getMutex 5193 - Failed to acquire mutex permit [0]

dev:10252019-12-20 03:11:25.198 pm errorSharpAquos - request 5192 - ERROR. Unable to acquire mutex permit.[0]

dev:10252019-12-20 03:11:25.193 pm debugSharpAquos - request 5192 - Socket [open] CMD [POWR] Params [?]

dev:10252019-12-20 03:11:25.180 pm debugSharpAquos - SharpAquos - getMutex 5192 - Connection STALLED??? [0]

dev:10252019-12-20 03:11:25.173 pm debugSharpAquos - SharpAquos - getMutex 5192 - Failed to acquire mutex permit [0]

dev:10252019-12-20 03:11:25.123 pm errorSharpAquos - request 5191 - ERROR. Unable to acquire mutex permit.[0]

dev:10252019-12-20 03:11:25.118 pm debugSharpAquos - request 5191 - Socket [open] CMD [POWR] Params [?]

dev:10252019-12-20 03:11:25.113 pm debugSharpAquos - SharpAquos - getMutex 5191 - Connection STALLED??? [0]

dev:10252019-12-20 03:11:25.108 pm debugSharpAquos - SharpAquos - getMutex 5191 - Failed to acquire mutex permit [0]

dev:10252019-12-20 03:11:24.444 pm errorSharpAquos - request 5190 - ERROR. Unable to acquire mutex permit.[0]

dev:10252019-12-20 03:11:24.417 pm debugSharpAquos - request 5190 - Socket [open] CMD [POWR] Params [?]

dev:10252019-12-20 03:11:24.413 pm debugSharpAquos - SharpAquos - getMutex 5190 - Connection STALLED??? [0]

dev:10252019-12-20 03:11:24.408 pm debugSharpAquos - SharpAquos - getMutex 5190 - Failed to acquire mutex permit [0]

dev:10252019-12-20 03:11:23.246 pm debugSharpAquos - SharpAquos - getMutex 5193 - Acquire mutex request [0]

dev:10252019-12-20 03:11:23.237 pm errorSharpAquos - request 5189 - ERROR. Unable to acquire mutex permit.[0]

dev:10252019-12-20 03:11:23.219 pm debugSharpAquos - request 5189 - Socket [open] CMD [POWR] Params [0]

dev:10252019-12-20 03:11:23.204 pm debugSharpAquos - SharpAquos - getMutex 5189 - Connection STALLED??? [0]

dev:10252019-12-20 03:11:23.199 pm debugSharpAquos - SharpAquos - getMutex 5189 - Failed to acquire mutex permit [0]

dev:10252019-12-20 03:11:23.182 pm debugSharpAquos - SharpAquos - getMutex 5192 - Acquire mutex request [0]

dev:10252019-12-20 03:11:23.177 pm errorSharpAquos - request 5188 - ERROR. Unable to acquire mutex permit.[0]

dev:10252019-12-20 03:11:23.167 pm debugSharpAquos - request 5188 - Socket [open] CMD [POWR] Params [0]

dev:10252019-12-20 03:11:23.149 pm debugSharpAquos - SharpAquos - getMutex 5188 - Connection STALLED??? [0]

dev:10252019-12-20 03:11:23.124 pm debugSharpAquos - SharpAquos - getMutex 5188 - Failed to acquire mutex permit [0]

dev:10252019-12-20 03:11:23.103 pm debugSharpAquos - SharpAquos - getMutex 5191 - Acquire mutex request [0]

dev:10252019-12-20 03:11:23.099 pm errorSharpAquos - request 5187 - ERROR. Unable to acquire mutex permit.[0]

dev:10252019-12-20 03:11:23.094 pm debugSharpAquos - request 5187 - Socket [open] CMD [POWR] Params [0]

dev:10252019-12-20 03:11:23.074 pm debugSharpAquos - SharpAquos - getMutex 5187 - Connection STALLED??? [0]

dev:10252019-12-20 03:11:23.064 pm debugSharpAquos - SharpAquos - getMutex 5187 - Failed to acquire mutex permit [0]

dev:10252019-12-20 03:11:22.398 pm debugSharpAquos - SharpAquos - getMutex 5190 - Acquire mutex request [0]

dev:10252019-12-20 03:11:22.379 pm errorSharpAquos - request 5186 - ERROR. Unable to acquire mutex permit.[0]

dev:10252019-12-20 03:11:22.370 pm debugSharpAquos - request 5186 - Socket [open] CMD [POWR] Params [0]

dev:10252019-12-20 03:11:22.329 pm debugSharpAquos - SharpAquos - getMutex 5186 - Connection STALLED??? [0]

dev:10252019-12-20 03:11:22.320 pm debugSharpAquos - SharpAquos - getMutex 5186 - Failed to acquire mutex permit [0]

dev:10252019-12-20 03:11:21.191 pm debugSharpAquos - SharpAquos - getMutex 5189 - Acquire mutex request [0]

dev:10252019-12-20 03:11:21.187 pm debugSharpAquos - Turn off TV

dev:10252019-12-20 03:11:21.100 pm debugSharpAquos - SharpAquos - getMutex 5188 - Acquire mutex request [0]

dev:10252019-12-20 03:11:21.091 pm debugSharpAquos - Turn off TV

dev:10252019-12-20 03:11:21.050 pm debugSharpAquos - SharpAquos - getMutex 5187 - Acquire mutex request [0]

dev:10252019-12-20 03:11:21.042 pm debugSharpAquos - Turn off TV

dev:10252019-12-20 03:11:20.315 pm debugSharpAquos - SharpAquos - getMutex 5186 - Acquire mutex request [0]

dev:10252019-12-20 03:11:20.281 pm debugSharpAquos - Turn off TV

dev:10252019-12-20 03:11:17.242 pm errorSharpAquos - request 5185 - ERROR. Unable to acquire mutex permit.[0]

dev:10252019-12-20 03:11:17.221 pm debugSharpAquos - request 5185 - Socket [open] CMD [POWR] Params [?]

dev:10252019-12-20 03:11:17.211 pm debugSharpAquos - SharpAquos - getMutex 5185 - Connection STALLED??? [0]

dev:10252019-12-20 03:11:17.207 pm debugSharpAquos - SharpAquos - getMutex 5185 - Failed to acquire mutex permit [0]

dev:10252019-12-20 03:11:17.060 pm errorSharpAquos - request 5184 - ERROR. Unable to acquire mutex permit.[0]

dev:10252019-12-20 03:11:17.055 pm debugSharpAquos - request 5184 - Socket [open] CMD [POWR] Params [?]

dev:10252019-12-20 03:11:17.050 pm debugSharpAquos - SharpAquos - getMutex 5184 - Connection STALLED??? [0]

dev:10252019-12-20 03:11:17.046 pm debugSharpAquos - SharpAquos - getMutex 5184 - Failed to acquire mutex permit [0]

dev:10252019-12-20 03:11:16.768 pm errorSharpAquos - request 5183 - ERROR. Unable to acquire mutex permit.[0]

dev:10252019-12-20 03:11:16.764 pm debugSharpAquos - request 5183 - Socket [open] CMD [POWR] Params [?]

dev:10252019-12-20 03:11:16.760 pm debugSharpAquos - SharpAquos - getMutex 5183 - Connection STALLED??? [0]

dev:10252019-12-20 03:11:16.754 pm debugSharpAquos - SharpAquos - getMutex 5183 - Failed to acquire mutex permit [0]

dev:10252019-12-20 03:11:15.191 pm debugSharpAquos - SharpAquos - getMutex 5185 - Acquire mutex request [0]

dev:10252019-12-20 03:11:15.182 pm errorSharpAquos - request 5182 - ERROR. Unable to acquire mutex permit.[0]

dev:10252019-12-20 03:11:15.174 pm debugSharpAquos - request 5182 - Socket [open] CMD [POWR] Params [0]

dev:10252019-12-20 03:11:15.161 pm debugSharpAquos - SharpAquos - getMutex 5182 - Connection STALLED??? [0]

dev:10252019-12-20 03:11:15.152 pm debugSharpAquos - SharpAquos - getMutex 5182 - Failed to acquire mutex permit [0]

dev:10252019-12-20 03:11:15.048 pm debugSharpAquos - SharpAquos - getMutex 5184 - Acquire mutex request [0]

dev:10252019-12-20 03:11:15.028 pm errorSharpAquos - request 5181 - ERROR. Unable to acquire mutex permit.[0]

dev:10252019-12-20 03:11:15.019 pm debugSharpAquos - request 5181 - Socket [open] CMD [POWR] Params [0]

dev:10252019-12-20 03:11:15.006 pm debugSharpAquos - SharpAquos - getMutex 5181 - Connection STALLED??? [0]

dev:10252019-12-20 03:11:14.997 pm debugSharpAquos - SharpAquos - getMutex 5181 - Failed to acquire mutex permit [0]

dev:10252019-12-20 03:11:14.749 pm debugSharpAquos - SharpAquos - getMutex 5183 - Acquire mutex request [0]

dev:10252019-12-20 03:11:14.743 pm errorSharpAquos - request 5180 - ERROR. Unable to acquire mutex permit.[0]

dev:10252019-12-20 03:11:14.738 pm debugSharpAquos - request 5180 - Socket [open] CMD [POWR] Params [0]

dev:10252019-12-20 03:11:14.730 pm debugSharpAquos - SharpAquos - getMutex 5180 - Connection STALLED??? [0]

dev:10252019-12-20 03:11:14.726 pm debugSharpAquos - SharpAquos - getMutex 5180 - Failed to acquire mutex permit [0]

dev:10252019-12-20 03:11:13.278 pm errorSharpAquos - request 5179 - ERROR. Unable to acquire mutex permit.[0]

dev:10252019-12-20 03:11:13.269 pm debugSharpAquos - request 5179 - Socket [open] CMD [POWR] Params [?]

dev:10252019-12-20 03:11:13.260 pm debugSharpAquos - SharpAquos - getMutex 5179 - Connection STALLED??? [0]

dev:10252019-12-20 03:11:13.243 pm debugSharpAquos - SharpAquos - getMutex 5179 - Failed to acquire mutex permit [0]

dev:10252019-12-20 03:11:13.147 pm debugSharpAquos - SharpAquos - getMutex 5182 - Acquire mutex request [0]

dev:10252019-12-20 03:11:13.142 pm debugSharpAquos - Turn off TV

dev:10252019-12-20 03:11:12.988 pm debugSharpAquos - SharpAquos - getMutex 5181 - Acquire mutex request [0]

dev:10252019-12-20 03:11:12.979 pm debugSharpAquos - Turn off TV

dev:10252019-12-20 03:11:12.714 pm debugSharpAquos - SharpAquos - getMutex 5180 - Acquire mutex request [0]

dev:10252019-12-20 03:11:12.694 pm debugSharpAquos - Turn off TV

dev:10252019-12-20 03:11:11.233 pm debugSharpAquos - SharpAquos - getMutex 5179 - Acquire mutex request [0]

dev:10252019-12-20 03:11:11.206 pm errorSharpAquos - request 5178 - ERROR. Unable to acquire mutex permit.[0]

dev:10252019-12-20 03:11:11.202 pm debugSharpAquos - request 5178 - Socket [open] CMD [POWR] Params [0]

dev:10252019-12-20 03:11:11.159 pm debugSharpAquos - SharpAquos - getMutex 5178 - Connection STALLED??? [0]

dev:10252019-12-20 03:11:11.155 pm debugSharpAquos - SharpAquos - getMutex 5178 - Failed to acquire mutex permit [0]

dev:10252019-12-20 03:11:09.151 pm debugSharpAquos - SharpAquos - getMutex 5178 - Acquire mutex request [0]

dev:10252019-12-20 03:11:09.144 pm debugSharpAquos - Turn off TV

dev:10252019-12-20 03:10:56.254 pm errorSharpAquos - request 5177 - ERROR. Unable to acquire mutex permit.[0]

dev:10252019-12-20 03:10:56.247 pm debugSharpAquos - request 5177 - Socket [open] CMD [POWR] Params [?]

dev:10252019-12-20 03:10:56.236 pm debugSharpAquos - SharpAquos - getMutex 5177 - Connection STALLED??? [0]

dev:10252019-12-20 03:10:56.232 pm debugSharpAquos - SharpAquos - getMutex 5177 - Failed to acquire mutex permit [0]

dev:10252019-12-20 03:10:55.963 pm errorSharpAquos - request 5176 - ERROR. Unable to acquire mutex permit.[0]

dev:10252019-12-20 03:10:55.959 pm debugSharpAquos - request 5176 - Socket [open] CMD [POWR] Params [?]

dev:10252019-12-20 03:10:55.955 pm debugSharpAquos - SharpAquos - getMutex 5176 - Failed to acquire mutex permit [0]

dev:10252019-12-20 03:10:54.227 pm debugSharpAquos - SharpAquos - getMutex 5177 - Acquire mutex request [0]

dev:10252019-12-20 03:10:54.223 pm errorSharpAquos - request 5175 - ERROR. Unable to acquire mutex permit.[0]

dev:10252019-12-20 03:10:54.219 pm debugSharpAquos - request 5175 - Socket [open] CMD [POWR] Params [1]

dev:10252019-12-20 03:10:54.211 pm debugSharpAquos - SharpAquos - getMutex 5175 - Failed to acquire mutex permit [0]

dev:10252019-12-20 03:10:53.950 pm debugSharpAquos - SharpAquos - getMutex 5176 - Acquire mutex request [0]

dev:10252019-12-20 03:10:53.946 pm errorSharpAquos - request 5174 - ERROR. Unable to acquire mutex permit.[0]

dev:10252019-12-20 03:10:53.942 pm debugSharpAquos - request 5174 - Socket [open] CMD [POWR] Params [1]

dev:10252019-12-20 03:10:53.934 pm debugSharpAquos - SharpAquos - getMutex 5174 - Failed to acquire mutex permit [0]

dev:10252019-12-20 03:10:52.206 pm debugSharpAquos - SharpAquos - getMutex 5175 - Acquire mutex request [0]

dev:10252019-12-20 03:10:52.201 pm debugSharpAquos - Turn on TV

dev:10252019-12-20 03:10:51.924 pm debugSharpAquos - SharpAquos - getMutex 5174 - Acquire mutex request [0]

dev:10252019-12-20 03:10:51.915 pm debugSharpAquos - Turn on TV

dev:10252019-12-20 03:10:49.174 pm debugSharpAquos - openSocket: Socket opened.

dev:10252019-12-20 03:10:48.156 pm debugSharpAquos - openSocket: Connecting to 192.168.254.205:10002

dev:10252019-12-20 03:10:47.698 pm errorSharpAquos - request 5173 - ERROR. Unable to acquire mutex permit.[0]

dev:10252019-12-20 03:10:47.690 pm debugSharpAquos - request 5173 - Socket [open] CMD [POWR] Params [?]

dev:10252019-12-20 03:10:47.683 pm debugSharpAquos - SharpAquos - getMutex 5173 - Failed to acquire mutex permit [0]

dev:10252019-12-20 03:10:45.676 pm debugSharpAquos - SharpAquos - getMutex 5173 - Acquire mutex request [0]

dev:10252019-12-20 03:10:45.610 pm debugSharpAquos - sendSocketCommand - sending [POWR1 ]

dev:10252019-12-20 03:10:45.599 pm debugSharpAquos - SharpAquos - request 5172 - IOBUFFER [ [] ]

dev:10252019-12-20 03:10:45.594 pm debugSharpAquos - SharpAquos - request 5172 - Socket [open] CMD [POWR] Params [1]

dev:10252019-12-20 03:10:45.577 pm debugSharpAquos - SharpAquos - getMutex 5172 - Acquired mutex permit [0]

dev:10252019-12-20 03:10:45.572 pm debugSharpAquos - SharpAquos - getMutex 5172 - Acquire mutex request [1]

dev:10252019-12-20 03:10:45.555 pm debugSharpAquos - Turn on TV

dev:10252019-12-20 03:10:43.146 pm debugSharpAquos - telnetStatus - Stream Closed - Attempting reconnect [1]

dev:10252019-12-20 03:10:43.124 pm debugSharpAquos - closeSocket: Socket closed. [1] [1]

dev:10252019-12-20 03:10:43.098 pm warnSharpAquos - FLUSHMUTEX - FLUSHED - Queued [false] Waiting [0] permits [1]

dev:10252019-12-20 03:10:41.983 pm warnSharpAquos - FLUSHMUTEX - flushing mutex queue. Queued [false] Waiting [0] permits [1]

dev:10252019-12-20 03:10:41.802 pm debugSharpAquos - closeSocket: Socket close requested.

dev:10252019-12-20 03:10:41.751 pm warntelnetStatus - Socket [open] Message [receive error: Stream is closed]

dev:10252019-12-20 03:07:39.459 pm debugSharpAquos - SharpAquos - releaseMutex ?5170? - Released mutex permit [1]

dev:10252019-12-20 03:07:39.454 pm debugSharpAquos - SharpAquos - releaseMutex ?5170? - Release mutex request [0]

dev:10252019-12-20 03:07:39.449 pm debugSharpAquos - SharpAquos - parseSleepTimer - SET - SleepTimer [0] SleepTimerSetting [Off]

dev:10252019-12-20 03:07:39.445 pm infoSharpAquos - EVENT - [[name:SleepTimerSetting, value:Off]]

dev:10252019-12-20 03:07:39.424 pm infoSharpAquos - EVENT - [[name:SleepTimer, value:0]]

dev:10252019-12-20 03:07:39.413 pm debugSharpAquos - parseSleepTimer - response '0'

dev:10252019-12-20 03:07:39.409 pm debugSharpAquos - SharpAquos - parse - 1 - COMMAND [OFTM? ] RESPONSE [0]

dev:10252019-12-20 03:07:39.401 pm debugSharpAquos - SharpAquos - parse - IOBUFFER: 2 entries [[OFTM? , 0]]

I'm jumping on the bandwagon. But, even if it doesn't work flawlessly, @albertsmark pointed me to an iOS app I've been looking for for years, since Sharp stopped supporting their app - one that works! Thank you!

Things working pretty good today.....no errors that I saw. Commands have a slight delay but all seem to run fine. Here are some toggle mute logs.

Summary

dev:10252019-12-23 12:16:50.796 am debugSharpAquos - openSocket: Socket opened.

dev:10252019-12-23 12:16:49.779 am debugSharpAquos - openSocket: Connecting to 192.168.254.205:10002

dev:10252019-12-23 12:16:44.766 am debugSharpAquos - telnetStatus - Stream Closed - Attempting reconnect [1]

dev:10252019-12-23 12:16:44.755 am debugSharpAquos - closeSocket: Socket closed. [1] [1]

dev:10252019-12-23 12:16:44.740 am warnSharpAquos - FLUSHMUTEX - FLUSHED - Queued [false] Waiting [0] permits [1]

dev:10252019-12-23 12:16:43.621 am warnSharpAquos - FLUSHMUTEX - flushing mutex queue. Queued [false] Waiting [0] permits [1]

dev:10252019-12-23 12:16:43.459 am debugSharpAquos - closeSocket: Socket close requested.

dev:10252019-12-23 12:16:43.445 am warntelnetStatus - Socket [open] Message [receive error: Stream is closed]

dev:10252019-12-23 12:13:41.572 am debugSharpAquos - SharpAquos - releaseMutex ?13800? - Released mutex permit [1]

dev:10252019-12-23 12:13:41.550 am debugSharpAquos - SharpAquos - releaseMutex ?13800? - Release mutex request [0]

dev:10252019-12-23 12:13:41.525 am debugSharpAquos - SharpAquos - parseMute - SET - mute [unmuted]

dev:10252019-12-23 12:13:41.504 am infoSharpAquos - EVENT - [[name:mute, value:unmuted]]

dev:10252019-12-23 12:13:41.495 am debugSharpAquos - parseMute - response '2'

dev:10252019-12-23 12:13:41.485 am debugSharpAquos - SharpAquos - parse - 1 - COMMAND [MUTE? ] RESPONSE [2]

dev:10252019-12-23 12:13:41.466 am debugSharpAquos - SharpAquos - parse - IOBUFFER: 2 entries [[MUTE? , 2]]

dev:10252019-12-23 12:13:41.387 am debugSharpAquos - toggleMute() - completed

dev:10252019-12-23 12:13:41.383 am debugSharpAquos - sendSocketCommand - sending [MUTE? ]

dev:10252019-12-23 12:13:41.379 am debugSharpAquos - SharpAquos - request 13801 - IOBUFFER [ [] ]

dev:10252019-12-23 12:13:41.374 am debugSharpAquos - SharpAquos - request 13801 - Socket [open] CMD [MUTE] Params [?]

dev:10252019-12-23 12:13:41.361 am debugSharpAquos - SharpAquos - releaseMutex ?13800? - Released mutex permit [1]

dev:10252019-12-23 12:13:41.357 am debugSharpAquos - SharpAquos - getMutex 13801 - Acquired mutex permit [0]

dev:10252019-12-23 12:13:41.347 am debugSharpAquos - SharpAquos - releaseMutex ?13800? - Release mutex request [0]

dev:10252019-12-23 12:13:41.339 am debugSharpAquos - SharpAquos - parse - 1 - COMMAND [RCKY31 ] RESPONSE [OK]

dev:10252019-12-23 12:13:41.332 am debugSharpAquos - SharpAquos - parse - IOBUFFER: 2 entries [[RCKY31 , OK]]

dev:10252019-12-23 12:13:41.276 am debugSharpAquos - SharpAquos - getMutex 13801 - Acquire mutex request [0]

dev:10252019-12-23 12:13:41.263 am debugSharpAquos - sendSocketCommand - sending [RCKY31 ]

dev:10252019-12-23 12:13:41.259 am debugSharpAquos - SharpAquos - request 13800 - IOBUFFER [ [] ]

dev:10252019-12-23 12:13:41.249 am debugSharpAquos - SharpAquos - request 13800 - Socket [open] CMD [RCKY] Params [31]

dev:10252019-12-23 12:13:41.237 am debugSharpAquos - SharpAquos - getMutex 13800 - Acquired mutex permit [0]

dev:10252019-12-23 12:13:41.231 am debugSharpAquos - SharpAquos - getMutex 13800 - Acquire mutex request [1]

dev:10252019-12-23 12:13:41.224 am debugSharpAquos - toggleMute()

dev:10252019-12-23 12:13:37.291 am debugSharpAquos - SharpAquos - releaseMutex ?13798? - Released mutex permit [1]

dev:10252019-12-23 12:13:37.287 am debugSharpAquos - SharpAquos - releaseMutex ?13798? - Release mutex request [0]

dev:10252019-12-23 12:13:37.268 am debugSharpAquos - SharpAquos - parseMute - SET - mute [unmuted]

dev:10252019-12-23 12:13:37.248 am infoSharpAquos - EVENT - [[name:mute, value:unmuted]]

dev:10252019-12-23 12:13:37.238 am debugSharpAquos - parseMute - response '2'

dev:10252019-12-23 12:13:37.225 am debugSharpAquos - SharpAquos - parse - 1 - COMMAND [MUTE? ] RESPONSE [2]

dev:10252019-12-23 12:13:37.213 am debugSharpAquos - SharpAquos - parse - IOBUFFER: 2 entries [[MUTE? , 2]]

dev:10252019-12-23 12:13:37.062 am debugSharpAquos - toggleMute() - completed

dev:10252019-12-23 12:13:37.048 am debugSharpAquos - sendSocketCommand - sending [MUTE? ]

dev:10252019-12-23 12:13:37.038 am debugSharpAquos - SharpAquos - request 13799 - IOBUFFER [ [] ]

dev:10252019-12-23 12:13:37.033 am debugSharpAquos - SharpAquos - request 13799 - Socket [open] CMD [MUTE] Params [?]

dev:10252019-12-23 12:13:37.018 am debugSharpAquos - SharpAquos - releaseMutex ?13798? - Released mutex permit [1]

dev:10252019-12-23 12:13:37.013 am debugSharpAquos - SharpAquos - getMutex 13799 - Acquired mutex permit [0]

dev:10252019-12-23 12:13:37.004 am debugSharpAquos - SharpAquos - releaseMutex ?13798? - Release mutex request [0]

dev:10252019-12-23 12:13:36.997 am debugSharpAquos - SharpAquos - parse - 1 - COMMAND [RCKY31 ] RESPONSE [OK]

dev:10252019-12-23 12:13:36.987 am debugSharpAquos - SharpAquos - parse - IOBUFFER: 2 entries [[RCKY31 , OK]]

dev:10252019-12-23 12:13:36.901 am debugSharpAquos - SharpAquos - getMutex 13799 - Acquire mutex request [0]

dev:10252019-12-23 12:13:36.896 am debugSharpAquos - sendSocketCommand - sending [RCKY31 ]

dev:10252019-12-23 12:13:36.892 am debugSharpAquos - SharpAquos - request 13798 - IOBUFFER [ [] ]

dev:10252019-12-23 12:13:36.885 am debugSharpAquos - SharpAquos - request 13798 - Socket [open] CMD [RCKY] Params [31]

dev:10252019-12-23 12:13:36.838 am debugSharpAquos - SharpAquos - getMutex 13798 - Acquired mutex permit [0]

dev:10252019-12-23 12:13:36.832 am debugSharpAquos - SharpAquos - getMutex 13798 - Acquire mutex request [1]

dev:10252019-12-23 12:13:36.825 am debugSharpAquos - toggleMute()

dev:10252019-12-23 12:12:49.229 am debugSharpAquos - SharpAquos - releaseMutex ?13796? - Released mutex permit [1]

dev:10252019-12-23 12:12:49.221 am debugSharpAquos - SharpAquos - releaseMutex ?13796? - Release mutex request [0]

dev:10252019-12-23 12:12:49.216 am debugSharpAquos - SharpAquos - parseSleepTimer - SET - SleepTimer [0] SleepTimerSetting [Off]

dev:10252019-12-23 12:12:49.208 am infoSharpAquos - EVENT - [[name:SleepTimerSetting, value:Off]]

dev:10252019-12-23 12:12:49.196 am infoSharpAquos - EVENT - [[name:SleepTimer, value:0]]

dev:10252019-12-23 12:12:49.191 am debugSharpAquos - parseSleepTimer - response '0'

dev:10252019-12-23 12:12:49.161 am debugSharpAquos - SharpAquos - parse - 1 - COMMAND [OFTM? ] RESPONSE [0]

dev:10252019-12-23 12:12:49.148 am debugSharpAquos - SharpAquos - parse - IOBUFFER: 2 entries [[OFTM? , 0]]

Spoke too soon again, few error and tv wouldn't turn on....

Summary

dev:10252019-12-23 01:51:31.056 am errorSharpAquos - request 13986 - ERROR. Unable to acquire mutex permit.[0]

dev:10252019-12-23 01:51:31.051 am debugSharpAquos - request 13986 - Socket [open] CMD [POWR] Params [?]

dev:10252019-12-23 01:51:31.045 am debugSharpAquos - SharpAquos - getMutex 13986 - Connection STALLED??? [0]

dev:10252019-12-23 01:51:31.037 am debugSharpAquos - SharpAquos - getMutex 13986 - Failed to acquire mutex permit [0]

dev:10252019-12-23 01:51:29.031 am debugSharpAquos - SharpAquos - getMutex 13986 - Acquire mutex request [0]

dev:10252019-12-23 01:51:29.025 am errorSharpAquos - request 13985 - ERROR. Unable to acquire mutex permit.[0]

dev:10252019-12-23 01:51:29.019 am debugSharpAquos - request 13985 - Socket [open] CMD [POWR] Params [1]

dev:10252019-12-23 01:51:29.008 am debugSharpAquos - SharpAquos - getMutex 13985 - Failed to acquire mutex permit [0]

dev:10252019-12-23 01:51:27.001 am debugSharpAquos - SharpAquos - getMutex 13985 - Acquire mutex request [0]

dev:10252019-12-23 01:51:26.997 am debugSharpAquos - Turn on TV

dev:10252019-12-23 01:51:16.783 am errorSharpAquos - request 13984 - ERROR. Unable to acquire mutex permit.[0]

dev:10252019-12-23 01:51:16.778 am debugSharpAquos - request 13984 - Socket [open] CMD [POWR] Params [?]

dev:10252019-12-23 01:51:16.771 am debugSharpAquos - SharpAquos - getMutex 13984 - Failed to acquire mutex permit [0]

dev:10252019-12-23 01:51:14.765 am debugSharpAquos - SharpAquos - getMutex 13984 - Acquire mutex request [0]

dev:10252019-12-23 01:51:14.758 am errorSharpAquos - request 13983 - ERROR. Unable to acquire mutex permit.[0]

dev:10252019-12-23 01:51:14.753 am debugSharpAquos - request 13983 - Socket [open] CMD [POWR] Params [1]

dev:10252019-12-23 01:51:14.733 am debugSharpAquos - SharpAquos - getMutex 13983 - Failed to acquire mutex permit [0]

dev:10252019-12-23 01:51:12.716 am debugSharpAquos - SharpAquos - getMutex 13983 - Acquire mutex request [0]

dev:10252019-12-23 01:51:12.712 am debugSharpAquos - Turn on TV

dev:10252019-12-23 01:50:49.265 am debugSharpAquos - openSocket: Socket opened.

dev:10252019-12-23 01:50:49.187 am errorSharpAquos - request 13982 - ERROR. Unable to acquire mutex permit.[0]

dev:10252019-12-23 01:50:49.165 am debugSharpAquos - request 13982 - Socket [open] CMD [POWR] Params [?]

dev:10252019-12-23 01:50:49.156 am debugSharpAquos - SharpAquos - getMutex 13982 - Failed to acquire mutex permit [0]

dev:10252019-12-23 01:50:48.248 am debugSharpAquos - openSocket: Connecting to 192.168.254.205:10002

dev:10252019-12-23 01:50:47.149 am debugSharpAquos - SharpAquos - getMutex 13982 - Acquire mutex request [0]

dev:10252019-12-23 01:50:47.142 am debugSharpAquos - sendSocketCommand - sending [POWR1 ]

dev:10252019-12-23 01:50:47.136 am debugSharpAquos - SharpAquos - request 13981 - IOBUFFER [ [] ]

dev:10252019-12-23 01:50:47.129 am debugSharpAquos - SharpAquos - request 13981 - Socket [open] CMD [POWR] Params [1]

dev:10252019-12-23 01:50:47.119 am debugSharpAquos - SharpAquos - getMutex 13981 - Acquired mutex permit [0]

dev:10252019-12-23 01:50:47.113 am debugSharpAquos - SharpAquos - getMutex 13981 - Acquire mutex request [1]

dev:10252019-12-23 01:50:47.109 am debugSharpAquos - Turn on TV

Download the Hubitat app