Buscar

TESE_Mecanismos de Supervisao para Sistemas Domoticos_Versao Final

Prévia do material em texto

Mecanismo de Supervisão para Sistemas Domóticos 
 
André Filipe Costa Maciel e Silva 
 
 
Dissertação para Obtenção do Grau de Mestre em 
Engenharia Electrotécnica e Computadores 
 
Orientadores: Prof. Renato Jorge Caleira Nunes 
Prof. Paulo Rogério Barreiros D’Almeida Pereira 
 
 
Júri 
Presidente: Prof. Nuno Cavaco Gomes Horta 
Orientador: Prof. Renato Jorge Caleira Nunes 
Vogal: Prof. Alberto Manuel Ramos da Cunha 
 
Abril 2014
ii 
 
 
iii 
 
Agradecimentos 
 
À minha família, em especial aos meus pais e namorada, por todo o apoio que me deram e paciência 
que tiveram ao longo deste meu percurso universitário. 
Um especial agradecimento ao Professor Renato Nunes, por todo o apoio e orientação que 
demonstrou, principalmente nas longas reuniões que tivemos.
iv 
 
 
v 
 
Resumo 
 
A domótica veio trazer variados benefícios à nossa interacção com as habitações, melhorando o 
nosso conforto, segurança e permitindo um controlo dos gastos energéticos. 
Estas e outras vantagens fazem com que a procura por sistemas domóticos tenha aumentado. 
Mas o facto de os sistemas actuais serem, ou fáceis de instalar e configurar, mas possuírem muitas 
limitações funcionais, ou oferecerem uma elevada funcionalidade mas serem difíceis de configurar, 
cria problemas em escolher o sistema mais adequado. 
Torna-se assim necessário desenvolver um sistema que consiga realizar as mais exigentes tarefas, 
mas que seja fácil de configurar, podendo ser programado por qualquer utilizador. 
Esta dissertação tem como objectivo a criação de um software de gestão domótica, que tem por base 
o sistema DomoBus. Este software servirá para testar a funcionalidade do sistema DomoBus e a sua 
possível implementação em ambientes reais. 
Foram definidos três cenários de utilização e foi testado o funcionamento do nosso software. 
Conseguiu-se apurar que o sistema é bastante flexível e poderoso, pois oferece todas as ferramentas 
base para se poder configurar a maior parte dos cenários. 
O software mostrou também poder ser operado por uma pessoa não especializada, pois é fácil de 
configurar e operar. 
No entanto foram identificadas algumas limitações, em particular, a dificuldade que surge ao 
configurar cenários mais complexos. Esses cenários são perfeitamente suportados pelo sistema mas 
exigem um esforço maior por parte do utilizador. No entanto considera-se que futuras versões do 
software poderão colmatar estes aspectos oferecendo, por exemplo, padrões pré-definidos de 
configuração. 
 
 
 
 
Palavras-chave: Domótica, Automação Residencial, Supervisão, Configuração, DomoBus. 
 
 
 
 
 
 
vi 
 
 
vii 
 
Abstract 
 
Home automation has brought many benefits to our interaction with homes, improving comfort, safety 
and allowing greater energy efficiency. 
These and other advantages increase the demand for home automation systems. 
But the fact that current systems are, or easy to install and configure, but have many functional 
limitations, or offering high functionality but are difficult to configure, creates problems in choosing the 
most suitable system. 
So it becomes necessary to develop a system that can be powerful, accomplishing the most 
demanding tasks and, at the same time, be easy to configure and program by any user. 
This dissertation aims to develop a home automation management software, which is based on the 
DomoBus system. This software will allow testing the functionality of the DomoBus system and its 
possible application in real environments. 
Three usage scenarios were defined and the operation of our software was tested. We concluded that 
the system is very flexible and powerful, and it offers all the basic tools to manage most usage 
scenarios. 
The software also showed it can be operated by an unskilled person, as it is easy to configure and 
operate. 
However some limitations were identified regarding, in particular, the difficulty to configure complex 
scenarios. These scenarios are fully supported by the system but require more effort from the user to 
configure them. However, we believe future versions of the software may address these issues by 
offering, for example, predefined configuration patterns. 
 
 
 
 
Keywords: Domotics, Home automation, supervision, configuration, DomoBus. 
 
 
 
viii 
 
 
 
 
ix 
 
Índice 
 
1. Introdução ............................................................................................................ 1 
2. Edifícios Inteligentes ........................................................................................... 3 
 2.1. Domótica .................................................................................................... 3 
 2.2. Protocolos Existentes ............................................................................... 4 
 2.2.1. X10 ................................................................................................. 5 
 2.2.2. KNX ................................................................................................ 7 
 2.2.3. Lonworks ..................................................................................... 10 
 2.2.4. Resumo ....................................................................................... 11 
3. Sistema DomoBus ............................................................................................. 13 
 3.1. Casas Superautomatizadas .................................................................... 13 
 3.2. Arquitectura DomoBus ........................................................................... 15 
 3.3. Módulo de Supervisão ............................................................................ 17 
 3.4. Hardware do Módulo de Supervisão ..................................................... 17 
 3.5. Dispositivos e Propriedades .................................................................. 18 
4. Mecanismo de Supervisão ............................................................................... 21 
 4.1. Programações ......................................................................................... 21 
 4.1.1. Programa simples ...................................................................... 22 
 4.1.2. Programa Complexo .................................................................. 22 
 4.1.3. Programa Horário ...................................................................... 23 
 4.1.4. Sequência ................................................................................... 24 
 4.2. Aplicação de Supervisão ....................................................................... 25 
 4.3. Aplicação Programador ......................................................................... 26 
 4.3.1. Novos Dispositivos .................................................................... 28 
 4.3.2. Programa Simples ..................................................................... 29 
 4.3.3. Programa Complexo .................................................................. 31 
 4.3.4. Programa Horário ...................................................................... 33 
 4.3.5. Sequência ................................................................................... 34 
5. Implementação .................................................................................................. 37 
 5.1. Aplicação Programador ......................................................................... 37 
 5.2. Aplicação Supervisor ............................................................................. 405.2.1. Ficheiros de texto ...................................................................... 42 
 5.2.1.1. Listas.txt ..................................................................... 43 
 5.2.1.2 Programas.txt ............................................................. 43 
x 
 
 
6. Exemplos de Aplicação .................................................................................... 57 
 6.1. Cenário Simples ...................................................................................... 58 
 6.2. Cenário Moderado .................................................................................. 61 
 6.3. Cenário Complexo .................................................................................. 65 
7. Conclusão .......................................................................................................... 71 
8. Bibliografia ........................................................................................................ 75 
 
 
 
 
 
 
xi 
 
Lista de figuras 
Figura 2.1 - Exemplo de ligação usando módulos X10. .................................................................... 6 
Figura 2.2 - Método de envio de bits. ................................................................................................ 7 
Figura 2.3 - Modelo de ligação do sistema KNX . ............................................................................. 8 
Figura 2.4 - Exemplo de uma instalação de iluminação real, com módulos KNX da Schneider 
 Electric. ........................................................................................................................... 9 
Figura 2.5 - Esquema exemplificativo de uma rede Lonworks. ......................................................... 11 
Figura 3.1 - Exemplo da disposição de aparelhos e dispositivos numa sala. ................................... 14 
Figura 3.2 - Representação do sistema DomoBus. ........................................................................... 16 
Figura 3.3 - Modelo dos dispositivos do sistema DomoBus. ............................................................. 19 
Figura 4.1 - Modelo de interacção entre a aplicação Programador e a aplicação Supervisor. ......... 25 
Figura 4.2 - Menu inicial da aplicação Programador. ......................................................................... 26 
Figura 5.1 - Estrutura de dados, usada na comunicação entre Programador e Supervisor. ............. 38 
Figura 5.2 - Estrutura do módulo supervisor. .................................................................................... 41 
Figura 6.1 - Exemplo da disposição de aparelhos e dispositivos numa sala. ................................... 57 
 
xii 
 
 
xiii 
 
Lista de Tabelas 
Tabela 2.1 - Tabela de comparação dos vários protocolos. ............................................................... 12 
Tabela 3.1 - Descrição dos dispositivos da figura 6. .......................................................................... 14 
Tabela 4.1 - Condições possíveis para os programas simples. ......................................................... 22 
Tabela 4.2 - Operadores possíveis para os programas complexos. .................................................. 23 
Tabela 5.1 - Comandos enviados entre as aplicações Programador e Supervisor. ........................... 39 
Tabela 6.1 - Representação dos dispositivos da figura 5.1. ............................................................... 58 
Tabela 6.2 - Tabela XOR entre os valores dos interruptores 2 e 3. ................................................... 63 
Tabela 6.3 - Tabela AND entre os valores das condições 1 e 2. ....................................................... 67 
 
 
xiv 
 
 
 
 
1 
 
1. Introdução 
 
Existe um crescente interesse na automação doméstica, o que leva a um aumento na procura e 
instalação de sistemas domóticos por parte dos proprietários de habitações e de pequenos espaços 
comerciais. Este aumento leva à procura de soluções tecnológicas cada vez mais baratas e fáceis de 
utilizar. 
É a partir desta necessidade que surge a oportunidade de criar um novo sistema domótico. Um 
sistema que por um lado mantenha os custos reduzidos e que por outro lado seja fácil de instalar, 
fácil de configurar e fácil de operar. 
Os sistemas domóticos normalizados existentes actualmente no mercado (KNX, X10, LonWorks, 
etc…) além de muito dispendiosos, são normalmente difíceis de instalar e configurar. No caso dos 
sistemas KNX e LonWorks, por exemplo, é necessária a intervenção de técnicos especializados para 
a sua instalação e o uso de aplicações próprias para esse fim. O sistema X10 é uma excepção pois 
pode ser instalado por uma pessoa comum. No entanto, a fácil instalação é directamente 
comprometida pela limitação e capacidade do próprio sistema. 
 
O objectivo final é então o de criarmos um sistema que possa ser configurado pelo utilizador final, 
sem que este tenha que ter conhecimentos ou competências específicas, além da simples operação 
de um computador, ao mesmo tempo que criamos um sistema muito dinâmico, modular e robusto. 
O sistema DomoBus está a ser desenvolvido oferecendo um modelo abstracto dos dispositivos 
domóticos que é independente de qualquer tecnologia. Em particular considera-se que o sistema 
DomoBus pode funcionar como plataforma de integração de diferentes tecnologias (através do uso de 
gateways adequados). Assim há interesse em desenvolver mecanismos de supervisão poderosos 
para a plataforma DomoBus, que permitam gerir e definir o comportamento desejado para um 
sistema. Face às características de interoperabilidade do sistema DomoBus, esses mecanismos 
podem depois ser usados para gerir um sistema heterogéneo que use diferentes tecnologias. Esses 
mecanismos devem ser os mais genéricos e flexíveis possíveis, pretendendo-se que usem uma 
abordagem fácil de entender por qualquer pessoa, permitindo assim que, através de uma aplicação 
adequada, um utilizador comum possa definir como a sua habitação se comporta. 
Ao mesmo tempo, pretende-se seguir um modelo em que a definição e alteração das regras de 
funcionamento do sistema possam ser efectuadas em qualquer momento, sem necessidade de parar 
o sistema para o reconfigurar. Deste modo o utilizador pode alterar o sistema sempre que deseje, 
facilitando a adequação às suas preferências ou necessidades. 
Os mecanismos de supervisão serão baseados em três conceitos base: regras, sequências 
temporizadas de acções e agendamento de acções. 
As regras correspondem essencialmente á implementação de uma lógica de tipo “IF condição THEN 
lista-acções ELSE lista-acções”. As sequências temporizadas indicam ao sistema para aguardar um 
certo tempo e depois desencadear uma lista de acções. E o agendamento corresponde a 
programações horárias, permitindo ligar ou desligar equipamentos a determinada hora de 
2 
 
determinado dia, ou então repetir essas actuações que podem verificar-se, por exemplo, em vários 
dias da semana ou vários dias do mês. 
 
Ao longo desta dissertação, começamos por explicar e comparar o nosso sistema com os principais 
protocolos de domótica que serão seus concorrentes, isto no capítulo 2. 
No capítulo 3, explica-se o que é e como funciona o sistema DomoBus. Começa-se por definir o 
conceito de casa superautomatizada, apresentando para o efeito um exemplo, que será usado ao 
longo dos restantes capítulos. Se seguida define-se o que é o sistema DomoBus e em que consiste o 
módulo de supervisão. Finalmente explica-se em que consistem os dispositivos e propriedades. 
No capítulo 4, ainda sobre o sistema DomoBus, explica-se em que consiste o Mecanismo de 
Supervisão, objectivo desta dissertação. Começamos por explicar em que consistem as 
programações, explicitando os diferentes tipos de programaçõesque podem ser usadas neste 
sistema. Finalmente explica-se o que é, e como funciona a aplicação de supervisão, em particular o 
funcionamento da aplicação Programador, aplicação que será usada pelo utilizador para parametrizar 
o sistema. 
No capítulo 5, explica-se todo o funcionamento do Mecanismo de supervisão, expõe-se em detalhe 
as diferentes aplicações, a aplicação Programador e aplicação Supervisor. Explica-se também a 
função e funcionamento dos ficheiros de texto. 
No capítulo 6 apresentam-se três exemplos de funcionamento com a aplicação de supervisão criada 
ao abrigo desta dissertação de mestrado. Começamos por um exemplo fácil, passamos por um 
intermédio e terminamos com um exemplo complexo que usa as propriedades horárias do sistema. 
Finalmente, no capítulo 7, apresentam-se as conclusões da presente dissertação. 
 
 
3 
 
2. Edifícios Inteligentes 
 
Com uma crescente consciencialização por parte da sociedade para a necessidade da poupança 
energética, seja para reduzir os custos do funcionamento dos edifícios ou para proteger o meio 
ambiente, tornou-se necessário habilitar os edifícios, quer comerciais (escritórios, lojas, centros 
comerciais) quer habitacionais, de capacidades gestoras do consumo e do seu funcionamento, 
procurando aumentar a eficiência no uso da energia. 
 
Ao mesmo tempo que a tecnologia vai evoluindo, e novas soluções são desenvolvidas existe também 
uma cada vez maior procura de sistemas que melhorem os níveis de conforto e de segurança das 
habitações e edifícios. 
Por outras palavras, é hoje possível controlar activamente os gastos de uma habitação, protegendo 
assim o meio ambiente ao evitar gastos energéticos desnecessários, ao mesmo tempo que se 
fortalece a relação entre as casas e os seus habitantes. 
 
 
 
2.1. Domótica 
 
O termo “Domótica” resulta da junção da palavra “Domus”, termo latim que significa Casa, com 
“Telemática”, que significa a junção entre electrónica e informática. 
No dicionário a palavra domótica significa: 
“Conjunto das técnicas e dos estudos tendentes a integrar no habitat todos os automatismos em 
matéria de segurança, de gestão de energia, de comunicação, etc.” 
 
In, Dicionário Priberam da Língua Portuguesa (http://www.priberam.pt) 
 
Trata-se de um conceito de automação que procura encontrar soluções que dêem resposta à 
necessidade do homem de querer despender o mínimo de esforço nas actividades diárias e 
rotineiras. Assim a domótica, para além de introduzir conforto e melhoria de vida aos seus 
utilizadores, introduz ainda novos conceitos, tais como comunicação e segurança. 
Obviamente que este melhoramento de vida e comodidade apenas se consegue associando 
tecnologia. Mas é importante garantir que a utilização dessa tecnologia seja fácil para o utilizador 
comum. 
A domótica consegue ir ao encontro dessa linha de raciocínio, dando cada vez maiores passos para 
melhorar a vida do ser humano. 
4 
 
A domótica utiliza e associa as vantagens dos meios electrónicos e informáticos, de forma a obter 
uma utilização e uma gestão integrada dos diversos equipamentos de um edifício, seja ele residencial 
ou comercial. 
 
A utilização de um sistema domótico pode ser feita activa ou passivamente. 
No funcionamento passivo, um elemento reage só quando lhe é transmitida uma ordem, dada 
directamente pelo utilizador, podendo ser utilizados todos os recursos disponíveis, botões de pressão, 
painéis tácteis, telecomandos, ordens vocais, etc. 
No funcionamento activo, mais avançado e com mais inteligência, o sistema não só interpreta 
parâmetros, como reage às circunstâncias (informação transmitida pelos sensores). Por exemplo, 
pode detectar que uma janela se encontra aberta e avisar o utilizador, ou pode detectar a temperatura 
e manter uma temperatura constante na divisão, ligando e desligando o aquecimento sempre que 
necessário. 
Hoje é possível controlar remotamente os sistemas domóticos, podendo utilizar o telemóvel ou a 
internet, para aceder às funções vitais da casa (ou comércio), para ligar ou desligar o sistema de rega 
do quintal, ou para ligar o aquecimento momentos antes de se chegar a casa. Podemos também 
utilizar estes sistemas como sistemas anti furto, garantindo assim a segurança do lar ou da empresa. 
 
 
 
2.2. Protocolos Existentes 
 
A variedade de protocolos normalizados direccionados para a domótica é grande. 
No mercado, os sistemas mais usuais utilizam o protocolo X10 por ser mais económico, mas este tem 
a grande desvantagem de ser pouco robusto e ter muitas limitações. Sistemas que utilizam este 
protocolo são facilmente encontrados, quer por utilizarem a rede eléctrica como meio de 
comunicação, quer por não necessitarem de instaladores experientes, nem da instalação de mais 
cablagem porque a instalação eléctrica existente é aproveitada. Estes sistemas são aconselhados 
quando apenas se necessita de um controlo simples e pouco exigente. 
Um protocolo normalizado muito utilizado em sistemas domésticos é o KNX. Este protocolo oferece 
muita robustez e flexibilidade. Contudo seus os produtos possuem um elevado custo. O protocolo 
KNX permite a utilização de vários meios físicos de comunicação, mas o mais utilizado é o par 
entrançado onde todos os dispositivos estão ligados a um Bus. Notar que esta solução de par 
entrançado obriga à existência de uma fonte de alimentação para o barramento, o que acaba por 
encarecer ainda mais a instalação deste sistema. 
 
O KNX é um protocolo aberto e por esta razão, existem no mercado diversos fabricantes que têm 
produtos que utilizam este protocolo, o que acaba por ser uma vantagem, garantindo a continuidade 
na existência destes sistemas. 
5 
 
Existe ainda o protocolo Lonworks que apesar de estar desenhado para cobrir todos os requisitos da 
maior parte das aplicações de controlo, só tem tido êxito na sua implementação em edifícios 
administrativos, hotéis e indústrias. Devido ao seu custo, os dispositivos LonWorks não têm tido 
grande implementação nas casas, sobretudo porque existem outras tecnologias com prestações 
iguais e mais baratas. 
 
 
 
2.2.1. X10 
 
A tecnologia X10 foi inventada e patenteada no final da década de 70 por uma empresa chamada 
PICO Electronics. Esta empresa pretendia desenvolver uma tecnologia de controlo remoto, que 
usasse a rede eléctrica já existente, ou seja as linhas de baixa tensão (230V na europa, 110V nos 
EUA) para enviar os sinais de controlo. A empresa já tinha tentado e desistido 9 vezes, até que à 
décima tentativa conseguiu obter sucesso, assim vem o nome (X10) [26]. 
A tecnologia X10 usa a rede de distribuição de energia eléctrica como meio de comunicação entre os 
vários dispositivos. Este é um aspecto chave desta tecnologia e a sua maior vantagem face a outras 
soluções pois permite o seu uso em qualquer casa, sem necessidade de passar cabos adicionais, ao 
mesmo tempo que reduz o custo da instalação. Este método de comando abriu todo um novo mundo 
relativo ao controlo remoto de dispositivos, podendo controlar praticamente qualquer aparelho que 
esteja ligado à rede eléctrica sem que seja necessário passar nova cablagem tornando-se assim 
muito menos dispendioso. Este é o factor chave para que esta tecnologia se tenha tornado um 
sucesso comercial. 
O baixo custo e principalmente a fácil instalação, uma vez que a instalação pode ser feita por 
qualquer electricista sem conhecimentos de automação ou informática, ou até mesmo pelos próprios 
utilizadores, fez com que actualmente seja um dos sistemas mais utilizados no mundo em relação ao 
mercado habitacional, sendo líder no mercado norte-americano. 
Os dispositivos podem ser ligados directamente nas tomadas e ser usados para ligar ou desligar 
equipamentos, ligar ou desligar lâmpadas ou regular a sua intensidade luminosa. 
 
Basicamente, o sistema X10 consiste na transmissão de sinais codificados através da rede eléctrica 
de 50Hz ou 60Hz.Usam-se dispositivos transmissores para enviar o sinal através da rede, e 
dispositivos receptores que captam esses sinais, como se pode ver na figura 2.1. 
 
6 
 
 
Figura 2.1 – Exemplo de ligação usando módulos X10. 
 
O envio de informação através da rede eléctrica é feito através do uso de impulsos na frequência de 
120kHz. Esses impulsos têm a duração de 1 ms e ocorrem em sincronismo com a passagem por zero 
da onda sinusoidal da rede eléctrica. Esta particularidade é usada pelos receptores para saberem 
quando devem escutar a linha. O valor binário 1 corresponde à presença do sinal de 120kHz e o valor 
binário 0 corresponde à ausência desse sinal. 
No caso de instalações eléctricas trifásicas, os impulsos de 120kHz são enviadas 3 vezes em cada 
ciclo da rede eléctrica, em momentos que coincidem com a passagem por zero de cada uma das 
fases da rede. Assim, usando dispositivos chamados de acopladores é possível, dentro de um 
mesmo edifício, os dispositivos comunicarem entre si independentemente de estarem na mesma fase 
ou não. 
Como o meio de distribuição de energia é muito ruidoso electricamente, foi adoptada a política de 
nunca enviar um bit isolado, sendo sempre enviado o bit e o seu complemento. Na prática, quando se 
quer enviar o bit 1, é enviado um impulso (1), seguida de ausência de sinal (0). Quando se quer 
enviar o bit 0, é feito o inverso, primeiro uma ausência de sinal (0), e depois enviada um impulso (1). 
Pode-se verificar este método na figura 2.2. 
Assim reduz-se a probabilidade do ruido eléctrico interferir no envio de sinais, pois o ruído podia ser 
confundido com um sinal não enviado [1]. 
 
 
7 
 
 
Figura 2.2 – Método de envio de bits. 
 
A transmissão completa de uma mensagem X10 necessita então de onze ciclos de corrente. A 
mensagem divide-se em três campos de informação: 
1. Dois ciclos representam o Código de Início – Sequência de 4 bits, sempre 1110, que identifica 
o início da mensagem. 
2. Quatro ciclos representam o Código de Casa (letras de A-Z) – Conjunto de 4 bits que 
identifica a casa onde o sistema está instalado. Evita-se assim problemas de interferências nos 
comandos entre casas vizinhas. 
3. Cinco ciclos representam o Código do dispositivo (1-16) ou o Código de Função (acender a 
luz, apagar a luz, variar a luz, etc...) – Conjunto de 4 + 1 bits que identificam o dispositivo ou a 
função a ser executada, mais um bit extra que identifica se a mensagem se refere a um 
dispositivo ou a uma função. 
Para aumentar a fiabilidade do sistema, esta mensagem, (Código de inicio, código de casa e código 
de dispositivo ou função) é transmitida sempre duas vezes, separadas por três ciclos completos de 
corrente. Há uma excepção, nas funções de variação de intensidade, em que é transmitido de forma 
contínua, sem separação entre mensagens. 
Como principais vantagens do X10 apontam-se a sua simplicidade, a facilidade de instalação e uso, e 
o custo acessível. Como principais desvantagens refere-se o baixo ritmo de comunicação, a baixa 
fiabilidade do protocolo e um número limitado de funções que essencialmente se restringem ao 
controlo de iluminação e à capacidade de ligar ou desligar dispositivos. 
 
 
 
2.2.2. KNX 
 
O sistema KNX, abreviatura para Konnex, resultou da fusão dos maiores sistemas europeus que 
utilizavam a tecnologia de bus, incluindo o bem-sucedido sistema EIB (European Installation Bus). 
8 
 
Esta fusão resultou da necessidade de enfrentar a concorrência vinda dos Estados Unidos, com os 
sistemas X10 e Lonworks. 
O sistema KNX tornou-se então o único sistema normalizado globalmente para a automação 
residencial e não residencial, passando a estar definido pelas principais normas internacionais. 
Assim criou-se um sistema claramente definido onde todos os produtos KNX mesmo de diferentes 
fabricantes podem interagir e funcionar em conjunto. Assim garante-se a uniformização, a 
interoperabilidade e um fácil funcionamento em rede com todos os dispositivos, tanto os dispositivos 
actuais quer os futuros. 
Este é um protocolo já enraizado no mercado onde constam mais de 170 fabricantes e se estimam 
mais de 10 milhões de sistemas já instalados [17]. 
O KNX interliga todos os componentes de uma instalação eléctrica de maneira a formarem uma rede 
e assim garantir a transparência e fiabilidade na transferência de informação ao longo da rede. 
Neste sistema todos os dispositivos comunicam através de um cabo de BUS, sendo possível 
interligar todos os subsistemas dentro de um edifício usando a mesma rede. Na figura 2.3 pode-se 
observar um exemplo da forma de ligação do sistema KNX. 
As aplicações deste sistema abrangem a iluminação, estores, sistemas de segurança, gestão de 
energia, aquecimento, ventilação e ar-condicionado, sistemas de monitorização e sinalização, 
controlo remoto, controlo de áudio/vídeo, electrodomésticos, etc [14]. 
Trata-se de um sistema bastante abrangente e completo podendo todas estas funções ser 
controladas, monitorizadas e sinalizadas através de um sistema único sem necessidade de uma 
unidade de controlo central, uma das vantagens do KNX. 
 
 
Figura 2.3 – Modelo de ligação do sistema KNX. 
 
9 
 
Todos os sensores (botões pressão, interruptores, detectores de movimento) encontram-se ligados 
aos actuadores (controladores de estores e persianas, controladores de lâmpadas) através de um 
cabo de dados, alimentado a 30V, em oposição ao que acontece num sistema convencional, onde 
interruptores e lâmpadas, por exemplo, se encontram ligados directamente pela rede eléctrica de 
230V. 
O cabo de bus pode interligar até 50.000 dispositivos, embora o bus necessite ser dividido em 
segmentos, interligados por “line-couplers”. Além do cabo de bus, a tecnologia KNX já permite a 
utilização de redes IP/Ethernet, radiofrequência e da própria rede eléctrica para a comunicação entre 
dispositivos. 
Os actuadores são os dispositivos que ligam ao circuito de potência, e portanto que irão alimentar os 
dispositivos finais (lâmpadas, tomadas, estores), como podemos ver no exemplo da figura 2.4. 
 
 
Figura 2.4 – Exemplo de uma instalação de iluminação real, com módulos KNX da Schneider Electric 
[16]. 
 
A comunicação entre dispositivos é feita usando “mensagens”. Os sensores enviam comandos aos 
actuadores que os “escutam” e executam a função programada. Essa função pode ir de um simples 
comando on/off, até sequências logicas, passando por funções de controlo ou regulação. 
Em termos de instalação e configuração, existem duas modalidades [14]: 
 
 S-Mode (system mode) – Este modo de configuração é destinado a ser implementado por 
técnicos especializados e permite realizar as funções mais complexas permitidas pelo 
10 
 
sistema. A instalação através deste modo é feita usando um software especializado, 
designado de ETS (Engineering Tool Software). 
 
 
 E-Mode (Easy Mode) – Este modo de configuração é destinado a utilizadores sem grandes 
conhecimentos do sistema KNX. Este modo oferece menos funções, em comparação com 
sistemas configurados atraves do S-Mode. Os componentes do sistema que usam este modo 
de configuração, já vêm pré-programados, bastando configurar um pequeno conjunto de 
parâmetros para colocar o sistema a funcionar. 
 
Uma das desvantagens do sistema KNX é precisamente a necessidade de recorrer a técnicos 
especializados para parametrizar os sistemas e implementar estas funções. Quanto maior a 
dimensão das instalações do KNX, maior será a complexidade da sua programação. 
 
 
 
2.2.3. Lonworks 
 
Passemos agora ao protocolo Lonworks, que na realidade não é um protocolo mas sim uma 
tecnologia, visto que inclui tanto o hardware como o software para a operação de uma rede de 
controlo, que será denominada Local Operating Network (LON). Trata-se de uma tecnologia livre para 
controlo distribuído, projectada para implementar a interoperabilidade de redes de controlo. 
O protocoloutilizado é denominado LonTalk e foi projectado para aplicações que envolvam funções 
de leitura de sensores, controlo, monitorização e identificação. 
São permitidos seis meios de transmissão dos sinais: rede eléctrica, par entrançado, cabo coaxial, 
infravermelhos, radiofrequência e fibra óptica. 
O principal constituinte de uma rede Lonworks é um circuito integrado chamado Neuron Chip, que 
actua como um nó da rede, incluindo o hardware que possibilita a comunicação e o protocolo 
LonTalk. 
Uma rede Lonworks é composta por [12]: 
 Módulos de controlo Lonworks que incluem o Neuron Chip, e firmware associado. 
 Transceivers que permitem a conexão aos vários meios físicos de comunicação. 
 Routers que interligam as diferentes sub-redes e/ou meios de transmissão. 
 Interfaces de rede onde se podem ligar outros elementos baseados no protocolo LonTalk, tais 
como computadores, controladores lógicos programáveis (PLC) etc. 
 Ferramentas de instalação, configuração e diagnóstico tanto dos nós como das redes de 
controlo. 
11 
 
 Ferramentas de desenvolvimento de aplicações, compilador Neuron C. etc. 
 
A figura 2.5 mostra um exemplo de uma rede de controlo Lonworks típica. 
 
 
Figura 2.5 – Esquema exemplificativo de uma rede Lonworks. 
 
 
O sistema Lonworks é programável, podendo ser a qualquer momento adicionadas novas funções, ou 
alteradas as existentes, bastando para isso programar e compilar novos programas e de seguida 
carregá-los no Neuron Chip respectivo. Esta é uma das características que faz deste sistema um dos 
mais completos no mercado, e é por isso que são bastante usados nas áreas industrial e comercial, 
onde os requisitos de automação são maiores que os possibilitados por outros sistemas domóticos. 
O facto de ser um sistema bastante robusto e muito programável também o torna dispendioso, outra 
das razões porque é mais utilizado nas áreas industrial e comercial, tendo pouca expressão na área 
habitacional. 
 
 
 
2.2.4. Resumo 
 
Para finalizar este capítulo, apresenta-se uma comparação entre os 3 protocolos/sistemas domóticos 
descritos anteriormente. 
12 
 
Na Tabela 2.1 encontram-se representadas as principais características destes protocolos, com as 
vantagens e desvantagens, bem como os meios de transmissão e finalmente uma comparação do 
custo dos vários sistemas. 
 
 
Tabela 2.1 – Tabela de comparação dos vários protocolos. 
Protocolo 
Meios de 
Transmissão 
Vantagens Desvantagens Preço 
X10 
- Rede eléctrica 
- Radiofrequência 
- Facilidade de 
 instalação 
- Preço 
- Reduzidas 
 Funcionalidades 
- Reduzido número 
 de dispositivos 
 permitido 
Reduzido 
KNX 
- Par Entrançado 
- Rede Ethernet 
- Radiofrequência 
- Rede Eléctrica 
- Elevado número de 
 funções 
- Instalação Complexa 
- Preço 
Médio 
LonWorks 
- Rede Eléctrica 
- Par Entrançado 
- Cabo Coaxial 
- Infravermelhos 
- Radiofrequência 
- Fibra Óptica 
- Muito configurável 
- Elevado número de 
 Funções 
- Instalação Complexa 
- Preço 
Alto 
 
Após observação da tabela anterior não se pode dizer que um protocolo seja melhor que o outro. Um 
protocolo será tanto melhor quanto mais se aproximar das necessidades do seu utilizador. Assim 
podemos concluir que não existe um protocolo ou sistema perfeito. 
O nosso sistema DomoBus que será descrito no próximo capítulo procurará assim conjugar o melhor 
que cada protocolo terá para oferecer: muito configurável, elevado número de dispositivos aceites, 
baixo preço, facilidade de configuração. 
 
 
 
13 
 
3. Sistema DomoBus 
 
Neste capítulo faz-se a descrição da tecnologia DomoBus, começando por introduzir as razões que 
motivaram o desenvolvimento de uma nova tecnologia de automação residencial. Para isso 
apresenta-se o conceito de casa Superautomatizada e em seguida, descreve-se a tecnologia, a sua 
arquitectura, as diferenças e semelhanças com as restantes tecnologias e o seu modo de 
funcionamento. 
Finalmente introduz-se o mecanismo de supervisão, o coração por detrás do funcionamento do nosso 
sistema. 
 
 
 
3.1. Casas Superautomatizadas 
 
O conceito de casa Superautomatizada [8] surge com a evolução da tecnologia presente nas nossas 
casas, nos dias de hoje. 
Antigamente numa divisão, digamos, numa sala de estar, podíamos encontrar uma lâmpada no tecto, 
um interruptor, uma televisão, talvez um vídeo (VHS), mas pouco mais. 
Hoje em dia nas casas modernas, temos na mesma sala, vários interruptores para vários pontos de 
luz, televisão, leitor de DVD, estores eléctricos, ar condicionado, sensores de movimento, sensores 
de temperatura e muitos mais dispositivos. 
Ora quando se pretende controlar todos estes dispositivos de uma forma automática, é aqui que nos 
damos conta do enorme desafio que a automatização dessa divisão e consequentemente dessa casa 
representam. É assim que nasce o conceito de casa Superautomatizada. 
 
Vejamos um exemplo de uma divisão, digamos novamente uma sala. Na figura 3.1 encontra-se uma 
representação dessa sala e na tabela 3.1 os dispositivos nela contida. 
 
 
14 
 
 
Figura 3.1 – Exemplo da disposição de aparelhos e dispositivos numa sala. 
Tabela 3.1 – Descrição dos dispositivos da figura 6. 
# DISPOSITIVO 
1 - Interruptor 1 
2 - Interruptor 2 
3 - Interruptor 3 
4 - Lâmpada 1 
5 - Lâmpada 2 
6 - Detector de Movimentos 
7 - Botão de Estore 1 
8 - Botão de Estore 2 
9 - Estore 1 
10 - Estore 2 
11 - Termostato 
12 - Ar Condicionado 
13 - Televisor 
15 
 
Podíamos adicionar muitos mais dispositivos mas por questões de simplicidade vamos restringir o 
exemplo a estes. 
Temos presente nesta divisão três interruptores genéricos, cuja função é apenas ligar/desligar, existe 
um sensor de movimento, um sensor de temperatura, designado como termostato, existem 2 estores 
eléctricos e respectivos botões, duas lâmpadas no tecto e finalmente uma unidade de ar 
condicionado e uma televisão LCD. 
Vendo este exemplo podemos imaginar a complexidade que será automatizar esta divisão, para que 
se possam efectuar tarefas complexas, ou até controlo à distância. Estamos a falar de funções, que 
podem ser tão simples como colocar o interruptor 1 a acender e apagar a lâmpada 1. Podemos 
também fazer o interruptor 2 e o interruptor 3 trabalharem em conjunto para acender e apagar a 
lâmpada 2 de modo complementar, ou seja, quando um acende a seguir o outro apaga, ou quando 
um apaga, a seguir o outro acende. 
Mas tarefas mais complexas podem ser exigidas, imagine-se a possibilidade do utilizador do sistema 
poder sair do emprego a caminho de casa num inverno rigoroso e pelo caminho poder dar ordem ao 
ar condicionado para começar a aquecer a divisão, para quando chegar poder desfrutar do conforto. 
Ou então poder-se programar o sistema para que quando as luzes estiverem ligadas mas o detector 
de movimentos não detecte ninguém na divisão, as luzes se apaguem, mas isto apenas passado 
algum tempo, evitando que as luzes estejam sempre a acender e a apagar, sempre que a pessoa se 
ausenta temporariamente. 
Podemos imaginar inúmeros cenários diferentes, que seriam possíveis se esta divisão possuísse um 
sistema automatizado. 
Na próxima secção demonstra-se como automatizar esta e outras divisões, usando o sistema 
DomoBus. 
 
 
 
3.2. Arquitectura DomoBus 
 
O sistema DomoBus é um sistema que aborda a domótica a dois níveis distintos. Contempla uma 
camada de interacção de baixo nível, que está associada à leitura de sensores e ao comando de 
actuadores, e uma camada de alto nível que consiste na gestão e supervisão do sistema domótico. 
O sistema DomoBus está organizado como se demonstra na figura 3.2, no topo temos presente o 
módulo de supervisão, é ele que gere os módulos de controlo, ao coordenar os comandos enviados e 
recebidos dos dispositivos físicos (sensores e actuadores) [8]. 
Embora a figura ilustre apenas um módulo de supervisão, num sistema com umadimensão 
significativa podem existir múltiplos módulos, interligados por uma rede TCP/IP. 
Os módulos de controlo fazem a ponte entre o módulo de supervisão e os dispositivos físicos. Estes 
módulos não estão ainda concluídos, existindo alguns protótipos em fase de desenvolvimento. De 
salientar que os módulos de supervisão se podem ligar a dispositivos de outras tecnologias (X10, 
KNX, etc) através de adaptadores adequados. 
16 
 
 
Figura 3.2 – Representação do sistema DomoBus. 
 
O nível de gestão e supervisão do sistema, onde são definidas a localização e configuração de 
dispositivos, segue uma abordagem genérica independente da tecnologia utilizada. Um elemento 
chave desta abordagem é o modelo que é seguido para os dispositivos domóticos [6]. Neste modelo, 
um dispositivo domótico é uma entidade genérica, descrita por um conjunto de propriedades, 
existindo um conjunto base de operações para ler ou alterar essas propriedades, ou para os próprios 
dispositivos notificarem o supervisor sempre que ocorre uma alteração nos seus valores. 
A solução DomoBus inclui uma linguagem de especificação baseada em XML, como pode ser visto 
em [11], que permite descrever a constituição de qualquer sistema, explicitando que dispositivos 
existem e quais as suas características. Essa linguagem permite também descrever a estrutura de 
qualquer habitação e identificar a localização de cada dispositivo. Permite ainda a definição de 
cenários, que correspondem a uma lista de acções a serem executadas sobre diversos dispositivos. 
Futuramente a linguagem será expandida para permitir especificar o comportamento e as 
programações desejadas para o sistema (que está directamente relacionado com o trabalho desta 
dissertação). 
Esta componente de alto nível pretende ser o mais genérica e flexível possível, podendo ser usada 
para supervisionar partes de um sistema que use outra tecnologia, dando assim suporte à integração 
de sistemas heterogéneos, permitindo explorar o que cada tecnologia específica possa ter de melhor 
em cada contexto de utilização. 
 
 
 
17 
 
3.3. Módulo de Supervisão 
 
É o módulo de supervisão que terá a tarefa de controlar todo o sistema domótico. É nele que corre o 
software de controlo, denominado Supervisor, criado no âmbito desta dissertação e que inclui a 
Biblioteca de Supervisão. 
A Biblioteca de Supervisão é constituída por uma biblioteca de funções em linguagem C, que permite 
gerir em tempo real uma dada divisão, uma casa, um escritório ou até mesmo um edifício inteiro. A 
escolha da linguagem C teve como objectivo facilitar a portabilidade para diferentes plataformas 
hardware, mesmo de reduzida capacidade de memória e processamento. 
Essas funções permitem a criação de programas que fazem interagir os diversos dispositivos 
presentes no sistema. Um exemplo de uma programação será por exemplo, ordenar ao sistema que, 
ao pressionar um determinado botão, deverá acender uma determinada lâmpada (sem que essa 
lâmpada tenha que estar fisicamente ligada a esse botão, ao contrário das instalações eléctricas 
convencionais). 
Este sistema permite outros tipos de programação muito mais complexos, como veremos mais à 
frente. Permite também programações horárias, pois incorpora um módulo de gestão do tempo. 
Com estes programas e com a gestão do tempo é possível fazer quase tudo com este sistema, 
relativamente á automatização residencial. 
Num sistema podem existir vários módulos de supervisão, criando assim um sistema descentralizado, 
em que diferentes módulos poderão estar localizados e a controlar, diferentes zonas da residência, 
diferentes pisos, ou diferentes edifícios, mas podendo interagir entre si, permitindo por exemplo, 
controlar a partir do edifício A, um dispositivo do edifício B. 
No contexto da presente dissertação foi testado um sistema com apenas um módulo de supervisão. 
Em relação à capacidade de processamento, o módulo de supervisão não precisa de grande poder 
de processamento, podendo ser constituído por um “Single Board Computer”, (SBC). Dada a 
constante evolução deste tipo de equipamento, tomou-se a opção de recorrer a um SBC que 
disponha do sistema operativo Linux e capacidade de ligação em rede, suportando TCP/IP. 
Existe um grande número de SBCs que satisfazem estes requisitos. No entanto destaca-se em 
particular o modelo Raspberry Pi [2, 23], que tem um custo na ordem de 30 euros e possui 
capacidades mais do que suficientes para controlar a maioria das instalações que usam o sistema 
DomoBus. 
 
 
 
3.4. Hardware do Módulo de Supervisão 
 
Um Raspberry Pi é um pequeno mas poderoso computador [23]. Resume-se a apenas uma pequena 
placa que contém todos os elementos centrais de um PC, com o tamanho próximo de um cartão de 
18 
 
crédito e que pesa 45g. Torna-se assim perfeito para ser usado em automação residencial, onde 
pode ser colocado dentro de uma caixa de derivação dentro da própria parede. Ainda para mais, o 
seu preço reduzido, cerca de 30 euros, ajuda a atingir o objectivo de tornar o sistema o menos 
dispendioso possível. 
Para interacção com o exterior vem equipado com duas portas USB, conector para um cartão SD, e 
uma ficha RJ45 para ligação à rede. Essa Ligação pode ser reforçada através de dispositivos Wi-Fi 
ligados a uma das portas USB. Tem ainda saídas para vídeo, áudio e HDMI, o que pode ser útil para 
implementar interfaces sofisticadas com o utilizador. 
O Raspberry Pi vem preparado para correr Linux e a sua distribuição é feita sem restrições, tem 
também uma larga variedade de drivers disponíveis. 
Outras vantagens do Raspberry Pi são o seu baixo consumo, apenas 3,5W e não fazer barulho pois o 
processador não necessita de ventoinha e não existem outros componentes em movimento. 
Face a todas estas características, em especial o tamanho e preço, neste momento é a escolha de 
eleição para implementar o módulo de supervisão. 
 
 
 
3.5. Dispositivos e Propriedades 
 
Todos os mecanismos eléctricos presentes numa habitação e que estejam ligados tanto à rede 
eléctrica como ao sistema domótico, são definidos como dispositivos no sistema domobus. 
O sistema DomoBus permite representar genericamente cada dispositivo, essa representação é 
simples, mas ao mesmo tempo poderosa o suficiente para descrever as capacidades essenciais de 
um dispositivo, independentemente da sua tecnologia. 
 
Assim o sistema DomoBus propõe uma solução (detalhada em [6]), em que cada dispositivo é 
caracterizado por um conjunto de propriedades, tendo cada propriedade um valor. Por exemplo um 
termostato pode ter apenas uma propriedade, Temperatura, que contém o valor actual da 
temperatura da divisão, medida pelo dispositivo. No caso de uma lâmpada, ela pode possuir duas 
propriedades: Ligado/Desligado e Luminosidade. A primeira propriedade indica se a lâmpada está 
ligada ou desligada e a segunda propriedade indica a sua intensidade (numa escala de 0 a 100, por 
exemplo). O uso de duas propriedades permite desligar a lâmpada sem alterar a intensidade 
previamente definida. Deste modo, quando se voltar a ligar a lâmpada, esta pode assumir o valor de 
intensidade anterior. 
Os dispositivos mencionados são simples mas é fácil descrever dispositivos mais complexos como, 
por exemplo, um televisor. Neste caso, e considerando apenas as funções mais óbvias e úteis, faz 
sentido considerar quatro propriedades: Ligado/Desligado, Canal, Volume e ModoSilencioso (mute). 
No entanto, seria muito simples adicionar mais propriedades para representar, por exemplo, o brilho, 
a cor ou agudos e graves. 
Os exemplos anteriores ilustram a abordagem seguida pelo DomoBus, que se detalha em seguida. 
19 
 
 
 
 
Figura 3.3 – Modelo dos dispositivos do sistema DomoBus. 
 
 
A entidade Tipo Dispositivo abstrai dispositivos de um dado tipo, tais como lâmpadas de intensidade 
ajustável, sensores de temperatura, ar-condicionado, interruptores comuns, tomadasde energia, 
motores de estores, electroválvulas, detectores de fumo, sensores de presença, aparelhagem de alta-
fidelidade, TV, DVD, etc. Convém notar que é possível, a qualquer momento, adicionar novos tipos de 
dispositivos, desde que seja possível descrever as suas características usando propriedades tal como 
descrito anteriormente. 
A caracterização de um Tipo Dispositivo é efectuada usando uma ou mais Propriedade (ver figura 
3.3). A mesma Propriedade pode ser usada por qualquer número de Tipo Dispositivo. Esta 
particularidade é útil pois permite partilhar propriedades que são comuns a múltiplos dispositivos 
como, por exemplo, Ligado/Desligado. 
Na figura 3.3 estão representados os principais atributos da classe Propriedades. O atributo Nome 
contém a designação da propriedade. Para cada tipo de propriedade é possível definir um modo de 
acesso que pode assumir os valores, só-leitura, só-escrita ou leitura-escrita. Para exemplificar o uso 
deste atributo, refere-se que a propriedade temperatura de um termostato faz todo o sentido que seja 
só-leitura, enquanto a propriedade intensidade-luminosa de uma lâmpada regulável é de leitura-
escrita. Neste último caso, é possível ler o valor da propriedade para conhecer a intensidade actual 
da lâmpada em questão e é possível escrever nessa propriedade para alterar a sua intensidade. 
20 
 
Todas as interacções com os dispositivos físicos são realizadas exclusivamente lendo ou escrevendo 
valores em propriedades. 
Outro atributo de Propriedade é Tipo de Valor, que permite distinguir três tipos de valores: Escalar, 
Enumerado e Vector. 
O tipo Escalar identifica um valor que pode variar entre um valor mínimo e um valor máximo. Esse 
valor pode representar uma determinada unidade (por exemplo, graus Celsius, Watt, Lux), pode 
corresponder a uma percentagem (escala entre 0 e 100) ou simplesmente não possuir unidades. 
Como nalguns casos uma propriedade pode ter apenas um pequeno número de valores. Por 
exemplo, a propriedade Ligado/Desligado pode assumir apenas os valores 0 (desligado) e 1 (ligado). 
Ou relativamente ao estado de funcionamento de um ar-condicionado, podem-se considerar quatro 
possibilidades: desligado (0), ventilar (1), arrefecer (2) e aquecer (3). Para estes casos, e outros 
semelhantes, foi criado o tipo Enumerado. 
Uma propriedade pode também ser do tipo Vector. Este tipo é usado em propriedades que contêm 
uma lista de caracteres (representando um texto ou outro tipo de informação), por exemplo, o código 
de um alarme. 
Até ao momento foi ilustrado como definir os tipos base de dispositivos, cada um caracterizado por 
um conjunto de propriedades. O passo seguinte consiste na definição dos dispositivos concretos 
existentes numa habitação. É esse o objectivo da classe Dispositivo. 
Por exemplo, um dispositivo designado Lampada_Quarto pode ser criado, sendo explicitado que é do 
tipo Lampada_Regulada definido anteriormente. Deste modo, torna-se imediatamente conhecido 
quais as propriedades que possui. Neste caso terá as propriedades Ligado/Desligado e 
Luminosidade. 
O dispositivo específico será associado com tantas propriedades, quantas as que foram definidas 
aquando da criação do Tipo Dispositivo. 
 
O modelo apresentado é pois muito flexível e eficaz. Após a definição dos tipos de dispositivos 
existentes, torna-se simples adicionar os dispositivos concretos que se pretendem instalar numa dada 
habitação. 
 
 
 
 
21 
 
4. Mecanismo de Supervisão 
 
No capítulo anterior foram descritos os aspectos essenciais da arquitectura e modelo seguido no 
DomoBus. Finalizou-se o capítulo descrevendo os dispositivos e suas propriedades. Neste capítulo 
explica-se como o sistema utiliza estes dispositivos e a suas propriedades para criar a tão desejada 
automação residencial. 
 
 
 
4.1. Programações 
 
O sistema DomoBus propõe uma abordagem baseada no conceito de cenário, segundo [6]. 
A referência a cenário será substituída daqui em diante por programa ou programação, de modo a 
uma mais fácil compreensão do sistema. 
 
 
O conceito de programa consiste basicamente no uso de cláusulas do tipo: 
 
IF condição THEN lista-acções ELSE lista-acções 
 
O termo condição pode ser uma expressão tão complexa quanto se queira, a qual pode envolver o 
tempo ou o valor de qualquer propriedade de um dispositivo. O valor da propriedade de um 
dispositivo é avaliado e se a condição for verdadeira então activará a lista-acções. As acções, de 
activação, consistem na atribuição de um valor a uma propriedade de um dispositivo. Na secção 4.3 
serão apresentados alguns exemplos. 
Esta forma de especificar o comportamento de uma habitação é simples mas eficaz. É fácil de 
compreender por uma pessoa comum e simplifica o processo de manter o comportamento desejado, 
uma vez que, tipicamente, os cenários são entidades independentes e não interagem ou dependem 
uns dos outros. 
Para além do que foi definido, os cenários podem também possuir uma lista de acções de 
desactivação. Esta lista contém acções que são executadas quando uma condição de activação de 
um cenário deixa de se verificar. Ou seja, havendo uma lista de acções de activação, e uma lista de 
acções de desactivação, quando a condição passa a verdadeira, serão executadas as acções de 
activação, quando a condição passa a falsa, são executadas as condições de desactivação. 
As programações possíveis são de vários tipos, existem programações simples, programações 
complexas, programações horárias e ainda a utilização de sequências. 
 
 
22 
 
4.1.1. Programa simples 
 
Sempre que a programação exige apenas o teste de uma propriedade de um dispositivo, é designada 
de programa simples. 
As condições possíveis encontram-se na tabela seguinte. 
 
Tabela 4.1 – Condições possíveis para os programas simples. 
Condição Descrição 
= Igual a 
≠ Diferente de 
< Menor que 
≤ Menor ou Igual a 
> Maior que 
≥ Maior ou igual a 
DO Agir Sempre 
 
Assim se o valor de uma propriedade fizer activar a condição escolhida, seguir-se-á a execução das 
acções programadas. 
A condição “DO” implica que as acções serão executadas sempre que o valor da propriedade muda. 
 
Exemplo: 
 
IF on/off_botão=1 THEN lâmpada_on/off=1 
 
Se a propriedade on/off do botão for igual ao valor 1, então a propriedade on/off da lâmpada será 
colocada a 1. Ou seja, se o botão for pressionado a lâmpada será acesa. 
 
 
 
4.1.2. Programa Complexo 
 
Quando a programação exige uma interacção entre várias condições, é designada programa 
complexo. Os programas complexos utilizam várias condições que são avaliadas utilizando 
operadores entre elas. Os operadores são os indicados na tabela 4.2. 
 
 
 
23 
 
Tabela 4.2 – Operadores possíveis para os programas complexos. 
OPERADOR Descrição 
EQUAL Igual (A == B) 
NOT Negação (! 𝑨) 
AND E Lógico (𝑨&&𝑩) 
OR OU Lógico (𝑨||𝑩) 
XOR OU Exclusivo (𝑨⨁𝑩) 
XNOR Equivalente (𝑨⨁𝑩̅̅ ̅̅ ̅̅ ̅) 
 
 
O modo de funcionamento é em tudo semelhante ao dos programas simples, ou seja, quando a 
condição geral passa a verdadeira, as acções são executadas. 
 
Exemplo: 
 
IF (on/off_botão_1=1) OR (on/off_botão_2=1) THEN lâmpada_on/off=1 
 
Se a propriedade on/off do botao_1 tiver o valor 1, OU a propriedade on/off do botao_2 tiver o valor 1, 
a lâmpada acenderá. Ou seja, esta programação permitirá acender a lâmpada, qualquer que seja o 
botão pressionado. 
 
 
 
4.1.3. Programa Horário 
 
Os programas horários, como o nome indica, utilizam a informação dada pelo relógio para activar ou 
desactivar determinadas acções. 
A condição aqui é representada por um horário: ano, mês, dia, horas, minutos e segundos. Quando o 
horário é atingido, as acções são desencadeadas. 
Os programas horários são classificados consoante o seu nível de repetição: 
 
Evento Único – Quando ocorre apenas uma vez. 
Diário – Quando ocorre diariamente, sendo definido apenasas horas, minutos e segundos. 
Semanal – Quando ocorre no mesmo dia (de semana) todas as semanas. 
Mensal, Dia do mês – Quando ocorre no mesmo dia todos os meses. 
Mensal, Dia da semana – Quando ocorre todos os meses num mesmo dia da semana. (p.ex. todas 
as primeiras 5ªf de cada mês). 
Anual – Quando ocorre anualmente no mesmo dia, mês, horas, minutos e segundos. 
24 
 
Exemplo: 
 
IF time=1394493000 (Evento Único) THEN on/off_lampada=1 
 
Se o tempo for igual ao tempo programado, a lâmpada será acesa. 
Aqui o tempo está representado em segundos, pois é o formato utilizado pelo sistema DomoBus, 
sendo que 1394493000 corresponderá a 2014/02/10 23:10:00. 
 
 
 
4.1.4. Sequência 
 
Uma sequência é um formato de programação que utiliza pausas dadas em segundos, até activar as 
acções definidas. Ou seja, imaginando que queremos activar um determinado dispositivo durante 10 
segundos, e de seguida desactivá-lo. Então programa-se uma sequência com período de 10 
segundos, em que no final dos 10 segundos será desactivado o dispositivo. Sendo necessário antes 
criar um programa que active o dispositivo e active a sequência, isto porque as sequências funcionam 
juntamente com as programações, sejam simples, complexas ou horárias. Assim será um dos 
programas a activar a sequência desejada. 
 
Exemplo: 
 
Sequencia_1: WAIT 10s THEN lâmpada=0 
IF on/off_botão=1 THEN (lâmpada=1; START sequencia_1) 
 
 
A lâmpada é acesa e a sequencia_1 é activada. 
 
10 Segundos depois, a lâmpada será apagada. 
 
Com este tipo de programações, torna-se fácil e bastante intuitivo qualquer utilizador conseguir 
colocar em funcionamento todas as configurações de automação que deseje no seu sistema. 
Esta fórmula, que conjuga a abstracção dos dispositivos físicos com os dispositivos virtuais, com a 
ampla variedade de programações, permite assim fazer-se quase tudo com este sistema. As 
possibilidades de automação dependem na sua maioria da imaginação do utilizador, ou quanto muito 
da sua familiaridade com o sistema. 
 
 
 
 
25 
 
4.2. Aplicação de Supervisão 
 
Quando esta tese teve inicio, a biblioteca que implementa os mecanismos de suporte à supervisão 
era apenas uma colecção de funções em linguagem C, que implementam o essencial dos programas 
descritos (simples e complexos), os programas horários e as sequências. 
Foi então necessário criar toda a infra-estrutura exterior a essa biblioteca, de modo a criar um 
software real que conseguisse efectivamente fazer a automação de uma habitação. 
A aplicação de supervisão, foi então o software criado no âmbito desta tese, de maneira a conseguir 
testar o bom funcionamento da biblioteca de funções do DomoBus. 
Este software consistiu num programa em linguagem C que fornece as ferramentas necessárias para 
que seja possível interagir com o DomoBus, tanto a nível de criar os programas necessários ao seu 
funcionamento, como a nível da adição de novos dispositivos e propriedades. 
A aplicação de supervisão permite também a passagem de comandos do DomoBus para os 
dispositivos a controlar. 
 
O software está dividido em duas aplicações, Programador e Supervisor, que interagem entre si, 
como pode ser visto na figura 4.1. Cada uma estará instalada num computador diferente e entre elas 
comunicarão através da rede TCP/IP. 
O Supervisor é o cérebro do sistema, pois contém a biblioteca DomoBus, e é ele que toma todas as 
decisões e faz todo o processamento. Na secção 5.2, explica-se em detalhe, como funciona. Em 
seguida vamos focar-nos na aplicação Programador, visto ser ela que interage com o utilizador, e ser 
ela e apenas ela que o utilizador de facto utiliza. 
 
 
 
Figura 4.1 – Modelo de interacção entre a aplicação Programador e a aplicação Supervisor. 
 
 
 
26 
 
4.3. Aplicação Programador 
 
Como foi dito e pode ser visto na figura 4.1, é com a aplicação programador que o utilizador interage. 
É através dela que o utilizador irá adicionar novos tipos de dispositivos e propriedades às instâncias 
concretas dos dispositivos de um dado sistema. Será também através desta aplicação que o 
utilizador irá criar as programações que depois permitirão ao sistema funcionar e controlar os 
dispositivos, fazendo aquilo que o utilizador pretende. 
Nesta secção iremos explicar em detalhe como o utilizador deverá utilizar a aplicação Programador 
para adicionar os dispositivos e criar as programações. Esta secção permite ilustrar as 
potencialidades do Programador, e perceber como se configura um sistema. 
 
 
 
 
Figura 4.2 – Menu inicial da aplicação Programador. 
 
 
O utilizador ao iniciar o programa encontrará um menu, e será a partir desse menu que passará todo 
o controlo do sistema. O menu pode ser visto na figura 4.2. 
Futuramente seria ideal desenvolver um interface gráfico para esta aplicação, de modo a torna-la 
mais fácil e agradável de usar. De momento, não foi essa a nossa prioridade, a prioridade centrou-se 
mais no funcionamento e teste do programa. 
De relembrar que esta aplicação serve apenas para configurar o sistema, assim ela é meramente 
uma ferramenta para se conseguir parametrizar todo o sistema e assim poder efectuar todos os 
testes necessários para se poder validar o sistema. 
 
 
27 
 
Podem ser feitos 8 tipos de operações com o Programador: 
 
 Criar algo NOVO – quer seja adicionar um novo dispositivo, uma nova propriedade, ou criar uma 
nova programação. Sempre que seja escolhida uma das operações NOVO, será criado e 
adicionado à memória do sistema, um novo elemento. 
Podemos criar Novos (as): 
- Propriedades 
- Tipos de Dispositivos 
- Dispositivos 
- Programas Simples 
- Programas Complexos 
- Programas Horários 
- Sequências 
 
 Adicionar Acções – Este tipo de operação adiciona uma acção a um determinado programa, 
esta pode ser uma acção de activação ou desactivação. 
Podemos adicionar acções a: 
- Programas Simples 
- Programas Complexos 
- Programas Horários 
- Sequências 
 
 Adicionar Condições – Esta operação é exclusiva dos programas complexos, e tal como o 
nome indica, adiciona uma nova condição a um programa complexo. 
 
 Adicionar Operadores – Esta operação é também exclusiva dos programas complexos, ela 
adiciona um novo operador a um programa complexo. 
 
 Adicionar Período – Esta operação é exclusiva dos programas horários, ela cria e adiciona um 
novo período horário, a um programa horário. 
 
 Adicionar item – Esta operação é exclusiva das sequências, ela irá adicionar um novo item a 
uma sequência. 
 
 Listar elementos – Esta operação faz com que sejam impressos no ecrã todos os elementos 
pertencentes ao grupo e instalados no sistema. Ou seja, se for pedido para listar os dispositivos, 
todos os dispositivos que existirem no sistema serão impressos no ecrã. 
 
 
28 
 
Podemos Listar: 
- Propriedades 
- Tipos de dispositivos 
- Dispositivos 
- Programas Simples 
- Programas Complexos 
- Programas Horários 
- Sequências 
 
 Eliminar elemento – Esta operação apaga um elemento de um determinado grupo. 
Podemos Eliminar: 
- Programas Simples 
- Programas Complexos 
 
Nota: à data da conclusão desta dissertação as funções do DomoBus apenas permitiam eliminar 
programas simples e programas complexos. De Futuro espera-se que seja possível eliminar qualquer 
um dos tipos de programa (sequências incluídas) e também acções de activação e desactivação. 
 
 
Nas secções seguintes faz-se uma descrição detalhada das principais operações que podem ser 
desenvolvidas no Programador. 
 
 
 
4.3.1. Novos Dispositivos 
 
O procedimento para a adição de novos dispositivos segue a ordem dada de seguida: 
 
Propriedade → Tipo de Dispositivo → Dispositivo 
 
 
Para configurar o sistema é primeiramente necessário definir os dispositivos do sistema. Para isso, a 
primeira coisa a fazer é definir as propriedades. Como foi dito antes, existem 3 tipos diferentes de 
propriedades,escalar, enumerados e arrays. Ao adicionar uma nova propriedade teremos que 
escolher qual o tipo dessa propriedade, bem como o nome e o modo de acesso à propriedade (só 
leitura, só escrita e leitura-escrita), seguindo sempre o modelo explicado na secção 3.5. 
Depois de adicionadas as propriedades precisamos de adicionar os tipos de dispositivos. Para isso 
teremos que definir o nome, e seleccionar todas as propriedades associadas a esse tipo de 
dispositivo. 
29 
 
 
Finalizado este passo podemos então adicionar os dispositivos que compõem o sistema, sendo 
necessário, o nome do dispositivo, bem como o seu ID. O ID será o número identificador do 
dispositivo. Neste momento o ID é apenas um número, mas numa próxima versão o ID poderá servir 
para endereçar o dispositivo dentro da rede, de modo a permitir uma comunicação real com ele. 
Depois de inserir o ID, serão listados os diversos tipos de dispositivos existentes e teremos de 
seleccionar o mais indicado. 
 
Segue-se um resumo de todas as operações necessárias para adicionar dispositivos: 
 
1- Adicionar Propriedades 
 1.1- Escolher o nome 
 1.2- Escolher modo de acesso 
 1.3- Escolher Tipo de valor 
 
2- Adicionar Tipos de Dispositivos 
 2.1- Escolher o nome 
 2.2- Escolher as propriedades 
 
3- Adicionar Dispositivo 
 3.1- Escolher o nome 
 3.2- Definir o ID do dispositivo 
 3.3- Escolher o Tipo de dispositivo associado 
 
 
 
4.3.2. Programa Simples 
 
Para podermos configurar um programa simples é necessário ter em mente, qual o dispositivo 
activador, e qual o activado. Ou seja, teremos uma propriedade de um dispositivo que estará a ser 
monitorizada. Quando o valor dessa propriedade atingir o valor definido, irá provocar a activação de 
outra propriedade, de outro ou do mesmo dispositivo. 
Assim no menu inicial depois de escolhermos criar um novo programa simples, teremos que escolher 
o nome do programa e de seguida identificamos qual o dispositivo e a propriedade que irão ser 
avaliados. Depois escolhemos a condição a implementar (Igual a, Diferente de, Menor que, Menor ou 
Igual a, Maior que, Maior ou igual a, Agir sempre) e finalmente o valor a usar na comparação. 
Depois de criado o programa, há que adicionar as acções a serem executadas. Quando a condição 
que foi definida passar a verdadeira, irá desencadear as acções de activação. Quando a condição 
passar a falsa, serão desencadeadas as acções de desactivação. 
Assim, para adicionar uma acção é necessário escolher qual o programa onde será adicionada essa 
30 
 
acção, depois escolhemos o dispositivo e a propriedade desse dispositivo que serão activadas, 
finalmente adicionamos a mensagem de activação ou desactivação conforme o tipo de acção. 
Antes de prosseguir convém explicar o conceito das mensagens de acção. As mensagens de acção 
servem numa primeira fase para interagir directamente com os dispositivos. Elas contêm a 
informação relativa ao número do dispositivo, a sua localização na rede, a propriedade a ser alterada, 
e o valor a inserir na propriedade. Neste momento essa mensagem é inserida pelo utilizador, mas 
numa próxima versão do software poderá ser gerada automaticamente, visto que neste momento as 
mensagens não têm qualquer utilidade prática pois não existe uma ligação verdadeira aos 
dispositivos. 
Outra coisa de salientar em relação às mensagens é o facto de existirem mensagens internas e 
mensagens externas ao sistema. 
As mensagens externas são as mensagens de que falámos em cima, são as mensagens que 
informam os dispositivos da alteração de propriedades, ou seja, mandam ligar ou desligar, subir ou 
descer, aquecer ou arrefecer, etc. 
As mensagens internas, são mensagens internas do programa, são mensagens que são usadas por 
exemplo para chamar funções dentro do programa. Podem ser usadas para alterar o valor de 
propriedades de dispositivos, ou podem ser usadas para invocar sequências por exemplo, como 
veremos mais à frente. 
As mensagens internas obedecem a um formato específico e, de momento, necessitam ser definidas 
em formato binário. Este formato permite usar constates hexadecimais, as quais necessitam ser 
precedidas por “\x”. 
Vejamos um exemplo: 
\x0F\x36\x00\x00\x00\x41\x02\x00 será o comando que colocará o valor 2 na propriedade número 1 
do dispositivo 54. Vejamos então por partes: \x0F é 15 em valor decimal, que corresponde ao 
comando SPV (Set Property Value) do DomoBus. Este é o comando usado para definir o valor de 
uma propriedade. \x36\x00\x00\x00 representa um inteiro de 32 bits correspondendo ao valor 54 em 
decimal, identificando assim, o dispositivo 54; \x41 corresponde ao valor 65 em decimal. Este valor 
corresponde à soma 64+1, ou seja o valor de 64 indica que se trata de uma propriedade do tipo 
escalar e o valor 1 é o número da propriedade. Para os 3 tipos de propriedades existentes, o valor a 
somar ao número da propriedade será, 0 se for uma propriedade do tipo escalar, 64 se for do tipo 
enumerado e 128 se for um vector. 
Finalmente o valor \x02\x00 corresponde ao valor 2 em decimal, e corresponde ao valor que se quer 
colocar na propriedade. 
Em suma, sempre que haja necessidade de usar este tipo de comandos, é necessário fazer a 
conversão dos valores decimais para valores hexadecimais. 
 
Pretendia-se automatizar a forma como se criavam este tipo de mensagens internas. A ideia era criar 
um sistema automático que a partir do numero do dispositivo, numero da propriedade e valor a ser 
inserido cria-se automaticamente a mensagem a ser enviada dentro do sistema. Mas no final acabou 
por não haver tempo para uma tarefa que era algo complexa e trabalhosa. Acabamos por trabalhar 
31 
 
com os comandos a serem criados manualmente com as constantes hexadecimais. Fica aqui para 
um trabalho futuro, melhorar este aspecto. 
 
Resumo dos procedimentos para a criação de um programa simples: 
 
1- Criar Programa simples 
 1.1- Escolher o nome 
 1.2- Escolher dispositivo activador 
 1.3- Escolher a propriedade a ser monitorizada 
 1.4- Escolher condição a implementar 
 1.5- Escolher valor de comparação 
 
2- Adicionar Acção de activação 
 2.1- Escolher programa onde adicionar a acção 
 2.2- Escolher dispositivo a activar 
 2.3- Escolher propriedade a activar 
 2.4- Escrever mensagem de activação 
 
3- Adicionar Acção de desactivação 
 3.1- Escolher programa onde adicionar a acção 
 3.2- Escolher dispositivo a desactivar 
 3.3- Escolher propriedade a desactivar 
 3.4- Escrever mensagem de desactivação 
 
 
 
4.3.3. Programa Complexo 
 
À semelhança dos programas simples, nos programas complexos também haverá dispositivos e 
propriedades activadoras, a única diferença é que teremos vários dispositivos e propriedades 
activadoras. 
Cada condição define um dispositivo activador, com a devida propriedade. Cada condição pode ser 
vista como um programa simples, semelhante aos vistos na secção anterior. Assim quando queremos 
comparar o resultado entre duas condições, teremos que criar um operador, um operador pode 
também comparar o resultado de dois operadores, ou de uma condição e um operador. 
Em resumo, começamos por criar o programa complexo onde precisamos apenas de escolher o 
nome. De seguida adicionamos as condições ao programa, começamos por escolher qual o 
programa onde vamos adicionar, depois escolhemos o nome para a condição, depois o dispositivo e 
propriedade activadores, por fim a condição (Igual a, Diferente de, Menor que, Menor ou Igual a, 
Maior que, Maior ou igual a, Agir sempre) e o valor, tudo semelhante aos programas simples. De 
32 
 
salientar que as condições podem ser criadas em qualquer momento, haja operadores já criados ou 
não, no entanto é necessário que as condições estejam criadas para que possam ser adicionadas 
aos operadores. 
Para adicionar um operador, teremos que escolher qual o programa onde será acrescentado, depois 
escolhemos o 1º operador, é necessárioidentificar primeiro se se trata de uma condição ou de um 
operador, depois faremos o mesmo para o 2º operador e finalmente escolhemos o operador logico a 
ser implementado entre os dois operadores (EQUAL, NOT, AND, OR, XOR, XNOR). 
No final basta adicionar as acções tal como faríamos num programa simples, os procedimentos são 
os mesmos. 
 
Resumo dos procedimentos para adição de um programa complexo: 
 
1- Criar Programa complexo 
 1.1- Escolher o nome 
 
2- Adicionar Condição 
 2.1- Escolher programa onde adicionar a condição 
 2.2- Escolher o nome 
 2.3- Escolher o dispositivo a programar 
 2.4- Escolher a propriedade a programar 
 2.5- Escolher a condição a implementar 
 2.6- Escolher valor para a condição 
 
3- Adicionar operador 
 2.1- Escolher programa onde adicionar o operador 
 2.2- Escolher 1º operador 
 2.3- Escolher 2º operador 
 2.4- Escolher operador lógico 
 
4- Adicionar Acção de activação 
 4.1- Escolher programa onde adicionar a acção 
 4.2- Escolher dispositivo a activar 
 4.3- Escolher propriedade a activar 
 4.4- Escrever mensagem de activação 
 
5- Adicionar Acção de desactivação 
 5.1- Escolher programa onde adicionar a acção 
 5.2- Escolher dispositivo a desactivar 
 5.3- Escolher propriedade a desactivar 
 5.4- Escrever mensagem de desactivação 
33 
 
4.3.4. Programa Horário 
 
Para criar um programa horário é necessário escolher o nome e o ID pelo qual será conhecido e 
identificado. Depois definimos o tipo de repetição que será efectuada (Evento Único, Diário, Semanal, 
Mensal - Dia do mês, Mensal - Dia da semana, Anual). Se o tipo de repetição for semanal, teremos 
que escolher o dia da semana a repetir. Se for um evento único teremos que definir a data de início e 
a data de final, em que teremos que definir o ano, mês e dia, bem como as horas, minutos e 
segundos. 
Para os outros casos, em que o evento não ocorre apenas uma vez, teremos que escolher o período 
de repetição, em que o valor 1 irá repetir todos os dias, ou todos os meses, ou todos os anos, em que 
o valor 2 irá repetir de 2 em 2 dias, ou de 2 em dois meses, e em que o valor 3 irá repetir de 3 em 3 
dias ou 3 em 3 meses, e por ai adiante. 
Finalmente definimos a data de início e de final do período, em ano, mês e dias. Ou seja de que data 
até que data é que o programa horário estará activo. 
 
Nos programas que exigem repetição (todos excepto os eventos únicos), teremos que adicionar 
períodos ao programa. Serão estes períodos que irão fazer activar as acções ou desactivar as 
acções. Assim, definindo um período entre as 13:00:00 e as 14:00:00, quando forem 13:00:00 as 
acções de activação serão desencadeadas e, quando forem 14:00:00, serão desencadeadas as 
acções de desactivação. 
 
Para adicionar um novo período, teremos que escolher o programa onde adicionar o período, de 
seguida escolhemos a data de início (horas, minutos e segundos) e depois a data de fim, (horas, 
minutos e segundos). 
Finalmente adicionamos as acções. Teremos que escolher o programa onde adicionar a acção e 
depois definir a mensagem de activação ou desactivação consoante for o caso. 
 
1- Criar Programa horário 
 1.1- Escolher o nome 
 1.2- Definir o ID do programa 
 1.3- Escolher o tipo de repetição 
(*) 1.4- Escolher os dias de semana a programar 
(**) 1.5- Escolher data de início (ano/mês/dia – h/m/s) e data de final (ano/mês/dia – h/m/s) 
 1.6- Escolher período de repetição 
1.7- Escolher data de início do período (ano/mês/dia) e data de final do período (ano/mês/dia) 
 
(*)- Só será necessário escolher os dias de semana, se o tipo de repetição for do tipo semanal 
(**)- No caso do tipo de ser um evento único 
 
 
34 
 
2- Adicionar período ao programa horário (condicional) 
 2.1- Escolher programa onde adicionar o período 
 2.2- Escolher data de início (horas/minutos/segundos) 
 2.3- Escolher data de final (horas/minutos/segundos) 
 
3- Adicionar Acção de activação 
 3.1- Escolher programa onde adicionar a acção 
 3.2- Escrever mensagem de activação 
 
4- Adicionar Acção de desactivação 
 4.1- Escolher programa onde adicionar a acção 
 4.2- Escrever mensagem de desactivação 
 
 
 
4.3.5. Sequência 
 
As sequências são invocadas por outros programas sempre que se quer impor algum tipo de 
restrição temporal, ou seja, quando queremos impor uma pausa, dada em segundos, a algum tipo de 
dispositivo. Por exemplo se quisermos que uma lâmpada ligue ou desligue algum tempo depois de se 
pressionar um botão, se tivermos um detector de movimento e quisermos evitar que a luz se acenda 
e apague demasiadas vezes, por exemplo sempre que nos ausentemos da divisão. Assim programa-
se um tempo mínimo em que a luz tem que estar ligada mesmo que não haja movimento a ser 
detectado na divisão. 
 
Cada sequência poderá ter vários itens, cada item tem um tempo de pausa diferente e desencadeia 
acções diferentes. Assim quando uma sequência for chamada, começa a contabilizar o tempo e a 
activar as acções conforme os tempos dos respectivos itens forem atingidos. Por exemplo, considere-
se uma sequência com 3 itens, um com 10 segundos, outro com 5 segundos e outro com 35 
segundos, assim 10 segundos depois da sequência ter sido activada ela irá desencadear as acções 
do primeiro item, 5 segundos depois são activadas as acções do segundo item e, finalmente, 35 
segundos depois são activadas as acções do terceiro e último item. 
 
Nesta versão do software ainda não está perfeitamente implementada a forma de chamar as 
sequências. Assim, para invocar uma sequência é necessário introduzir manualmente, em 
hexadecimal, as mensagens de activação ou desactivação da sequência. 
Por exemplo, para invocar a sequência numero 3, deve ser usada o código binário: 
\x15\x03\x00\x00\x00 consoante foi explicado na secção 4.3.2, em que \x15 corresponde ao valor 
decimal 21 correspondente ao comando Start Sequence e \x03\x00\x00\x00 que corresponde ao valor 
3 decimal e que indica o ID da sequência a ser desencadeada. 
35 
 
Então para adicionar uma nova sequência ao sistema, começamos por criar a sequência, onde 
teremos que escolher um ID pelo qual passará a ser conhecida. Seguidamente adicionamos os itens: 
escolhemos a sequência onde iremos adicionar o item e definimos o tempo a esperar em segundos. 
Finalmente adicionamos as acções, escolhendo qual a sequência e qual o item onde adicionar. Para 
finalizar, escrevemos a acção a executar. 
 
Segue-se um resumo dos procedimentos: 
1- Criar Sequencia 
1.1- Escolher ID da sequência 
 
2- Adicionar Item á sequencia 
 2.1- Escolher sequencia onde adicionar 
 2.2- Definir tempo a esperar (segundos) 
 
3- Adicionar Acção ao item 
 3.1- Escolher sequencia onde adicionar 
 3.2- Escolher item onde adicionar 
 3.3- Escrever acção a executar 
 
 
 
 
 
 
36 
 
 
37 
 
5. Implementação 
 
O software que foi criado no âmbito desta tese de mestrado consiste fundamentalmente em duas 
aplicações distintas, a aplicação de supervisão, chamada Supervisor e a aplicação de programação 
chamada Programador. 
O Programador, como o nome indica servirá para configurar todas as funções desejadas para a 
automação, quer seja a criação dos programas que irão comandar as variadas funções, quer seja a 
adição de novos dispositivos e propriedades ao sistema. 
O Supervisor será uma espécie de cérebro do software, sendo dele que partem todas as ordens 
relativas à gestão dos diferentes dispositivos presentes no sistema. É ele que recebe a informação de 
estado dos dispositivos e desencadeia o envio de comandos para realizar acções. É também ele que 
faz a gestão do tempo, activando ou desactivando os diferentes dispositivos conforme as ordens 
presentes nas programações horárias, como veremos mais à frente. 
Nesta primeira versão do mecanismo de supervisão, a comunicação com os dispositivos não está 
totalmente implementada, a transferência de ordens entre o Supervisor

Continue navegando