if (!$argv[2]) {
    ExitError("Missing Command !");
}
if (!isset($argv[3]) or !isset($argv[4]) or !isset($argv[5])) {
    ExitError("Missing Command options !");
}
if (preg_match('#[a-z]+#i', $argv[1])) {
    //if letters it is a SerialPort
    $mys = new MySensorSendSerial($argv[1]);
} else {
    $mys = new MySensorSendEthernet($argv[1], $opts['p']);
}
$ack = isset($opts['a']) ? 1 : 0;
$wait = isset($opts['g']) ? 1 : 0;
$verbose = isset($opts['v']) ? 1 : 0;
$commands = array_keys($mys->getMessageTypes());
if (!in_array($argv[2], $commands)) {
    ExitError("Unknow command '{$argv[2]}' !");
}
if ($argv[2] == 'set' and !isset($argv[6])) {
    ExitError("Missing payload argument");
}
$r = $mys->sendMessage($argv[3], $argv[4], $argv[2], $ack, $argv[5], $argv[6], $wait);
if ($wait) {
    if ($r) {
        echo "{$r}\n";
    } else {
        ExitError("No answer received or command failed!");
    }
}
if ($verbose) {