Foi corrigido um erro na versão para Mac. A porta não era iniciada adequadamente até a versão 0.8.4. A versão atual é a 0.8.15!
Nesse momento não existe um pacote pré-compilado do apcctrl para mac os. Para utilizar o software no MacOS você precisa compilar. Siga os passos abaixo.
2.1. Para escrever esse documento foi utilizado o apcctrl-0.8.7.tar.gz. Faça o download na seção files.
2.2. Abra um terminal clicando no seu Launchpad e procure por "terminal".
2.3. Mude a pasta atual para a pasta onde está no arquivo baixado:
MeuMac:~ fabio$ cd /Users/fabio/Downloads
2.4. Se o arquivo estiver compactado, descomprima ele com o comando gz:
MeuMac:Downloads fabio$ tar -xvvzf apcctrl-0.8.7.tar.gz
2.5. Os arquivos foram extraidos para a pasta apcctrl-0.8.7. Mude sua pasta atual para essa:
MeuMac:Downloads fabio$ cd apcctrl-0.8.7
Agora você vai compilar. Como o MacOSX possui uma série de bloqueios de segurança precisamos fornecer parâmetros durante a compilação.
3.1. Crie a pasta sbin e rode o script configure:
MeuMac:apcctrl-0.8.7 fabio$ mkdir -p /usr/local/sbin MeuMac:apcctrl-0.8.7 fabio$ ./configure --sbindir=/usr/local/sbin --disable-usb
*Você precisará do pacote XCode instalado! Caso você nunca tenha compilado um software no seu mac, ele solicitará o download das ferramentas de desenvolvimento para continuar. Pode ser necessário rodar o script configure novamente
3.2. Faça a compilação com o comando make:
MeuMac:apcctrl-0.8.7 fabio$ make
3.3. Faça a instalação com o comando make install (com uso do sudo):
MeuMac:apcctrl-0.8.7 fabio$ sudo make install
3.4. Instalação do daemon. Esse passo é necessário para que o daemon seja iniciado sempre que o computador for ligado.
MeuMac:apcctrl-0.8.7 fabio$ sudo launchctl load /Library/LaunchDaemons/org.apcctrl.apcctrl.plist
Seu nobreak possui um conversor usb-serial embutido dentro dele. Quando o ApcCtrl é iniciado ele precisa saber onde o seu MacOSX colocou o acesso a ele. Os dispositivos estão listados na pasta /dev. Utilize o comando ls com o grep abaixo para facilitar identificar ele:
MeuMac:apcctrl-0.8.7 fabio$ ls -la /dev | grep usb crw-rw-rw- 1 root wheel 14, 3 Nov 3 09:03 cu.usbserial-9f3 crw-rw-rw- 1 root wheel 14, 2 Nov 3 09:00 tty.usbserial-9f3
Um dispositivo usb-serial no Mac inicia com o nome cu. Então, no meu caso, o device que dá acesso ao meu nobreak é /dev/cu.usbserial-9f3
Como o MacOSX fixa os devices pelo número serial, esse conversor do nobreak não possui esse campo corrigido e isso faz com que toda vez que o computador é reiniciado ou o cabo USB é removido e inserido novamente o nome do dispositivo pode mudar. Para contornar isso foi feita uma função apenas para MacOSX que procura o nome do dispotivivo mais similar com o configurado. Com isso, o nome do device confgurado no meu caso deve ser apenas /dev/cu.usbserial
Esse arquivo é que configura a aplicação. Utilize esse arquivo apcctrl.conf como exemplo. Edite com o comando vim e sudo:
MeuMac:apcctrl-0.8.7 fabio$ sudo vim /etc/apcctrl/apcctrl.conf
* Você pode utilizar outro editor diferente do vim.
UPSCABLE simple
UPSTYPE brazil
DEVICE /dev/cu.usbserial
A aplicação apctest deve ser utilizada para testar seu nobreak. Caso você tenha algum problema ao iniciar o apctest você pode tentar mudar o path atual (cd ~) ou rodar como root com o camando sudo.
MeuMac:apcctrl-0.8.7 fabio$ sudo /usr/local/sbin/apctest -d 100 2016-11-03 11:34:22 apctest 0.8.7 (27 September 2016) darwin Checking configuration ... sharenet.type = Network & ShareUPS Disabled cable.type = Custom Cable Simple mode.type = BRAZIL UPS Driver Setting up the port ... Doing prep_device() ... You are using a APC Brazil type, so I'm entering BRAZIL test mode Hello, this is the apcctrl Cable Test program. This part of apctest is for testing APC-Microsol Brazil. Please select the function you want to perform. 1) Query the UPS for all known values 2) Query for last events 3) Query the internal UPS clock and scheduler 4) Schedule the UPS to shutdown in 1 minutes and restart 1 minute later. 5) Cancel Schedule. Do not shutdown or start 6) Test set input turn off 7) Test set input Turn on 8) Test battery health 9) Generate data of timeleft functions Q) Quit Select function number:
Aparentemente é comum encontrar relatos de pessoas que ficaram com a porta usb-serial no Mac OS como bloqueada (locked, em uso). Uma sugestão é criar a pasta e mudar as permissões dela da seguinte forma:
MeuMac:apcctrl-0.8.7 fabio$ sudo mkdir /var/lock MeuMac:apcctrl-0.8.7 fabio$ sudo chmod 777 /var/lock
Não é uma solução elegante, especialmente para um servidor, aguardo sugestões!
Para monitorar o apcctrl no ambiente gráfico você deve utilizar o apcagent. Para isso, abra o seu launchpad e procure por apcagent.
Para iniciar ou encerrar o daemon que efetivamente controla o nobreak você deve utilizar o launchctl com o uso do sudo. Para que isso funcione você precisa ter executado a etapa 3.4.
MeuMac:apcctrl-0.8.7 fabio$ sudo launchctl stop org.apcctrl.apcctrl MeuMac:apcctrl-0.8.7 fabio$ sudo launchctl start org.apcctrl.apcctrl
Para verificar se a aplicação foi carregada pelo launcctl na etapa 3.4 você pode utlizar o comando:
MeuMac:apcctrl-0.8.7 fabio$ sudo launchctl list | grep apc 51 126 org.apcctrl.apcctrl 414 0 com.apcctrl.apcagent.4832
Nesse exemplo, o número 51 indica o PID da aplicação servidora. indicando que o serviço está rodando. Se ao contrário de um número você tiver um hífen, significa que a aplicação servidora não está em execução.
Você também pode utilizar a aplicação apcaccess para verificar o estado do daemon.
MeuMac:apcctrl-0.8.7 fabio$ /usr/local/sbin/apcaccess APC : 001,034,0858 DATE : 2017-01-06 11:11:03 -0800 HOSTNAME : Fabios-iMac.local VERSION : 0.8.7 (16 December 2016) darwin UPSNAME : UpsNome CABLE : Custom Cable Simple DRIVER : BRAZIL UPS Driver UPSMODE : Stand Alone STARTTIME: 2017-01-06 10:48:33 -0800 MODEL : APC Brazil BackUPS 1200 (code 186) STATUS : ONLINE LINEV : 217.6 Volts LOADPCT : 28.6 Percent BCHARGE : 100.0 Percent TIMELEFT : 17.3 Minutes MBATTCHG : 25 Percent MINTIMEL : 10 Minutes MAXTIME : 0 Seconds MAXLINEV : 253.0 Volts MINLINEV : 187.0 Volts OUTPUTV : 112.8 Volts ITEMP : 0.0 C BATTV : 26.3 Volts LINEFREQ : 59.0 Hz LASTXFER : No transfers since turnon NUMXFERS : 0 TONBATT : 0 Seconds CUMONBATT: 0 Seconds XOFFBATT : N/A STATFLAG : 0x04000008 NOMOUTV : 115 Volts NOMINV : 220 Volts NOMBATTV : 24.0 Volts NOMPOWER : 600 Watts END APC : 2017-01-06 11:11:03 -0800