Coimbra, Dezembro, 2011 Instituto Politécnico de Coimbra Instituto Superior de Engenharia de Coimbra Departamento de Engenharia Informática e de Sistemas Mestrado em Informática e Sistemas Estágio Industrial/Projecto Industrial Relatório Final iEnergy - Eficiência Energética em Edifícios Pedro Rafael Pimenta Saraiva [email protected] Orientador da ISA Eng.º. Ricardo Clérigo [email protected] Orientador do ISEC Doutor Viriato António Pereira Marinho Marques [email protected] iEnergy – Eficiência Energética em Edifícios Resumo RESUMO O presente relatório tem por objectivo apresentar e descrever de forma detalhada o projecto “iEnergy – Eficiência Energética em Edifícios”, realizado no âmbito do estágio curricular, do Mestrado em Informática e Sistemas - Ramo de Desenvolvimento de Software , do Instituto Superior de Engenharia de Coimbra. Este estágio decorreu nas instalações da empresa ISA - Intelligent Sensing Anywhere de 22 de Novembro de 2010 a 31 de Julho de 2011. Este projecto nasce da necessidade crescente de conceber novas formas de racionalizar a energia que utilizamos diariamente, gerindo-a de forma mais eficiente. Quase todos os equipamentos que temos em nossas casas, escritórios, lojas ou em qualquer outro local que frequentamos habitualmente para trabalho ou para lazer, consomem algum tipo de energia quer seja ela eléctrica, gás natural ou outra. A utilização abusiva das fontes de energia de origem fóssil em Portugal, como o petróleo (que representa 57% do consumo), o carvão (12%), o gás natural (14%) [1], contribuem para a libertação de dióxido de carbono para a atmosfera trazendo consequências desastrosas para o nosso planeta, bem como elevados custos para as empresas e para os particulares. Um passo importante para uma utilização racional da energia passa pela consciencialização das pessoas e empresas de onde e como gastam a sua energia por forma a eliminar os gastos desnecessários. Tendo em vista este pressuposto a aplicação a desenvolver durante o estágio pretende responder a duas perguntas essenciais “Onde é que a energia é consumida?” e “Como é que a energia é consumida?” para que possam ser planeadas medidas para reduzir esses consumos. A aplicação a desenvolver durante o estágio assenta sobre a plataforma de monitorização existente na ISA, uma solução constituída por software e hardware que adquire, trata e armazena dados de eficiência energética para serem analisados mais tarde por gestores de energia. Pedro Saraiva – Relatório da disciplina de Estágio/Projecto Industrial 2010/2011 i iEnergy – Eficiência Energética em Edifícios Abstract ABSTRACT This report aims to present and describe in detail the project "iEnergy - Energy Efficiency in Buildings", performed under the curricular internship of the MSc in Informatics and Systems Software Development branch-, of the “Instituto Superior de Engenharia de Coimbra”. This internship took place at ISA - Intelligent Sensing Anywhere, from 22 November 2010 to July31, 2011. This project was born due to the increasing need of conceiving new ways to rationalize the energy we use every day. Almost all the equipment we have in our homes, offices, shops or anywhere else that we inttend to regularly use for work or leisure, consumes some kind of energy, whether it is electrical, natural gas or other. The misuse of fossil energy sources in Portugal such as oil (which represents 57% of consumption), coal (12%) and natural gas (14%) [1] contribute to the release of carbon dioxide to the atmosphere bringing disastrous consequences for our planet, as well as high costs for companies and private individuals. An important step in a rational use of energy passes through the awareness of people and businesses, where and how they use their energy in order to eliminate unnecessary energy expenditure. Given this assumption the software developed during this internship aims to answer two essential questions: "Where is the energy consumed?" and "How is the energy consumed?" so that actions can be planned to reduce such consumption. The software developed in this internship is based on the existing platform of ISA: the solution consists of hardware and software that acquires energy efficiency data, processes it and stores it to be analyzed in more detail, later, by energy managers. Pedro Saraiva – Relatório da disciplina de Estágio/Projecto Industrial 2010/2011 iii iEnergy – Eficiência Energética em Edifícios Palavras-Chave Palavras-Chave Engenharia Informática Gestão de Energia iEnergy ISA- Intelligent Sensing Anywhere .NET Framework SCRUM MVC Eficiência Energética Keywords Engineering Informatics Energy management iEnergy ISA- Intelligent Sensing Anywhere .NET Framework SCRUM MVC Energy Efficiency Pedro Saraiva – Relatório da disciplina de Estágio/Projecto Industrial 2010/2011 v iEnergy – Eficiência Energética em Edifícios Símbolos e Abreviaturas Lista de Abreviaturas e Acrónimos API – Application programming interface ASP – Active Server Pages ASP .NET -Active Server Pages .NET AVAC – Aquecimento, ventilação e ar condicionado ACE - Requisitos análise de custos de energia ALM – Requisitos de alarmes BU – Unidade de negócio BD – Base de Dados CRUD - Create, Read, Update and Delete CA – Requisitos conclusões da analise COD – Requisitos de configuração de opções de aquisição de dados CTAR – Requisitos para calculo e criação de tarifários BI - Business Intelligent B2B - Bussines to Bussines B2C - Bussines to Consumer C# - CSharp CPU- Central Processing Unit CSAD – Controlo de supervisão e aquisição de dados COD - Configuração de opções de aquisição de dados da BD CSS - Cascading Style Sheets DLL - Dynamic link library EDP - Electricidade de Portugal EF - Entity Framework FTP - File Transfer Protocol FK – Foreign Key GPL – General Public License GPRS - General packet radio service GPS - Global Positioning System GUI - Graphical User Interface HTML – HyperText Markup Language HTTP – Hypertext Transfer Protocol IEEE – Institute of Electrical and Electronics Engineers IP – Internet Protocol I&D – Investigação e Desenvolvimento ISA – Intelligent Sensing Anywhere ISEC – Instituto Superior de Engenharia de Coimbra ISO – International Organization for Standardization IDE - Integrated Development Environment JSON – JavaScript Object Notation kW – Kilowatt kWh– Kilowatt hora Pedro Saraiva – Relatório da disciplina de Estágio/Projecto Industrial 2010/2011 vii Símbolos e Abreviaturas iEnergy – Eficiência Energética em Edifícios kB - Kilobyte kVar - Kilovolt-amperes reactive KPI – Key Performance Indicators M9M – Monday 9’oclock Meeting M2M – Machine to Machine Communication MA – Requisitos do modulo de actuação MVC- Model-view-controller ORM - Object Relational Mapping PDF – Portable Document Format PK – Primary Key REL- Requisitos de Relatórios RFID- Radio Frequency Identification SGBD – Sistema de Gestão de Base de dados SNMP – Simple Network Management Protocol SOAP – Simple Object Access Protocol SQL – Structured Query Language SEO - Search engine optimization SVN - Subversion STAR – Requisitos para simulação de tarifários TDD - Test-driven development TCP – Transmission Control Protocol T-SQL – Transact-Structured Query Language TG - Requisitos de tabela geral TI - Tecnologia da informação TARIFA MT - Tarifa Média Tensão URE- Utilização Racional de Energia UDP - User Datagram Protocol UML – Unified Modeling Language UI – User Interface URL - Uniform Resource Locator XML – Extended Markup Language WCF- Windows Communication Foundation WSDL – Web Services Description Language WWW - World Wide Web VAG- Requisitos de visualização de dados na forma de gráfico viii Pedro Saraiva – Relatório da disciplina de Estágio/Projecto Industrial 2010/2011 iEnergy – Eficiência Energética em Edifícios Agradecimentos Agradecimentos Ao Professor Doutor Viriato António Pereira Marinho Marques pela competência com que orientou esta minha tese e o tempo que generosamente me dedicou transmitindo-me os melhores e mais úteis ensinamentos, com paciência, lucidez e confiança. Pelo acesso que me facilitou a uma pesquisa mais alargada e enriquecedora e pela sua crítica sempre tão atempada, como construtiva. A minha família e aos meus amigos, que me deram força desde o primeiro momento e sempre me desejaram a maior sorte do mundo para esta etapa da minha vida. Aos meus orientadores da ISA- Intelligent Sensing Anywhere, por todo o apoio e direcção que me deram no trabalho desenvolvido ao longo deste ano lectivo. A todos os elementos da equipa de energia da ISA que estiveram sempre dispostos a ajudar quando necessário. Aos restantes elementos da ISA, que me receberam da melhor maneira possível, proporcionando um ambiente de trabalho descontraído e acolhedor, Muito obrigado! Pedro Saraiva – Relatório da disciplina de Estágio/Projecto Industrial 2010/2011 ix iEnergy – Eficiência Energética em Edifícios Índice Índice 1 INTRODUÇÃO ...................................................................................................................................... 1 1.1 1.2 1.3 1.4 1.5 2 ÂMBITO ............................................................................................................................................... 1 APRESENTAÇÃO DA EMPRESA ................................................................................................................... 3 OBJECTIVOS DO ESTÁGIO ......................................................................................................................... 3 CONTRIBUIÇÕES..................................................................................................................................... 5 ORGANIZAÇÃO E TEMAS ABORDADOS NO PRESENTE RELATÓRIO ..................................................................... 5 ANÁLISE DO PROBLEMA ...................................................................................................................... 7 2.1 CONCEITOS FUNDAMENTAIS..................................................................................................................... 7 2.2 PLATAFORMA IENERGY............................................................................................................................ 7 2.2.1 Principais Entidades do Sistema .............................................................................................. 8 2.2.2 Descrição Geral do Projecto de Estágio ................................................................................... 9 3 PLANO DE TRABALHOS DO ESTÁGIO .................................................................................................. 13 3.1 METODOLOGIA DE DESENVOLVIMENTO .................................................................................................... 13 3.1.1 Descrição do Scrum ............................................................................................................... 14 3.2 APLICAÇÃO DO SCRUM NO PROJECTO DE ESTÁGIO...................................................................................... 15 3.2.1 Fases do Scrum ...................................................................................................................... 15 3.3 OPINIÃO PESSOAL ................................................................................................................................ 20 4 FASE DE INTEGRAÇÃO ........................................................................................................................ 21 4.1 EFICIÊNCIA ENERGÉTICA EM EMBARCAÇÕES .............................................................................................. 21 4.2 ANÁLISE DE REQUISITOS ........................................................................................................................ 22 4.3 REQUISITOS FUNCIONAIS ....................................................................................................................... 22 4.3.1 Definições Chave.................................................................................................................... 22 4.3.2 Módulo Associação de Mestres a Viagem ............................................................................. 23 4.3.3 Módulo Relatórios ................................................................................................................. 23 4.3.4 Módulo de Integração com Bilhética para Criação de Viagens ............................................. 28 4.3.5 Módulo de Criação de Alertas ............................................................................................... 28 4.3.6 Módulo de Validação de Viagens .......................................................................................... 29 4.4 IMPLEMENTAÇÃO ................................................................................................................................. 29 4.4.1 Ferramentas de Desenvolvimento ......................................................................................... 29 4.5 VERIFICAÇÃO E VALIDAÇÃO .................................................................................................................... 30 4.6 RESULTADOS OBTIDOS NESTA FASE ......................................................................................................... 30 5 REVISÃO TECNOLÓGICA ..................................................................................................................... 31 5.1 ESTADO DA ARTE ................................................................................................................................. 31 5.1.1 Soluções Existentes ou Semelhantes ..................................................................................... 31 5.1.2 Resumo Crítico ....................................................................................................................... 33 5.2 TECNOLOGIAS CONSIDERADAS ................................................................................................................ 34 5.2.1 Análise de Tecnologias da Concorrência ............................................................................... 34 5.2.2 Análise de Tecnologias para o Sistema.................................................................................. 35 5.2.3 Ferramentas de Construção de Relatórios............................................................................. 37 5.2.4 Ferramentas Web de Gráficos ............................................................................................... 38 Pedro Saraiva – Relatório da disciplina de Estágio/Projecto Industrial 2010/2011 xi Índice 6 iEnergy – Eficiência Energética em Edifícios ESPECIFICAÇÃO .................................................................................................................................. 41 6.1 VISÃO GERAL ...................................................................................................................................... 41 6.2 CARACTERÍSTICAS DOS UTILIZADORES....................................................................................................... 42 6.3 ANÁLISE DE REQUISITOS ........................................................................................................................ 43 6.3.1 Metodologia Usada na Recolha de Requisitos ...................................................................... 43 6.4 REQUISITOS FUNCIONAIS ....................................................................................................................... 44 6.4.1 Módulo de Grupos Lógicos .................................................................................................... 46 6.4.2 Módulo de Análise de Dados ................................................................................................. 54 6.4.3 Módulo de Relatórios ............................................................................................................ 60 6.4.4 Módulo de Alertas ................................................................................................................. 63 6.4.5 Módulo de Actuação ............................................................................................................. 64 6.4.6 Módulo de Tarifários ............................................................................................................. 65 6.4.7 Módulo de Criação e Cálculo de Tarifas ................................................................................ 65 6.4.8 Módulo de Simulação de Tarifários ....................................................................................... 71 6.5 PROTÓTIPOS DE INTERFACE .................................................................................................................... 72 6.6 REQUISITOS NÃO - FUNCIONAIS .............................................................................................................. 81 6.6.1 Eficiência................................................................................................................................ 81 6.6.2 Fiabilidade ............................................................................................................................. 81 6.6.3 Manutenção .......................................................................................................................... 82 6.6.4 Portabilidade ......................................................................................................................... 82 6.6.5 Segurança .............................................................................................................................. 82 6.6.6 Usabilidade ............................................................................................................................ 82 6.6.7 Requisitos Tecnológicos ......................................................................................................... 83 6.6.8 Requisitos de Documentação ................................................................................................ 84 6.7 OPINIÃO ............................................................................................................................................ 84 7 ARQUITECTURA E IMPLEMENTAÇÃO DA PLATAFORMA ..................................................................... 87 7.1 INTEGRAÇÃO COM OS VÁRIOS SISTEMAS................................................................................................... 87 7.2 IMPLEMENTAÇÃO................................................................................................................................. 88 7.2.1 Ferramentas .......................................................................................................................... 88 7.2.2 Organização do Código ......................................................................................................... 89 7.3 COMPONENTES ................................................................................................................................... 90 7.3.1 Base de Dados ....................................................................................................................... 92 7.3.2 Task Scheduler ....................................................................................................................... 96 7.3.3 Core da Aplicação .................................................................................................................. 97 7.3.4 Web Service ........................................................................................................................... 98 7.3.5 Aplicação Web ..................................................................................................................... 100 7.4 PROBLEMAS ENCONTRADOS................................................................................................................. 110 7.4.1 Árvore de Grupos ................................................................................................................. 110 7.4.2 Acessos a Tabela de Dados .................................................................................................. 111 7.5 TESTES UNITÁRIOS .............................................................................................................................. 112 7.6 OPINIÃO .......................................................................................................................................... 112 8 VERIFICAÇÃO E VALIDAÇÃO ............................................................................................................. 113 8.1 8.2 xii REVISÃO........................................................................................................................................... 113 VALIDAÇÃO....................................................................................................................................... 113 Pedro Saraiva – Relatório da disciplina de Estágio/Projecto Industrial 2010/2011 iEnergy – Eficiência Energética em Edifícios Índice 8.2.1 Ambiente de Testes .............................................................................................................113 8.3 VERIFICAÇÃO.....................................................................................................................................114 8.4 INSTALAÇÃO NO CLIENTE .....................................................................................................................115 9 CONCLUSÃO E PERSPECTIVAS FUTURAS .......................................................................................... 117 9.1 PLANEAMENTO EFECTIVAMENTE SEGUIDO ..............................................................................................117 9.1.1 Planeamento Efectivamente Seguido no Primeiro Semestre...............................................117 9.1.2 Planeamento Efectivamente Seguido no Segundo Semestre ..............................................118 9.1.3 Justificação dos Desvios .......................................................................................................119 9.2 AVALIAÇÃO DO TRABALHO DESENVOLVIDO .............................................................................................119 9.3 TRABALHO FUTURO ............................................................................................................................121 9.4 CONSIDERAÇÕES PESSOAIS...................................................................................................................121 REFERÊNCIAS .......................................................................................................................................... 127 Pedro Saraiva – Relatório da disciplina de Estágio/Projecto Industrial 2010/2011 xiii iEnergy – Eficiência Energética em Edifícios Índice de Figuras Índice de Figuras Figura 1 - Camadas da plataforma ..................................................................................................................... 7 Figura 2 - Organização das principais Entidades do Sistema ............................................................................ 9 Figura 3 - Ciclo de desenvolvimento do Scrum ............................................................................................... 14 Figura 4 – Diagrama de Gantt com o planeamento inicial do trabalho a realizar no primeiro semestre. ........ 17 Figura 5 – Diagrama de Gantt com o planeamento do trabalho a realizar no segundo semestre ..................... 17 Figura 6 -Número de funcionalidades dos competidores ................................................................................. 32 Figura 7 - Tipo de tecnologias usadas pelos competidores .............................................................................. 34 Figura 8: Relação entre a complexidade (número de funcionalidades) e o tipo de tecnologias ....................... 35 Figura 9 - Hierarquia de Utilizadores .............................................................................................................. 43 Figura 10 - Exemplo de perguntas colocadas no Google Docs........................................................................ 44 Figura 11 - Casos de uso do sistema separados por pacotes ............................................................................ 45 Figura 12 - Termo fixo do tarifário .................................................................................................................. 67 Figura 13 - Descriminação de preços de energia activa ................................................................................... 67 Figura 14 - Descriminação de preços de potência ........................................................................................... 68 Figura 15 - Descriminação de preços de energia reactiva ................................................................................ 69 Figura 16 - Factores multiplicativos aplicados a energia reactiva ................................................................... 69 Figura 17 - Gráfico de linhas com representação dos períodos sazonais e períodos horários ......................... 73 Figura 18 - Opções de Gráfico e informação de análise .................................................................................. 73 Figura 19 - Tabela de Conclusões .................................................................................................................... 74 Figura 20 - Tabela Geral .................................................................................................................................. 74 Figura 21 - Análise de Custos .......................................................................................................................... 75 Figura 22 - Lista de Alertas ............................................................................................................................. 75 Figura 23 - Criação de alertas .......................................................................................................................... 76 Figura 24 - Lista de alertas disparados ............................................................................................................ 76 Figura 25 - Criação de actuações ..................................................................................................................... 77 Figura 26 - Lista de actuações ......................................................................................................................... 77 Figura 27 - Simulação de tarifários .................................................................................................................. 78 Figura 28 - Lista de tarifários .......................................................................................................................... 78 Figura 29 - Inserção de novo tarifário .............................................................................................................. 79 Figura 30 - Inserção de parâmetros do tarifário ............................................................................................... 79 Figura 31- Lista de grupos ............................................................................................................................... 80 Figura 32 - Página de edição de grupos ........................................................................................................... 80 Figura 33 - Esquema de funcionamento do ASP.NET MVC (retirado do msdn Webcast) ............................. 83 Figura 34 -Como é que o portal web e o iEnergy se enquadram na solução de medição ................................ 87 Figura 35 - Organização do código no Visual Studio. ..................................................................................... 90 Figura 36 - Módulos do iEnergy ...................................................................................................................... 91 Figura 37 - Fluxograma de cálculo de tarifários B2B ...................................................................................... 95 Figura 38 - Fluxo de cálculo da baseline ......................................................................................................... 95 Figura 39 – Fluxo de funcionamento dos alertas ............................................................................................. 97 Figura 40 -Diagrama de classes Core (apenas a parte criada durante o estágio) ............................................. 98 Figura 41 – Diagrama de classes End Point de edifícios ................................................................................. 99 Figura 42 - Visão Geral do Sistema ............................................................................................................... 100 Figura 43 - Arquitectura Web Service ............................................................................................................ 100 Figura 44 - Arquitectura lógica ...................................................................................................................... 101 Figura 45 - Decomposição Horizontal ........................................................................................................... 102 Figura 46 - Decomposição Vertical ............................................................................................................... 103 Pedro Saraiva – Relatório da disciplina de Estágio/Projecto Industrial 2010/2011 xv Índice de Figuras iEnergy – Eficiência Energética em Edifícios Figura 47- Diagrama de classes do Controller ............................................................................................... 106 Figura 48 - Modelo de classes dos Action Filters .......................................................................................... 107 Figura 49 - Diagrama de classes dos helpers do view.................................................................................... 109 Figura 50 - Modelos de classes dos Binders .................................................................................................. 110 Figura 51 – Diagrama de gantt com a distribuição temporal do trabalho realizado no primeiro semestre. ... 117 Figura 52 – Diagrama de Gantt com a distribuição temporal do trabalho realizado no segundo semestre.... 118 Figura 53 - Ciclo de Gestão de energia .......................................................................................................... 124 xvi Pedro Saraiva – Relatório da disciplina de Estágio/Projecto Industrial 2010/2011 iEnergy – Eficiência Energética em Edifícios Índice de Tabelas Índice de Tabelas Tabela 1 - Fases do Game do Projecto ................................................................................................................. 18 Tabela 2 - Quadro parcial de funcionalidades da concorrência ............................................................................ 33 Tabela 3 - Comparação de ferramentas web de construção de gráficos ............................................................... 38 Tabela 4 - Tempo de renderização de gráficos ..................................................................................................... 40 Tabela 5 - Tabela de requisitos do sistema ........................................................................................................... 46 Tabela 6 - Requisitos de grupos lógicos ............................................................................................................... 49 Tabela 7 - Tabela de Requisitos de Baseline ........................................................................................................ 50 Tabela 8 - Requisitos de KPIs .............................................................................................................................. 51 Tabela 9 - Requisitos de indicadores de estado .................................................................................................... 52 Tabela 10 - Requisitos de indicadores de poupança ............................................................................................. 53 Tabela 11 - Requisitos de mensagens ................................................................................................................... 54 Tabela 12 - Requisitos de tags virtuais ................................................................................................................. 54 Tabela 13 – Requisitos de configuração de opções de grupos e variáveis ............................................................ 56 Tabela 14 - Requisitos de configuração da aquisição de dados ............................................................................ 57 Tabela 15 - Requisitos de visualização de dados .................................................................................................. 58 Tabela 16 - Requisitos de análise de custos de energia ........................................................................................ 59 Tabela 17 - Requisitos de conclusões da análise .................................................................................................. 59 Tabela 18 - Requisitos de dados gerais ................................................................................................................. 59 Tabela 19 - Requisitos de Relatórios .................................................................................................................... 63 Tabela 20 - Requisitos para gestão de Alertas ...................................................................................................... 64 Tabela 21 – Requisitos para a actuação ................................................................................................................ 64 Tabela 22 – Requisitos para o cálculo de tarifários .............................................................................................. 66 Tabela 23 – Requisitos para simulação de tarifários ............................................................................................ 72 Tabela 24 - Ligação de requisitos a protótipos ..................................................................................................... 72 Tabela 25 -Descrição sumária das entidades do diagrama da base de dados ........................................................ 93 Pedro Saraiva – Relatório da disciplina de Estágio/Projecto Industrial 2010/2011 xvii iEnergy – Eficiência Energética em Edifícios Índice de Anexos Índice de Anexos Anexo I – Estado da Arte Anexo II – Casos de Uso Anexo III – Plano de Riscos Anexo IV – Especificação Web Service de Edifícios Anexo V – Especificação de Base de Dados Anexo VI – Especificação de Requisitos para a Fase de Integração Anexo VII – Manual do Utilizador Pedro Saraiva – Relatório da disciplina de Estágio/Projecto Industrial 2010/2011 xix iEnergy – Eficiência Energética em Edifícios Introdução 1 Introdução Neste capítulo é inicialmente feita uma introdução ao âmbito do estágio seguindo-se uma breve apresentação da empresa onde foi realizado. Seguidamente descreve-se o projecto de estágio e enunciam-se os seus objectivos; em seguida são apresentados os contributos para o projecto. 1.1 Âmbito Actualmente o peso da factura energética nos custos de exploração de uma empresa do sector industrial é relativamente baixo por comparação com outros factores de produção como a mão-de-obra ou a matéria-prima. Por esse motivo a gestão de energia é frequentemente negligenciada, facto que pode gera significativos desperdícios de energia o que contribui para a redução da competitividade das empresas. Adicionalmente, continua presente na mente de algumas indústrias a ideia de que o crescimento económico acarreta necessariamente um aumento dos consumos de energia o que não é inteiramente verdade. O conceito de utilização racional de energia, surgido no seguimento dos chamados choques petrolíferos [2], veio alterar decisivamente a forma de encarar a energia, demonstrando ser possível crescer sem aumentar os consumos ou afectar a qualidade da produção. A chave da questão designa-se por gestão de energia. Como qualquer outro factor de produção, a energia deve ser gerida contínua e eficazmente. A utilização racional da energia (URE) consiste num conjunto de acções e medidas, que têm por objectivo melhorar a utilização da energia. A URE é cada vez mais um factor importante de economia energética e na redução de custos, tanto no sector doméstico como no sector de serviços e industria. Embora o argumento da competitividade continue naturalmente a ser aquele que mais sensibiliza a generalidade das indústrias, a crescente pressão ambiental veio reforçar a necessidade de utilizar de forma eficiente a energia. Seja por imposição legal, seja pela necessidade de cumprir requisitos ambientais como forma de aceder a sistemas de apoio ou simplesmente por uma questão de imagem ou pressão da opinião pública, cada vez mais a eficiência energética está na ordem do dia. Para além disso é unanimemente aceite que, mais cedo ou mais tarde, instrumentos políticos de mercado, como taxas ou impostos ambientais, introduzirão finalmente o princípio do poluidor pagador, penalizando fortemente as empresas menos preparadas. É assim que assumem particular importância o levantamento e a auditoria energética. Com efeito, qualquer processo de gestão de energia terá necessariamente que começar pelo conhecimento da situação energética das instalações. O princípio é óbvio - para gerir é indispensável conhecer o objecto de gestão. Pedro Saraiva – Relatório da disciplina de Estágio/Projecto Industrial 2010/2011 1 Introdução iEnergy – Eficiência Energética em Edifícios O levantamento energético pode interpretar-se como a primeira radiografia ao desempenho energético da empresa ou industria. Através dele, avalia-se quanta energia é efectivamente consumida e de que forma é essa energia utilizada, estabelecem-se os principais fluxos e identificam-se os sectores ou equipamentos onde é prioritário actuar. Por auditoria energética entende-se o exame detalhado das condições de utilização de energia nas instalações. A auditoria permite conhecer onde, quando e como a energia é utilizada, qual a eficiência dos equipamentos e onde se verificam desperdícios de energia, indicando igualmente soluções para as anomalias detectadas. A auditoria energética pode também constituir uma obrigação legal. Com efeito, estão abrangidas pelo regulamento de gestão do consumo de energia (R.G.C.E.)[2], todas as empresas ou instalações consumidoras intensivas de energia. A auditoria energética surge assim como um instrumento fundamental, que o gestor de energia possui para contabilizar os consumos de energia, a eficiência energética dos seus equipamentos e as perdas que se verificam, tendo como finalidade última reduzir essas perdas sem afectar a produção, isto é, economizar energia através do uso mais eficiente da mesma. No mundo de hoje as máquinas ocupam já um papel de destaque em todas as áreas da nossa vida. Por isso devem funcionar de forma a melhorar a sua eficiência energética, o que pressupõe uma recolha e análise de dados que possam ser consultados na forma de gráficos, relatórios, alarmes e outras formas de análise. A solução actual da ISA permite já a monotorização remota da energia através de um grande número de sensores espalhados pelos edifícios. Sendo ainda um produto em maturação tem como é óbvio algumas lacunas e algumas funcionalidades por implementar. Com este estágio pretendeu-se cobrir parcialmente uma dessas lacunas, um software para o mercado B2B, que dotasse a ISA de uma ferramenta de visualização e análise de dados, destinada a auxiliar o gestor de energia da ISA na sua tarefa diária. A função principal deste software é o de apoiar o gestor de energia da ISA na identificação de problemas energéticos nos edifícios e na identificação equipamentos menos eficientes por forma a poderem ser feitos investimentos conscientes na melhoria desses mesmos equipamentos, contribuindo assim para uma utilização racional da energia, reduzindo custos e aumentado a competitividade das empresas. As soluções de análise de eficiência energética têm actualmente pouca divulgação em Portugal, existem já algumas soluções no mercado em outros países, mas estas soluções têm a desvantagem em relação solução global da ISA, de a maior parte delas não oferecer uma solução completa desde os equipamentos de medição até ao software e de muitas delas não terem uma forma centralizada de ver a 2 Pedro Saraiva – Relatório da disciplina de Estágio/Projecto Industrial 2010/2011 iEnergy – Eficiência Energética em Edifícios Introdução informação disponibilizada. A ISA pretende oferecer essa solução com todas as funcionalidades necessárias a uma gestão eficiente da energia. 1.2 Apresentação da Empresa A ISA - Intelligent Sensing Anywhere é uma empresa global premiada e reconhecida internacionalmente, especializada na área da telemetria de comunicações M2M. É líder em diferentes segmentos desse mercado. Fundada em 1990 como spin-off da Universidade de Coimbra, a ISA conta com cerca de 100 colaboradores, escritórios em França, Espanha, Alemanha, Irlanda e Brasil, estando também presente em outros países através de agentes locais. O centro de I&D encontra-se em Portugal, onde cerca de metade da equipa da ISA se dedica permanentemente à inovação e desenvolvimento de produtos pioneiros. As principais áreas de aplicação são: Telemetria Óleo & Gás; Soluções de Gestão de Energia; Gestão Remota de Bens; Sistemas de Gestão Integrada de Edifícios; Solução de Gestão Remota para o Ambiente; Soluções Médicas e de Cuidados de Saúde; De entre todas estas áreas é de destacar a área de energia que inclui uma solução completa com sensores, contadores e toda a gama de dispositivos inovadores que estabelecem uma rede capaz de monitorizar à distância diversos parâmetros, tais como o consumo de água, gás e electricidade, qualidade do ar, entre muitas outras funcionalidades A informação recolhida pelos sensores é armazenada e tratada, sendo posteriormente disponibilizada ao utilizador, através de um qualquer computador, telemóvel, ou display dedicado. A versatilidade da solução iMeter desenvolvida pela ISA permite o controlo remoto de qualquer electrodoméstico de forma a promover de forma efectiva a eficiência energética. Esta solução foi reconhecida várias vezes pelo carácter inovador do conceito e das tecnologias que incorpora. O estágio foi incluído nesta área da empresa que é chamada de área de energia, e na solução de medição remota de gastos energéticos em edifícios. 1.3 Objectivos do Estágio O objectivo principal deste estágio foi trabalhar sobre a plataforma de recolha e análise de dados de eficiência energética da ISA, nas diversas fases de desenvolvimento do projecto, bem como nas Pedro Saraiva – Relatório da disciplina de Estágio/Projecto Industrial 2010/2011 3 Introdução iEnergy – Eficiência Energética em Edifícios diversas camadas que constituem este software, de forma a implementar novas funcionalidades que permitissem a evolução da plataforma para melhor acomodar o mercado B2B da empresa. Neste projecto pretendeu-se desenvolver um portal de eficiência energética para o mercado B2B usando para tal toda a infra-estrutura já existente na ISA, uma solução constituída por software e hardware chamada - iEnergy -. O software desenvolvido vai permitir a análise dos consumos energéticos em diversos edifícios de uma forma centralizada, sejam eles consumos eléctricos, água ou gás, sendo que o consumo eléctrico é o que tem maior relevância no projecto e é o mais usado para propósitos de teste e exemplos ao longo do presente relatório. A plataforma já existente o - iEnergy - é uma plataforma que recebe leituras de centenas de sensores em diversas localizações geográficas. O tipo de leituras varia com o dispositivo: por exemplo no caso da electricidade são recolhidas leituras de consumos de energia activa, potência ou mesmo energia reactiva entre outros. O - iEnergy - recebe esses dados, armazena-os e processa-os (transformaos por exemplo em consumo de energia por hora, dia, ano ou mês) disponibilizando-os depois aos seus clientes (domésticos e empresariais). Os principais objectivos da plataforma global - iEnergy - são; Adquirir dados de sensores remotos; Guardar e processar esses dados; Monitorizar o equipamento e detectar anomalias; Oferecer uma API que possa ser usada para sistemas de terceiros. A plataforma de recolha e análise de dados encontra-se divida em vários módulos, desde o módulo de recolha de dados, módulo de acesso aos dados, até ao módulo de disponibilização de dados através de web services para aplicações clientes. Na primeira fase do estágio pretendeu-se fazer uma recolha de requisitos para a plataforma de análise de dados na sua vertente B2B com o cliente do software o gestor de energia da ISA. A segunda fase do projecto teve por objectivo desenvolver um interface web que permitisse analisar todos os dados disponibilizados pela plataforma bem como a implementação de novas funcionalidades no - iEnergy - como por exemplo cálculo e simulação de tarifários de energia eléctrica, cálculo de indicadores, agrupamento de hardware separado geograficamente em grupos lógicos, entre outras. O objectivo final consistiu em obter um software que ajude a gerir melhor os consumos de energia nos edifícios, permitindo identificar e consciencializar as pessoas de onde e como gastam a energia, permitindo desta maneira actuar sobre os desperdícios energéticos. 4 Pedro Saraiva – Relatório da disciplina de Estágio/Projecto Industrial 2010/2011 iEnergy – Eficiência Energética em Edifícios Introdução 1.4 Contribuições Creio ser legítimo afirmar que o projecto “iEnergy – Eficiência Energética em Edifícios” alcançou os objectivos inicialmente traçados. Esta opinião é alicerçada no facto de ter sido implementada a aplicação pretendida (solicitada por cliente específico), tendo inclusivamente o software desenvolvido servido para detectar várias anomalias de consumos energéticos nos edifícios onde foi usado (por exemplo, sistemas AVAC e de iluminação a funcionarem sem necessidade). Além disso, a documentação produzida como suporte ao processo de implementação alcançou, na minha opinião, os níveis de qualidade pretendidos. Um dos alicerces desta opinião está na auditoria externa a que este projecto foi sujeito, e no qual passou com bons resultados. Outro motivo de satisfação é o facto de o software ter sido instalado juntamente com a solução - iEnergy - num cliente bancário para permitir a gestão energética de todas as suas agências e edifícios. Neste momento o software está a funcionar com cerca de 400 grupos lógicos (agências e edifícios) com centenas de sensores a enviarem informação para a plataforma - iEnergy -. 1.5 Organização e Temas Abordados no Presente Relatório O presente documento encontra-se dividido em nove capítulos. Inclui também um conjunto de anexos com informação complementar que de uma forma ou outra ajudam a melhor compreender o problema e o trabalho realizado. Após este capítulo introdutório, no Capítulo 2, Análise do Problema, apresenta-se o problema em detalhe, num contexto global e no contexto do estágio. No Capítulo 3, Plano de Trabalhos do estágio, é introduzida a metodologia de desenvolvimento usada durante o projecto, bem como a sua implementação. Segue-se o planeamento inicial para o projecto bem como a sua justificação. No Capítulo 4, Fase de Integração, é feita a descrição do trabalho inicial executado antes de o projecto propriamente dito se ter iniciado, por forma a integrar-me na metodologia e nas tecnologias de desenvolvimento usadas pela empresa. No Capítulo 5, Revisão Tecnológica, analisa-se o estado da arte, fazendo uma análise crítica sobre as soluções existentes ou semelhantes, e as suas lacunas. Segue-se também uma análise crítica sobre as possíveis tecnologias a usar na implementação do sistema. No Capítulo 6, Especificação, descrevem-se os vários tipos de requisitos da solução a implementar, justificando-se também as tecnologias adoptadas. Pedro Saraiva – Relatório da disciplina de Estágio/Projecto Industrial 2010/2011 5 Introdução iEnergy – Eficiência Energética em Edifícios No Capítulo 7, Arquitectura e Implementação da Plataforma, começa-se por apresentar a arquitectura global da aplicação. De seguida é efectuada uma descrição pormenorizada da solução desenvolvida, na qual se refere os vários aspectos e detalhes do modelo de dados e da interface. No Capítulo 8,Verificação e Validação, são apresentados os testes e verificações que o software foi sujeito de forma a garantir que estava dentro dos parâmetros de qualidade desejados. No Capítulo 9, Avaliação de Resultados, faz-se uma análise e discussão sobre os resultados obtidos no estágio. 6 Pedro Saraiva – Relatório da disciplina de Estágio/Projecto Industrial 2010/2011 iEnergy – Eficiência Energética em Edifícios Análise do Problema 2 Análise do Problema Neste capítulo é feita a apresentação do problema num contexto global. São também apresentados alguns conceitos fundamentais para uma melhor compreensão do problema e do projecto. 2.1 Conceitos Fundamentais Para melhor se compreender o âmbito do projecto em estudo, existe um conjunto de tópicos referentes à plataforma - iEnergy -, cuja apresentação é pertinente. Na secção de “Glossário e Definições” existem ainda um conjunto de definições relacionadas com a gestão de energia que também podem ser úteis para uma melhor compreensão do projecto. 2.2 Plataforma iEnergy A solução - iEnergy - é composta por vários módulos de software e hardware. O hardware é composto por sensores que recolhem vários tipos de dados de consumos energéticos. Este hardware comunica através da internet com uma plataforma de recolha de dados - o iCenter -, que posteriormente passa esses dados para a camada de processamento de dados - o iEnergy -, que os trata e os disponibiliza para plataformas clientes através de web services, como mostra a Figura 1. Fornecimento de dados Domestico Escolas Tratamento de dados iEnergy Recolha iCenter Edifícios Web Aquisição Figura 1 - Camadas da plataforma Pedro Saraiva – Relatório da disciplina de Estágio/Projecto Industrial 2010/2011 7 Análise do Problema iEnergy – Eficiência Energética em Edifícios Cada uma dessas camadas do software é descrita de seguida: Aquisição – O harware da ISA que é instalado e configurado para monitorizar variáveis energéticas. O hardware depois de instalado envia os dados recolhidos para a plataforma iCenter -; Recolha – A plataforma - iCenter - recebe os dados e armazena-os localmente. Posteriormente encaminha-os para a camada superior, o - iEnergy -, para que as análises de alto nível possam ser realizadas; Tratamento de dados – Nesta camada encontra-se o core da plataforma - iEnergy - que valida os dados e faz análises de alto nível aos dados recebidos; Fornecimento de dados – Nesta camada encontram-se os vários end points de web service que são usados por GUIs clientes para receber e enviar dados da e para a plataforma. As camadas inferiores da plataforma, nomeadamente as camadas de aquisição e recolha de dados, estão fora do âmbito deste projecto, e são apenas apresentadas de forma a ser possível perceber como é que os dados chegam à plataforma - iEnergy -. A solução desenvolvida durante o estágio passou pelas restantes camadas, a camada de processamento de dados e camada de fornecimento de dados e ainda pela camada de apresentação. Esta abordagem foi pensada tendo em conta que nem todas a funcionalidades necessárias ao software de edifícios estavam implementadas no core da aplicação. Por isso foi necessário desenvolver trabalho nesta camada de modo a obter suporte para uma nova aplicação web destinada a gestão energética em edifícios. 2.2.1 Principais Entidades do Sistema O sistema é constituído por várias entidades, sendo que para compreender o seu funcionamento se torna necessário introduzir aqui cada uma delas: Unidade: A unidade é o hardware situado nas instalações do cliente e que recebe leituras dos dispositivos. Estas leituras são posteriormente passados para a plataforma - iEnergy - com a finalidade de os dados serem guardados e tratados. Dispositivos: São outra peça de hardware que se encontra no local a ser monitorizado. Os dispositivos podem ler diversos parâmetros (energia activa, energia reactiva, corrente, potência). Estes dispositivos enviam os dados que recolhem para a unidade que os controla. Uma unidade pode controlar mais do que um dispositivo. Os dispositivos podem também ser ligados a equipamentos específicos como por exemplo a sistemas AVAC com objectivo de medir os seus gastos energéticos individualmente ou mesmo actuar sobre eles ligando-os e desligando-os; 8 Pedro Saraiva – Relatório da disciplina de Estágio/Projecto Industrial 2010/2011 iEnergy – Eficiência Energética em Edifícios Análise do Problema Tag: É onde são guardados os parâmetros lidos pelos dispositivos. Se um dispositivo medir a corrente e a energia activa vão existir duas tags para esse dispositivo. Local - O local é a localização onde o hardware de monotorização remota está instalado. Pode corresponder a uma casa, a um edifício etc. Como podemos ver pela Figura 2, as unidades estão no topo de uma hierárquia, sendo uma peça de hardware. São responsáveis por recolher os dados de cada um dos dispositivos instalados num edifício, sendo que o edifício pode ter mais do que um dispositivo que comunica com as unidades através de Wireless ou ZigBee. No fim da hierárquica estão as tags que não são mais que tipos de medições, podendo ser de energia activa, temperatura, ou energia reactiva, entre outras. Unidades Edificio 1 Dispositivos Tags Sala 1 Energy Sala 2 Temperature Humidity Figura 2 - Organização das principais Entidades do Sistema Outra entidade importante são os grupos lógicos: com estes grupos pretende-se agrupar logicamente as unidades, os dispositivos ou as tags. Com os grupos pretende-se facilitar a vida ao utilizador organizando os dispositivos, tags e unidades de forma lógica e hierarquizada possibilitando uma visualização fácil da organização. Estes grupos podem mesmo agrupar edifícios separados geograficamente. 2.2.2 Descrição Geral do Projecto de Estágio O levantamento de informação que serviu de suporte ao estágio foi feito através da documentação da plataforma o - iEnergy -, pesquisa de informação em várias páginas web acerca do tema, do estudo Pedro Saraiva – Relatório da disciplina de Estágio/Projecto Industrial 2010/2011 9 Análise do Problema iEnergy – Eficiência Energética em Edifícios dos trabalhos realizados na área (nomeadamente da concorrência), e reuniões com pessoas associadas ao projecto. Nesta secção realiza-se uma apresentação de todo o sistema num contexto geral, referindo os seus intervenientes. 2.2.2.1 Intervenientes Para este sistema identificou-se a existência de três classes de utilizadores: O Utilizador Geral é um utilizador não registado, que portanto nada pode fazer no sistema. Para um Utilizador Geral se tornar um utilizador registado terá de pedir acesso ao administrador do sistema. Nesta aplicação não existe o conceito de registo de utilizador: todos os utilizadores são adicionados ao sistema por um utilizador administrador. O Utilizador Registado, para além de usufruir dos privilégios de um Utilizador Geral, tem ainda permissão para introduzir novos objectos no sistema, assim como para os editar e remover. Existem dois tipos de utilizadores registados nesta plataforma: o Cliente e o Gestor de Energia: cada um deles tem permissões diferentes. O Cliente tem acesso à plataforma apenas para ver indicadores (não os pode alterar) e extrair relatórios predefinidos (não os pode alterar) dos projectos a que está alocado tendo restrições ao nível dos grupos lógicos que pode ver. O Gestor de Energia pode ver qualquer grupo lógico inserido no sistema bem como configurar indicadores, unidades, tags virtuais, entre outras opções de que falaremos mais à frente. Não pode adicionar nem remover utilizadores do sistema. Por último, o Administrador tem acesso total à plataforma e pode adicionar, remover e editar qualquer entidade. Apenas este utilizador especial pode gerir os Utilizadores Privilegiados, ou seja, criar novos utilizadores deste tipo, assim como editá-los e removê-los. Nenhum dos utilizadores precisa de ter um vasto conhecimento técnico pois toda a interacção com o sistema é feita intuitivamente através de um browser. 2.2.2.2 Solução Global O sistema desenvolvido no presente estágio tem como objectivo disponibilizar um método (semi-) automático para efectuar a análise de consumo energético em edifícios, e ao mesmo tempo detectar situações anómalas de consumos automaticamente, permitindo identificar eventuais desperdícios de forma a ser possível tomar medidas para os resolver. 10 Pedro Saraiva – Relatório da disciplina de Estágio/Projecto Industrial 2010/2011 iEnergy – Eficiência Energética em Edifícios Análise do Problema Com base no estudo realizado verificou-se que o sistema deveria ser constituído por várias partes e a interacção ser feita através de uma aplicação web, cujo intuito é de ser acessível online com acesso restrito. Como já foi referido este novo sistema será integrado na plataforma já existente, o - iEnergy -. Portanto este estágio encontra-se dividido em duas partes: 1) Construção de raiz de uma plataforma web que permita a visualização e análise de consumos energéticos em edifícios; 2) Implementação de novas funcionalidades na plataforma - iEnergy -,: pretende-se disponibilizar um conjunto de funcionalidades que ajudem as pessoas responsáveis pela gestão da energia em edifícios na sua tarefa do dia á dia. O sistema deve portanto satisfazer as seguintes áreas de requisitos: Aplicação Web o Área de análise e comparação Contém todas as funcionalidades de análise e comparação de variáveis energéticas. o Navegação entre os grupos lógicos (edifícios). Selecção de variáveis energéticas nesses grupos lógicos. Escolha da unidade em que se pretende ver os consumos (KWh=> CO2). Visualização de consumos em forma gráfica e tabelas. Exportação de dados para Excel. Área de alarmes Contém todas as funcionalidades para criação, edição e visualização de alarmes. o Lista de alarmes disparados no sistema. Marcação de alarmes já resolvidos. Área de Actuação Contém as funcionalidades de gestão de actuações sobre dispositivos que permitam essa funcionalidade (agendar acções como ligar e desligar dispositivos). o Simulação de tarifários o Contém as funcionalidades de visualização de comparação de tarifários. Relatórios Listar de actuações. Apresentação de relatórios de interesse para o gestor de energia. Plataforma iEnergy Pedro Saraiva – Relatório da disciplina de Estágio/Projecto Industrial 2010/2011 11 iEnergy – Eficiência Energética em Edifícios Análise do Problema o Tarifários de electricidade Contém toda a funcionalidade de criação e edição de tarifários de electricidade. o Cálculo de Tarifários de Energia eléctrica o o Verificação de actuações que devem ser feitas sobre os dispositivos. Gestão de Grupos Contém todas as funcionalidades de criação de grupos lógicos. Criação de Indicadores (operações sobre tags). Criação de Tags Virtuais (operações entre tags). Gestão de permissões nos grupos. Verificação de Alarmes o Contém toda a funcionalidade de cálculo de tarifários de energia eléctrica. Verificação de actuação o Navegação entre tarifários. Verificação de lançamento de alarmes. Simulação de tarifários Cálculo de custos de energia para cada um dos tarifários no sistema. Este sistema deve estar constantemente disponível e não deve permitir acessos indevidos, ou seja, deve permitir apenas as funcionalidades a que um utilizador de um dado nível tenha acesso. Pretendese que possa ser acedido através de qualquer browser instalado num computador pessoal. Em termos de desempenho pretende-se que as pesquisas sobre os dados sejam tão rápidas quanto possível. Deve ainda permitir um acesso multi-utilizador igualmente com bom desempenho. Estes requisitos serão descritos de forma mais detalhada na secção 6. 12 Pedro Saraiva – Relatório da disciplina de Estágio/Projecto Industrial 2010/2011 iEnergy – Eficiência Energética em Edifícios Plano de Trabalhos 3 Plano de Trabalhos do Estágio Neste capítulo é apresentado o plano de trabalhos do estágio: em primeiro lugar, a metodologia de desenvolvimento de software; em seguida são mostradas as planificações feitas para as tarefas desenvolvidas no contexto deste projecto. Inicialmente efectuou-se uma análise do problema, já apresentada no capítulo anterior. Seguiu-se o levantamento do estado da arte, com vista a verificar as soluções existentes ou semelhantes. Foi também efectuada uma análise sobre as tecnologias existentes, a considerar para serem utilizadas no desenvolvimento da aplicação web. Após isso foi feita a especificação do sistema, detalhando fundamentalmente as partes que foram implementadas durante o estágio. Para finalizar esta primeira fase foram escolhidas as tecnologias a utilizar e foi feita uma aprendizagem intensiva com o auxílio de documentação apropriada. Na fase seguinte deu-se início à implementação do sistema começando pela base de dados e prosseguindo depois pela plataforma (core e web service) até a aplicação web durante os quatro meses seguintes. Finalmente procedeu-se à escrita do presente documento e à afinação do sistema e correcção de problemas. 3.1 Metodologia de Desenvolvimento Implementar software de dimensão significativa sem usar nenhuma metodologia para guiar o desenvolvimento poderá levar o projecto ao insucesso. Realizar desenvolvimento de software usando uma metodologia que não se adequa ao projecto, ou porque não foram tidas em conta as especificidades do projecto e da equipa, ou porque no decorrer do processo se revelou pouco adequada ao mesmo, também condena desde logo tal projecto ao fracasso. Existem já muitos estudos [3] que alicerçam esta opinião. Existem várias métricas que podem ser usadas na escolha da metodologia, neste caso a equipa de energia da ISA do departamento de software (o departamento onde se insere o projecto de estágio) utilizava já o scrum no desenvolvimento de software, e foi portanto essa a metodologia de desenvolvimento usada. Neste estágio apesar de a maior parte do tempo ter trabalhado sozinho era necessário ter grande contacto com a equipa de desenvolvimento do - iEnergy -, devido ao facto de este ser um projecto no seu global muito complexo com várias camadas onde era necessária a ajuda de alguém com conhecimento da plataforma. Desta forma foi possível reduzir o tempo de estudo da plataforma, para além de que possibilitou a integração dos módulos construídos durante o estágio na solução global e permitiu actualizadar a documentação do projecto com o que ia sendo feito. Desta forma foi possível manter todos os elementos da equipa de desenvolvimento com o mesmo nível de conhecimento sobre o Pedro Saraiva – Relatório da disciplina de Estágio/Projecto Industrial 2010/2011 13 iEnergy – Eficiência Energética em Edifícios Plano de Trabalhos que estava a ser feito e o que tinha sido feito de modo a não existirem grandes discrepâncias nos desenvolvimentos. 3.1.1 Descrição do Scrum O scrum é uma metodologia ágil para gestão e planeamento de projectos. As metodologias ágeis de desenvolvimento de software são iterativas, ou seja, o trabalho é dividido em iterações, que são chamadas de sprints no caso do scrum. Esta metodologia caracteriza-se pela elevada produtividade das equipas envolvidas, obtida através de diversas técnicas que vão desde a construção de um sólido espírito de equipa, a uma forte autoresponsabilização da mesma, e uma consistente componente de melhoria contínua dos processos de desenvolvimento. As funcionalidades a serem implementadas durante o projecto são mantidas numa lista que é conhecida como product backlog. No início de cada sprint, faz-se um sprint planning meeting, ou seja, uma reunião de planeamento na qual o product owner prioriza os itens do product backlog e a equipa selecciona as actividades que ela será capaz de implementar durante o sprint que se inicia. As tarefas alocadas a um sprint são transferidas do product backlog para o sprint backlog. A cada dia de um sprint, a equipa faz uma breve reunião (normalmente de manhã), chamada daily scrum. O objectivo é disseminar conhecimento sobre o que foi feito no dia anterior, identificar impedimentos e priorizar o trabalho do dia que se inicia. No final de um sprint, a equipa apresenta as funcionalidades implementadas num sprint review meeting. Finalmente, faz-se um sprint retrospective e a equipa parte para o planeamento do próximo sprint. Assim reinicia-se o ciclo. Figura 3 - Ciclo de desenvolvimento do Scrum 14 Pedro Saraiva – Relatório da disciplina de Estágio/Projecto Industrial 2010/2011 iEnergy – Eficiência Energética em Edifícios Plano de Trabalhos 3.2 Aplicação do Scrum no Projecto de Estágio A abordagem que foi usada durante o projecto foi baseada no scrum, conforme já referido. Assim o projecto foi dividido em vários sprint’s, e no final de cada um foi feita uma publicação do software para testes e para o cliente, de modo a que o sistema fosse validado e avaliado desde o início do seu desenvolvimento. Pretendeu-se desta forma desenvolver o sistema de forma gradual disponibilizando mais rapidamente as funcionalidades prioritárias, sendo alvo de uma maior verificação e teste, corrigindo os problemas de uma forma controlada e construindo os vários módulos do sistema tendo o que já estiver concretizado a funcionar correctamente e portanto evitando problemas maiores. Como já referi, ao longo do decorrer deste projecto trabalhei inserido numa equipa de desenvolvimento. Uma característica do scrum que foi muito explorada neste trabalho é o facto de este ter sido baseado fortemente em user stories e casos de uso. De facto, foram elaborados vários diagramas de casos de uso e foram elaboradas user stories para cobrir os requisitos identificados. Esse trabalho revelou-se fulcral para compreender exactamente aquilo que era esperado de mim a nível do comportamento da aplicação. 3.2.1 Fases do Scrum Nesta subsecção são apresentadas todas as fases pelas quais o projecto passou, e é explicada cada uma delas. 3.2.1.1 Pré- Game(Análise) O primeiro sprint do projecto foi dedicado ao estudo da plataforma existente das tecnologias a usar e da concorrência, finalizado com a recolha e análise de requisitos para a plataforma que se pretendia construir. Deu-se assim início à construção do product backlog com as user stories que constituem os requisitos do sistema. Nesta fase foram também apresentadas as ferramentas à equipa de projecto e os prazos a cumprir. O sprint backlog foi actualizado através da ferramenta JIRA pelo menos uma vez por dia actualizando sempre o tempo estimado para conclusão da tarefa e o tempo investido na realização de cada tarefa. 3.2.1.1.1 Product BackLog (Product owner) Nesta primeira fase foi criado o backlog. O backlog foi baseado na informação do cliente, situação de mercado (estudo da competição), requisitos competitivos e o conhecimento de que funcionalidades são mais necessárias. O backlog construído durante o estágio encontra-se na secção 6 contendo todas as funcionalidade implementadas durante o mesmo. Pedro Saraiva – Relatório da disciplina de Estágio/Projecto Industrial 2010/2011 15 Plano de Trabalhos iEnergy – Eficiência Energética em Edifícios 3.2.1.1.2 Ferramentas de Suporte Ao longo do estágio foram usadas várias ferramentas mas devem-se destacar em especial duas delas, visto terem sido, na minha opinião de vital importância para o sucesso do projecto e suporte do scrum: a ferramenta JIRA e o SVN. SVN – Foi usado um repositório com todos os artefactos gerados durante o projecto: este foi um repositório SVN. Um repositório SVN permitir ter um histórico de alterações de código e de documentação. JIRA – Ferramenta de gestão de projecto, onde é possível ver todas as tarefas atribuídas em cada um dos sprint’s, atrasos, etc. Esta ferramenta foi usada diariamente, as tarefas foram sendo actualizadas e os bugs reportados. Balsamic Mockups – Para construir protótipos de interface com o utilizador de modo a validar os requisitos do sistema. EnterpriseArchitect - Uma ferramenta que oferece capacidade de gestão. Foi utilizada para modelizar a solução de software nos seus vários domínios, desde a análise de requisitos ao desenho detalhado; 3.2.1.1.3 Equipa e Papéis A equipa em que estive inserido é designada por equipa de energia e é constituída por oito elementos de diferentes perfis, desde o firmware, sistemas embutidos até ao software. Uma equipa com vastos conhecimentos na área, que me permitiu uma rápida integração no projecto e que muito ajudou durante o desenvolvimento. O team leader desta equipa assumiu o papel de scrum master. Já o papel de product owner foi assumido pelo gestor de energia da ISA. 3.2.1.1.4 Datas O projecto teve a duração nove meses. Em termos de scrum estava previsto o projecto estar divido em 4 sprints sendo que o último sprint seria apenas para correcção de bugs e preparação da release final. O primeiro sprint seria usado para o estudo da plataforma e das tecnologias. 3.2.1.1.4.1 Primeiro semestre O estágio " iEnergy – Eficiência Energética em Edifícios" teve início dia 22 de Novembro de 2010 no seio da empresa ISA, sediada em Coimbra, em regime de tempo parcial com uma carga horária média prevista de 16 horas por semana, conforme o dimensionamento feito para a disciplina de estágio neste semestre. 16 Pedro Saraiva – Relatório da disciplina de Estágio/Projecto Industrial 2010/2011 iEnergy – Eficiência Energética em Edifícios Plano de Trabalhos O objectivo inicial deste estágio seria o estudo da plataforma existente o - iEnergy -, estudo de tecnologias e especificação de requisitos para a plataforma tendo como output desta fase a especificação técnica do software. O planeamento proposto inicialmente pode ser visualizado no diagrama de gantt da Figura 4. Figura 4 – Diagrama de Gantt com o planeamento inicial do trabalho a realizar no primeiro semestre. Uma das primeiras tarefas a realizar durante este período de tempo deveria ser a definição das linguagem(s) de programação/tecnologia(s) que seriam utilizadas na fase de implementação para a aplicação web já que para os outros módulos a tecnologia já se encontrava escolhida. Previa-se, também, que seria realizada, nesta fase, a descrição detalhada da aplicação a desenvolver, nomeadamente em termos das funções/métodos a implementar (variáveis de entrada, variáveis de retorno, objectivo de cada uma, entre outros aspectos). Esta fase implicaria também a elaboração de um diagrama de classes (no caso de ser usada uma linguagem de programação orientada a objectos, naturalmente) e de um diagrama entidade-relacionamento para a novas tabelas que seriam necessárias, visto que se previa a integração de novas funcionalidades na plataforma - iEnergy -. 3.2.1.1.4.2 Segundo semestre No segundo semestre o estágio passou a ser regime de tempo inteiro (ou seja, com um esforço previsto de 40 horas semanais.O trabalho foi todo desenvolvido nas instalações da ISA, em Coimbra. Foi feito um planeamento cuidado do trabalho a realizar neste semestre. Como tal recorreu-se ao uso de um diagrama de gantt para distribuir temporalmente todas as tarefas a realizar, diagrama esse que pode ser visualizado na Figura 5. Figura 5 – Diagrama de Gantt com o planeamento do trabalho a realizar no segundo semestre Pedro Saraiva – Relatório da disciplina de Estágio/Projecto Industrial 2010/2011 17 iEnergy – Eficiência Energética em Edifícios Plano de Trabalhos Neste semestre previa-se a construção de protótipos fazendo uso das tecnologias analisadas no semestre anterior. Previa-se ainda a implementação dos requisitos especificados no semestre anterior em cada um dos módulos da aplicação. No final do semestre dar-se ia início aos testes da aplicação. Estava previsto que a fase de testes durasse cerca de um mês e meio, de acordo com o diagrama de gantt da Figura 5. Previa-se ainda que a escrita do relatório fosse feita ao longo de todo o semestre, documentando o trabalho à medida que este fosse sendo realizado e que o estágio fosse entregue na época normal, até dia 4 de Julho de 2011. 3.2.1.2 Game (Análise, Desenho, Construção, Pré-produçao) Nesta fase foi iniciado o desenvolvimento do produto iterativamente. Na tabela seguinte é apresentado o loop que foi seguido até a conclusão da implementação que constitui cada um dos sprint’s com as suas respectivas entradas e saidas. Fases Scrum Entrada Análise Planeamento da Sprint Backlog Priorizado e Sprint Backlog, Objectivo Estimado da Sprint Sprint Backlog, Objectivo da Demo da Iteração Desenho e Sprint = Iteração Sprint Construção Pré- Saida Revisão da Sprint Demo da Iteração Validação de Objectivos Retrospectiva Validação de Objectivos Lista de Impedimentos Produção Análise Tabela 1 - Fases do Game do Projecto 3.2.1.2.1 Reunião de Planeamento Sprint Cada um dos sprint’s que ocorreram durante o estágio iniciaram-se com uma reunião de planeamento. Nesta reunião o product owner (o gestor de energia) apresentou as prioridades dos trabalhos existentes no product backlog. Foram esclarecidas dúvidas sobre o trabalho a desenvolver, por forma a estimar cada um dos desenvolvimentos. No fim da reunião foram apresentados os compromissos para o sprint a iniciar, foi então criado o sprint backlog. Participantes: Equipa Técnica, Scrum Master, Product Owner 3.2.1.2.2 Sprint Durante este período de desenvolvimento, a equipa focou-se no cumprimento dos objectivos por si definidos para cada sprint. Todos os dias, a equipa efectuou uma reunião (daily scrum meeting). No 18 Pedro Saraiva – Relatório da disciplina de Estágio/Projecto Industrial 2010/2011 iEnergy – Eficiência Energética em Edifícios Plano de Trabalhos gantt não é possível ver a divisão por sprint’s. O gantt do segundo semestre não foi exactamente seguido já que se pretendia entregar partes do software já funcionais que pudessem ser vistas e testadas pelo cliente. O sprint inicial incluiu o estudo da plataforma, estado de arte, especificação dos requisitos e especificação técnica. O último sprint como já foi referido foi apenas dedicada a testes e correcções e preparação para a entrega do software. De cada sprint saiu uma demo que foi entregue ao cliente e a equipa de testes. Participantes: Equipa técnica, Scrum Master e Product Owner. 3.2.1.2.2.1 Reunião Diária Durante cada sprint foram realizadas reuniões diárias, cuja duração limite era de 15 minutos com todos os elementos da equipa de energia, cada elemento da equipa respondia a três perguntas colocadas pelo scrum master: “Que foi feito desde a última reunião?”; “Que vais fazer até à próxima reunião?”; “Há algo que te impeça de trabalhar o máximo que consegues?”. Apenas estas questões deveriam ser respondidas para manter a reunião rápida e objectiva. Deste modo, a equipa ficava sincronizada com o trabalho que estava a ser desenvolvido no âmbito do projecto. Participantes: Equipa e Scrum Master. 3.2.1.2.3 Revisão No final de cada um dos sprints foi feita uma sprint review para verificar se os requisitos tinham sido todos implementados e da maneira que especificada. Participantes: Equipa e scrum master. 3.2.1.2.4 Retrospectiva Nas reuniões de retrospectiva foram apresentadas ao product owner e aos stakeholders todos os produtos do sprint concluídos. Esta apresentação foi feita por mim, numa reunião com duração predefinida (time-boxed). A reunião foi pública, e todos os interessados puderam assistir. 3.2.1.3 PosGame (Operacionalização) Nesta fase o desenvolvimento esta concluído e os produtos foram preparados para a publicação final. Esta fase incluiu: Integração, testes (Aceitação, Sistema, Integração), documentação de Pedro Saraiva – Relatório da disciplina de Estágio/Projecto Industrial 2010/2011 19 Plano de Trabalhos iEnergy – Eficiência Energética em Edifícios utilizador, manual de instalação, preparação de treino e de material de marketing. Uma vez concluída toda a fase de desenvolvimento, o sistema foi testado e validado na sua totalidade, corrigindo eventuais falhas. 3.3 Opinião pessoal O scrum foi uma experiencia interessante que permitiu que o projecto fluísse a boa velocidade e que envolvesse toda a gente. Permitiu também a rápida identificação de requisitos que não estavam de acordo com o esperado sendo melhorados nos sprint’s seguintes. Verificaram-se alguns atrasos no projecto, sobretudo no início, visto que alguns pormenores do software que se pretendia desenvolver, demoraram algum tempo a estar totalmente definidos, até porque este foi um projecto em que se esteve a trabalhar numa área nova, e que foi começado de raiz com o presente estágio, sob direcção do meu orientador da ISA. E também porque na altura não existia na empresa, ninguém com o conhecimento necessário na área de negócio B2B de energia. Esta metodologia permitiu que quando tudo estava já normalizado, o projecto avançasse a ritmo elevado permitindo assim atingir os objectivos traçados. Ou seja, existiram mudanças de requisitos ao longo da evolução do projecto de software e todos os elementos do projecto tiveram, geralmente, uma palavra a dizer sobre esses mesmos requisitos e sobre a forma de os implementar. O scrum permitiu esta flexibilidade. Sendo que o - iEnergy - é uma plataforma complexa que necessita de alguns conhecimentos tanto a nível técnico como a nível de negócio foi decido que devia ser integrado na equipa de energia da ISA. A metodologia scrum permitiu o fácil adaptar ao projecto com ajuda constante da equipa em que estava inserido. Penso que a abordagem flexível do scrum permitiu lidar com todas as vicissitudes e contrariedades que foram aparecendo ao longo do projecto coisa que num modelo rígido não funcionaria. Uma palavra também para equipa que no espírito do scrum foi de uma grande ajuda ao longo do projecto. Fui-se mantendo um contacto permanente entre a equipa, precisamente para esclarecer questões e para descrever e mostrar o trabalho que ia realizando ao longo do tempo, permitindo feedback constante. 20 Pedro Saraiva – Relatório da disciplina de Estágio/Projecto Industrial 2010/2011 iEnergy – Eficiência Energética em Edifícios Fase de Integração 4 Fase de Integração Na fase inicial do estágio fui inserido num projecto de monitorização energética em embarcações, onde tive oportunidade de me integrar no processo de desenvolvimento da ISA. Tive ainda a possibilidade de aprender as tecnologias utilizadas pela ISA para desenvolvimento das suas plataformas, já que nunca tinha trabalhado com as tecnologias usadas. Esta fase não estava prevista no planeamento inicial do projecto apresentado na secção 3. Esta fase justifica-se pelo atraso no arranque do projecto em que foi efectuado o meu estágio, atraso este devido a questões de negócio que a mim são alheias. Neste projecto tive a responsabilidade de construir relatórios de análise energética em ambiente web, validação de viagens de embarcações, inserção de viagens através do serviço de bilhética, bem como a implementação de alarmes num serviço de GPRS (já construído). 4.1 Eficiência Energética em Embarcações O projecto eficiência energética em embarcações era já um projecto em curso quando começou o meu estágio na ISA, e faz parte também dos projectos de monotorização energética. É um pouco diferente da monotorização energética em edifícios já que neste caso os consumos são de gasolina e não de electricidade ou gás. Este projecto usou a metodologia já mencionada no Capítulo 3, o scrum. O projecto esteve dividido em seis sprint’s de quinze dias cada, estando eu apenas alocado nos tês últimas sprint’s. Este sistema é inteiramente baseado em tecnologias TCP-IP. Todos os módulos de software a instalar nos diversos locais de interesse assim como a solução embarcada são baseados nessa tecnologia. Existem torniquetes que controlam a entrada de passageiros nas embarcações, que permitem o cálculo de cargas de cada percurso com base na informação estimada de passageiros e combustível. Existem também unidades de GPS que a cada instante guardam a posição, velocidade e outros dados relevantes. Existe também o caldalímetro que permite a monotorização do consumo instantâneo. Faz-se a monotorização do nível do combustível de cada tanque da embarcação e usam-se tags RFID que permitem detectar com exactidão as atracagens dos navios, permitindo a separação dos tempos das viagens. É também possível a detecção da localização da embarcação quando parada. Nesta secção não farei uma descrição exaustiva - já que este projecto sai um pouco do meu projecto de estágio-, mas apenas uma descrição geral. Este sistema perminte a gerir e analisar dados relativos à gestão energética de uma frota de embarcações dotadas de um equipamento de monitorização. Pedro Saraiva – Relatório da disciplina de Estágio/Projecto Industrial 2010/2011 21 Fase de Integração iEnergy – Eficiência Energética em Edifícios Todos os dados recolhidos e armazenados na base de dados podem ser visualizados através deste sistema, que permite agrupar a informação de acordo com um conjunto de critérios, tais como: embarcação, mestre, carreira, data, etc. Além disso, podem ser extraídos vários indicadores relativos à situação energética das embarcações e relacioná-los com os serviços prestados indicadores estes especificados nas secções seguintes. 4.2 Análise de Requisitos Neste projecto fiquei encarregado da área de alarmística do serviço de GPRS e de relatórios. O módulo de alarmística já se encontrava especificado e foi só necessário proceder à sua implementação. No caso dos relatórios existiam protótipos e os requisitos foram recolhidos a partir desses mesmos protótipos e de conversas com o representante do cliente. O Anexo VI contém os requisitos em mais pormenor. 4.3 Requisitos Funcionais Nesta secção são apresentados os requisitos funcionais do sistema a desenvolver neste projecto inicial. 4.3.1 Definições Chave Antes de falarmos dos requisitos para este projecto inicial de estágio vão ser introduzidos nesta secção definições importantes relacionadas com o mesmo. 4.3.1.1 Tipos de Viagem Os tipos de viagens que existem neste sistema são: Carreira - Viagens regulares de passageiros, com um horário pré-definido. Aquecimento - Período entre o momento em que o navio é ligado e a primeira viagem. Este período caracteriza-se pelo aquecimento dos motores. É iniciado quando os caudalímetros estão a zero e termina com o início de uma viagem. Manobras - O período de manobras está incluído na carreira e está relacionado com os movimentos de aproximação e afastamento dos pontões. É identificado quando a velocidade do navio é maior que zero e o valor das tags RFID são diferentes de zero. 22 Tempo ao Cais - Período em que a embarcação está parada nos pontões. Outras Viagem - Todas as movimentações dos navios não incluídas nos pontos anteriores Pedro Saraiva – Relatório da disciplina de Estágio/Projecto Industrial 2010/2011 iEnergy – Eficiência Energética em Edifícios 4.3.1.2 Fase de Integração Serviço de Bilhética A bilhética é um serviço externo ligado aos torniquetes de forma a controlar a entrada de passageiros na embarcação. Este serviço guarda dados referentes a cada embarcação como o número passageiros por embarcação/viagem, o início e o fim da mesma e também as docas de partida e de chegada. Este serviço gera um ficheiro com os esses dados para cada uma das viagens realizadas ao logo do dia. No final do dia este ficheiro é enviado para um servidor FTP. Posteriormente o sistema de monitorização lê esse mesmo ficheiro de forma a recolher os dados contidos nele. Através do serviço de bilhética é possível saber o número de passageiros e em conjugação com o caldalímetro é também possível estimar o peso transportado em cada viagem (peso dos passageiros vezes o peso do combustível). Através destes dados é ainda possível calcular outros indicadores que são descritos nas secções seguintes. 4.3.1.3 Serviço de GPRS Através do serviço de GPRS é possível saber a velocidade e a distância percorrida em cada viagem. No serviço de GPRS existe ainda um sistema de classificação automática de viagens que através das tags RFID e do GPS permite separa cada tipo de viagem e os seus tempos, estes tempos são também usados no cálculo de indicadores. 4.3.2 Módulo Associação de Mestres a Viagem Este módulo tem por objectivo a associação de mestres a viagens através da importação de um ficheiro Excel contendo os dados da associação. Os mestres serão associados as viagens previamente inseridas na BD, através do turno e da embarcação. Este ficheiro pode ser importado através da UI, onde pode também ser especificado o dia no qual se inicia a importação do ficheiro. 4.3.3 Módulo Relatórios Neste módulo pretende-se a disponibilização de um conjunto de relatórios relativos a eficiência das embarcações. Este módulo tem como objectivo permitir a pré-visualização e exportação de relatórios relativos a indicadores gerais das embarcações para um mês ou um ano. Permite a exportação para os seguintes formatos XLS, DOC, PDF. 4.3.3.1 Relatórios das Embarcações, com Dados Mensais Este relatório permite ver alguns dados relativos a uma determinada embarcação, deforma a inferir a sua eficiência energética. Pedro Saraiva – Relatório da disciplina de Estágio/Projecto Industrial 2010/2011 23 Fase de Integração iEnergy – Eficiência Energética em Edifícios De seguida é apresentada a forma que cada um destes indicadores é calculado: Consumo Horário (L/h) (caudalímetro) – Consumo médio horário de uma embarcação numa viagem do tipo carreira; Consumo Horário (L/h) (Registos) – Consumo médio horário de uma embarcação numa viagem do tipo carreira através dos registos de consumos inseridos; Consumo/Carreira (L) (caudalímetro) – Consumo médio de uma embarcação por viagem do tipo carreira; Consumo/Carreira (L) (Registos) – Consumo médio de uma embarcação por viagem do tipo carreira através dos registos de consumos inseridos; Consumo Total (L) (caudalímetro) – Soma dos consumos de uma embarcação; Consumo Total (L) (Registos) – Soma dos consumos de uma embarcação dos registos de consumos inseridos; Custo/Km (Euro/km) – Custo médio da embarcação por Km percorrido; Distância/Carreira – Distância media percorrida por viagem do tipo carreira; Eficiência da Oferta (pKm/L) - Eficiência média da oferta por pKm/L; Eficiência da Procura (pKm/L) – Eficiência média da procura por pKm/L; Motores/Carreira (%) – Percentagem de utilização dos motores em viagens do tipo carreira (( Tempo viagem tipo carreira - tempo viagem manobras)/( Tempo outras viagens – Tempo carreira - Tempo manutenção)); Passageiros/Carreira (nº) - Número médio de passageiros por viagem do tipo carreira; Peso transportado (Kg) – Peso médio transportado por viagem do tipo carreira; Tempo/Viagem (min) - Duração média de cada viagem do tipo carreira; Velocidade (nós) - Velocidade média das viagens do tipo carreira; Carreiras realizadas – Soma das viagens do tipo carreira realizadas. 4.3.3.2 Relatórios do Uso da Embarcação Este Relatório vai estar divido em várias partes, cada uma dessas partes é descrita na secção seguinte. Em qualquer um dos casos, se a embarcação escolhida não possuir caudalímetro os indicadores que são afectados por isso devem conter as iniciais N/A (não aplicável), e caso não existam registos devem conter as iniciais S/D (sem dados). 24 Pedro Saraiva – Relatório da disciplina de Estágio/Projecto Industrial 2010/2011 iEnergy – Eficiência Energética em Edifícios Fase de Integração 4.3.3.2.1 Dados Gerais Os indicadores da tabela para cada um dos meses do ano com os dados gerais da embarcação são calculados da seguinte forma: Consumo Horário (L/h) (caudalímetro) – Consumo médio horário de uma embarcação numa viagem do tipo carreira; Consumo Horário (L/h) (Registos) – Consumo médio horário de uma embarcação numa viagem do tipo carreira através dos registos de consumos inseridos; Consumo/Carreira (L) (caudalímetro) – Consumo médio de uma embarcação por viagem do tipo carreira; Consumo/Carreira (L) (Registos) – Consumo médio de uma embarcação por viagem do tipo carreira através dos registos de consumos inseridos; Consumo Total (L) (caudalímetro) – Soma dos consumos de uma embarcação; Consumo Total (L) (Registos) – Soma dos consumos de uma embarcação através dos dados inseridos; Custo/Km (Euro/km) – Custo médio da embarcação por Km percorrido; Distância/Carreira – Distância média percorrida por viagem do tipo carreira. Eficiência da Oferta (pKm/L) - Eficiência média da oferta por pKm/L; Eficiência da Procura (pKm/L) – Eficiência média da procura por pKm/L; Motores/Carreira (%) – Percentagem de utilização dos motores em viagens do tipo carreira; Passageiros/Carreira (nº) - Número médio de passageiros por viagem do tipo carreira; Peso transportado (Kg) – Peso médio transportado por viagem do tipo carreira; Tempo/Viagem (min) - Duração média de cada viagem do tipo carreira; Velocidade (nós) - Velocidade média das viagens do tipo carreira durante um intervalo de tempo; Carreiras realizadas – Número das viagens do tipo carreiras realizadas. 4.3.3.2.2 Percentagem de Gasto de Combustível Os indicadores para a tabela de tempos totais em percentagem gastos em cada um dos tipos de viagens, são calculados da seguinte forma: Outras viagens - Percentagem de tempo total gasto em viagens validas que não são cruzeiro, manobras, tempo em cais ou aquecimento; Aquecimento – Percentagem de tempo total gasto em viagens validas do tipo aquecimento; Carreira - Percentagem de tempo total gasto em viagens validas do tipo Carreira; Pedro Saraiva – Relatório da disciplina de Estágio/Projecto Industrial 2010/2011 25 Fase de Integração iEnergy – Eficiência Energética em Edifícios Manobras - Percentagem de tempo total gasto em viagens validas do tipo manobras; Por Validar - Percentagem de tempo total gasto em todas as viagens que ainda não estão validadas; Tempo ao cais - Percentagem de tempo total gasto em cais que ainda não estão validadas, em cada um dos meses do ano; Tempo geral – Tempo total em horas gasto para cada uma das viagens acima descritas; Total registos – Tempo total de funcionamento calculado a partir dos dados introduzidos. 4.3.3.2.3 Consumos Totais de Combustível Os indicadores da tabela de consumos totais gastos em cada um dos tipos de viagens, são calculados da seguinte forma: Outras viagens – Consumo em viagens validas que não sejam viagens de carreira, manobra, tempo em cais ou aquecimento; Aquecimento – Consumo em viagens validas do tipo aquecimento; Cruzeiro - Consumo em viagens validas do tipo carreira; Manobras - Consumo em viagens validas do tipo manobras; Por Validar - Consumo médio em viagens que não estão validadas; Tempo ao cais - Consumo médio em cais de viagens validadas; Tempo geral - Consumo total gasto para cada mês do ano; 4.3.3.2.4 Consumo carreira Vs Velocidade VS peso VS mestre Os indicadores na tabela para cada um dos mestres por área geográfica em relação as carreiras realizadas, velocidade e peso, são calculados da seguinte forma: Consumo - Cálculo do consumo para cada um dos mestres Média – Valor médio de consumo do mestre em viagens do tipo carreira para o intervalo de tempo especificado; 26 Desvio padrão – Desvio padrão da amostra de consumo de viagens do tipo carreira; Velocidade - Cálculo da velocidade para um mestre; Média – Velocidade média do mestre em viagens do tipo carreira; Desvio padrão – Desvio padrão da amostra de velocidade de viagens do tipo carreira. Peso - Cálculo do peso carregado por cada mestre nas viagens realizadas Média – Media de pesos de viagens do tipo carreira por cada mestre; Desvio padrão – Desvio padrão da amostra do peso de viagens do tipo carreira. Pedro Saraiva – Relatório da disciplina de Estágio/Projecto Industrial 2010/2011 iEnergy – Eficiência Energética em Edifícios Fase de Integração Consumo total – Consumo total de combustível em viagens do tipo carreira por cada mestre; Passageiros totais – Número total de passageiros em viagens do tipo carreira para cada um dos mestres; Distância total percorrida – Distância total percorrida em viagens do tipo carreira por cada um dos mestres; Nº Carreiras – Total de viagens do tipo carreira realizadas por cada um dos mestres. Total registos – Consumo total calculado a partir dos dados introduzidos. 4.3.3.3 Relatórios de Carreiras Estes relatórios são dividos em duas partes. Essas partes são descritas nas secções seguintes. 4.3.3.3.1 Análise de Carreiras Esta parte permite ter uma visão geral de todas as carreiras existentes para uma determinada área geográfica. Os indicadores calculados nesta secção são: Número Carreiras – Número total de carreiras para a área geográfica em análise (número de viagens para a área geográfica escolhida). Consumo/Carreira – Consumo médio por carreira (média de consumo por viagem do tipo carreira para a área geográfica). Desvio Padrão – Desvio padrão da amostra de consumo por carreira. Consumo/Carreira (Registos) – Consumo por carreira baseado nos registos inseridos através do ficheiro de consumos (media de consumo por viagem do tipo carreira para a área geográfica de registos inseridos pelo modulo de carregamento de ficheiros com dados sobre o consumo estimado das embarcações). Passageiros/Carreira – Média de passageiros por carreira (média de passageiros em viagens do tipo carreira). Desvio Padrão – Desvio padrão da amostra de passageiros por carreira. 4.3.3.3.2 Ligação Para cada uma das áreas geográficas existem ligações. Nesta secção são calculados os indicadores para essas ligações. Os indicadores estão divididos entre dias úteis, fim-de-semana e feriados. Para cada uma dessas divisões são calculados os respectivos indicadores: Passageiros/carreira – Média de passageiros por carreira (média de passageiros em viagens do tipo carreira). Pedro Saraiva – Relatório da disciplina de Estágio/Projecto Industrial 2010/2011 27 iEnergy – Eficiência Energética em Edifícios Fase de Integração Desvio padrão – Diferença entre o valor máximo e mínimo de passageiros por carreira. 4.3.4 Módulo de Integração com Bilhética para Criação de Viagens Este módulo tem como objectivo permitir a inserção de viagens de embarcações sem caudalímetro (sem equipamentos de monitorização) a partir do serviço de bilhética. Os dados são importados do ficheiro de bilhética. Na inserção das viagens são também inseridos os indicadores possíveis sendo eles a distância estimada e do número de passageiros calculados a partir do ficheiro da bilhética. No fim da importação do ficheiro são também calculados os indicadores estimados de consumo e é feita a sua actualização, estes dados de consumo estimado são inseridos através de um ficheiro Excel preenchido todos os meses e carregado para o sistema quando necessário. O ficheiro de bilhética e enviado para o sistema todos os dias por uma aplicação externa, este tem de ser processado. As viagens criadas neste módulo são apenas as viagens que o serviço de GPRS não consegue criar automaticamente porque algumas das embarcações não têm GPRS. Este módulo lê o ficheiro carregado por FTP e cria viagens apenas para as embarcações que não tem ainda viagem criada. Este móduolo apenas cria viagens para embarcações sem equipamentos de monotorização já que os que tem as viagens são criadas automaticamente pelo serviço de GPRS. 4.3.5 Módulo de Criação de Alertas Este módulo tem como objectivo permitir a criação de alarmes pelos serviços (GPRS e Bilhética). No serviço de bilhética são gerados alarmes por falta de ficheiros de bilhética: O serviço de Bilhética processa ficheiros de bilhética a uma determinada hora. Se os ficheiros não existirem é inserido um novo alarme com uma mensagem que diz que o ficheiro não foi processado. Os alarmes lançados são para a inexistência dos ficheiros de bilhética. Os ficheiros devem estar na pasta configurada no app.config nos formatos “T20110209” sendo que neste exemplo os ficheiros são para a data 2011-02-09 ou seja, se no dia 2011-02-10 estes ficheiros não existirem, é registado um alarme. O serviço de GPRS gera alarmes para: Falha de comunicação – Não existe comunicação com o GPS durante um espaço de tempo; Falha de GPS – Existe comunicação mas ouve falha na comunicação dos dados; Falha de caudalímetro – Quando existe velocidade superior a tolerância mas não existem dados do caudalímetro; 28 Pedro Saraiva – Relatório da disciplina de Estágio/Projecto Industrial 2010/2011 iEnergy – Eficiência Energética em Edifícios Fase de Integração Falha de nível de combustível - O consumo é 0 mas percorreu uma distância superior a tolerância; Motores/Carreira menor que 30 – Calcula os motores/carreira para um intervalo de tempo em dias e verifica se é menor que 30; Aquecimento – No caso de viagens do tipo aquecimento os seguintes valores são considerados: Consumo/Viagem (aquecimento) inferior a 5 e superior a 60; Tempo/Viagem (aquecimento) maiores que 50 minutos; Velocidade instantânea superior a 2 nós (ou outro valor a definir). 4.3.6 Módulo de Validação de Viagens Este módulo tem como objectivo validar as viagens (comerciais) criadas pelo serviço de GPRS, de acordo com os parâmetros definidos, sendo eles: Consumo/Viagem inferior a 20 e superior a 220 Distância/Carreira superior a 12000 metros Tempo/Viagem menor que 6 e maiores que 35 minutos Velocidade instantânea superior ou igual a 25 nós No portal foi incluída informação sobre o motivo pelo qual a viagem se encontra por validar, quando a viagem é editada. 4.4 Implementação Neste projecto a implementação estava já toda delineada. A implementação de cada um dos módulos seguiu sempre o que já tinha sido decidido pela equipa de desenvolvimento antes da minha entrada no projecto e segundo as ferramentas que tinham sido escolhidas. 4.4.1 Ferramentas de Desenvolvimento Para o desenvolvimento das plataformas foi usado o C#, Linq, Linq To SQL, ASP.NET Web Forms esta eram já as tecnologias usadas no projecto em que foi inserido. 4.4.1.1 IDE Durante o desenvolvimento foi usado o IDE Microsoft Visual Studio 2010 porque era o que se adequava mais as tecnologias em causa. Pedro Saraiva – Relatório da disciplina de Estágio/Projecto Industrial 2010/2011 29 Fase de Integração 4.4.1.2 iEnergy – Eficiência Energética em Edifícios Base de Dados Como sistema de gestão de base de dados foi usado o Microsoft SQL Server 2008 RC2. 4.4.1.3 Ferramenta de Relatórios Para a construção dos relatórios foi usada a ferramenta Report Viewer da Microsoft. Esta escolha foi feita por mim depois de analisar outras alternativas gratuitas para aquilo que se pretendia fazer. O Report Viewer foi a ferramenta usada por ser uma ferramenta de relatórios que permitia fazer tudo o que se pretendia, tendo como principal vantagem poder ser feita uma previsualização do relatório de maneira fácil. 4.5 Verificação e Validação O software foi testado pela equipa de testes da ISA. Neste projecto não foram feitos testes unitários por opção da equipa. Os bugs reportados pela equipa de testes em cada um dos sprint’s foram corrigidos e foi feita nova publicação do software. Todos os requisitos foram validados pelo representante do cliente, sendo que depois desta validação o sistema foi colocado em produção. 4.6 Resultados Obtidos Nesta Fase Com a integração neste projecto pudesse fazer um estudo mais aprofundado das tecnologias Microsoft usadas na ISA o que permitiu obter bons resultados na implementação do projecto de estágio. Com esta integração inicial pode-se dizer que se teve também o primeiro contacto sério com o scrum, já que a equipa de energia que estava encarregue do desenvolvimento deste projecto, trabalhou todos os dias para incutir os valores e características do scrum. Todos os dias pelas nove horas fazia-se a daily scrum que serviu para solucionar alguns problemas que se tinham em relação as tarefas. Alguns dos conceitos que se a aprenderam nesta fase ligos a eficiência energética também se mostraram importantes para a entrada inicial no projecto de estágio. 30 Pedro Saraiva – Relatório da disciplina de Estágio/Projecto Industrial 2010/2011 iEnergy – Eficiência Energética em Edifícios Revisão Tecnológica 5 Revisão Tecnológica Neste capítulo é inicialmente feita uma breve descrição do estado da arte no campo do software de gestão energética, após a qual é realizada uma análise crítica das várias soluções existentes ou semelhantes. De seguida faz-se uma análise de tecnologias consideradas para o projecto. Por último faz-se uma análise crítica das tecnologias que foram consideradas para serem utilizadas no desenvolvimento da aplicação e da base de dados. 5.1 Estado da Arte A gestão de energia em edifícios com recurso a soluções de software e hardware, é relativamente recente, e começa a ser cada vez a ser mais utilizada. Este tipo de soluções oferece enormes vantagens ao gestor de energia, já que lhe dá os dados tratados e organizados de forma a facilitar a sua árdua tarefa de identificar melhorias na gestão de energia. Actualmente existem vários sistemas de gestão de energia comerciais, mas essas soluções continuam a apresentar falhas quer ao nível das funcionalidades que oferecem quer ao nível da organização do sistema, sendo aplicações bastante complexas e confusas onde por exemplo a organização lógica dos dispositivos não é a mais fácil de perceber e em muitos deles nem sequer existe. Existem ainda dificuldades em encontrar soluções completas que tanto ofereçam o software como o hardware, já que a integração destes dois sistemas pode trazer complicações que numa solução construída e integrada de raiz, não existem. Uma grande diferença entre o software que se pretende construir neste projecto e as soluções oferecidas pela concorrência é mesmo essa: a solução do presente estágio é completa e inclui o hardware e o software; pretende ainda incluir funcionalidades que suportem melhor o mercado industrial como o cálculo de tarifários industriais, simulação de tarifários, actuação agendada sobre equipamentos a inclusão de indicadores de performance e de alertas que permitam que o gestor de energia seja avisado de consumos anormais por forma a intervir o mais rápido possível. Todas estas funcionalidades associadas a uma organização lógica dos dispositivos de medição, pretende oferecer uma solução completa e mais do que isso fácil de usar. De referir que muitos dos competidores aqui em estudo oferecem aplicações web, mas estas não permitem por exemplo gerir de forma centralizada vários edifícios como a solução aqui proposta. 5.1.1 Soluções Existentes ou Semelhantes Existem já no mercado algumas soluções parecidas com o software que se pretende implementar neste estágio. Este tipo de solução é relativamente recente sendo que nos Estados Unidos já têm algumas soluções integradas com a Energy Star esta integração permite a comparação dos gastos com Pedro Saraiva – Relatório da disciplina de Estágio/Projecto Industrial 2010/2011 31 iEnergy – Eficiência Energética em Edifícios Revisão Tecnológica edifícios semelhantes permitindo saber se determinado edifício está dentro dos parâmetros de consumo para aquele tipo. Como pode ser visto no Anexo I, todas as soluções oferecem um grande número de funcionalidade como a visualização de consumos em tempo real, aplicação de tarifários entre outras. Mas poucas possuem a solução com todas as funcionalidades essenciais. Na figura 6 estão algumas empresas competidoras. A imagem mostra o número de funcionalidades oferecidas por cada uma destas competidoras. Figura 6 -Número de funcionalidades dos competidores Como podemos ver existem seis grandes competidoras já com muitas funcionalidades implementadas. Na Tabela 2 podemos ver um comparativo das principais funcionalidades oferecidas Indicadores Actuação Tarifários Simulação de Tarifários dados Exportação de Alertas histórico Gráficos de Relatórios Comparativos Tempo real por cada um desses competidores com as funcionalidades pretendidas para o software da ISA. ISA - X X X X X X X X X Pulse Energy X - X X X X - - - - Enigin X - X X X X X - - - PlusEnergy - - X X - X X X - - 32 Pedro Saraiva – Relatório da disciplina de Estágio/Projecto Industrial 2010/2011 iEnergy – Eficiência Energética em Edifícios Revisão Tecnológica Raritan X X AgileWaves X - X X X - - - - - Johnson Controls X X X X X X X X - - Tabela 2 - Quadro parcial de funcionalidades da concorrência Com esta tabela podemos concluir que a ISA, exceptuando a funcionalidade “tempo real” que não está prevista para este software, pretende inplementar todas as restantes funcionalidades. De referir que algumas funcionalidades, apesar de estarem marcadas como presentes, em algumas das empresas apresentam-se apenas parcialmente implementadas. O Anexo I contém mais informações sobre cada uma destas empresas. 5.1.2 Resumo Crítico Após a realização desta análise de soluções existentes no mercado actualmente, verifica-se a necessidade e interesse existente na continuação do desenvolvimento e estudo de novas soluções, que preencham as lacunas existentes e melhor satisfaçam as necessidades dos utilizadores. A análise efectuada tentou de certa forma cobrir exemplos das várias partes relacionadas com o sistema proposto, ou seja, aplicações de gestão de energia, para edifícios industriais, verificando ao mesmo tempo soluções livres e comerciais. O principal ponto fraco destas soluções é não oferecerem a solução completa, e algumas tem um interface pouco agradável ao utilizador. Tirando a Scheneider Eletric e a Johnson Controls nenhuma das outras empresas oferece o hardware necessário para o funcionamento do sistema tendo sempre que se adquirir o hardware à parte. Das funcionalidades que estas empresas oferecem, de destacar, em relação aos tarifários, a pouca flexibilidade, suportando apenas parcialmente os tarifários usados em Portugal. De destacar que estas empresas já oferecem visualização de consumos em tempo real, funcionalidade em que a equipa de energia da ISA se encontra a trabalhar neste momento mas que sai fora do âmbito deste estágio. Nenhum dos competidores aqui em estudo apresenta actuação sobre os dispositivos bem como o cálculo de indicadores de poupança, estado e performance, mas poderão eventualmente existir outros competidores não presentes nestes estudos que implementem essas funcionalidades. Todas estas soluções comerciais existentes no mercado actual têm maior foco em gestão de locais sem estrutura hierárquica o que dificulta a análise dos edifícios já que estes têm várias divisões e andares. E são também bastante dispendiosas em termos de custos: é por isso que uma versão do software mais de acordo com as possibilidades económicas de um país como Portugal seria bastante Pedro Saraiva – Relatório da disciplina de Estágio/Projecto Industrial 2010/2011 33 iEnergy – Eficiência Energética em Edifícios Revisão Tecnológica apetecível. De destacar ainda que muitas destas empresas não oferecem uma solução centralizada que pode ser consultada de qualquer lado a qualquer hora, muitas delas tendo apenas acesso local á aplicação. Uma aplicação web com acesso de qualquer lugar, que permita a gestão centralizada de um grupo alargado de edifícios, é uma das vantagens do software implementado. 5.2 Tecnologias consideradas Nesta secção é feito um levantamento das várias alternativas que foram apreciadas em relação às tecnologias a usar no desenvolvimento. Um ponto importante a considerar na análise das tecnologias é o grupo a que pertencem, i.e., se são comerciais, livres ou código aberto. Será dada preferência à utilização de tecnologias código aberto, excepto se for mais indicado utilizar outra ou se houver outro tipo de restrições internas da empresa. 5.2.1 Análise de Tecnologias da Concorrência Para além de uma análise à concorrência ao nível das funcionalidades oferecidas, foi também feita uma análise às tecnologias utilizadas. Como podemos ver pela Figura 7, apenas uma solução é totalmente código aberto sendo que todas as outras ou são 100% código fechado ou usam ambas as tecnologias. Figura 7 - Tipo de tecnologias usadas pelos competidores 34 Pedro Saraiva – Relatório da disciplina de Estágio/Projecto Industrial 2010/2011 iEnergy – Eficiência Energética em Edifícios Revisão Tecnológica Na Figura 8 podemos analisar o uso de cada tipo de tecnologias pelo número de funcionalidades. As empresas com mais funcionalidades são aquelas com maior valor no eixo dos X por sua vez as que usam mais tecnologias código aberto são aquelas com mais valor no eixo dos Y. Conseguimos ver que existe algum equilíbrio no uso de tecnologias de código fechado e código aberto mesmo para os casos mais complexos (mais funcionalidades) existem empresas a usar muito código aberto. De realçar que as empresas com mais funcionalidades apenas a Johnson Controls usa somente tecnologias de código fechado. Figura 8: Relação entre a complexidade (número de funcionalidades) e o tipo de tecnologias De realçar que praticamente todas disponibilizam um interface web para o utilizador final. O uso de restrito a tecnologias código fechado pode encarecer a solução coisa que não se pretende para este projecto. 5.2.2 Análise de Tecnologias para o Sistema Nesta secção são apresentadas todas as tecnologias que foram consideradas para serem usadas na construção do projecto de estágio. De salientar que estas tecnologias tiveram bastantes restrições a nível de negocio e ao nível das tecnologias já usadas na plataforma - iEnergy -. Pedro Saraiva – Relatório da disciplina de Estágio/Projecto Industrial 2010/2011 35 Revisão Tecnológica 5.2.2.1 iEnergy – Eficiência Energética em Edifícios Base de Dados A base de dados já se encontrava implementada sobre uma BD Sql Server 2008 RC2, portanto não foi objecto de estudo. 5.2.2.2 Plataforma Web A plataforma web foi restringida a tecnologias Microsoft pelo que o estudo apenas incidiu sobre essas mesmas tecnologias e também em tecnologias que pudessem ser usadas em conjunto com as tecnologias Microsoft. Neste caso a escolha esteve entre duas das tecnologias web da Microsoft, referentes ao ASP.NET, o modelo tradicional Web Forms e o padrão MVC. Desde o seu lançamento, a plataforma .NET até as versões 3.5 tinha sido exclusivamente baseado no modelo Web Forms. Desde a versão 3.5 deu-se a mudança. O clássico tem vindo a ser deixado para trás em detrimento do novo padrão MVC. O ASP.NET possui uma série de características que o tornam simples de utilizar, mas não menos robusto. A quantidade de controlos ricos que o mesmo fornece é extremamente grande. Mesmo com essa facilidade e toda sua extensibilidade (como é caso dos Control Adapters), muitos programadores sentem a necessidade de ter um maior controlo sobre como o conteúdo que é renderizado para o cliente e como os dados que o cliente submete são enviados para a aplicação. Devido à estrutura do ASP.NET e seus controlos intrínsecos, a renderização final acaba por ser delegada para o RUNTIME do ASP.NET e é neste momento que programadores sentem a necessidade de uma maior flexibilidade. O padrão MVC(Model-View-Controller) garante isso. Este padrão não nasceu agora, já existe em vários frameworks que podem ser acopladas ao ASP.NET e permitem desenvolver aplicações baseadas neste modelo. O que acontece neste momento é uma implementação deste padrão pela própria Microsoft, integrando fortemente a infra-estrutura do ASP.NET. Vantagens do Web Forms Requer poucos conhecimentos de HTML; Oferece componentes ricos; Oferece desenvolvimento rápido de aplicações. Vantagens do MVC O MVC obriga a um melhor desenho do código possibilitando a melhor separação de responsabilizadas; Possibilita o controlo total sobre o HTML renderisado para a vista; O Web Forms é difícil de testar o MVC foi desenhado com a facilidade de teste em mente Test Driven Development (TDD); 36 Pedro Saraiva – Relatório da disciplina de Estágio/Projecto Industrial 2010/2011 iEnergy – Eficiência Energética em Edifícios Revisão Tecnológica Integração fácil com Frameworks JavaScript nomeadamente o JQuery; Suporta motores de vista de terceiros NVelocity, Brail, NHaml entre outros; Não existe ViewState e eventos PostBack; Segue a natureza sem estado da Web; Ideal para aplicações Web 2.0. 5.2.2.3 Web Service Já existia um web service implementado em SOAP sobre o WCF. Este web service foi mantido sendo criado nele um novo end point para suportar a plataforma web desenvolvida, sendo que este end point foi construído de raiz. 5.2.2.4 Core O core já se encontrava implementado com recurso a ADO. Entity Framework, todos os desenvolvimentos feitos durante este estágio mantiveram a tecnologia usada e os princípios pelos quais o core da aplicação foi desenvolvido. 5.2.3 Ferramentas de Construção de Relatórios Nesta secção é apresentado de forma resumida as ferramentas estudadas para construção de relatórios, este estudo foi restrito a ferramentas gratuitas e compatíveis com as tecnologias web da Microsoft. 5.2.3.1 Report Viewer O Report Viewer é uma ferramenta da Microsoft, integrada no Visual Studio.NET e permite a geração de relatórios. Os relatórios são implementados de maneira simples e possuem algumas funcionalidades interessantes como a previsualização e a exportação para serem abertos em outras aplicações. 5.2.3.2 NPOI O NPOI é uma versão do POI originalmente construído para Java. O POI é um projecto código aberto que permite ajudar a ler/escrever ficheiros XLS, DOC, PTT. Actualmente o NPOI apenas suporta ficheiros no formato Excel 2003. Pedro Saraiva – Relatório da disciplina de Estágio/Projecto Industrial 2010/2011 37 iEnergy – Eficiência Energética em Edifícios Revisão Tecnológica 5.2.3.3 Vantagens do Report Viewer em relação ao NPOI Acesso aos vários componentes suportados pelo Report Viewer, ToolBar (Paginação, zoom, exportação, Impressão), suporte Ajax, tabelas, matrizes, etc; Exportação para vários formatos incluindo PDF; Simples de usar após aprender como funciona; Fácil adaptação a mudanças nos requisitos dos relatórios (as mudanças não implicaram mudanças drásticas de código); Boa documentação de apoio. 5.2.3.4 Desvantagens do Report Viewer em relação ao NPOI É difícil atribuir uma formatação diferente ao relatório daquela que esta definida nos ficheiros (.RDLC) aquando da exportação; A inexistência de um DataSet implica a edição do (.RDLC) através do XML. A curva de aprendizagem poderá ser elevada no início. 5.2.4 Ferramentas Web de Gráficos Tal como as ferramentas de relatórios as ferramentas de construção de gráficos foram também limitadas a ferramentas gratuitas. De entre todas a ferramentas gratuitas estudadas de destacar as que são apresentadas na Tabela 3. Zoo Panning m Múltipl Diferentes os eixos tipos gráficos Mostrar Possibilidad de detalhes de e pontos Custo de s exportação para Excel Flot X X X X X - 0 Flotr X X - X X X 0 JqPlot X X X X X - 0 .Net Chart - - X X X X 0 Control Tabela 3 - Comparação de ferramentas web de construção de gráficos 38 Pedro Saraiva – Relatório da disciplina de Estágio/Projecto Industrial 2010/2011 iEnergy – Eficiência Energética em Edifícios 5.2.4.1 Revisão Tecnológica Protótipos Construídos Foram construídos dois protótipos com as tecnologias de gráficos, estes dois protótipos foram feitos usando as tecnologias que mais se enquadravam no que se pretendia. Tecnologias gratuitas que permitissem gerar gráficos ricos visualmente e em que o utilizador pudesse interagir facilmente (zoom, detalhes de pontos do gráfico etc). Os protótipos foram construídos usando uma base de dados de produção do - iEnergy - por forma a validar que estes componentes responderiam em tempo útil a uma situação real. 5.2.4.1.1 Condições de Teste Para efectuar os testes retratados neste documento foram utilizados dois nós: um servidor Windows e um cliente em máquina Windows. 5.2.4.1.2 Servidor CPU: Intel Core2 Duo a 2,40GHz Memória: 4GB 5.2.4.1.3 Cliente CPU: Intel Core2 Duo a 2,40GHz Memória: 2GB 5.2.4.1.4 Medidas Extraídas Neste estudo foi apenas usada uma medida de performance o tempo de renderização dos componentes de dois Frameworks diferentes. Não é de prever que estejam muitos utilizadores a usar a aplicação ao mesmo tempo nesta fase, portanto estes protótipos apenas validaram a performance em relação ao tempo de espera até o gráfico ser renderisado. Outros indicadores que poderiam interessar seriam a percentagem de CPU utilizada pelo processo, memória utilizada, número de threads, page faults/s entre outros. 5.2.4.1.5 Performance Os dois componentes usados para o estudo de performance foram o Jqplot e o .Net Chart Control os outros controlos foram excluídos devido ao tempo que seria necessário para criar um protótipo com todos eles e porque tanto o flot como o flotr são todos frameworks de gráficos JavaScript que apresentam praticamente as mesmas funcionalidades e em princípio desempenhos muitos semelhantes. Pedro Saraiva – Relatório da disciplina de Estágio/Projecto Industrial 2010/2011 39 iEnergy – Eficiência Energética em Edifícios Revisão Tecnológica Agregados Agregados Agregados Agregados Agregados horários horários de horários de horários de horários de de 1 mês 3 mêses 6 mêses 9 mêses 1 Ano (744 horas) (2232 horas) (4464 horas) (6696 horas) (8760 horas) JqPlot 1s 2s 10s 24s 30s .Net Chart 1s 2s 10s 20s 29s Control Tabela 4 - Tempo de renderização de gráficos 5.2.4.2 Conclusão O tempo de resposta começou a degradar-se a partir dos seis meses em agregação horária o que equivale a muitos dados. Não é previsível que o utilizador queira chegar a estes valores de agregação já que o gráfico se tornaria praticamente elegível. O .Net Chart mostrou-se mais rápido apesar de não existirem diferenças significativas. Estas diferenças devem-se em tudo a forma como os dados são renderizados nos dois componentes. O jqplot renderiza um elemento HTML5 chamado Canvas que permite renderização dinâmica através de scripts de bitmaps 2D, já o componente Net Chart renderiza uma imagem estática. Poderá estar aqui a diferença para os valores apresentados na tabela 4. 40 Pedro Saraiva – Relatório da disciplina de Estágio/Projecto Industrial 2010/2011 iEnergy – Eficiência Energética em Edifícios Especificação 6 Especificação Este capítulo tem como objectivo apresentar a especificação da solução proposta. É efectuada uma análise, primeiramente em geral e depois em detalhe, sobre os requisitos do sistema total, com todas as características que os mesmos deverão ter no final do projecto. Os requisitos encontram-se agrupados em subsecções, de acordo com as suas especificidades. Na subsecção dos requisitos funcionais são apresentados os casos de uso do sistema, na subsecção de requisitos não funcionais são apresentados os requisitos de qualidade, performance e segurança. Como será dada mais importância à parte do sistema a desenvolver durante o estágio, será esta parte que estará mais em foco. Para cada requisito em particular será atribuída uma prioridade em relação à sua importância no desenvolvimento do sistema, dada pelo cliente como já foi explicado na secção 3. Essa prioridade será “Must Have”, “Shoud Have” ou “Nice to Have”. Um requisito com prioridade “Must Have” significa que no final do projecto terá de se encontrar completo e funcional. Se um requisito tiver prioridade “Shoud Have” terá de existir, mas poderá ainda não estar totalmente completo, e se a prioridade for “Nice to Have” significa que só será implementado se houver tempo, sendo algo adicional que não é fundamental no sistema para esta fase, mas que lhe acrescenta valor. Contudo, é necessário salientar que para alguns requisitos considerados com prioridade “Must Have”, devido à sua complexidade, o seu desenvolvimento será gradual durante o desenvolvimento do projecto (continuando mesmo após o estágio). Este estágio prevê o desenvolvimento de uma aplicação web de raiz, a integrar na plataforma iEnergy - já existente, através de um web service. Este web service vai fazer uso de algumas funcionalidades já existentes bem como incluir outras novas. 6.1 Visão Geral Uma aplicação de gestão de energia para edifícios, permite reconhecer e identificar desperdícios a partir dos dados recolhidos pelos sensores instalados nas várias divisões. Estes sensores permitem medir os consumos de uma divisão, de um edifício inteiro ou até mesmo de um sistema de AVAC, sendo que estes sistemas são a principal fonte de desperdícios nos edifícios, principalmente por falta de zelo na sua utilização. Um sistema de gestão de energia permite ver estes consumos de forma isolada ou em conjunto, sendo assim possível identificar onde estão as fontes de desperdício. Os dados são recolhidos, tratados e armazenado no sistema de forma a posteriormente serem apresentados ao utilizador na forma de relatórios, gráficos, indicadores ou mesmo alarmes. Os dispositivos são organizados em grupos lógicos para serem facilmente reconhecidos e manipuláveis pelo utilizador, estes grupos podem representar um edifício e os seus vários pisos e Pedro Saraiva – Relatório da disciplina de Estágio/Projecto Industrial 2010/2011 41 iEnergy – Eficiência Energética em Edifícios Especificação divisões. O utilizador pode seleccionar esses edifícios e ver o consumo de um piso, ou de vários pisos de forma a compará-los em termos de consumos e de custos. Estes dados podem ser posteriormente exportados para Excel para posterior análise. Um dos problemas actuais deste tipo de software de análise é a falta de liberdade que o utilizador tem para analisar os consumos, quer por falta possibilidades de escolha dos períodos em análise e de agregação dos dados, quer pela falta de organização lógica dos vários sensores. Nesta aplicação todos os dados são apresentados através de uma aplicação web por via online, em oposição a algumas das soluções já existentes, que em muitos dos casos são aplicações web usadas em modo offline. Este sistema permite a consulta centralizada através da internet dos vários edifícios a serem monitorizados. O sistema deverá incluir uma forte componente financeira de forma a ser possível analisar os consumos em termos de custos, sendo esta uma funcionalidade decisiva no sucesso da aplicação. Também deverão existir alarmes para consumos fora de um certo padrão, já que é previsível que existam muitos edifícios no sistema e não seria fácil percorrê-los a todos manualmente, procurando desvios no padrão de consumo. Deste modo o gestor de energia pode configurar alarmes que serão disparados quando ocorrerem consumos anormais, facilitando muito o seu trabalho. Por fim existirá uma componente de actuação sobre os equipamentos instalados no edifício: por exemplo, é detectado que os reclames luminosos de um determinado edifício se encontram acesos mesmo quando ainda é de dia; nesse caso o gestor de energia pode criar um agendamento semanal para ligar ou desligar esses equipamentos a horas fixas. O sistema será estruturado em vários módulos, permitindo um estudo mais detalhado e rigoroso. Deles fazem parte, num primeiro nível, a aplicação web, em seguida o web Service e o - iEnergy -, e por fim o armazenamento (base de dados). 6.2 Características dos Utilizadores Para este sistema foram identificados três actores, de acordo com o que foi dito na secção 2.2. O acesso ao software é feito por login e password. Isto permite ter contas diferentes para cada utilizador e perfis diferentes de utilizador. Cada perfil acede a determinadas funcionalidades do software. Os diferentes perfis de utilizador são: Cliente: Tem acesso à plataforma apenas para ver indicadores (não os pode alterar) e extrair relatórios predefinidos (não os pode alterar) dos projectos a que está alocado. Este utilizador apenas tem acesso aos grupos lógicos aos quais tem permissões para aceder. Gestor de energia: Acesso total à plataforma não podendo no entanto gerir utilizadores nem permissões nos grupos lógicos. 42 Pedro Saraiva – Relatório da disciplina de Estágio/Projecto Industrial 2010/2011 iEnergy – Eficiência Energética em Edifícios Especificação Administrador: Acesso total à plataforma. Pode ser vista de seguida a hierarquia entre eles no seguinte diagrama (Figura 9): uc Actors Cliente Gestor de energia Administrador Figura 9 - Hierarquia de Utilizadores 6.3 Análise de Requisitos Nesta secção é descrita a fase de estudo e recolha de requisitos que coincide com o Pre-Game do scrum que consistiu na aquisição dos requisitos funcionais e não funcionas para a plataforma. 6.3.1 Metodologia Usada na Recolha de Requisitos Durante a fase de análise de requisitos foram usadas várias técnicas para recolha e análise dos mesmos, sendo de destacar nesta etapa o grande envolvimento do cliente neste processo. Este envolvimento só foi possível por se tratar de um cliente interno à empresa, representante de uma área da própria empresa, que esteve sempre pronto a esclarecer as dúvidas que iam surgindo durante esta fase e até mesmo já na fase de desenvolvimento. Este envolvimento de alguém com conhecimento do negócio foi decisivo no meu entender para o sucesso da aplicação. Foram feitas algumas sessões de brainstorming com o cliente da aplicação e com pessoas da área de negócio da ISA. Estas sessões tiveram por intenção alargar as fronteiras do espaço do problema dos participantes e obter soluções não convencionais para alguns dos requisitos abordados. Depois destas Pedro Saraiva – Relatório da disciplina de Estágio/Projecto Industrial 2010/2011 43 iEnergy – Eficiência Energética em Edifícios Especificação reuniões de brainstorming foi feita uma prototipagem através de interfaces de utilizador de forma a serem validados pelo cliente da aplicação. Durante a análise de requisitos, a prototipagem deu forma concreta aos requisitos e assistiu à sua clarificação e determinação. Foram também elaboradas um conjunto de questões para servirem como esclarecimento de dúvidas. Estas questões foram enviadas para o cliente usado a ferramenta Google Docs e respondidas nessa mesma ferramenta (um exemplo na Figura 10). Em muitas situações esta interacção através da ferramenta Google Docs não se mostrou eficaz e tiveram mesmo de ser feitas reuniões para entender melhor certos requisitos. Figura 10 - Exemplo de perguntas colocadas no Google Docs Depois da primeira Release do software, e devido a algumas queixas de usabilidade da aplicação, foram feitas algumas observações de comportamento com os utilizadores no seu ambiente natural de trabalho, enquanto executavam tarefas específicas no software, o que permitiu detectar várias melhorias a incorporar nas versões seguintes da aplicação. Segundo a metodologia adoptada estes requisitos são elementos do product backlog e estão na forma de user stories. Todos os requisitos presentes nesta secção são requisitos finais. No entanto, muitos destes requisitos sofreram alterações de um sprint para o outro porque foram identificadas melhorias principalmente a nível de interface. 6.4 Requisitos funcionais Os requisitos foram aprovados e priorizados pelo cliente (o gestor de energia da ISA) em todas as sprint’s do projecto, primeiro através do product backlog e posteriormente através do sprint backlog. 44 Pedro Saraiva – Relatório da disciplina de Estágio/Projecto Industrial 2010/2011 iEnergy – Eficiência Energética em Edifícios Especificação O desenvolvimento divide-se em várias partes e inclui a integração de todas elas, podendo ser usados módulos já existentes, na sua totalidade, parcialmente ou mesmo como base para o desenvolvimento de cada um. Por exemplo, para visualizar custos de energia de um edifício, é necessário o cálculo dos custos tendo em conta o tarifário em vigor, pelo que é fundamental utilizar o módulo de cálculo de tarifários, e logo de seguida o módulo de visualização de dados. Tentou-se fazer uma divisão bem estruturada dos vários módulos com vista a uma leitura fácil de todas as funcionalidades do sistema e permitir uma maior facilidade na implementação e integração das várias partes. Essa estruturação pode ser observada no diagrama de casos de uso do sistema completo, na Figura 11, no qual as funcionalidades estão estruturadas por pacotes devido à quantidade de casos de uso existentes. Esses pacotes representam os módulos do sistema, fazendo todos eles parte da aplicação web e da plataforma - iEnergy -. Estão representados também dois actores de sistema, o do módulo da aplicação de cálculo de tarifários do módulo de verificação de actuações e de alertas. Encontram-se representados dessa forma simplificada uma vez que podem ser vistos como “externos” ao sistema. uc Primary Use Cases Si stema de gestão de energi a Visualização de dados(alertas, actuação,grupos, indicadores, tarifários) Análise de dados Gestão de tarifários Cliente Gestor de energia Visualização de ralatórios Simulação de tarifários Gestão de grupos Cálculo de tarifário Verificação de actuações Gestão de alertas Verificação de alertas Administrador Sistema Gestão de Indicadores Cálculo da baseline Gestão de v irtual tags Gestão da baseline Gestão de actuação Figura 11 - Casos de uso do sistema separados por pacotes Pedro Saraiva – Relatório da disciplina de Estágio/Projecto Industrial 2010/2011 45 iEnergy – Eficiência Energética em Edifícios Especificação O sistema deverá possuir as funcionalidades apresentadas na Tabela 5. No entanto, uma vez que o sistema global é constituído por vários módulos, para melhor se poder estudar os requisitos de cada um e de uma forma mais detalhada, estes irão ser abordados de seguida em várias subsecções. Os requisitos aqui apresentados serão portanto detalhados nas subsecções que se seguem. Para maior detalhe os diagramas de casos de uso de cada pacote/módulo e actor de sistema podem ser consultado no Anexo II. Requisitos por módulos Prioridade Visualizar dados agregados em forma de gráficos e tabelas Must Have Efectuar a gestão de actuações Shoud Have Efectuar a gestão de alertas Shoud Have Efectuar a gestão de grupos Shoud Have Efectuar a gestão de tags virtuais Must Have Efectuar a gestão de indicadores Shoud Have Cálculo de KPIs Shoud Have Permitir a geração de relatórios predefinidos Must Have Efectuar a gestão de tarifários na plataforma. Shoud Have Simular tarifários Shoud Have Reconhecer consumos fora dos parâmetros configurados e lançar alertas. Must Have Calcular os tarifários de energia. Must Have Tabela 5 - Tabela de requisitos do sistema 6.4.1 Módulo de Grupos Lógicos Os grupos lógicos não são mais do que a organização lógica de tags, unidades ou utilizadores, de forma hierárquica, dependendo do que o utilizador pretender agrupar (por exemplo agrupar os sensores de energia, humidade e temperatura de um piso), permitido assim identificar edifícios e os seus subgrupos, que podem ou não estar separados geograficamente. A estes grupos podem também ser associadas tags virtuais ou indicadores: por exemplo, uma tag virtual pode ser definida como a soma de todas as tags de energia activa de um grupo. Desta forma obtemos o consumo total do grupo. O indicador é um conceito semelhante mas depende de outros valores constantes para além dos valores dados pela tag, tais como os valores da baseline ou dos detalhes dos grupos. Por exemplo, pode-se criar um indicador que é a soma dos kWh de todas as tags de um piso (virtual tag) e dividir esse valor pelo número de pessoas que ocupam o espaço. Esta métrica vai dar o consumo de energia por pessoa, sendo que o número de pessoas é uma constante que nada tem a ver com o valor da tag. Quando essa 46 Pedro Saraiva – Relatório da disciplina de Estágio/Projecto Industrial 2010/2011 iEnergy – Eficiência Energética em Edifícios Especificação constante é usada numa operação aritmética com uma tag, é chamado indicador. Sendo estes os indicadores de estado, existem outros indicadores que medem a performace de determinado grupo lógico de forma a sabermos se determinado grupo está ou não dentro de determinados valores de eficiência energética. 6.4.1.1 Criação de grupos lógicos Um grupo, como já foi referido anteriormente, serve para agrupar logicamente as vários entidades principais que constituem o sistema. Requisito Descrição Prioridade CGL1 Deve ser possível criar, editar e apagar grupos lógicos. Must Have CGL2 Deve ser possível associar tags, utilizadores, dispositivos a Must Have grupos lógicos. CGL3 Deve ser possível criar uma hierarquia de grupos lógicos. Must Have CGL4 Só utilizadores adicionados ao grupo lógico podem ver a Must Have informação associada a estes grupos não podem ver mais nenhum grupo lógico que não seja seu. Os utilizadores administradores e os gestores de energia podem ver todos os grupos e toda a informação associada a eles. CGL4 Cada grupo deve ter um tipo associado, cada um desses Shoud have tipos tem um conjunto de parâmetros associados: Projecto: O Projecto é o tronco da árvore e tem de ser configurado antes de se poder configurar a árvore do projecto. Grupos gerais: Os grupos gerais são os ramos do projecto que servem para organizar e ordenar as instalações do projecto. Instalações: As instalações dos projectos são os nós principais da árvore e têm de ser configuradas antes de se poder configurar os pisos, os grupos particulares, e as folhas. Na fase de configuração das instalações, é especificado o nº de pisos. Piso: A cada Instalação corresponde um ou mais pisos. Grupos particulares: Os grupos particulares funcionam como os grupos gerais mas dizem respeito apenas a um piso de uma instalação em vez de dizerem respeito a um projecto. Folha: As folhas são os nós finais da árvore. Dizem respeito Pedro Saraiva – Relatório da disciplina de Estágio/Projecto Industrial 2010/2011 47 iEnergy – Eficiência Energética em Edifícios Especificação a um piso que, por sua vez, diz respeito a uma instalação que, por sua vez, diz respeito a um projecto. Cada um destes tipos de grupos tem um conjunto de parâmetros associados. Estes devem ser dinamicamente criados pelo utilizador podendo estar identificados de forma diferente da especificada anteriormente. Cada grupo pode ter associado vários tipos de horários, Must Have CGL6 horário de funcionamento, manutenção etc. Cada um destes horários tem uma hora de início e de fim e um dia da semana associado. Os grupos lógicos podem ter associada uma baseline do Must Have CGL7 respectivo grupo, os dados dessa base line são: Consumo de energia activa para cada um dos meses do ano separado por tipos de( horas de ponta horas de cheia, horas de vazio e horas de super vazio).Ao ano 0 corresponde o ano civil anterior ao ano de configuração da instalação. Consumo de energia do sistema AVAC. Consumo de energia de cada um dos utensílios existentes no grupo lógico (maquina de café etc) Depois de configurada a baseline, ela fica guardada no sistema. A baseline para o ano zero é fixa sendo que para os anos posteriores podem ser introduzidas actualizações a baseline, como novos dispositivos ou mudanças no no sistema de AVAC. Com estas actualizações o sistema calcula a nova baseline tendo em conta as alterações que existiram no edifício. Deve ser possível inserir informações associadas aos grupos Must Have CGL8 que serão posteriormente usados para calcular indicadores de estado. Área total sujeita a climatização e/ou iluminação permanente (m2) 48 Nº de funcionários permanentes Nº de utensílios Pedro Saraiva – Relatório da disciplina de Estágio/Projecto Industrial 2010/2011 iEnergy – Eficiência Energética em Edifícios Especificação Nº de PC’s Para o nº de utensílios, é aberto um quadro com o nº de linhas igual ao nº de utensílios no qual o utilizador tem de especificar qual o tipo de utensílios e a sua potência nominal (exemplo: máquina de café Nexpresso – 16 W ) CGL9 Deve ser possível associar tags virtuais a grupos lógicos de Must Have forma a efectuar uma operação lógica entre as tags desse grupo. CGL10 Deve ser possível associar indicadores a grupos lógicos de Must Have forma a efectuar uma operação lógica sobre as tags desse grupo e outros detalhes do grupo. Tabela 6 - Requisitos de grupos lógicos 6.4.1.2 Criação da Baseline (CBE) Uma baseline representa um padrão de consumo registado numa determinada data e serve para nos dizer se realmente estão a ocorrer poupanças de consumos relativamente a períodos homólogos. A baseline olha não apenas para os consumos registados mas também para as alterações que foram feitas nos edifícios: por exemplo, se aumentarmos o número de AVACs temos de ter em conta essa alteração para determinar a poupança que existiu. Nesta situação estamos a gastar mais porque temos mais AVACs a funcionar, mas podemos estar a registar poupança já que em proporção o consumo se manteve ou diminuiu. Requisito CBE1 Descrição Prioridade Deve ser possível criar uma baseline associada a um grupo lógico Must have (edifício) essa baseline deve conter informação relativa ao consumo de energia activa por tipo de horas. Deve conter também a potência nominal e o horário de funcionamento do AVAC no edifício. Por fim de ter uma área onde se podem inserir aparelhos (maquina de café por exemplo) inserindo para tal a potência nominal e horário de funcionamento (consultar requisito CGL7). CBE2 Deve ser possível editar a baseline, com algumas restrições, apenas é possível editar a baseline do ano zero para os consumos de energia Must have activa. É sempre possível editar os dados do AVAC e dos aparelhos. Sempre que uma baseline é editada os valores devem ser recalculados (devem ser recalculados os valores das baselines seguintes). Pedro Saraiva – Relatório da disciplina de Estágio/Projecto Industrial 2010/2011 49 iEnergy – Eficiência Energética em Edifícios Especificação Em cada altura podem ser introduzidos actualizações a baseline, CBE3 modificações no quadro de AVAC e também nos aparelhos. Estas Must have actualizações influenciam o cálculo da baseline. As actualizações da baseline são feitas a partir do ano zero e podem ser mensais. Quando existe qualquer alteração todo o resto deve ser recalculado. O utilizador pode actualizar a baseline quando quiser. Seja por opção, ou solicitação ao final de seis meses, o quadro que aparece para actualizar a baseline é o seguinte: Área total sujeita a climatização e/ou iluminação permanente (m2); Nº de funcionários permanents; Nº de appliances; Tarifário aplicado; Alterações no sistema AVAC (kWh); Instalação/Desactivação de equipamentos com consumos energéticos significativos (kWh); Para o nº de utensílios, é aberto um quadro com o nº de linhas igual ao nº de utensílios no qual o utilizador tem de especificar qual o tipo de utensílios e a sua potência nominal (exemplo: máquina de café Nexpresso – 16 W ). CBE4 Apenas é possível apagar a última baseline introduzida no sistema. Para apagar um conjunto de baselines o utilizadore deve começar por Must have apagar da última. Tabela 7 - Tabela de Requisitos de Baseline 6.4.1.3 Indicadores de Performance (KPI’s) Os KPIs são indicadores predefinidos sobre a performance dos grupos lógicos (que correspondem a edifícios). Estes indicadores permitem saber se determinado edifício está a ter uma boa performance a nível energético. Requisito Descrição Prioridade IND1 Indicador de performance: Must have Indicador diário, com o valor percentual que corresponde ao desvio entre o consumo efectuado e o consumo objectiva. Os objectivos serão definidos através da funcionalidade de Alertas da plataforma. 50 Pedro Saraiva – Relatório da disciplina de Estágio/Projecto Industrial 2010/2011 iEnergy – Eficiência Energética em Edifícios Especificação Para este requisito será usado, como objectivo de referência, o objectivo definido no alerta como MajorThreshold. Apenas será carregada informação para as tags que tenham pelo menos um objectivo associado. IND2 Medida Kw/h consumido: Must have Indicador horário, com o valor do consumo para tags do tipo energia activa e visíveis para o utilizador. IND3 Medida Kw/h consumido com abstracção para CO2: Must have Indicador horário, com o valor do consumo para tags do tipo energia activa e visíveis para o utilizador, com abstracção para CO2. IND4 Indicador de temperatura: Must have Indicador horário, com o último valor instantâneo disponível, para a temperatura. IND5 Indicador de humidade: Must have Indicador horário, com o último valor instantâneo disponível, para a humidade. IND6 Indicador diário de comparação com períodos homólogos: Must have A comparação é feita com a média de consumos dos últimos x dias homólogos. Não serão tidos em conta distinções entre períodos de Verão/Inverno. IND7 Indicador mensal de comparação com períodos homólogos: Must have A comparação é feita com o consumo do mês homólogo do ano anterior. Nota: Será necessário carregar os dados de histórico para a tabela de consumo mês. IND8 Indicador com % de poupança global relativa ao mesmo período do Must have ano anterior: A comparação é feita usando o consumo dentro do ano civil até à data actual com o período homólogo do ano anterior. Tabela 8 - Requisitos de KPIs 6.4.1.4 Indicadores de Estado Os indicadores de estado são indicadores que reflectem o consumo específico, ou seja, consumo por unidade dos indicadores de estado presentes nos detalhes do grupo. Podemos por exemplo saber o Pedro Saraiva – Relatório da disciplina de Estágio/Projecto Industrial 2010/2011 51 iEnergy – Eficiência Energética em Edifícios Especificação consumo por pessoa, o que é possível de calcular através da divisão da tag de energia activa do edifício pelo número de pessoas que usam o edifício. Requisito Descrição Prioridade Deve ser possível criar, editar e apagar indicadores de estado. Must have IND09 Estes indicadores devem estar associados aos grupos lógicos. As operações possíveis na criação de um indicador de estado são a Must have IND10 adição, multiplicação, subtracção e divisão. Estas operações são feitas sobre uma tag em relação a um detalhe de um grupo ou a uma constante. Os indicadores de estado podem ser vistos da mesma maneira que Must have IND11 as tags. Através da aplicação web na forma de gráficos e relatórios. Notas Exemplo de indicadores de estado: Consumo de Energia por área: o Consumo de energia (kWh) / Área total sujeita a climatização e/ou iluminação permanente (m2). Consumo de Energia por funcionário: o Consumo de energia (kWh) / Nº de funcionários permanentes Tabela 9 - Requisitos de indicadores de estado 6.4.1.5 Indicadores de Poupança Os indicadores de poupança são indicadores que estão directamente relacionados com a baseline. Dizem o quanto estamos a poupar em relação a um ano anterior. Estes indicadores têm em conta não só os consumos mas também as alterações que o edifício sofre. Por exemplo, se consumimos 10kWh em 2010 e em 2011 estamos a consumir 15kWh isto não quer dizer que estamos a gastar mais, porque podem ter existido alterações ao edifício (por exemplo, ter sido acrescentado um AVAC). Com estes indicadores temos a poupança real em relação à baseline registada. Requisito INP-001 Descrição Prioridade Os indicadores de poupança são indicadores predefinidos que Must have são vistos nos relatórios gerados pela aplicação e têm como base de cálculo a baseline. INP-002 52 Sempre que uma baseline é actualizada os valores dos Must have Pedro Saraiva – Relatório da disciplina de Estágio/Projecto Industrial 2010/2011 iEnergy – Eficiência Energética em Edifícios Especificação indicadores de poupança devem ser actualizados também. Os INP-003 indicadores de poupança são obtidos através do relacionamento dos valores da baseline e dos valores medidos pelos equipamentos que fazem parte da solução iEnergy. O utilizador pode ver na área principal de indicadores os seguintes indicadores de poupança: 1. Poupança mensal de energia = Consumo de energia (kWh) da baseline actualizada – consumo de energia mensal (kWh) medido 2. Poupança mensal de dinheiro = Poupança de energia × Custo médio do kWh Poupança mensal de emissões = Poupança de energia × Factor de emissão do kWh Notas O cálculo da poupança é o cálculo da poupança obtida no final de um mês, com a baseline actualizada, de modo a evitar dados desactualizados, ou seja: Poupança mensal = Valor da Baseline actualizada – Valor medido mensal Baseline actualizada = Baseline do ano 0 +- Actualização Exemplo: Poupança de Energia em Janeiro = Energia consumida de Baseline em Janeiro – Energia registada em Janeiro Energia consumida de Baseline em Janeiro = Energia consumida em Janeiro no ano 0 – 1340 kWh (Desactivação de Chiller) Tabela 10 - Requisitos de indicadores de poupança 6.4.1.6 Mensagens (MNS) As mensagens servem como forma de comunicação entre o gestor de energia e o gestor de determinado edifício. Requisito MNS1 Descrição Prioridade Deverá ser possível ao gestor de energia enviar mensagens para Must Have as agências, com dicas para promover a redução do consumo energético. Estas mensagens são caracterizadas por: • Data: data de inserção da mensagem no sistema; • Severidade: classificação da severidade da mensagem, Alto, Pedro Saraiva – Relatório da disciplina de Estágio/Projecto Industrial 2010/2011 53 iEnergy – Eficiência Energética em Edifícios Especificação Médio ou Baixo; • Titulo: título da mensagem a disponibilizar à agência; • Corpo: corpo da mensagem a disponibilizar à agência; • Agência: identificador da agência [<código>-<nome>]. Listagem de todas as mensagens enviadas pelo operador, com Nice MNS2 filtro por agência. to Have Notas Uma vez que as mensagens são introduzidas na base de dados e posteriormente lidas por uma aplicação externa, não está a ser contemplado o editar e eliminar de mensagens. Tabela 11 - Requisitos de mensagens 6.4.1.7 Tags Virtuais Existem casos em que o valor de uma tag não nos dá a informação do consumo total de um edifício, sendo então necessário somar o consumo de todas as tags para chegar ao valor pretendido. Uma tag virtual corresponde a uma operação entre duas tags ou mesmo duas tags virtuais. Requisito Descrição Prioridade TV1 Deve ser possível criar editar apagar tags virtuais. Must have TV2 As operações suportadas sobre as tags são a multiplicação, divisão, Must have soma e subtracção. As operações são sempre feitas sobre duas ou mais tags. TV3 O resultado desta operação deve poder ser visto da mesma forma que Must have são vistas as tags normais. Devem também aparecer na hierarquia de grupos na aplicação web. TV4 As tags virtuais devem também ser agregadas segundo as agregações Must have especificadas para esta aplicação (Hora, dia, mês). Tabela 12 - Requisitos de tags virtuais 6.4.2 Módulo de Análise de Dados É necessário poder operar sobre informação histórica relevante, e analisar períodos específicos de consumo e/ou registo, de modo a perceber quando, como, e onde é que a energia é consumida, quais os parâmetros que afectam esse consumo, e onde se encontram as oportunidades de melhoria de eficiência 54 Pedro Saraiva – Relatório da disciplina de Estágio/Projecto Industrial 2010/2011 iEnergy – Eficiência Energética em Edifícios Especificação energética. Esta secção encontra-se dividida em várias sub-secções já que existem muitos requisitos associados a análise de dados. 6.4.2.1.1 Configuração de Opções de Grupos e Variáveis (VAG) Neste requisito pretende clarificar-se como são feitas as pesquisas de dados na base de dados. Aqui, os grupos lógicos são apresentados numa árvore que permite seleccionar o que se pretende ver a cada instante. Requisito COGV1 Descrição Prioridade O gestor de energia pode ver os grupos lógicos (edifícios, Must Have agências, AVAC, etc) e respectivos parâmetros energéticos monitorizados (energia, tensão, corrente, etc) numa vista em árvore hierarquizada. COGV2 O gestor de energia pode filtra os grupos lógicos e Nice to Have respectivos parâmetros através do seu nome ou código. Somente grupos lógicos ou parâmetros que preencham os critérios de filtragem devem ser mostrados, toda a hierarquia superior caso exista deve ser mantida. COGV3 O gestor de energia pode manipular livremente os Shoud Have parâmetros monitorizados. Seleccionar e desseleccionar os parâmetros associadas aos grupos lógicos através uma checkbox. O Interface Web deve permitir ter no máximo 10 parâmetros seleccionadas, destes 10 apenas dois podem ter unidades diferentes. COGV4 O gestor de energia pode seleccionar uma tag e escolher a Shoud Have suar conversão para outra unidade (por exemplo ver o consumo de energia em CO2). Notas O interface web deve apresentar uma árvore com a seguinte hierarquia base com este formato: Pedro Saraiva – Relatório da disciplina de Estágio/Projecto Industrial 2010/2011 55 iEnergy – Eficiência Energética em Edifícios Especificação Tabela 13 – Requisitos de configuração de opções de grupos e variáveis 6.4.2.1.2 Configuração de Opções de Aquisição de Dados da BD (COD) A aquisição de dados é também um parâmetro configurável, podem ser analisados consumos de dias isolados ou até intervalos de tempo. É também possível especificar o que se pretende ver como por exemplo ver o consumo de kWh convertido ema CO2. Requisito COD1 Descrição Prioridade O gestor de energia pode seleccionar vários dias para Must Have monotorização num calendário de dias seleccionáveis (o Interface web deve colocar por defeito a selecção no dia anterior a data actual). Os dias podem ser seleccionados em semanas, meses ou anos diferentes. COD2 O gestor de energia deve ter uma opção no calendário para Nice to Have seleccionar todos os dias da semana de um mês (excluindo assim os fins de semana). COD3 O gestor de energia pode escolher um intervalo de Must Have monotorização através de uma data de início e fim (por defeito a data de fim deve ser a data actual e a data de inicio 7 dias inferior). COD4 O gestor de energia deve poder optar pela escolha da data Must Have através da funcionalidade CO1 ou CO2. Por defeito deve estar activa a funcionalidade CO1. COD5 O gestor de energia deve igualmente poder configurar o Must Have intervalo de horas para visualização gráfica, através da introdução de uma hora de início e de fim para uma análise com granularidade diária (por defeito a hora de inicio deve ser as 00:00 56 Pedro Saraiva – Relatório da disciplina de Estágio/Projecto Industrial 2010/2011 iEnergy – Eficiência Energética em Edifícios Especificação e a hora fim 23:59). O gestor de energia deve ter a possibilidade de configurar a Must Have COD6 obtenção de dados agregados (hora, dia, Mês). O gestor de energia deve poder minimizar a área de opções Must Have COD7 para ter maior área de análise. O gestor de energia deve poder ter a opção de criar gráficos Must Have COD8 de regressão linear simples para os parâmetros seleccionados. Tabela 14 - Requisitos de configuração da aquisição de dados 6.4.2.1.3 Visualização de Dados na Forma de Gráfico (VDG) Depois de escolhidos todos os parâmetros, o software apresenta um gráfico que está de acordo com as opções escolhidas. Requisito VDG1 Descrição Prioridade O gestor de energia pode gerar um gráfico quando tiver no Must Have mínimo um parâmetro energético e um dia seleccionado. VDG2 O gestor de energia pode gerar um gráfico com base nas Must Have opções escolhidas. Os parâmetros energéticos seleccionados devem estar sobrepostos no mesmo gráfico bem como os diferentes dias seleccionados (ex. se for seleccionado o dia 1 de Março e o dia 1 de Abril estes dois devem aparecer sobrepostos). VDG3 Os eixos do gráfico devem estar identificados com as suas Must Have unidades (o eixo do x representa sempre o tempo com excepção para o gráfico de regressão linear, o eixo dos y representa a unidade dos parâmetros seleccionadas). VDG4 O gestor de energia deve ser informado do período sazonal Nice to Have dos dados representados no gráfico (o gráfico pode ter informação de vários períodos sazonais). VDG5 O gestor de energia deve ter a indicação dos diferentes Must Have períodos horários dentro do intervalo diário. Quando existe uma sazonalidade diferente entre os dias seleccionados é necessário mostrar os períodos horários de maneira alternativa (Cores quando possível, pedaços e séries diferentes). VDG6 O gráfico deve conter uma legenda elucidativa de todas as Must Have Pedro Saraiva – Relatório da disciplina de Estágio/Projecto Industrial 2010/2011 57 iEnergy – Eficiência Energética em Edifícios Especificação séries de dados representados nele. VDG7 O gestor de energia deve poder ver no gráfico informação do Must Have valor mínimo, máximo, médio e desvio padrão ou custos para o intervalo de tempo, caso se justifique. Esta opção deve poder ser activa e desactiva. VDG8 O gestor de energia pode ver representado no gráfico caso Must to Have active a opção, uma linha de média, mínimo e máximo. VDG9 O gestor de energia pode ver representado no gráfico uma Must Have linha de tendência linear. Esta linha deve estar sempre representada para gráficos de regressão linear. Com a respectiva equação y=mx+b e R. VDG10 O gestor de energia pode seleccionar o tipo de gráfico (linhas, Nice to Have barras, Stacked Bar). VDG11 O gestor de energia deve poder exportada o gráfico e toda Must Have informação contida nele, bem como a tabela geral para Excel. Tabela 15 - Requisitos de visualização de dados 6.4.2.1.4 Análise de Custos de Energia (ACE) A análise de custo é uma funcionalidade importante do software e é com esta análise que o gestor de energia pode efectivamente ver o que está a ser gasto em cada um dos seus edifícios ou mesmo em cada um dos sistemas. Requisito ACE1 Descrição Prioridade O gestor de energia pode consultar uma representação Must have gráfica com a relação consumo/custos. Os períodos horários repartidos em Horas de Cheia, Ponta, Vazio e Super Vazio devem estar identificados de forma a poderem ser distinguidos (Cores). Para cálculo dos custos deve ser tido em conta o tarifário associado. ACE2 O gestor de energia pode ver também uma tabela com o Must have resumo da representação gráfica de ACE1, com informação da data, valor de consumo/ custo, e consumos/custos totais. ACE3 O gestor de energia deve também poder ver uma segunda Must have tabela com os custos e consumos por tipo de hora (Cheia, Vazio, 58 Pedro Saraiva – Relatório da disciplina de Estágio/Projecto Industrial 2010/2011 iEnergy – Eficiência Energética em Edifícios Especificação etc) e o tarifário. ACE4 O gestor de energia pode exportar estas tabelas para o Must have formato Excel. Tabela 16 - Requisitos de análise de custos de energia 6.4.2.1.5 Conclusões da Análise (CA) As conclusões da análise permitem que o gestor de energia tenha ao seu dispor um conjunto de análises estatísticas mais frequentes em relação aos dados em análise. Requisito CA1 Descrição Prioridade O gestor de energia pode também consultar uma tabela com Must have conclusões retiradas dos dados representados no gráfico. Esta tabela deve conter informação sobre valor médio, máximo, mínimo, sobre o desvio padrão, hora de máximo, hora de mínimo, frequência, moda, média, mediana, variância, erro padrão, precisão. CA2 O gestor de energia pode também consultar uma tabela com o Must have resumo de consumos em horas de ponta. CA3 O gestor de energia pode exportar esta tabela para o formato Must have Excel. Tabela 17 - Requisitos de conclusões da análise 6.4.2.1.6 Tabela Geral (TG) A tabela geral representa os dados em bruto, é constituída por todos os dados do intervalo de tempo seleccionado e para a granularidade seleccionada sem qualquer tipo de tratamento. Requisito TG1 Descrição Prioridade O gestor de energia deve poder consultar os dados contidos no Must have gráfico na forma de uma tabela. Esta tabela deve contar com os seguintes campos (Data/Hora, Edifício, Grupo (ex. AVAC, Geral), parâmetro, valor, unidades). TG2 O gestor de energia pode exportar a tabela para o formato Excel. Must have Tabela 18 - Requisitos de dados gerais Pedro Saraiva – Relatório da disciplina de Estágio/Projecto Industrial 2010/2011 59 iEnergy – Eficiência Energética em Edifícios Especificação 6.4.3 Módulo de Relatórios No módulo de relatórios é possível gerar dois tipos de relatórios prefinidos com análises relevantes para o gestor de energia como análise de consumo de energia activa, energia reactiva, potência contratada etc. Requisito REL1 Descrição Prioridade Deverá ser possível um utilizador gerar um relatório de um grupo lógico. Este relatório pode ter 4 tipos de agregação diferentes: Diário Semanal Mensal Anual Must have No grupo da agência deveram existir as tags de Energia Activa e as três tags virtuais de Energia Reactiva (dependendo do contador instalado), tag de Factor de Potência e tag de Voltagem. REL2 Relatório Diário terá de apresentar os seguintes campos para o dia seleccionado: Gráfico, tabela de consumos e tabela de custos da energia activa Gráfico, tabela de consumos e tabela de custos da energia Must have reactiva Gráfico, tabela de consumos do Facto de Potência Gráfico, tabela de consumos da Voltagem Tabela de alarmes para o Factor de Potência com valores inferiores a 0,94. REL3 Relatório Semanal terá de apresentar os seguintes campos para a semana seleccionada: Gráfico, tabela de consumos e tabela de custos da energia activa Gráfico, tabela de consumos e tabela de custos da energia Must have reactiva 60 Gráfico, tabela de consumos do Facto de Potência Gráfico, tabela de consumos da Voltagem Pedro Saraiva – Relatório da disciplina de Estágio/Projecto Industrial 2010/2011 iEnergy – Eficiência Energética em Edifícios Especificação Tabela de alarmes para o Facto de Potência com valores inferiores a 0,94. Tabela com os indicadores do grupo Tabelas de poupança de energia, custo e emissões com base na baseline da agência. REL4 Gráfico e tabela da Potência tomada e contratada Relatório Mensal terá de apresentar os seguintes campos para o mês seleccionado: Gráfico, tabela de consumos e tabela de custos da energia activa Gráfico, tabela de consumos e tabela de custos da energia Must have reactiva Gráfico, tabela de consumos do Facto de Potência Gráfico, tabela de consumos da Voltagem Tabela de alarmes para o Facto de Potência com valores inferiores a 0,94. Tabela com os indicadores do grupo Tabelas de poupança de energia, custo e emissões com base na baseline da agência. REL5 Gráfico e tabela da Potência tomada e contratada Relatório Anual terá de apresentar os seguintes campos para o ano seleccionado: Gráfico, tabela de consumos e tabela de custos da energia activa. Gráfico, tabela de consumos e tabela de custos da energia Must have reactiva Gráfico, tabela de consumos do Facto de Potência Gráfico, tabela de consumos da Voltagem Tabela de alarmes para o Factor de Potência com valores inferiores a 0,94. Tabela com os indicadores do grupo Tabelas de poupança de energia, custo e emissões com base na baseline da agência. Pedro Saraiva – Relatório da disciplina de Estágio/Projecto Industrial 2010/2011 61 iEnergy – Eficiência Energética em Edifícios Especificação Gráfico e tabela da Potência tomada e contratada REL6 Na secção de energia activa o gráfico utiliza o seguinte tipo de agregação consoante a sua periodicidade: Diário -> Horária Semanal -> Diária Mensal -> Diária Anual -> Mensal Must have A tabela de consumos terá os seguintes campos consoante a periodicidade do relatório: Diário: Moda, Média, Mediana, Variância, Desvio Padrão, Máximo, Mínimo e Total. Semanal: Frequência (entre dias de semana e fim-de-semana), Moda, Média, Mediana, Variância, Desvio Padrão, Máximo, Mínimo e Total. Mensal: Média, Desvio Padrão, Máximo, Mínimo e Total. Anual: Frequência (entre meses), Média, Desvio Padrão, Máximo, Mínimo e Total. A tabela terá os seguintes campos: percentagens de consumo, percentagem de custo e custo especifico em cada tipo de intervalo, e o custo total, médio, mínimo e máximo. REL7 REL8 Semelhante a REL6 mas para energia reactiva. Must have As secções de Factor de Potência e de Voltagem são semelhantes às Must have anteriores apenas não possuem tabela custos. REL9 Na secção de alarmes são apresentados todos os alarm triggers que Must have apontam para a tag de Factor de Potência em que o seu valor é inferior a 0,94. REL10 62 Na secção de indicadores de poupança são apresentadas 3 tabelas: Must have Poupança de energia Poupança de custos Pedro Saraiva – Relatório da disciplina de Estágio/Projecto Industrial 2010/2011 iEnergy – Eficiência Energética em Edifícios Especificação Poupança de emissões Estes valores são calculados fazendo a diferenciação dos valores da baseline homologa (ano anterior) com os da tag de Energia Activa para cada mês do relatório. Para o custo multiplica-se a poupança de energia pelo custo da energia activa média em cada mês. Para a emissão multiplica-se a poupança de energia pela unidade de conversão kW -> kg/CO2. REL11 Na secção de análise de Potência o gráfico apresenta a potência Must have contratada em cada mês (máximo valor da potência tomada nos 8 meses anteriores) e a potência tomada em cada mês para cada tipo de intervalo (obtida através da divisão dos valores da tag de Energia Activa em cada tipo de hora). Tabela 19 - Requisitos de Relatórios 6.4.4 Módulo de Alertas Os alarmes são situações anómalas, ou de referência, que são reportadas pelo software de forma automática, caso se verifiquem. Estes alertas ajudam a chamar a atenção do gestor de energia para edifícios com consumos anormais de forma a poder intervir. Requisito ALM1 Descrição Prioridade Esta funcionalidade deve funcionar da mesma maneira que os Must have validadores no iEnergy sendo estes plugins (dll’s) que são carregados para o iEnergy. ALM2 Deve ser possível ver todos os alarmes configurados no sistema, Must have activar, desactivar, criar, editar e apagar alarmes. Os alarmes são criados sobre tags, grupos ou unidades. ALM3 Os tipos de alarmes que podem ser configurados no iEnergy são: Must have Alarme de patamares – Os valores das tags devem estar entre dois patamares um inferior e outro superior se forem ultrapassados é lançado um alerta. Em três níveis de gravidade (pouca gravidade, grave e muito grave). Pedro Saraiva – Relatório da disciplina de Estágio/Projecto Industrial 2010/2011 63 iEnergy – Eficiência Energética em Edifícios Especificação Funcionamento de unidades – Alarme lançado quando uma unidade deixa de comunicar consumos. Alarme de objectivo – É fixado um objectivo e se esse objectivo não for atingido é lançado um alarme. Existem três tipos de graus neste alarme (pouca gravidade, grave e muito grave) os alertas são lançados segundo estes graus. ALM4 Quando o alarme é disparado deve ser enviado um email para a Must have lista configurada nos parâmetros do alerta com a descrição do alarme. ALM5 Deve ser possível no iEnergy listar todos os alarmes disparadosMust pelohave sistema. Deve também ser possível marca-los como lidos. Tabela 20 - Requisitos para gestão de alertas 6.4.5 Módulo de Actuação A actuação é uma acção sobre determinado dispositivo, permite ligar e desligar esse mesmo dispositivo. A actuação pode ser agendada para uma determinada hora e para um determinado dia e será disputada automaticamente pelo sistema. Requisito MA1 Descrição Prioridade Deve ser possível agendar actuações para cada um dos dias da Must have semana para uma determinada hora. MA2 Deve ser possível ver a lista de actuações, registadas no sistema vem Must have como gerir essas actuações (adicionar, editar e apagar). MA3 O sistema deve reconhecer automaticamente quando deve enviar uma Must have actuação, e quando necessário deve enviar a actuação para a camada inferior da plataforma. É da responsabilidade da camada inferior enviar a mensagem para o dispositivo em tempo útil. Notas As actuações não são instantâneas devido a limitações que existem actualmente no hardware e software. Deve no entanto ser garantido um tempo máximo para que a actuação seja enviada para os dispositivos. Tabela 21 – Requisitos para a actuação 64 Pedro Saraiva – Relatório da disciplina de Estágio/Projecto Industrial 2010/2011 iEnergy – Eficiência Energética em Edifícios Especificação 6.4.6 Módulo de Tarifários As duas maiores vantagens do - iEnergy - é que os utilizadores finais podem ver o impacto do seu consumo energético em termos financeiros e ecológicos. Com esta informação os utilizadores podem conduzir decisões informadas destinadas a optimizar o consumo energético e reduzir os custos e a produção de carbono. De forma a produzir uma vista financeira dos consumos de energia, o - iEnergy tem de ter uma fonte de informação sobre as tarifas que são aplicadas por cada fornecedor. 6.4.7 Módulo de Criação e Cálculo de Tarifas Os tarifários são o que permite saber o custo real de um consumo de energia num edifício. Neste módulo pretende-se especificar a introdução e cálculo de tarifários de energia. Requisito CTAR1 Descrição Prioridade Deve ser possível criar tarifários industriais de energia no sistema, estes tarifários são diferentes dos que existem actualmente no iEnergy, já Must have que tem em conta mais parâmetros, como a energia reactiva e as potências (potência contratada e potência em horas de ponta). Os tarifários actuais devem ser alterados de forma a suportar estes tarifários, mantendo os tarifários já existentes. Pretende-se cobrir os tarifários industriais sendo eles os tarifários: CTAR2 MAT (Muito Alta Tensão) AT (Alta Tensão); MT (Média Tensão); BTE (Baixa Tensão Especial) Cada um dos parâmetros que podem ser adicionados aos tarifários tem os seguintes parâmetros associados: Nome - Nome do parâmetro; Período de Cálculo – Em que período é calculado (horário, Must have diário, mensal); Parâmetro - Parâmetro a que se refere (energia activa, energia reactiva, potência); Tipos de hora - Tipos de horas em que o parâmetro deve ser verificado; Preço - Custo associado ao parâmetro. Pedro Saraiva – Relatório da disciplina de Estágio/Projecto Industrial 2010/2011 65 iEnergy – Eficiência Energética em Edifícios Especificação CTAR3 No caso do parâmetro de energia reactiva indutiva existe ainda associado a ele um factor de multiplicação. Este factor de multiplicação Must have tem associados os seguintes parâmetros. Descrição – Descrição do factor de multiplicação; Máximo – Valor máximo; Mínimo – Valor mínimo; Factor de multiplicação – Factor de multiplicação associado que vai ser multiplicado pelo preço. CTAR4 Deve ser possível associar custos fixos aos tarifários industriais que seram aplicados ao custo no fim de cada mês. CTAR5 Must have Deve ser possível introduzir intervalos e temporadas associadas a esses intervalos. Os parâmetros associados aos intervalos são: Hora de início Hora de fim Dia da semana Temporada Must have As temporadas têm associadas duas datas a data de início e de fim. CTAR6 Estes valores devem ser calculados de forma individual, de maneira a existir sempre uma separação de custos e ser possível saber o que é gasto Must have em cada parâmetro. Os valores de energia reactiva são guardados na tag de energia reactiva (pode ser uma virtual tag) esta tag deve ter o respectivo tipo de medida associada, para ser reconhecida como uma energia reactiva de tarifário. Os valores de potência são considerados KPIs e são armazenados nos indicadores. Devido a existência de várias energias activas nos dispositivos a energia activa que é usada no tarifário deve ser identificada da mesma forma que as tags de energia reactiva, através do tipo de medida associado a tag. Notas Devido a complexidade relacionada com o cálculo dos tarifários esta vai ser explicada na próxima secção deste documento. Tabela 22 – Requisitos para o cálculo de tarifários 66 Pedro Saraiva – Relatório da disciplina de Estágio/Projecto Industrial 2010/2011 iEnergy – Eficiência Energética em Edifícios 6.4.7.1 Especificação Componentes Tarifárias A estrutura geral das opções tarifárias de MAT (Muito Alta Tensão), AT (Alta Tensão), MT (Média Tensão) e BTE (Baixa Tensão Especial) são compostas pelas várias partes especificadas neste capítulo. 6.4.7.2 Termo Fixo A cada opção tarifária, é aplicado um termo tarifário fixo, definido em Euros por mês. Como exemplo, apresenta-se este valor para a opção tarifária de MAT. Figura 12 - Termo fixo do tarifário 6.4.7.3 Energia Activa O tarifário apresenta um custo associado a energia activa, definido em Euros por kWh isto significa que por cada kWh vamos ter um custo em Euros associado dependendo do período do consumo e do tipo de hora (Figura 13). Os preços da energia activa nas opções tarifárias de MAT, AT e MT são discriminados em quatro períodos trimestrais e em quatro períodos horários. A definição destes períodos encontra-se no artigo 26º do Regulamento Tarifário do Sector Eléctrico [4]. Como exemplo, apresenta-se a discriminação dos preços para a opção tarifária de MAT. Figura 13 - Descriminação de preços de energia activa 6.4.7.4 Potência Relativamente às necessidades de potência, são aplicados dois preços em cada opção tarifária: um relativo à Potência Contratada e outro relativo à Potência em Horas de Ponta, descritos nas secções 6.4.7.5.7.5 e 6.4.7.5.7.6. Como exemplo, apresentam-se ambos os preços para a opção tarifária de MAT. Pedro Saraiva – Relatório da disciplina de Estágio/Projecto Industrial 2010/2011 67 iEnergy – Eficiência Energética em Edifícios Especificação Figura 14 - Descriminação de preços de potência 6.4.7.5 Potência Contratada Cada opção tarifária apresenta um termo relativo a preços de potência contratada, definidos em Euros por kW, por mês. A definição de potência contratada é indicada no artigo 130º do Regulamento de Relações Comerciais do Sector Eléctrico [5], podendo resumir-se no valor indicado no ponto 4 deste artigo: “Sem prejuízo do disposto nos números anteriores, o valor da potência contratada nos pontos de entrega em MAT, AT, MT e BTE, referido no n.º 1 é actualizado para a máxima potência tomada, registada nos 12 meses anteriores, incluindo o mês a que a factura respeita” Por sua vez, a potência tomada é definida no artigo 129º do Regulamento de Relações Comerciais do Sector Eléctrico [4], como: “A potência tomada é o maior valor da potência activa média, registado em qualquer período ininterrupto de 15 minutos, durante o intervalo de tempo a que a factura respeita.” 6.4.7.6 Potência em Horas de Ponta Cada opção tarifária apresenta um termo relativo a preços de potência em horas de ponta, definidos em Euros por kW, por mês. A potência em horas de ponta é definida no artigo 131º do Regulamento de Relações Comerciais do Sector Eléctrico [4], como: “A potência em horas de ponta (Pp) é a potência activa média calculada de acordo com a fórmula seguinte: Pp = Ep / Hp em que: Ep - energia activa no ponto de medição em horas de ponta, durante o intervalo de tempo a que a factura respeita. Hp - número de horas de ponta, durante o intervalo de tempo a que a factura respeita.” 6.4.7.7 Energia Reactiva As opções tarifárias apresentam ainda um termo relativo a preços da energia reactiva, definidos em Euros por kvarh. 68 Pedro Saraiva – Relatório da disciplina de Estágio/Projecto Industrial 2010/2011 iEnergy – Eficiência Energética em Edifícios Especificação Os preços da energia reactiva são discriminados em preços da energia reactiva indutiva (ou energia reactiva fornecida) e preços da energia reactiva capacitiva (ou energia reactiva recebida), sendo discriminada a sua fórmula de cálculo nas secções 6.4.7.8 e 6.4.7.8. Como exemplo, apresentam-se ambos os preços para a opção tarifária de MAT. Figura 15 - Descriminação de preços de energia reactiva 6.4.7.8 Energia Reactiva Fornecida (Indutiva) De acordo com o Despacho 3/2010 da ERSE [6], a facturação da energia reactiva indutiva deverá ser facturada nos períodos horários fora de vazio (Horas de Ponta e Horas Cheias) de acordo com os factores multiplicativos seguintes: Factores multiplicativos a aplicar ao preço de referência da energia reactiva indutiva, em 2011, de acordo com os Despachos 7253/2010 de 26 Abril e 10/2010 de 29 Julho, da ERSE: Descrição Factor multiplicativo Energia reactiva não cobrada tgφ < 0,3 0 Escalão 1 (a partir de 01.01.2012) Para 0,3 ≤ tgφ < 0,4 0,33 Escalão 2 Para 0,4 ≤ tgφ < 0,5 1 Escalão 3 Para tgφ ≥ 0,5 3 Figura 16 - Factores multiplicativos aplicados a energia reactiva O valor de tg φ é obtido pela equação: Em que é o total de energia reactiva indutiva registada nos períodos horários fora de vazio durante o período de facturação actual e representa o total de energia activa registada para o mesmo período. Até 31/Dez/2011 o Escalão 1 não é cobrado. Após essa data entra em vigor o Escalão 1 e o período de cálculo do escalão passa a ser diário, em vez do actual período igual ao de facturação. 6.4.7.9 Energia Reactiva Recebida (Capacitiva) De acordo com o Despacho 3/2010 da ERSE [5], a facturação da energia reactiva capacitiva pode ser facturada nos períodos horários de vazio (Horas de Vazio Normal e Horas de Super Vazio) embora não seja obrigatória esta facturação. Os operadores de rede deverão tornar públicos os fundamentos e as situações que podem justificar a facturação de energia capacitiva. Pedro Saraiva – Relatório da disciplina de Estágio/Projecto Industrial 2010/2011 69 iEnergy – Eficiência Energética em Edifícios Especificação 6.4.7.10 Distinção de Tarifários nas Regiões Autónomas Deve ter-se em atenção que nas Regiões Autónomas (Madeira e Açores) os tarifários são diferentes e têm características de facturação diferentes. Por exemplo, a partir de 01/Jan/2012 o período de integração da energia reactiva indutiva passa a ser diário em Portugal Continental e mantém-se mensal nas regiões autónomas da Madeira e dos Açores. 6.4.7.11 Medições Os tarifários industriais apresentados neste documento baseiam-se em mais medições do que as usadas nos anteriores tarifários domésticos, que eram apenas relativos a opções tarifárias de BTN (Baixa Tensão Normal). Para poder efectuar os cálculos de preços associados a estes tarifários, será necessário garantir que temos: Energia Activa recolhida com uma periodicidade de 15 minutos (ou um submúltiplo); Energia Reactiva Indutiva recolhida com uma periodicidade de 60 minutos (ou um submúltiplo); Energia Reactiva Capacitiva recolhida com uma periodicidade de 60 minutos (ou um submúltiplo); 6.4.7.12 Cálculo do Valor da Potência Tomada O valor de potência tomada (para cálculo da potência contratada) indica ser baseado numa potência activa média para um período de 15 minutos, pelo que o seu valor pode (e deve) ser obtido directamente do valor de consumo da energia activa ( ) para o período específico: ( ) 6.4.7.13 Cálculo das Energias Reactivas (contadores Hexing) No caso particular dos contadores da Hexing HXE34AS-CT, instalados numa grande maioria dos clientes industriais, estes medem quatro componentes da energia reactiva (energia reactiva nos quatro quadrantes) e o que pretendemos é apenas a distinção entre energia reactiva indutiva e energia reactiva capacitiva. 70 Pedro Saraiva – Relatório da disciplina de Estágio/Projecto Industrial 2010/2011 iEnergy – Eficiência Energética em Edifícios Especificação Para obter estes valores de energia a partir dos valores de energia reactiva nos quatro quadrantes, deverão ser criadas as tags virtuais que respeitem as seguintes equações: 6.4.8 Módulo de Simulação de Tarifários Por forma a identificar melhorias na redução de custos num certo grupo lógico, este módulo deve permitir a simulação de tarifários em relação a todos os tarifários inseridos na aplicação permitido desta forma dizer qual seria o melhor tarifário para certo edifício. Requisito STAR1 Descrição Prioridade Deve ser possível comparar os vários tarifários existentes no iEnergy Must have aplicados aos consumos de energia em históricos relativos aos grupos lógicos. STAR2 Deve ser possível seleccionar o grupo lógico para a qual se pretende a simulação de tarifários. STAR3 A simulação de tarifários e relativa a cada uma das componentes de cada tarifário: STAR4 Energia activa dividida por tipos de hora; Potência Contratada; Potência em Horas de ponta; Energia reactiva indutiva e capacitiva; Custo fixo aplicado ao tarifário; Total de custos do tarifário. Must have Os tipos de horas usados pela simulação são configurados na área de Must have tarifários bem como o preço das potências e das energias capacitiva e indutiva. STAR5 O resultado da simulação pode ser positivo ou negativo sendo que um Must have resultado positivo significa que se estivesse a usar aquele tarifário pouparia em relação ao outro tarifário. STAR6 Deve ser possível exportar esta informação para Excel. Nice to Have Pedro Saraiva – Relatório da disciplina de Estágio/Projecto Industrial 2010/2011 71 iEnergy – Eficiência Energética em Edifícios Especificação Notas Apenas são feitas simulações em relação aos grupos que são as raízes das árvores de grupos lógicos. A simulação deve ser feita sobre o quadro geral de cada edifício, neste cálculo não interessa que exista a separação por quadro AVAC, Iluminação apenas interessa o consumo total do edifício (grupo lógico). Tabela 23 – Requisitos para simulação de tarifários 6.5 Protótipos de Interface Nesta secção encontram-se alguns protótipos de interface com o utilizador construídos inicialmente para validação dos requisitos apresentados nesta secção. Com base nos requisitos funcionais apresentados neste capítulo, foram feitos vários protótipos de interface que foram posteriormente mostrados aos clientes a fim de validar alguns dos requisitos e de orientar a implementação. A descrição exaustiva de todos os protótipos construídos seria demasiado extensa e de interesse reduzido. Por esse motivo, nesta secção tentou-se apresentar e explicar exemplos que melhor demonstrem a generalidade do funcionamento e visual da aplicação, assim como os casos particulares mais importante. Estes protótipos foram construídos numa fase inicial, alguns não reflectem a aparência final na aplicação, serviram apenas para validar alguns requisitos. Ao longo do desenvolvimento foram adaptados as necessidades, quer para utilização quer para apressar o desenvolvimento já que devido aos atrasos iniciais não foi possível perder muito tempo a especificar exaustivamente estes protótipos de interface. Tabela de Mapeamento entre requisitos e ecrãs de protótipos de interface: Módulo Ecrã Módulo de Análise de dados Figura 17, 18,19, 20 e 21. Módulo de Alertas Figura 22, 23 e 24. Módulo de Actuação Figura 25 e 26. Módulo de Tarifários Figura 27, 28, 29 e 30 Módulo de Grupos Lógicos Figura 31 e 32 Tabela 24 - Ligação de requisitos a protótipos 72 Pedro Saraiva – Relatório da disciplina de Estágio/Projecto Industrial 2010/2011 iEnergy – Eficiência Energética em Edifícios Especificação Figura 17 - Gráfico de linhas com representação dos períodos sazonais e períodos horários Figura 18 - Opções de Gráfico e informação de análise Pedro Saraiva – Relatório da disciplina de Estágio/Projecto Industrial 2010/2011 73 Especificação iEnergy – Eficiência Energética em Edifícios Figura 19 - Tabela de Conclusões Figura 20 - Tabela Geral 74 Pedro Saraiva – Relatório da disciplina de Estágio/Projecto Industrial 2010/2011 iEnergy – Eficiência Energética em Edifícios Especificação Figura 21 - Análise de Custos Figura 22 - Lista de Alertas Pedro Saraiva – Relatório da disciplina de Estágio/Projecto Industrial 2010/2011 75 Especificação iEnergy – Eficiência Energética em Edifícios Figura 23 - Criação de alertas Figura 24 - Lista de alertas disparados 76 Pedro Saraiva – Relatório da disciplina de Estágio/Projecto Industrial 2010/2011 iEnergy – Eficiência Energética em Edifícios Especificação Figura 25 - Criação de actuações Figura 26 - Lista de actuações Pedro Saraiva – Relatório da disciplina de Estágio/Projecto Industrial 2010/2011 77 Especificação iEnergy – Eficiência Energética em Edifícios Figura 27 - Simulação de tarifários Figura 28 - Lista de tarifários 78 Pedro Saraiva – Relatório da disciplina de Estágio/Projecto Industrial 2010/2011 iEnergy – Eficiência Energética em Edifícios Especificação Figura 29 - Inserção de novo tarifário Figura 30 - Inserção de parâmetros do tarifário Pedro Saraiva – Relatório da disciplina de Estágio/Projecto Industrial 2010/2011 79 Especificação iEnergy – Eficiência Energética em Edifícios Figura 31- Lista de grupos Figura 32 - Página de edição de grupos 80 Pedro Saraiva – Relatório da disciplina de Estágio/Projecto Industrial 2010/2011 iEnergy – Eficiência Energética em Edifícios Especificação 6.6 Requisitos Não - Funcionais Existem vários requisitos de qualidade que se explicitam de seguida. 6.6.1 Eficiência Os requisitos funcionais devem ser implementados tendo em vista uma utilização eficiente dos recursos do sistema, tais como a memória, processamento e largura de banda no acesso online. A resposta do sistema em geral deverá ser apenas o necessário para poder ser o mais eficiente possível, sem gastar mais recursos do que seja realmente necessário. No entanto, não é um sistema crítico. O sistema deve conseguir responder a pedidos referentes a dados agregados em menos de 1 segundo. O sistema deve conseguir enviar a mensagem para as camadas inferiores com um atraso inferior a 5 minutos (no caso do comando de actuação). O sistema deve conseguir construir a árvore de grupos lógicos em menos de 1 segundo. 6.6.2 Fiabilidade O sistema deverá estar preparado para que no caso de ocorrerem falhas durante o seu funcionamento, este possa tentar garantir que não haja perdas de dados e deverá também, sempre que necessário e possível, emitir mensagens de erro claras, permitindo ao utilizador compreender o que se passa. Ou seja, deverá ser realizado um correcto tratamento de erros. Os resultados obtidos com o módulo de simulação de tarifários deverão ser os mais fiáveis possíveis, sendo fieis aos consumos registados e aos tarifários inseridos, já que não poderemos garantir que os consumos registados pelos equipamentos são os mesmos que os registados pela EDP. Não se pode exigir uma fiabilidade da ordem dos 100%, mas é necessário que pelo menos se consiga justificar e despertar o interesse pela sua utilização. No módulo de actuação é aceitável que existam atrasos no envio da mensagem para a camada inferior, mas nunca superiores a 2 minutos. A mensagem deverá todavia ser sempre enviada. O mesmo se aplica ao módulo de alertas. No que respeita à aplicação web, sendo ela o ponto de acesso a todo o sistema e às suas demais funcionalidades, deverá ser fiável no sentido de produzir os resultados esperados e evitar a perda de dados, nomeadamente dos dados armazenados na base de dados. Sempre que se realizarem inserções estas não deverão interferir com os restantes dados da base de dados, e sempre que se proceder à actualização de uma tarifário não deve igualmente interferir no restante. Por último, a remoção de uma Pedro Saraiva – Relatório da disciplina de Estágio/Projecto Industrial 2010/2011 81 iEnergy – Eficiência Energética em Edifícios Especificação tarifário não deve comprometer a integridade dos restantes dados armazenados. O mesmo deverá ser tido em conta em relação à gestão dos alertas registados no sistema. 6.6.3 Manutenção O sistema deverá ser projectado segundo padrões de desenvolvimento de software estabelecidos, devendo ser correctamente documentado. Deve também em geral ser orientado a objectos de forma a ter classes ou objectos reutilizáveis tornando assim fácil a sua manutenção. As alterações à base de dados existente devem ser controladas de forma a não comprometer os dados já existentes. Do ponto de vista da utilização, o sistema deverá ser facilmente mantido através da aplicação web, sem necessidade de conhecimentos técnicos profundos mas com os óbvios conhecimentos de gestão de energia. 6.6.4 Portabilidade O sistema deverá permitir o acesso a partir de qualquer sistema ou plataforma com ligação à internet através de um browser (Internet explore 9+, FireFox 3.5+, Google Chrome 11+), independentemente do sistema operativo no qual seja executado. 6.6.5 Segurança Neste sistema é importante considerar questões de segurança entre os vários tipos de utilizadores, para não permitir acessos indevidos à informação armazenada. Por isso o acesso é controlado através de registo por um administrador do sistema (no Back Office) e autenticação no sistema da aplicação web. Todo o acesso pela internet à base de dados só deverá ser possível através da aplicação web e respectivos módulos. Na realização de pesquisas nunca deverá ser mostrada informação que não pertença ao nível de acesso do utilizador que a efectuou. E no caso de acontecerem erros não deverá ser mostrada informação comprometedora, tal como palavras-passe. 6.6.6 Usabilidade É razoável que seja preciso algum tempo, mas nunca demasiado, para aprender a usar o módulo de análise de dados. Contudo, o sistema em geral deverá ser facilmente utilizável por quem o vá usar pela primeira vez. No entanto, deverá ser disponibilizada um manual de utilizador. 82 Pedro Saraiva – Relatório da disciplina de Estágio/Projecto Industrial 2010/2011 iEnergy – Eficiência Energética em Edifícios Especificação É necessário ter em conta também que será um sistema usado por várias gerações de pessoas, umas mais novas e com conhecimentos mais alargados sobre a informática e outros com poucos conhecimentos e menos habituados ao seu uso. 6.6.7 Requisitos Tecnológicos As tecnologias a usar no sistema foram seleccionadas de entre as várias analisadas na secção 5.2. A escolha recaiu sobre o ASP.NET MVC em conjugação com o jquery por duas razões principais: a sua arquitectura com responsabilidades bem definidas, e por permitir que seja facilmente testada. Esta plataforma foi feita a pensar no desenvolvimento web moderno, fazendo uso intenso das tecnologias HTML, CSS, AJAX e Javascript / jQuery. Uma das principais vantagens que vejo no MVC em relação ao web forms, é que o primeiro foi desenvolvido directamente para trabalhar já aplicando padrões de projectos (design patterns) e desenvolvimento orientado a testes (TDD) enquanto o segundo está mais focado no desenvolvimento orientado a componentes (entenda-se, como server controls) e eventos. Tanto o ASP.NET MVC como o web forms contêm o mesmo núcleo, que é o ASP.NET CORE, o que permite o uso de diversos recursos aplicados em web forms, tais como chaching, logging, etc. Figura 33 - Esquema de funcionamento do ASP.NET MVC (retirado do msdn Webcast) O ASP.NET MVC utiliza um esquema de tabela de rotas onde os URLs estão directamente ligados aos Controllers que por sua vez retornam para o browser renderizar uma view, podendo passar um model, mantendo URLs mais amigáveis aos utilizadores além de ter maior facilidade para se integrar com optimizadores de buscas e SEO. Pedro Saraiva – Relatório da disciplina de Estágio/Projecto Industrial 2010/2011 83 iEnergy – Eficiência Energética em Edifícios Especificação Outra das grandes vantagens é o acesso ao web service (WCF) que é muito simplificado, não sendo necessário na grande parte dos casos a criação de modelos do lado da aplicação web nem de estabelecer as ligações explicitamente, dado que a própria plataforma trata disso. Toda a plataforma inclui inúmeras facilidades mesmo para facilitar a escrita de HTML (helpers) e existe um elevado número de plugins jquery livres que podem ser usados e são facilmente instalados. Possui também com uma popularidade crescente, com uma comunidade bastante activa. Desta forma existem inúmeros fóruns e tutoriais, assim como bastante documentação acerca da utilização da mesma. Uma outra característica importante é que esta plataforma ajuda o programador a criar uma aplicação web de uma forma lógica e organizada, uma vez que segue uma estrutura bem definida, de acordo com o modelo MVC (Model-View-Controller). Dessa forma o código pode ser melhor estruturado e é mais fácil de ser continuado o desenvolvimento por outras pessoas. A linguagem de programação usada, o C#, é uma linguagem que pareceu ser bastante adequada e até preferível a outras como Visual Basic. É uma linguagem simples de perceber e facilmente aprendida para quem já usar programação orientada a objectos. É não só uma linguagem orientada a objectos pura e muito completa como suporta também multithreading. Resumindo, o facto de ser uma plataforma completa, madura, com bom suporte, uma comunidade crescente e activa, e que simplifica a criação de aplicações web através da utilização de uma linguagem de programação orientada a objectos poderosa, pareceu ser a plataforma ideal de entre as duas escolhas possíveis. Inclusive, sendo uma plataforma a ganhar bastante terreno, pareceu uma interessante e boa aposta pensando no futuro e no futuro da web. 6.6.8 Requisitos de Documentação Deverá ser fornecido um Manual de Utilizador em português, bem como uma checklist de instalação também em português. Devem ainda ser actualizados os documentos relacionados com a Base de dados e com os web services. 6.7 Opinião Durante esta fase foram sentidas várias dificuldades ao nível da percepção do que o cliente realmente pretendida. Esta foi uma área nova, dado que desconhecia-se totalmente muitos dos conceitos chave desta área, sendo no entanto essenciais para perceber o que se pretendia implementar. Assim, teve-se que dedicar muitas horas para se familiarizar com os conceitos por detrás da gestão de energia, principalmente no que diz respeito ao cálculo dos tarifários, em que existe inúmera 84 Pedro Saraiva – Relatório da disciplina de Estágio/Projecto Industrial 2010/2011 iEnergy – Eficiência Energética em Edifícios Especificação documentação e legislação. Também do lado do cliente foi sentido durante algum tempo a falta de alguém com conhecimento do negócio da energia. Um membro com este perfil foi mais tarde integrado no projecto e foi um factor decisivo no sucesso desta especificação de requisitos. O estudo inicial da concorrência foi muito importante para esta fase, já que permitiu ter uma ideia do que é que existia e o que é que se pretendia exactamente fazer. Pedro Saraiva – Relatório da disciplina de Estágio/Projecto Industrial 2010/2011 85 iEnergy – Eficiência Energética em Edifícios Arquitectura e Implementação da Plataforma 7 Arquitectura e Implementação da Plataforma A plataforma - iEnergy - é constituída por diversos subsistemas que estão integrados e articulados de maneira a satisfazer os requisitos funcionais e não funcionais do sistema. Nesta secção serão mais focados os módulos que fizeram parte do projecto de estágio nomeadamente a aplicação web o web service e também o core do - iEnergy - onde também foi desenvolvido trabalho, bem como a base de dados. Nesta secção são focados os detalhes de estrutura, modelos de dados e arquitectura do código desenvolvido, assim como as interfaces principais. A aplicação web foi implementada de raiz e no web service foi criado um novo end point para suportar esta plataforma web. Na base de dados apenas algumas coisas foram criadas de novo ou melhoradas ampliando a sua funcionalidade, como é o caso dos tarifários. Um dos módulos da aplicação web, a simulação e o cálculo dos tarifários, devido à sua complexidade foi parcialmente implementado já que apenas suporta tarifários de energia eléctrica. Nesta fase do projecto esses módulos permitem apenas simulação e cálculo de tarifários de electricidade, e só numa fase posterior, já fora do âmbito do estágio, é que foi implementada toda a componente de tarifários. No entanto, mesmo com o pouco tempo disponível para realizar a implementação do sistema, foi possível apresentar uma solução completa e todos os casos de uso se encontram implementados. 7.1 Integração com os Vários Sistemas A Figura 34 mostra como o - iEnergy - e a aplicação web estão posicionados em relação a outros componentes de hardware e software e que interagem com eles directamente ou indirectamente. Figura 34 -Como é que o portal web e o iEnergy se enquadram na solução de medição Pedro Saraiva – Relatório da disciplina de Estágio/Projecto Industrial 2010/2011 87 Arquitectura e Implementação da Plataforma iEnergy – Eficiência Energética em Edifícios Como é visível existe uma pilha de serviços que compõem toda a solução de medição. Como seria de esperar cada camada tem os seus interfaces perfeitamente definidos o que permite que a camada directamente acima ou abaixo interagir com ela. O interface entre o hardware e a camada de recepção de dados está fora do âmbito deste estágio, assim como o interface entre o iEnergy e o iCenter. A camada de processamento de dados recebe, guarda e processa os dados recebidos das camadas inferiores. Esta camada, apesar de já estar construída também recebeu novas funcionalidades. Finalmente, na camada de apresentação é usado um web service para interagir com o iEnergy e disponibilizar informação aos seus clientes. Foi construído um novo end point no web service já existente aproveitando assim algumas funcionalidades essenciais que este já tinha implementadas, caso da autenticação com o iEnergy. Por cima dessa camada de web service está a aplicação web, que interage com esta para receber e enviar dados para a plataforma - iEnergy -. 7.2 Implementação Neste capítulo pretende-se explicar como foi organizada a implementação do software, assim como detalhes pertinentes sobre a mesma, os problemas encontrados e respectivas soluções. 7.2.1 Ferramentas Para o desenvolvimento do software foram usadas diversas ferramentas não só para o desenvolvimento em si, mas também para a realização dos testes sobre esses desenvolvimentos. De seguida serão apresentadas as ferramentas usadas, divididas em duas secções desenvolvimento e testes. 7.2.1.1 Ferramentas de Desenvolvimento Para o desenvolvimento das plataformas foi usado o C#, Linq, ADO.NET Entity Framework, ASP.NET MVC, WCF, jquery. A justificação para o uso destas tecnologias foi apresentado na secção 5.2 e 6.6.7. 7.2.1.2 IDE Durante o desenvolvimento foi usado o IDE Microsoft Visual Studio 2010 porque era o que se adequava mais as tecnologias em causa. 7.2.1.3 Base de Dados A base de dados assenta sobre o Microsoft SQL Server 2008 RC2. 88 Pedro Saraiva – Relatório da disciplina de Estágio/Projecto Industrial 2010/2011 iEnergy – Eficiência Energética em Edifícios Arquitectura e Implementação da Plataforma 7.2.1.4 Ferramentas de Teste Usadas Foram usadas algumas ferramentas de teste de para que o software fosse testa de forma a garantir a sua fiabilidade sendo elas: NUnit – Ferramenta para testes unitários para C#; SoapUI – Ferramenta para testar serviços disponíveis na web. 7.2.2 Organização do Código Nesta secção é descrita a forma como o código da aplicação está organizado, quando necessário é usado code snippets para clarificar os problemas em discussão. ISA.iEnergy.Core – Dynamic link library que é partilhada pelos diferentes subsistemas apresentados anteriormente. Esta biblioteca contém a lógica necessária para manipular os dados armazenados na base de dados e em outros sistemas com que o - iEnergy - comunica. ISA.iEnergy.Service.WebService – Aplicação web que contém o web service de edifícios e que é exposto por este para ser usado por aplicações clientes da plataforma - iEnergy -. ISA.iEnergy.Alert – Pasta em que se encontram todas as DLL que implementam os alertas especificados na secção de requisitos que posteriormente são carregadas para o - iEnergy -. ISA.iEnergy.Utilities.TariffSimulator – Um programa utilitário que é usado para cálcular a melhor tarifa (em termos de redução de custos) para um certo padrão de consumo. ISA.iEnergy.Web.Backoffice – Aplicação web que é usada para gerir o sistema. ISA.iEnergy.Tests – DLL que contém os testes unitários que foram criados durante o desenvolvimento do sistema. ISA.iEnergy.Web.iEnergy4Buildings – Aplicação web que serve de interface para o utilizador. O código da aplicação web segue a estrutura geral de uma aplicação feita em ASP.NET MVC constituído por Views, Controllers, Models, Shared, Helpers e Binders todas elas vão ser apresentadas nas secções seguintes. A configuração da aplicação e do ambiente de execução é realizada no ficheiro config na raiz. É neste ficheiro que se define a configuração do acesso ao web service. Em Content/images/ localizam-se todas as imagens usadas pela aplicação e em Content/stylesheets/ encontra-se o código CSS de definição dos estilos usados. Ainda na pasta Content, temos a pasta Scripts que contém não só as funções que o próprio ASP.NET MVC cria na criação do projecto mas também algumas funções criadas para a aplicação. Pedro Saraiva – Relatório da disciplina de Estágio/Projecto Industrial 2010/2011 89 Arquitectura e Implementação da Plataforma iEnergy – Eficiência Energética em Edifícios Após esta análise sobre a estrutura da pasta da aplicação web serão analisados alguns tópicos relativos ao código e decisões de desenho. Todos estes módulos estão agrupados logicamente dentro de uma pasta virtual no IDE (Visual Studio 2010). O agrupamento é simplesmente lógico não têm nenhum efeito em como o software é implementado. Todo o código encontra-se documentado com RDoc, o qual permite gerar documentação navegável num browser em HTML através do código, mais os comentários e descrições existentes. Figura 35 - Organização do código no Visual Studio. Como se pode ver, o software é constituído por vários módulos independentes que facilitam a integração e desenvolvimento de novas funcionalidades ou de novos sistemas. Nas secções seguintes vão ser descritas as implementações feitas em cada um desses módulos do sistema. 7.3 Componentes A solução tem uma arquitectura modelar que facilita o desenvolvimento. A Figura 36 mostra os diferentes módulos da solução que foram criados ou usados durante o desenvolvimento com excepção para o módulo de integração com o - iCenter - que foi apenas usado para enviar a mensagem de actuação aos dispositivos. 90 Pedro Saraiva – Relatório da disciplina de Estágio/Projecto Industrial 2010/2011 iEnergy – Eficiência Energética em Edifícios Arquitectura e Implementação da Plataforma Figura 36 - Módulos do iEnergy Segue-se uma breve descrição de cada módulo e o que foi feito em cada um deles: Web Service – Este módulo é responsável por gerir a interacção entre sistemas remotos e o iEnergy -. Neste módulo foi criado um novo end point que serviu para dar suporte ao portal web. BackOffice – Este módulo é responsável por ter um interface gráfico de gestão da plataforma iEnergy -. Neste módulo foram criadas novas áreas de maneira a ser possível responder aos requisitos supra citados com por exemplo a criação de novos tarifários entre outras funcionalidades. Task Scheduler – Este módulo faz uso do windows task scheduler de forma a executar código C# em horários específicos ou procedimentos na base de dados. O uso deste modulo para execução de procedimentos na base de dados prende-se essencialmente com as restrições paresentadas pela versão standard do Sql Server (instalada em alguns clientes) que não permite a criação de Jobs. Aplicação Web – Este módulo é responsável por mostrar todas análises realizadas pela plataforma - iEnergy -. É uma aplicação cliente que serve de interface com o utilizador final. Pedro Saraiva – Relatório da disciplina de Estágio/Projecto Industrial 2010/2011 91 Arquitectura e Implementação da Plataforma iEnergy – Eficiência Energética em Edifícios CORE / Business Logic – Este módulo é responsável por gerir toda a lógica de dados e de negócio ligada a plataforma - iEnergy -. iCenter Integration – Este módulo é responsável por gerir toda a interacção entre o - iCenter e o - iEnergy -. O - iCenter - é a plataforma que recolhe todos os dados dos dispositivos remotos. Nas secções seguintes cada um dos módulos do sistema de interesse para o estágio são descritos mais detalhadamente, apenas nas componentes que a ele dizem respeito. 7.3.1 Base de Dados A especificação das tabelas criadas na base de dados encontra-se em anexo. A base dados já existia, mas durante o projecto foram adicionadas/modificadas algumas entidades para suportar as novas funcionalidades pretendidas, tais como os tarifários de energia, os grupos lógicos, os indicadores, alertas e a actuação sobre novas entidades, conforme especificado no Anexo V. Na Tabela 25 descreve-se as principais tabelas da base de dados, representada no respectivo diagrama. Tabelas Descrição alert Tabela que armazena os alertas carregados no sistema. alert_parameter Tabela que armazena os parâmetros dos alertas existentes nos sistemas. alert_trigger Tabela que armazena os alertas que foram disparados pelo sistema. alert_trigger_parameter Tabela que armazena os parâmetros que fizeram dispara os alertas que foram disparados pelo sistema. tariff Tabela que guarda os dados referentes aos tarifários de energia. tariff_parameter Tabela que guarda os dados referentes aos parâmetros que estão associados aos tarifários. multiplication_factor Tabela que guarda os dados dos factores de multiplicação associados aos parâmetros dos tarifários. fixed_costs Tabela que guarda os custos fixos aplicados aos tarifários. Esses custos dependem da potência contratada. interval Tabela que armazena os diversos intervalos para um tarifário baseado em intervalos. season Tabela que armazena os períodos de facturação dos tarifários. season_series Tabela que armazena os diversos períodos de facturação de cada temporada. 92 Pedro Saraiva – Relatório da disciplina de Estágio/Projecto Industrial 2010/2011 iEnergy – Eficiência Energética em Edifícios Arquitectura e Implementação da Plataforma supplier Tabela que armazena todos os fornecedores de tarifários de energia. virtual_tag_parameter Tabela que guarda as formulas usadas no cálculo das tags virtuais. indicator Tabela que guarda os dados referentes ao cálculo de indicados de estados. action Tabela que guarda os dados referentes as actuações agendadas no sistema. group Tabela que guarda os dados referentes aos grupos. group_details Tabela que guarda os dados referentes aos detalhes dos grupos que são usados no cálculo de indicadores de estado. Tabela que armazena dados relativos aos tipos de grupos que estão group_type armazenados no sistema. Tabela que armazena dados relativos aos horários de funcionamento do group_schedule grupo (segurança, limpeza etc). Tabela que armazena dados relativos os baselines de cada ano referentes à group_baseline energia activa, reactiva e potência. baseline Tabela que armazena todas as baselines do sistema. baseline_value Tabela que armazenam todos os valores associados as baselines do sistema. baseline_appliance Tabela que armazena todos os electrodomésticos associados a uma baseline. hierarchy Tabela que armazena dados relativos a hierarquia existente entre os grupos lógicos. indicators Tabela que armazena dados relativos aos indicadores configurados na plataforma. kpi_error_log Tabela que armazena o registo de erros durante à execução dos procedimentos de cálculo de KPI. kpi_conf Tabela que armazena as configurações usadas pelos procedimentos de cálculo de KPI. kpi_nessage Tabela que armazena as mensagens enviadas pelo gestor de energia. kpi_data Tabela que armazena dados associados aos KPI’s. kpi Tabela que armazena os dados associados aos KPI existentes para os quais será feito carregamento de dados. Tabela 25 -Descrição sumária das entidades do diagrama da base de dados Pedro Saraiva – Relatório da disciplina de Estágio/Projecto Industrial 2010/2011 93 Arquitectura e Implementação da Plataforma 7.3.1.1 iEnergy – Eficiência Energética em Edifícios Esquema Relacional A partir do diagrama de entidade relação da BD especificou-se o esquema relacional com as tabelas contendo as respectivas chaves primárias (PKs – Primary Keys) e chaves estrangeiras (FKs – Foreign Keys). A ISA segue uma série de convenções próprias relativamente ao esquema relacional, por forma a normalizar a BD para que todos a possam perceber sem grande dificuldade. Estas convenções foram aplicadas às tabelas criadas durante o estágio. Todas as tabelas do esquema relacional da base de dados podem ser visualizadas no Anexo V. 7.3.1.2 Procedimentos Criados De forma a obter maior performance devido à complexidade e ao tempo necessário para processar alguns dados, foram criados procedimentos na base de dados que podem ser agendados para correr de tempos a tempos. Foram construídos quatro procedimentos: Calcular Tags Virtuais – Procedimento que serve para calcular as tags virtuais configuradas no sistema. Calcular Indicadores – Procedimento que serve para calcular os KPI’s que foram definidos na secção de requisitos. Calcular Tarifários – Procedimento que calcula os tarifários de energia que estão configurados no sistema e ligados a um dispositivo. Os tarifários B2B são constituídos por vários parâmetros que têm de ser calculados individualmente e em diferentes períodos do tempo (por hora, por dia ou por mês). O fluxograma seguinte mostra como este cálculo é feito: na sua execução o procedimento procura por tags configuradas como tags de tarifário (como é o caso da energia activa) e esta energia activa é usada para calcular os custos das potências como está descrito no documento de especificação de tarifários. De seguida são procuradas as tags de energia reactiva e são executados os mesmos procedimentos para o cálculo dos respectivos custos (Figura 37). Cálculo da Baseline – A baseline é calculada de tempos a tempos por forma a estar de acordo com as alterações que eventualmente forem introduzidas nos grupos lógicos. Para cada conjunto sequencial de baselines executa-se o algoritmo ná Figura 38. 94 Pedro Saraiva – Relatório da disciplina de Estágio/Projecto Industrial 2010/2011 iEnergy – Eficiência Energética em Edifícios Arquitectura e Implementação da Plataforma Inicio Ler dados das tag Tag de Tarifário? Não Ler Tarifário da Tag Não Sim (Data de fim- data de inicio)=Período de calculo ? Calcular custos do parâmetro Sim O tarifário tem parâmetros configurados? SIm Ler os Parâmetros do tarifário Ler período de calculo Não Fim Figura 37 - Fluxograma de cálculo de tarifários B2B Início Ler conjunto sequencial de baselines Fim Não Sim Existe próxima? Sim Baseline do Ano 0? Não Não Já calculada? Não Sim Baseline mais recente? Sim Calcular intervalo de funcionamento da baseline Intervalo superior a 1 mês? Sim Calcular Baseline Figura 38 - Fluxo de cálculo da baseline Pedro Saraiva – Relatório da disciplina de Estágio/Projecto Industrial 2010/2011 95 Arquitectura e Implementação da Plataforma iEnergy – Eficiência Energética em Edifícios Todos estes procedimentos correm como Jobs na base de dados com uma periocidade configurável ou através do agendador de tarefas do Windows. 7.3.1.3 Scripts de Migração de Base de dados Como a base de dados já existia foi necessário a criação de scripts de forma a migrar a base de dados onde a nova versão do software fosse instalada, já que existem outras versões do software em produção. Foi então criado um ficheiro .bat que mediante a sua execução migra a base de dados para a nova versão do software. A explicação deste procedimento encontra-se no Manual de Instalação. 7.3.2 Task Scheduler Este módulo usa o Windows Task Scheduler Service para executar os procedimentos necessárias na base de dados ou algum método C#, como é o caso da verificação de alarmes e actuações. A instalação deste módulo adiciona as entradas necessárias ao Windows Scheduler Service e instala os programas que vão invocar os procedimentos na base de dados ou executar métodos C#. Neste módulo foram acrescentadas duas novas tarefas, uma para os alertas e outra para a actuação sobre dispositivos. O que este Scheduler faz é uma verificação periódica das tarefas que se encontram agendadas. Estas tarefas são: Verificar Alarmes – Rotina que verifica a existência de alarmes: caso encontre alguma situação relevante, dispara o respectivo alarme. Os alertas correm numa tarefa do Windows ininterruptamente, com um determinado intervalo de tempo, e verificam-se os alertas configurados no sistema com os respectivos parâmetros. Caso os valores estejam dentro dos parâmetros definidos no alerta é enviado um e-mail a confirmar essa situação; em caso de anormalidade é lançado um alerta para o sistema e é também enviado um e-mail a avisar do sucedido. Os alertas estão sempre a ser avaliados e a sua validação só termina quando a sua data de avaliação é ultrapassada (Figura 39). Verificar Actuações – Esta rotina verifica a existência de actuações: quando é detectada que uma nova actuação deve ser enviada, o sistema envia de seguida uma mensagem para a camada inferior de forma a ser efectuada a actuação sobre determinado dispositivo. 96 Pedro Saraiva – Relatório da disciplina de Estágio/Projecto Industrial 2010/2011 iEnergy – Eficiência Energética em Edifícios Arquitectura e Implementação da Plataforma Inicio Não Não Ler alarmes configurados no sistema Passou o período de verificação? Sim Sim Enviar Email Não O alarme esta dentro dos parâmetros? Lançar alarme e enviar mail Sim Terminou o período de avaliação do alarme? Fim Figura 39 – Fluxo de funcionamento dos alertas 7.3.3 Core da Aplicação O core é o módulo mais importante do software: ele disponibiliza as funções necessárias para manipular as entidades da plataforma, garantindo que os outros sistemas são informados das mudanças que aconteçam nas entidades. O core está implementado sobre a entity framework que é um ORM que permite reduzir em muito o tempo de implementação do mesmo. Contudo, é preciso ter em atenção que este tipo de framework pode ter custos em termos de performance e deve ser considerada a sua utilização em certas situações. O core providencia um repositório para cada tipo de entidade da plataforma. O repository é um design pattern conhecido que faz a mediação entre o domínio da aplicação e a camada de mapeamento de dados, actuando como uma colecção de objectos do domínio em memória. Todas as acções nos repositórios são transaccionais, o que garante a consistência dos dados. Quando uma acção é invocada com sucesso no repositório especificado, o objecto chamado garante que todos os sistemas de terceiros são actualizados com sucesso na sua BD local. Em caso de erro as mudanças são desfeitas. Todos os repositórios são acedidos por uma instância do CoreHandler. Este providencia o acesso aos repositórios e usa a estratégia de lazy loading garantindo que apenas repositórios que são mesmo necessários são instanciados. Esta estratégia já estava a ser seguida pela equipa de energia da ISA. Nos Pedro Saraiva – Relatório da disciplina de Estágio/Projecto Industrial 2010/2011 97 Arquitectura e Implementação da Plataforma iEnergy – Eficiência Energética em Edifícios desenvolvimentos que foram efectuados no core da aplicação foi mantida esta estratégia, sendo criados novos repositórios para suportar as funcionalidades criadas. Estes repositórios foram posteriormente usados pelo web service para retornar os dados necessários à aplicação web. Foram também usados no BackOffice do software para construir os interfaces necessários aos CRUD das entidades. Figura 40 -Diagrama de classes Core (apenas a parte criada durante o estágio) 7.3.4 Web Service Como já foi mencionado já existia um web service implementado para lidar com aplicações clientes. Este web service está construído de forma orientada a serviços, com a .Net Framework usado 98 Pedro Saraiva – Relatório da disciplina de Estágio/Projecto Industrial 2010/2011 iEnergy – Eficiência Energética em Edifícios Arquitectura e Implementação da Plataforma o WCF com uma arquitectura SOA. O WCF é uma arquitectura orientada a serviços que permite o suporte a computação distribuída onde os serviços têm consumidores remotos. Clientes podem consumir múltiplos serviços e serviços podem ser consumidos por múltiplos clientes. Estes serviços tem tipicamente um interface WSDL que qualquer cliente WCF pode consumir independentemente da plataforma em que está hospedado. 7.3.4.1 End Points Os clientes do WCF conectam-se ao web service através de um end point. Cada serviço expõe os seus contractos através de um ou mais end points. Um end point é um endereço (com um URL que especifica como o end point pode ser acedido) e liga as propriedades que especificam como os dados podem ser transferidos. Durante este estágio foi implementado um end point no web service específico para edifícios. Como é óbvio existem muitas funções em comum entre as diferentes APIs que foram implementadas num único módulo e são herdadas por todas APIs (sendo que o end point de edifícios faz uso desses métodos comuns a todos). A especificação dos métodos expostos pelo web service de edifícios pode ser encontrada no Anexo IV. Figura 41 – Diagrama de classes End Point de edifícios Pedro Saraiva – Relatório da disciplina de Estágio/Projecto Industrial 2010/2011 99 Arquitectura e Implementação da Plataforma iEnergy – Eficiência Energética em Edifícios 7.3.5 Aplicação Web Neste capítulo pretende-se apresentar a arquitectura da aplicação web que foi construída de raiz durante o estágio. 7.3.5.1 Arquitectura Geral O sistema actual é constituído por vários componentes, que permitem a aquisição e tratamento de dados relacionados com o consumo de energia (todos estes componentes estão descritos nas secções anteriores). Nesta secção o foco será na plataforma web que interage com o web service disponibilizado pela plataforma - iEnergy -. Figura 42 - Visão Geral do Sistema O - iEnergy - é de forma geral constituído por uma plataforma de aquisição de dados e por dispositivos físicos que permitem a monitorização de consumos de variáveis energéticas. Consumidor Fornecedor XML HTML,JSON XML Browser iEnergy4Buildings IIS .NET Framework Consumer API Intranet iEnergy2 Server Services Provider Figura 43 - Arquitectura Web Service 100 Pedro Saraiva – Relatório da disciplina de Estágio/Projecto Industrial 2010/2011 iEnergy – Eficiência Energética em Edifícios Arquitectura e Implementação da Plataforma O web service disponibilizado pelo - iEnergy - permite que aplicações se conectem e interajam pela rede. Construído no topo dos protocolos de internet existentes como o HTTP e o XML, estes permitem a partilha de informação na rede: Internet, Intranet, ou Extranet. Este Web Service e constituído por componentes de software que podem ser chamados remotamente com Simple Object Access Protocol (SOAP). Este web service esta descrito em mais pormenor na secção 7.2. 7.3.5.2 Arquitectura Lógica A solução tem vários módulos lógicos, cada um com uma funcionalidade específica. Na figura 45 encontra-se uma imagem desta arquitectura. Web Application Web Browser HTML Services Services Lógica de Apresentação Lógica da Aplicação Camada de Acesso aos Dados Figura 44 - Arquitectura lógica O portal web segue o design partner MVC usado pelo ASP.NET MVC. Cada uma das camadas do modelo MVC tem uma responsabilidade específica definida, neste caso os “Models” contêm a lógica de acesso ao web service construído em WCF, os “Views” representam as vista da aplicação, os “Controllers” encapsulam toda a lógica de negócio. Tal como foi especificado no capítulo anterior, o sistema divide-se em vários módulos principais: Aplicação Web; Web Service; Core; Armazenamento. 7.3.5.2.1 Decomposição Horizontal O sistema segue uma decomposição horizontal com base no modelo MVC, separado em três camadas distintas, como pode ser visto na Figura 45. Essas três camadas são: Interface com o Utilizador (View): O que o utilizador do sistema vê e com o qual interage. Esta camada comunica com a seguinte enviando-lhe os dados introduzidos e recebendo os dados requeridos; Pedro Saraiva – Relatório da disciplina de Estágio/Projecto Industrial 2010/2011 101 iEnergy – Eficiência Energética em Edifícios Arquitectura e Implementação da Plataforma Lógica de Negócio (Controller): É a camada intermédia na qual se faz a comunicação com o web service e com o interface do sistema. Nesta camada é onde os dados são processados e tratados, sendo também feita a comunicação com os vários módulos que compõem o sistema. Esta camada é responsável por garantir um bom funcionamento, no geral; Base de Dados (Model): Camada na qual é feito o armazenamento da informação. Essa informação inclui as tags, informação associada e informação dos tarifários, entre outros. uc Use Case Model Interface com o utilizador(View ) Logica de negocio(contoller) Base de dados (Model) Figura 45 - Decomposição Horizontal 7.3.5.2.2 Decomposição Vertical A decomposição vertical é feita por subsistemas, de forma hierárquica, em que cada subsistema corresponde a um grupo de funcionalidades e abrange todas as camadas da implementação. No fundo, a decomposição vertical aqui apresentada coincide com os módulos e sob módulos já apresentados na especificação de requisitos. A Figura 46 dá uma ideia geral da arquitectura lógica por detrás deste sistema (nem todos os módulos foram incluídos na imagem). Neste diagrama pode-se verificar a organização do sistema em termos de camadas “físicas”, ou seja, máquinas e componentes clientes e servidores. Pretende documentar-se a estrutura física de alto nível do software, no que respeita a máquinas, conexões, componentes instalados nas máquinas e dependências entre componentes. Em relação ao local onde o web service e a aplicação web ficam alojados, optou-se por colocá-los no mesmo servidor, pois o acesso é directo, permitindo à partida um melhor desempenho. 102 Pedro Saraiva – Relatório da disciplina de Estágio/Projecto Industrial 2010/2011 iEnergy – Eficiência Energética em Edifícios Arquitectura e Implementação da Plataforma Figura 46 - Decomposição Vertical 7.3.5.2.2.1 Camada da Interface com o Utilizador A primeira camada é a camada de Interface com o Utilizador. Quando um utilizador realiza uma acção invoca um método nesta camada e é accionado o pedido correspondente na camada Lógica de Negócio (no web service). 7.3.5.2.2.2 Camada de Lógica de Negócio Grande parte do desenvolvimento do projecto insere-se nesta camada, sendo esta responsável por processar os métodos provenientes dos eventos da interface. Nesta camada encontram-se os diversos módulos funcionais que agregam todas as funcionalidades constituintes do sistema referidos na secção 6. Pedro Saraiva – Relatório da disciplina de Estágio/Projecto Industrial 2010/2011 103 Arquitectura e Implementação da Plataforma iEnergy – Eficiência Energética em Edifícios 7.3.5.2.2.3 Camada de Acesso a Dados Esta camada manuseia a comunicação entre a camada superior, a lógica de negócio e a camada de Dados. É uma das camadas de maior importância, uma vez que é nesta camada que são feitos os pedidos (select, insert, update etc.) à base de dados, de acordo com as regras e lógica do negócio. Para a comunicação entre a lógica de negócio e a camada de dados, foi utilizado o ADO.NET Entity Framework. 7.3.5.2.2.4 Camada de Dados Esta camada representa a localização física de todos os dados essenciais ao sistema. Na componente de base de dados encontram-se armazenadas as tabelas do modelo relacional, sendo que, o SGBD utilizado é o Microsoft SQL Server. 7.3.5.2.2.5 Camada Transversal de Autenticação Para poder aceder às várias funcionalidades do sistema tem de se garantir que o cliente se autenticou anteriormente na aplicação através de web service com o Servidor. 7.3.5.3 Camadas da Aplicação Web A aplicação web segue o modelo MVC, e como tal tem-se a aplicação dividida nas três camadas já mencionadas: model, view e controller. Nas subsecções seguintes detalha-se cada uma dessas camadas, dizendo como estão organizadas e os seus modelos de classes. A camada controller é descrita antes da camada view uma vez que é mais fácil explicar por essa ordem. Numa aplicação em ASP.NET MVC, como é o caso, é criada com uma estrutura bem definida, que segue precisamente este modelo. No entanto existe uma parte associada ao view, os helpers, os quais servem para melhor separar a interface do código em C#. Podem-se criar métodos em helpers que depois podem ser usados nas vistas do view. 7.3.5.3.1 Model Esta camada é a camada que acede aos dados no web service, e como tal no geral representa o conteúdo da BD disponibilizado através dos web services. Existe um mapeamento entre os objectos que estão no web service e na aplicação web. 104 Pedro Saraiva – Relatório da disciplina de Estágio/Projecto Industrial 2010/2011 iEnergy – Eficiência Energética em Edifícios Arquitectura e Implementação da Plataforma Figura 12 - Diagrama de classes do Model Todo o código encontra-se documentado através do uso de NDoc, contendo as definições de todos os métodos e classes. 7.3.5.3.2 Controller Nesta camada encontra-se toda a lógica da aplicação, ou seja, as classes e métodos que comunicam com o model para aceder e manipular os dados e também com a view para mostrar o output ao utilizador e receber o seu input. Nesta camada existe a classe BaseController, a qual contém filtros e métodos acessíveis por todas as outras classes terminadas em Controller. É nesta classe que são definidos os métodos que controlam os acessos dos utilizadores da aplicação, assim como se faz a gestão do acesso ao web service através do override de alguns métodos herdados da classe controller como o OnActionExecuting, OnActionExecuted, Dispose. A maior parte das classes aqui existentes vão de encontro aos módulos que se tinham definido, o que pode ser facilmente visto pelos seus nomes. No entanto, tal como a classe já descrita, existem várias outras com outras funções. Uma breve descrição de cada uma será feita de seguida. Pedro Saraiva – Relatório da disciplina de Estágio/Projecto Industrial 2010/2011 105 Arquitectura e Implementação da Plataforma iEnergy – Eficiência Energética em Edifícios Em relação às classes referentes aos módulos dos casos de uso da aplicação, contêm os métodos referentes a cada caso de uso. Nestas classes cujo nome termina em Controller são disponibilizados métodos para listas com paginação, criar, pesquisar editar e remover os objectos que essa classe gere. A classe ExcelController permite exportar todo o tipo de dados para ficheiros Excel. A AccountController disponibiliza métodos para realizar a autenticação com a camada model assim como métodos para fazer a gestão da própria conta de utilizador. Na Figura 47 pode-se analisar o diagrama de classes desta camada, contendo os nomes dos vários métodos de cada classe (sem os parâmetros, para simplificar o diagrama). Figura 47- Diagrama de classes do Controller 106 Pedro Saraiva – Relatório da disciplina de Estágio/Projecto Industrial 2010/2011 iEnergy – Eficiência Energética em Edifícios Arquitectura e Implementação da Plataforma Todo o código encontra-se documentado através do uso de NDoc, contendo lá as definições de todos os métodos e classes. 7.3.5.3.2.1 Action Filters O action filter é um atributo que pode ser aplicado a um controller todo ou a uma acção individual de um controller de forma a correr algum código antes ou depois de uma acção ser executada. A autenticação com o web service do - iEnergy - tem a particularidade de o token apenas ter a duração de uma hora tendo de ser refrescado para não expirar. Um dos action filters implementados faz precisamente isso, i.e. refresca o token. Existe ainda outro que trata eventuais excepções que aconteçam de forma inesperada de forma a não enviar uma mensagem com conteúdo não desejável para o cliente. Figura 48 - Modelo de classes dos Action Filters 7.3.5.3.3 View Esta camada está na sua maioria organizada de acordo com o controller. No entanto não se trata de classes, como nas outras duas camadas. Como se trata de uma interface web, o ASP utiliza um tipo de ficheiro (ASPX no caso das views ou ASCX no caso das partial views) para cada vista, que contém HTML com código C# embutido assim como métodos de ASP que geram HTML. Dessa forma a estruturação é feita por pastas e ficheiros em que cada pasta corresponde a um controller, e no interior de cada pasta encontra-se um ficheiro aspx para cada action que tem uma vista associada. Por exemplo, para o método Add da classe ActionController existe a pasta Actions e lá dentro o ficheiro Add.aspx contendo a vista para essa acção. No entanto, para além desses ficheiros existem ainda outros que terminam em ascx, chamados de parcials views. Esses últimos não contêm uma vista completa mas sim uma parte apenas e podem ser usados noutras views. Os parcials que podem ser usados em vistas fora da própria pasta são colocados numa pasta shared, e no caso desta aplicação essa pasta contém os Pedro Saraiva – Relatório da disciplina de Estágio/Projecto Industrial 2010/2011 107 Arquitectura e Implementação da Plataforma iEnergy – Eficiência Energética em Edifícios parcials para listagem, entre outras. Com excepção para a pasta de layouts, ou seja: a pasta de layouts contém o layout da aplicação web, existindo um master layout que é usado por todas as outras vistas. 7.3.5.3.3.1 HTML Helpers Do view fazem ainda parte os helpers, localizados na pasta de Helpers. Trata-se de classes especiais nas quais se pode criar métodos para utilizar nas vistas por forma a separar melhor o código C# do código HTML. No entanto faz parte desta camada e tal como nome indica, servem para ajudar o interface, sem misturar o código demasiado. Os html helpers podem ser usados nas vistas do modelo MVC, e são apenas um método que retorna uma string. A string pode representar tipo de conteúdo que quisermos. Por exemplo, podemos usar os helpers para renderizar qualquer tag HTML standard como o <input> ou <img>. Podemos usar os helpers também para renderizar dados mais complexos como uma tabela de dados da base de dados. public class LabelHelper { public static string Label(string target, string text) { return String.Format("<label for='{0}'>{1}</label>", target, text); } } Código 1 - Exemplo de um Helper Nesta aplicação foram usados alguns helpers, sendo um dos principais o PaginatedList, que é o helper cujos métodos ficam disponíveis para todas as vistas e que permite a paginação das tabelas. Um desses métodos é o método que devolve os links para andar para a frente e para trás nas páginas, o PaginationLinks. Na Figura 50 pode-se analisar o diagrama de classes de helpers desta camada, contendo os nomes dos vários métodos de cada classe (sem os parâmetros, para simplificar o diagrama). 108 Pedro Saraiva – Relatório da disciplina de Estágio/Projecto Industrial 2010/2011 iEnergy – Eficiência Energética em Edifícios Arquitectura e Implementação da Plataforma Figura 49 - Diagrama de classes dos helpers do view Todo o código encontra-se documentado através do uso de NDoc, contendo lá as definições de todos os métodos e classes. 7.3.5.3.3.2 Binders Um grande desafio nas aplicações web é passar tipos complexos e ainda mais difícil passar objectos stateful de uma página para outra. Esta dificuldade existe devido a natureza desligada da web. Têm existido várias tentativas para resolver este problema (sessions, ViewState, etc), mas o novo modelo do ASP.NET MVC os “Model Binders” é definitivamente uma maneira simples, limpa e poderosa de resolver este problema. No Código 2 está um exemplo de um helper usado neste projecto para construir um objecto, neste caso “fixed_cost”, fazendo também algumas validações, sendo que algumas destas validações são também feitas do lado do cliente através de plugins jquery. public object BindModel(ControllerContext controllerContext, ModelBindingContext bindingContext) { HttpContextBase context = controllerContext.HttpContext; ModelStateDictionary modelState = bindingContext.ModelState; var fx = (fixed_cost)(bindingContext.Model ?? new fixed_cost()); // fxc_description string temp =controllerContext.HttpContext.Request.Form["fxc_description"]; fx.fxc_description = Validations.ValidateRangeString(context, modelState, temp, "fxc_description", Properties.Resources.FIXEDCOST_DESC_MIN_LENGTH, Properties.Resources.FIXEDCOST_DESC_MAX_LENGTH); // fxc_price temp = controllerContext.HttpContext.Request.Form["fxc_price"]; fx.fxc_price = Validations.ValidateDecimal(context, modelState, temp, "fxc_price", false); // contracted_power temp = controllerContext.HttpContext.Request.Form["contracted_power"]; if (!string.IsNullOrEmpty(temp)) { fx.contracted_power = Validations.ValidateDecimal(context, modelState, temp, "contracted_power", false); } else { fx.contracted_power = null; } // tar_id temp = controllerContext.HttpContext.Request.Form["tar_id"]; fx.tar_id = Validations.ValidateInteger(context, modelState, temp, "tar_id", false); return fx; } Código 2 - Exemplo de um Binder Pedro Saraiva – Relatório da disciplina de Estágio/Projecto Industrial 2010/2011 109 Arquitectura e Implementação da Plataforma iEnergy – Eficiência Energética em Edifícios Na Figura 50 é apresentado o modelo de classes dos binders construídos durante o projecto de estágio. Figura 50 - Modelos de classes dos Binders 7.3.5.3.4 Jquery Plugins Por forma a não se “reinventar a roda”, utilizaram-se plugins específicos para algumas tarefas (jquery). Um plugin é adicionado directamente na pasta do projecto, na pasta /Scripts/. Durante a implementação da aplicação web houve a necessidade de recorrer a vários plugins jquery para além dos que o ASP.MVC contém por omissão. Para validação de dados do lado do cliente, construção de gráficos, componentes de calendários entre outros plugins que permitiram simplificar em muito a implementação do portal web. 7.4 Problemas Encontrados Nesta secção são descritos alguns problemas encontrados durante o desenvolvimento da aplicação, bem como a solução para eles encontrada. 7.4.1 Árvore de Grupos Durante o primeiro sprint do desenvolvimento não foi possível ter acesso a uma base de dados de produção com dados mais aproximados da realidade. Durante os testes efectuados pela equipa da ISA já sobre uma base de dados de produção foi notado que a árvore de grupos com 40 grupos estava um pouco lenta, e tendo em conta que se pretendia atingir os 400 grupos de topo, e juntado a estes os grupos inferiores, isto tornaria a situação insustentável. Foi então decidido na segunda fase efectuar um 110 Pedro Saraiva – Relatório da disciplina de Estágio/Projecto Industrial 2010/2011 iEnergy – Eficiência Energética em Edifícios Arquitectura e Implementação da Plataforma teste de carga à árvore criando os 400 grupos de forma a ser possível identificar possíveis optimizações. Neste teste de carga foi possível ver que a árvore não suportaria o número de grupos que estavam definidos. 7.4.1.1 Solução A solução arranjada para este problema foi a utilização de lazzy loading no carregamento dos grupos, sendo que assim os grupos iam sendo carregados à medida que iam sendo necessários. Aliado a isto foram também feitas optimizações do lado do - iEnergy - com a introdução de índices nestas tabelas. Com estas modificações foi possível responder às necessidades em termos de performance no carregamento dos grupos lógicos. 7.4.2 Acessos a Tabela de Dados Um dos principais problemas encontrados durante a fase de testes foi o acesso concorrente à tabela de dados. Esta tabela é onde são guardados os dados vindos das unidades referentes as variáveis energéticas já com algum tratamento e validação. Estes dados são posteriormente agregados de forma a serem disponibilizados ao utilizador. Mas como não existem algumas agregações necessárias a algumas funcionalidades, por exemplo para os tarifários industriais são necessários dados agregados de 15 minutos é então necessário aceder directamente a esta tabela para fazer alguns cálculos demorados. Esta tabela já tinha alguns problemas antes deste desenvolvimento, mas foi com este desenvolvimento que se tornou evidente que esta tabela tinha graves problemas de concorrência já que está sempre a ser escrita e é lida por vários módulos deste desenvolvimento e de outros. Este acesso provoca deadlocks na tabela que torna a aplicação mais lenta em algumas situações. 7.4.2.1 Solução Para resolver esta situação foram criados procedimentos na base de dados que diariamente vão précalculando alguns dados. Estes são armazenados em tabelas auxiliares que posteriormente são consultadas pelas funcionalidades que deles necessitam. Estes procedimentos correm apenas durante a noite de forma a permitir que o sistema esteja operacional durante o dia. Esta é apenas uma solução temporária já que não existia tempo para proceder a uma modificação profunda no armazenamento dos dados. Mas esta mudança já esta prevista para futuras versões do software. Pedro Saraiva – Relatório da disciplina de Estágio/Projecto Industrial 2010/2011 111 Arquitectura e Implementação da Plataforma 7.5 iEnergy – Eficiência Energética em Edifícios Testes unitários Durante o desenvolvimento foram elaborados testes unitários para validar as funcionalidades que iam sendo construídas. Estes testes visaram apenas cada um dos módulos individualmente. Serviram para ter um conjunto de testes de regressão com cobertura de código próxima dos 80%. Nem tudo foi submetido a testes unitários, mas sim apenas os módulos em que se justificava, tais como, por exemplo, o cálculo de tarifários assim como os novos repositórios implementados no core da aplicação e os métodos do web service. Na aplicação web não foram realizados testes unitários já que a maior parte da lógica estava do lado do web service e não me pareceu que se justificasse o esforço que seria testar a mesma coisa duas vezes. 7.6 Opinião Todos os requisitos que foram especificados na secção 6 foram implementados com sucesso, apesar de haver espaço para a melhoria de alguns deles e para a introdução de outros. A maior dificuldade na implementação prendeu-se com o facto da pouca experiência que se tinha com as tecnologias de desenvolvimento usadas durante o projecto de estágio, tendo por isso sido necessário algum tempo suplementar. Foram também sentidas dificuldades na implementação de alguns requisitos por não terem uma especificação completa, pelo que se teve muitas vezes de esclarecer requisitos na fase de implementação de forma a certificar-me que o que era implementado era o que o cliente realmente pretendia. 112 Pedro Saraiva – Relatório da disciplina de Estágio/Projecto Industrial 2010/2011 iEnergy – Eficiência Energética em Edifícios Verificação e Validação 8 Verificação e Validação A qualidade do projecto foi sendo controlada, tendo passado por um conjunto de testes e revisões. 8.1 Revisão O software passou por várias revisões, uma por cada iteração na fase de desenvolvimento, de forma a obter-se uma “imagem” de como se encontrava a implementação dos requisitos definidos. Esta revisão é uma avaliação qualitativa, uma apreciação sobre o estado da implementação de um determinado requisito ou funcionalidade, escrita de documentação, etc... Exemplo: A aplicação efectua Autenticação mas o visual pode ser melhorado. No que diz respeito às revisões feitas durante o projecto, o software passou sempre a fase de teste, o que não quer dizer que não foram encontras anomalias na implementação dos requisitos, mas apenas que não eram muito graves e não impediam a sua realização. 8.2 Validação No fim de cada sprint o sistema foi testado por uma equipa de testes da ISA, que fez tanto os testes de sistema como os testes de aceitação. Após a implementação do software ter sido concluída era crucial testá-lo para validar o seu correcto funcionamento e garantir que este cumpria os requisitos especificados inicialmente. 8.2.1 Ambiente de Testes Para fins de teste, foi feita uma publicação do software num servidor de testes da ISA, com uma base de dados que era um backup de uma base de dados de produção. Foram também instaladas algumas unidades de hardware para comunicarem para o sistema validando assim a aplicação dos tarifários, funcionalidade crucial no software bem como a actuação. A especificação dos testes a executar ao software implementado foi feita pela equipa de testes da ISA (não foi portanto da minha responsabilidade). Após a execução dos testes os defeitos foram reportados na ferramenta JIRA e foram corrigidos. Os respectivos testes foram realizados outra vez, para determinar se essa correcção foi efectivamente feita com sucesso. O software desenvolvido foi submetido a casos de teste de vários tipos, usando diferentes métodos e que foram executados a vários níveis. Para a realização dos testes funcionais e de sistema foi alocado tempo com um engenheiro de testes da ISA, que efectuou esses mesmos testes. Desta forma, não estive directamente envolvido no teste da aplicação, tendo participado apenas na execução dos testes unitários. Pedro Saraiva – Relatório da disciplina de Estágio/Projecto Industrial 2010/2011 113 Verificação e Validação iEnergy – Eficiência Energética em Edifícios Tipos de teste Cada um dos casos de teste efectuados ao software está associado a um ou mais requisitos de um desses programas. Uma vez que o software possui requisitos funcionais e não funcionais, foram igualmente especificados testes destes dois tipos para serem executados sobre todo o software desenvolvido. Métodos de teste Geralmente são considerados três métodos diferentes para a realização de testes – os testes de caixa preta, os de caixa branca e os de caixa cinza: Testes de caixa preta – Testes efectuados sem conhecimento da implementação interna da aplicação que é testada [23]. Testes de caixa branca – Testes realizados com conhecimento prévio do código fonte que implementa o software que é testado [23]. Testes de caixa cinza – Testes que partilham características dos testes de caixa preta e de caixa branca, uma vez que apenas é testado o comportamento exterior do programa (tal como nos testes de caixa preta) mas em que existe conhecimento do seu código fonte (tal como nos testes de caixa branca), o que permite escolher os casos de teste a fazer de uma forma mais informada [23]. Níveis de teste Existem diversos níveis a que podem ser realizados casos de teste a software. No caso da aplicação a desenvolver no âmbito do estágio “iEnergy - Eficiência energética em edifícios” considerei que faria sentido submetê-las a testes unitários (já mencionados na secção de implementação), de componentes, de regressão, de aceitação, de integração e de sistema (testes funcionais) e de carga, de estabilidade e de segurança (testes não funcionais). Os testes funcionais testam partes do código (geralmente funções ou métodos e classes, se o software tiver sido implementado com recurso a programação orientada a objectos). Ainda dentro dos testes funcionais justifica-se fazer testes de integração de sistema, uma vez que a aplicação desenvolvida está integrada com um sistema complexo. Em termos de testes não funcionais, os testes de carga procuraram, sobretudo, avaliar a escalabilidade do software desenvolvido. 8.3 Verificação O software foi entregue ao cliente, pelo que este realizou uma verificação que consistiu numa avaliação da solução implementada. O resultado desta verificação foi que o software estava pronto para produção. Contudo foi retirada a funcionalidade de actuação desta publicação já que não foi possível testá-la a fundo. Tratando-se de uma funcionalidade que poderia trazer alguns problemas, foi decidido não a incluir na produção nesta 114 Pedro Saraiva – Relatório da disciplina de Estágio/Projecto Industrial 2010/2011 iEnergy – Eficiência Energética em Edifícios Conclusões e Perspectivas Futuras fase. Depois desta verificação final o software foi instalado e entregue o manual de utilizador, presente no Anexo VII. Deste manual apenas fazem parte as funcionalidades que constituíram este estágio e algumas funcionalidades de suporte (como é o caso dos códigos postais, que apenas foram usados na funcionalidade de tarifários). 8.4 Instalação no Cliente Depois do software estar devidamente validado foi preparada a sua instalação no cliente, e criado um pacote de instalação. Foi também redigido um guia de instalação. O software foi instalado num servidor dedicado gerido por uma entidade externa, tendo a instalação sido feita por esta entidade com o acompanhamento de um elemento da ISA. As componentes de hardware levaram vários meses a instalar devido à quantidade de locais, sensivelmente 400 separados geograficamente. Assim, foram instaladas cerca de 400 unidades, cada uma composta por um número variável de dispositivos (cerca de cinco por unidade). Estes dispositivos são industriais e permitem ler cerca de 27 váriaveis energéticas diferentes, desde energia activa, energia reactiva, factor de potência e temperatura, entre outras. No total o sistema inclui cerca de 50000 tags (variáveis energéticas). Actualmente, as tabelas de dados já contém milhões de registos. Depois da instalação foi dada formação aos utilizadores do software, com foco nos tarifários e alarmes por se tratar de duas componentes muito importantes para esta fase inicial do projecto. O objectivo final deste software é o de auxiliar os gestores de energia na redução de 25% do consumo energético destes edifícios. Pedro Saraiva – Relatório da disciplina de Estágio/Projecto Industrial 2010/2011 115 iEnergy – Eficiência Energética em Edifícios Conclusões e Perspectivas Futuras 9 Conclusão e Perspectivas Futuras 9.1 Planeamento Efectivamente Seguido Como é habitual, o planeamento de um projecto de software não é tarefa fácil! E muitas vezes o planeamento inicial não é conseguido, por diversos factores. Esta secção pretende justificar os atrasos ocorridos quer no primeiro semestre, quer no segundo. O período de estágio decorreu sempre nas instalações da ISA, com excepções pontuais tais como trabalho realizado esporadicamente fora da empresa, e reuniões com o orientador do DEIS/ISEC. 9.1.1 Planeamento Efectivamente Seguido no Primeiro Semestre O trabalho realizado neste intervalo de tempo foi feito em regime de tempo parcial mas com recurso a horas extra para fazer face a algumas das tarefas realizadas neste período inicial. Este esforço inicial foi necessário para me ambientar às metodologias e ao trabalho na empresa, já que possuia apenas um background académico e encontrei uma realidade nova. Foi feita uma análise temporal do trabalho feito até aqui, que pode ser visualizada no diagrama de gantt presente na Figura 51. Figura 51 – Diagrama de gantt com a distribuição temporal do trabalho realizado no primeiro semestre. Os atrasos verificados no decurso do primeiro semestre da realização deste estágio deveram-se, sobretudo, a alguns atrasos no arranque do projecto devido a questões de negócio (que a mim são alheias), e também a dificuldades na aquisição dos requisitos, quer por dificuldades do cliente em explicar aquilo que pretendia, quer pela minha dificuldade em entender alguns dos requisitos, já que a área de energia não estava dentro dos meus conhecimentos na altura. O primeiro passo dado, como normalmente se faz nestes casos, foi estudar as aplicações que de alguma forma fossem parecidas com aquela que se pretendia implementar inicialmente, ou seja, fazer o levantamento do estado da arte nesta área. Depois deste estudo inicial estive momentaneamente integrado na equipa do projecto de “Monotorização energética em embarcações”, para me integrar com o processo de desenvolvimento da Pedro Saraiva – Relatório da disciplina de Estágio/Projecto Industrial 2010/2011 117 Conclusões e Perspectivas Futuras iEnergy – Eficiência Energética em Edifícios empresa e para estudo das tecnologias que iriam ser usadas durante o estágio e também pelas questões de negócio já mencionadas anteriormente. Foi este o passo que mais atrasou o projecto. Depois de o projecto de estágio ter sido desbloqueado, o primeiro passo foi fazer o estudo das tecnologias a utilizar, o que devia ter sido feito logo após o estudo do estado de arte. O segundo passo foi a recolha de requisitos com o cliente da plataforma. Esta recolha de requisitos foi bastante demorada, tendo existido várias dificuldades de comunicação entre a equipa de desenvolvimento e a BU de energia. Porque existiam vários stakeholder’s para o projecto, estas dificuldades foram eliminadas quando se decidiu colocar apenas uma pessoa como stakeholder que posteriormente sincronizava com todos os outros stakeholder’s. Por tudo isto, o estágio a que este relatório se refere sofreu bastantes atrasos e desvios ao planeamento delineado inicialmente. É de notar que ao longo de todo este processo o tema base do estágio (gestão energética) foi sempre mantido. Essa foi, aliás, uma preocupação constante da direcção da ISA, visto que o era esse o tema do meu estágio “iEnergy – Eficiência Energética em Edifícios”, tal como já foi explicado na secção 3. 9.1.2 Planeamento Efectivamente Seguido no Segundo Semestre O trabalho realizado neste intervalo de tempo foi feito em regime de tempo inteiro mas com recurso à utilização de horas extra para fazer face às tarefas necessárias (ou seja, com um esforço superior a 40 horas semanais). Foi feita uma análise temporal cuidada do trabalho realizado ao longo deste último semestre, recorrendo-se a um diagrama de gantt. Esse diagrama pode ser visualizado na Figura 52. Figura 52 – Diagrama de Gantt com a distribuição temporal do trabalho realizado no segundo semestre. Tal como se pode ver na Figura 52, o segundo semestre iniciou-se com a finalização do documento de requisitos, durante cerca de duas semanas. De seguida, foi aprofundada a especificação técnica da 118 Pedro Saraiva – Relatório da disciplina de Estágio/Projecto Industrial 2010/2011 iEnergy – Eficiência Energética em Edifícios Conclusões e Perspectivas Futuras aplicação desenvolvida (que já tinha sido iniciada no primeiro semestre), o que demorou cerca de cinco semanas. Durante esse período de tempo foram definidas as linguagens de programação e tecnologias que foram posteriormente utilizadas na fase de implementação. De seguida foram construídos alguns protótipos com as tecnologias de gráficos e de relatórios. A implementação demorou cerca de três meses e, por fim, a escrita do relatório foi feita ao longo de todo o semestre, documentando o trabalho à medida que este foi realizado. Nesta fase não existiram desvios para o planeamento que feito inicialmente. 9.1.3 Justificação dos Desvios Os desvios que se verificaram na planificação proposta inicialmente deveram-se, sobretudo, a dois aspectos: O facto do projecto de estágio ter sido iniciado com algum atraso. O tempo extra que foi dispendido na análise da especificação dos requisitos para a plataforma. No que diz respeito ao segundo factor apresentado na lista acima, o facto da especificação da aplicação ter sido iniciada ao mesmo tempo que o estágio e o facto de eu não ter grande formação na área da energia e de durante algum tempo não ter sido possível ao cliente da aplicação especificar de forma mais detalhada os requisitos, contribuíram decisivamente para o atraso geral de todo o projecto, tendo sido consumido precioso tempo extra que poderia ter sido usado para realizar outras tarefas. Existiram ainda outros atrasos, não tão graves, em outras tarefas realizadas, mas que são perfeitamente aceitáveis no decurso de um projecto de desenvolvimento de software. A maior dificuldade que encontrei no decurso do primeiro semestre deste estágio foi a indefinição nos objectivos do projecto, especialmente no início do semestre. De facto, tal como é descrito detalhadamente nas secções anteriores, o estágio sofreu diversas alterações desde o seu início, e apenas numa fase adiantada do semestre soube concretamente o trabalho que iria desenvolver no segundo semestre. No fundo, acabei por experienciar directamente as vicissitudes inerentes ao trabalho no seio de empresas da área das TI, em que nem sempre as coisas correm como planeado inicialmente e em que projectos que aparentemente se vão realizar, no fim acabam por não se concretizar ou então decorrem com calendarizações diferentes das definidas no seu início. 9.2 Avaliação do Trabalho Desenvolvido A experiência numa empresa que actua em vários países e já com vários prémios nas áreas em que actua proporcionou uma maior responsabilidade e entendimento das características do mercado Pedro Saraiva – Relatório da disciplina de Estágio/Projecto Industrial 2010/2011 119 Conclusões e Perspectivas Futuras iEnergy – Eficiência Energética em Edifícios relativamente às empresas de Tecnologias da Informação. Com esta experiência obtiveram-se diversos ganhos tanto na área tecnológica como na pessoal. Para que o se tenha obtido a eficiência desejada, contribuiu em grande parte a afinidade existente com as actividades realizadas e mesmo com o software desenvolvido na empresa, dado que esta é uma área em que se tinha bastante interesse. A preocupação da empresa em garantir a qualidade dos seus produtos e em garantir a colaboração e comunicação entre todos os seus colaboradores foi algo sempre presente e observável. Isto proporcionou que adquirisse muito rapidamente maior qualidade pessoal e profissional no desenvolvimento prático das técnicas que já conhecia. Uma das características marcantes neste projecto e que talvez seja o seu principal factor de sucesso, foi a multidisciplinaridade. Desde a fase de concepção, diversos profissionais das áreas de energia, hardware, software e marketing estiveram envolvidos. Estas múltiplas visões acerca do problema possibilitaram que a aprendizagem fosse guiada com maior heterogeneidade, observando as várias dimensões envolvidas, garantindo o alinhamento estratégico entre tecnologia, usabilidade, gestão de energia, parcerias comerciais e anseios do mercado consumidor. Este estágio iniciou o estudo e especificação de requisitos do mercado B2B na área de energia da ISA. Este estudo e especificação ocuparam uma grande parte do tempo útil do estágio, havendo inicialmente apenas o documento inicial elaborado pelo departamento de marketing da ISA. Pode-se dizer, em suma, que durante o estágio se concluiu com sucesso a criação do sistema previsto, tendo-se implementado o que era mais prioritário por forma a ter-se um sistema base completo, que poderá no futuro ser complementado com novas funcionalidades. As tecnologias que foram utilizadas revelaram-se adequadas à solução proposta, e permitem ainda realizar um melhoramento significativo numa próxima fase, uma vez que disponibiliza um grande leque de facilidades. Estas facilidades passam pela existência abundante de plugins, os quais devido à sua enorme quantidade e complexidade não foram possíveis de estudar durante os nove meses de estágio. No entanto, serão certamente uma mais-valia no melhoramento do sistema desenvolvido. O modelo MVC adoptado na divisão da aplicação em camadas distintas com funcionalidades bem definidas, foi crucial para se realizar um melhor desenvolvimento do sistema, onde a detecção e correcção de erros foram mais facilmente realizados. Desta forma, o trabalho desenvolvido durante o estágio cumpriu todos os objectivos a que se propunha. Por último, após todos os pontos enunciados, pode concluir-se que o projecto se está a revelar de grande sucesso, na sua área. 120 Pedro Saraiva – Relatório da disciplina de Estágio/Projecto Industrial 2010/2011 iEnergy – Eficiência Energética em Edifícios Conclusões e Perspectivas Futuras 9.3 Trabalho Futuro Como já foi referido nas secções anteriores, esta plataforma é constituída por vários módulos por si só de uma complexidade considerável. No futuro imediato pretende continuar-se o desenvolvimento da plataforma - iEnergy - acrescentando-lhe novas funcionalidades: por um lado, evoluir o software e incluir características tais associadas a tempo real; por outro lado, evoluir as funcionalidades já implementadas (como é o caso da actuação), de forma a permitir não só a do tipo agendada mas também a automática, em caso de ocorrências anormais, em estreita relação com os alarmes. Existe ainda espaço para introdução de melhorias nas funcionalidades que foram construídas no âmbito deste estágio. A curto prazo, deverão ser claramente identificadas e introduzidas no software. Devido ao tempo reduzido do estágio não foi possível realizar testes de carga exaustivos. Por esse motivo e como se pretende que o sistema responda eficazmente, tendo em simultâneo muitas funcionalidades, será também necessário efectuar testes mais exaustivos e com maior carga do que aquela a que o sistema já foi sujeito. Num futuro próximo a plataforma irá evoluir para outros mercados como o mercado B2C, chegando desta forma ao consumidor final. Oferecendo um leque alargando de funcionalidades inovadoras, como a visualização de consumos em tempo real, melhorias à actuação entre muitas outras coisas, permitirá ao consumidor final racionalizar a sua utilização de energia. A longo prazo pretende-se evoluir a plataforma para produzir uma melhor análise dos consumos energéticos, pretendendo-se introduzir técnicas de BI de forma a melhor tratar os dados recebidos, identificando assim mais facilmente comportamentos desviantes. 9.4 Considerações Pessoais Posso dizer que a realização deste estágio, com a duração de nove meses, foi uma experiência não só muito gratificante como também de elevada importância, quer a nível pessoal quer a nível profissional. Foi uma oportunidade única de conhecer por dentro o “mundo real” da engenharia informática e poder conhecer de perto todo o processo de concepção e desenvolvimento de software. Com este estágio tive a excelente oportunidade de trabalhar na equipa de energia da ISA em Coimbra. Gostaria de destacar o bom ambiente de equipa e a camaradagem nela vivida, havendo apoio e entreajuda entre os vários colaboradores, ambiente no qual fui bem recebido. Tive ainda o privilégio de melhorar significativamente os meus conhecimentos na área de concepção e desenvolvimento de sistemas de informação. A utilização da plataforma ASP.NET MVC e a Entity Framework, que são bastante recentes e têm suscitado um interesse crescente por toda a comunidade, foi também uma grande uma mais-valia.No entanto, a aprendizagem das tecnologias Pedro Saraiva – Relatório da disciplina de Estágio/Projecto Industrial 2010/2011 121 Conclusões e Perspectivas Futuras iEnergy – Eficiência Energética em Edifícios utilizadas foi autodidacta, embora tenha tido sempre a disponibilidade de ajuda por parte dos colaboradores da equipa de energia e o apoio indispensável do meu orientador na ISA. As maiores dificuldades que senti foram principalmente devidas ao facto de ter de tomar várias decisões com as quais fui confrontado pela primeira vez, nomeadamente a escolha das tecnologias a usar, bem como o estudo, implementação e recolha de requisitos. O facto de o software ter como objectivo ser entregue a cliente e ser operacionalizado, traduziu-se, também, num enorme sentido de responsabilidade colocado sobre mim e num sentimento extra de dedicação e entrega da minha parte para que tudo corresse como planeado. Por tudo isto, posso afirmar sem sombra de dúvida que o trabalho realizado no contexto deste estágio contribuiu de forma inequívoca para o meu crescimento, tanto a nível pessoal como a nível profissional. 122 Pedro Saraiva – Relatório da disciplina de Estágio/Projecto Industrial 2010/2011 Glossário de Definições iEnergy – Eficiência Energética em Edifícios Glossário e definições Infra-estrutura de medição avançada – Compreende todo o hardware e software de comunicações e o software de sistema e de gestão de dados associados que criam uma rede entre os contadores inteligentes e os sistemas de negócio de uma empresa geradora/fornecedora de energia que permitem a recolha e distribuição de informação aos clientes e a outras partes tais como fornecedores a retalho concorrentes, para além da empresa de utilidade pública em si. Leitura automática de contadores – Sistema onde o uso (e em alguns casos a procura) agregado de energia em – kilowatts por hora é obtido através de meios automáticos, tais como um veículo ou um sistema portátil capaz de ser transportado na mão. Utilização Racional de Energia (URE) - Acções conducentes à redução dos custos da energia para o consumidor e para a economia, numa perspectiva técnico-económica de custo benefícios. Baseline – Uma baseline é uma 'imagem' de uma versão anterior no caso da eficiência energética de consumos passados. Ela funciona como um padrão oficial básico para outros estudos. Somente mudanças autorizadas podem ser efetuadas na baseline. Depois de se estabelecer uma baseline inicial, toda as mudanças feitas na baseline serão registadas como um elemento delta até a próxima baseline ser definida. Gestão de energia - De uma forma simples podemos dizer que a gestão de energia: é conhecer os consumos energéticos: o porquê se consome a energia o como se consome a energia o onde se consome a energia o quanto se consome de energia é contabilizar e seguir a evolução dos consumos de energia é dispor de dados para tomar decisões é agir para optimizar é controlar o resultado das acções e investimentos realizado Recolha de dados Contabilização dos consumos energéticos Tratamento de informação Tomada de medidas correctivas e preventivas Elaboração de relatórios Glossário de Definições iEnergy – Eficiência Energética em Edifícios Figura 53 - Ciclo de Gestão de energia Eficiência energética - Eficiência energética é um conceito generalizado para referir as medidas a implementar (ou implementadas) bem como os resultados alcançados na redução do crescimento da procura de energia ou, mais genericamente, na melhor utilização da energia. As medidas de eficiência energética estão normalmente associadas a medidas políticas ou ao resultado de actos de gestão energética. Os instrumentos mais usuais para medir a forma como a energia é utilizada, quer ao nível micro quer ao nível macroeconómico, são os indicadores energéticos. Existe, assim, um universo de indicadores que permitem, no seu conjunto, estabelecer uma série de avaliações e comparações, quer estáticas quer dinâmicas, sobre o estado da eficiência energética. Gestão da procura de Energia - Acções de Gestão cujo objectivo é modificar a estrutura da procura de energia com vista à redução de custos. Conservação de Energia - Redução da quantidade de energia consumida para uma determinada prestação energética. Economias de Energia - Quantifica as reduções no consumo de energia, relativamente a um valor de referência. Eficiência Energética - Caracteriza a forma como a energia é usada na economia Melhorias na Eficiência Energética Resultado de acções de Utilização Racional de Energia. Indicadores Energéticos - Relações e variáveis usadas para medir a eficiência energética. Web Methods- Motor de integração de aplicações, com capacidades de comunicação e transformação de mensagens. Windows - Família de sistemas operativos da Microsoft. WEB - Aplicação da Internet baseada em páginas de hiper-texto, com conteúdos multimédia. Torniquetes - Controlam a entrada de passageiros na embarcação permitindo ao sistema calcular as cargas de cada percurso com base em informação estimada de passageiros e combustível. Unidade GPS - Permite saber a cada instante a posição, velocidade e outros dados de interesse relativos às diversas embarcações a monitorizar. Caudalímetro - Permite a monitorização de consumos instantâneos. Em conjunto com o datalogger permitirá o cálculo dos consumos entre horários. Será a fonte da informação de consumos energéticos a utilizar na solução. 124 Pedro Saraiva – Relatório da disciplina de Estágio/Projecto Industrial 2010/2011 iEnergy – Eficiência Energética em Edifícios Glossário de Definições Monitorização de nível de combustível - Permite a monitorização dos níveis de combustível em cada tanque da embarcação. Terá associada uma plataforma de gestão de alarmes que permite a notificação instantânea das falhas de combustível. TAGs RFID - para ancoradouros permitem detectar com exactidão as atracagens dos navios, permitindo a separação clara dos tempos em carreira de outros tempos. Instalados nas oficinas ou outros ancoradouros permite igualmente detectar com exactidão a posição da embarcação quando parada. É um complemento ao DGPS facilitando a detecção da localização/estado do navio. Pedro Saraiva – Relatório da disciplina de Estágio/Projecto Industrial 2010/2011 125 iEnergy – Eficiência Energética em Edifícios Referências Referências 1. ISA - Intelligent Sensing Anywhere, S.A. ISA Products. Sítio web da ISA - Intelligent Sensing Anywhere, S.A. [Online] [Citação: 6 de Agosto de 2010.] http://www.isasensing.com/documentation/iMeterPlug_PT.pdf. 2. PORTUGAL – Folha de dados de diversificação de energias . European Commission. [Online] Janeiro de 2007. http://ec.europa.eu/energy/energy_policy/doc/factsheets/country/pt/mix_pt_pt.pdf. 3. Oil and Gas Emergency Policy - Portugal 2011 update. International Energy Agency (IEA). [Online] http://www.iea.org/publications/free_new_Desc.asp?PUBS_ID=2413. 4. Plano de Racionalização dos Consumos de Energia . Plano de Racionalização dos Consumos de Energia . [Online] Energia e Ambiente. LDA. http://www.cmfg.pt/Serv/Energ/rgce.htm. 5. THE STANDISH GROUP REPORT. s.l. : The Standish Group , 1995. 6. Regulamento Tarifário Do Sector Eléctrico, ERSE, Dezembro de 2009. [Online] http://www.erse.pt/pt/electricidade/regulamentos/tarifario/Documents/RT%20Dez %202009_vers%C3%A3o%20INTERNET.pdf. 7. Regulamento de Relações Comerciais Do Sector Eléctrico, ERSE, Agosto de 2009. [Online] http://www.erse.pt/pt/electricidade/regulamentos/relacoescomerciais/Documents/ Regulamento% 20de%20Rela%C3%A7%C3%B5es%20Comerciais% 20-%20Agosto%202009.pdf. 8. Nota informativa sobre as novas regras de facturação da energia reactiva, ERSE, 21 de Abril de 2010. [Online] http://www.erse.pt/pt/consultaspublicas/consultas/Documents/31_4/Comunicado_reactiva _21Abril2010.pdf && http://www.erse.pt/pt/consultaspublicas/consultas/Documents/31_4/Despacho_3_2010.pdf. 9. PulseEnergy . PulseEnergy . [Online] www.pulseenergy.com/. 10. plus-energy. plus-energy. [Online] www.plus-energy.com. 11. advanced telemetry. advanced telemetry. [Online] www.advancedtelemetry.com/ . 12. energymeteringtechnology. [Online] energymeteringtechnology.com/. 13. agile waves. agile waves. [Online] www.agilewaves.com/ . 14. Vision BMS . Vision BMS . [Online] www.visionbms.com/. 15. Synapsense . Synapsense . [Online] www.synapsense.com/. 16. Schneider Electric . Schneider Electric . [Online] www.schneider-electric.com. 17. Raritan . Raritan . [Online] www.raritan.com/. 18. Enigin . Enigin . [Online] www.enigin.com/ . 19. Johnson Controls . Johnson Controls . [Online] www.johnsoncontrols.com/. 20. Henriques, João. clubeinvest. A História do Petróleo. [Online] Pedro Saraiva – Relatório da disciplina de Estágio/Projecto Industrial 2010/2011 127 Refêrencias iEnergy – Eficiência Energética em Edifícios http://www.clubeinvest.com/bolsa/show_futures_technical_analysis.php?id=148. 21. Goldenberg, Michel. Scrum. Scrum. [Online] http://www.scrumalliance.org/profiles/38596-michel-goldenberg. 22. Kniberg, Henrik. Scrum and XP from the Trenches. How we do Scrum. 23. Patton, Ron. Software Testing. 2005. 128 Pedro Saraiva – Relatório da disciplina de Estágio/Projecto Industrial 2010/2011 iEnergy – Eficiência Energética em Edifícios Anexo I – Estado de Arte Anexo I – Estado da Arte Estudo de Estado de Arte Out. 2010 3 Estado da arte Índice 1 INTRODUÇÃO ........................................................................................................................ 1 2 FUNCIONALIDADES ............................................................................................................... 3 3 TECNOLOGIAS ....................................................................................................................... 5 4 ANÁLISE GRÁFICA.................................................................................................................. 6 5 SOFTWARE DE GESTÃO ENERGÉTICA..................................................................................... 8 Estado da arte 1 Introdução Neste documento é apresentado o estudo detalhado de alguns Softwares de gestões energéticas existentes no mercado. Os principais competidores da plataforma iEnergy e os seus produtos (funcionalidades e tecnologias usadas) estão descritos neste documento. Sendo que os principais competidores presentes neste documento são: PulseEnergy, Enigin, Plus-Energy, Advanced Telemetry, Energy Metering Technology Ltd, AgileWaves, Vision BMS, Noveda, Synapsense, Schneider Electric, Johnson Controls. Não foi possível para nenhuma destas empresas saber os custos para utilização das suas soluções. PulseEnergy oferece tecnologia para melhorar a gestão de energia e assim aumentar a produtividade nos edifícios. A solução da PulseEnergy combina Hardware com Software que recolhe informações referente a variáveis enérgicas e permite que os utilizadores consultem esses dados através de uma aplicação Web, os utilizadores podem consultar comparativos e custos de energia através da internet. Plus-Energy é uma empresa portuguesa de ESCO (Energy Services Company) especializada investigação, desenvolvimento e implementação de soluções adaptadas as necessidades dos seus clientes nas áreas da gestão de energia e gestão de edifícios. Os seus serviços envolvem actividades de auditoria, implementação de medidas de racionalização de energia, desenho e escala de locais de produção energeticamente mais eficientes (energia tradicionais e renováveis), manutenção de sistemas de energia, leasing de equipamentos e financiamento de projectos. Advanced Telemetry oferece soluções para ajudar os seus clientes a reduzir o seu consumo de energia e aumentar as poupanças. A sua linha de produtos chamada EcoView permite aos utilizadores que facilmente vejam, giram, e reduzam o seu consumo de energia através de uma aplicação Web. Energy Metering Technology Ltd oferece soluções para gestão de consumo de energia e água através do uso de tecnologias emergentes de monotorização e comunicação. A sua solução é composta por quatro produtos: DATACHICK que é um sistema de monotorização automática para edifícios, DATABIRL para vários edifícios, DYNAMAT para monitorar e orientar os consumos de energia e TURNKEY, uma solução final que inclui o Hardware, Software e outros serviços para gerir todo o processo desde a consulta até a instalação e suporte. AgileWaves é uma empresa sediada em Menlo Park, California que oferece um sistema de monotorização e gestão de energia. A sua solução oferece um sistema de optimização de edifícios que oferece ao gestor do edifício e aos donos dos mesmos dados em tempo real, métricas rigorosas para aumentar a eficiência energética, reduzindo os custos e atender as exigências de controlo de CO2. Vision BMS é uma companhia formada em 2007 como vinda do Barco group. BMS fornece serviços de execução de sistemas de fabrico para produção discreta, com foco no sector têxtil, plástico e industria farmacêutica. Sob a marca BarcoVision, BMS oferece uma gama de sensores e sistemas que visam a produtividade e melhoria da qualidade. Eles têm uma solução de energia que segue o princípio de monitoramento e visionamento. 1 Estado da arte Synapsenseoferece uma solução baseada em Wireless de sensores que oferece uma redução do consumo de energia e da pegada de carbono em data centers e empresas. Schneider Electric é uma especialista em gestão de energia com operações em mais de 100 países, Schneider Electric oferece soluções para diferentes segmentos do Mercado, incluem posições em energia e infra-estruturas, processos industriais, automação de edifícios e data centers/networks, é também com grande presença em aplicações residenciais. Raritan oferece uma solução de gestão de potência e energia, Kernel based virtual machine (KVM) e soluções de acesso. Enigin oferece produtos para controlar, reduzir e eliminar as enormes contas de energia. Eles têm uma solução para poupar energia em controlos de motores, controlos de luz, ar condicionado e refrigeração. A sua solução oferece Software e Hardware para visualização de dados em tempo real e para análise de informação. A informação em tempo real e disponibilizada por uma aplicação desktop e as análises são fornecidas por uma aplicação Web. Johnson Controls é um fornecedor de equipamentos, controlos e serviços para aquecimento, ventilação, ar-condicionado, refrigeração e segurança em edifícios. Oferecem uma solução “Metasys building management” que integra Hardware e Software com capacidade Wireless. Os gestores dos edifícios são capazes de perceber e melhorar o consumo e custo da energia nos seus edifícios. 2 Estado da arte 2 Funcionalidades Nesta secção estão listadas as funcionalidades dos competidores e uma breve descrição dessas mesmas funcionalidades. As principais funcionalidades da competição são: Dashboard View – Os utilizadores podem ver numa única página várias análises/indicadores relevantes para a análise energética. Aqui alguns dos competidores oferecem a possibilidade de configuração deste dashboard com outras análises que sejam relevantes. Real time análise – Esta funcionalidade permite que os utilizadores possam ver exactamente para onde a energia esta ir, Segundo a Segundo. o Consumo e custos de energia ao minuto. Alertas – Se o utilizador exceder o consume ideal o mostrador muda de cor para avisar de potencial desperdícios. o Alarmes configuráveis – O utilizador pode configurar alertas para serem enviados quando alguma coisa de invulgar acontecer. o Os alertas podem ser enviados por SMS ou Correio electrónico. Carbon Footprint – Os utilizadores podem seguir e reduzir a sua pegada de carbono através da observação dos efeitos de decisões inteligentes e percebendo o seu impacto. Gerações de relatórios – As análises podem ser mostradas de várias formas: o Análises de tendência e histórico de comparativos. o O histórico de consumo de energia pode ser comparado em através de dias, semanas, meses ou até anos. o Qualquer informação mostrada pode ser impressa para criar um relatório ou descarregada para um spreadsheet para posterior análise. o Detalhes de análises por piso, sala, dispositivo, circuito ou utilidade. o Análise de gráficos pode ser configurada pelos utilizadores. Análises de custos – Os utilizadores podem converter dados numa linguagem que todos entendem - dinheiro. o Os utilizadores podem reproduzir a conta de energia de acordo com uma estrutura de tarifário. o Os utilizadores podem aceder a previsões daquilo que poderão gastar na próxima semana ou mês de forma a poderem fazer o seu orçamento de acordo ou tomar medidas para reduzir o consumo. o Os utilizadores podem aceder a contas passadas e comparar com as mais recentes. o Os utilizadores podem analisar e simular a optimização do tarifário. Os Amps, Voltagem & Factor Potência – Os utilizadores podem observar e entender o consumo de energia de uma forma melhor. São a fases desequilibradas a ponto de expor o sistema a falha do equipamento em massa? Está a tensão for a dos limites aceitáveis adicionar 10% a mais a conta de energia? É o fraco factor potência que esta a diminuir a capacidade e provocando multas desnecessárias de a empresa concessionária? o Simulação do factor potência – O factor potência pode ser simulado para correcção. 3 X X X X X X X X X X X X X X X X X X X Consumos em tempo real Relatórios (gráficos e análises) X Gráficos customizados X X X X X X X X X Alertas de aletas por email Envio de alertas por SMS X Alertas no ecrã X X Tabela 1 -Funcionalidades dos principais concorrentes Alarmes configuráveis X Vista de alertas com detalhes X X X X X Download de análises em vários formatos X X X X X X X X X X X X Custos de energia Previsão de custos de energia X X X X Análise de custos para optimização Opções de tarifários X X X X X X X X X X X Comparação de vários locais Simulação de factor potência X X X X X Comparação de várias divisões X X X X Detalhes por divisão X X Google Mpaps para seleccionar local Estado da arte X X X X X X X X Dashboard View A tabela seguinte mostra os competidores em análise e as funcionalidades que oferecem: Pulse Energy Enigin Plus-Energy Advanced Telemetry Energy Metering Technology AgileWaves Visionbms Noveda Synapsense (Data Centers) Schneider Electric Johnson Controls Raritan 4 Pegada de carbono Estado da arte 3 Tecnologias Nesta secção é feito um breve resumo do estudo das tecnologias usadas pelos principais competidores nos seus produtos. A tabela seguinte mostra a comparação entre cada um dos competidores em termos de tecnologias. Aplicação móvel NA Aplicação Web A Aplicação desktop NA A A A NA NA A A NA NA ASP.net/C# NS NS NS NS NS .NET SqlServer NA NA A . NET API for 3rd party NA A Flash… A API for 3rd party NA MySQL/Or acle/SqlSer ver NS Synapsense Schneider Electric Raritan NA NA NA NA NA A A A NA Johnson Controls A A A Pulse Energy Enigin Plus-Energy Advanced Telemetry Energy Metering Technology Visionbms AgileWaves Noveda Tecnologias DB Flash, Spring(J2EE) PHP,.NET, Flash, JavaScript and PERL NS PHP, Perl, Flash NS (Windows) J2EE, Ajax/Flash/Fle x JAVA,JSP/J2E E NS MySQL NS NS NS NS Tabela 2 - Tecnologias dos principais concorrentes Legenda: A – Disponível NA – Não disponível NS – Não especificado 5 Estado da arte 4 Análise gráfica Nesta secção são apresentadas uma série de análises gráficas que mostram a relação entre funcionalidades e tipo de tecnologias usadas pelos competidores. Na primeira imagem podemos ver que os competidores que têm menos funcionalidades; por análise do gráfico podemos ver que a Enigin é a companhia com mais funcionalidades implementadas e a Synapsense com menos. Figura 1: Competidores por número de funcionalidades A próxima imagem mostra que tipo de tecnologias são usadas pelos competidos nos seus produtos: Fechadas ou abertas. Pela análise do gráfico podemos concluir que as fechadas são usadas com mais frequência. Figura 2: Tipo de tecnologias Na última imagem podemos observar um gráfico que junta as duas análises anteriores: o tipo de tecnologias usadas e o número de funcionalidades dos competidores. O eixo horizontal 6 Estado da arte representa a complexidade dos produtos em número de funcionalidades o eixo vertical representa as tipo tecnologias usadas: tecnologias abertas ou fechadas. Para cada competidor, quanto maior for o valor no eixo vertical, mais fechadas são as tecnologias que usa. Como podemos ver, quatro companhias usam apenas tecnologias fechadas e apenas uma usa só tecnologias abertas. Todos os outros competidores usam uma mistura de tecnologias abertas e fechadas nas suas soluções. Figura 3: Relação entre tecnologias e complexidade (número de funcionalidades) 7 Estado da arte 5 Software de gestão energética Sim. Versão web? 345€ por licença. Grátis. Preço Necessita de ligação à Internet? Sim. Não. Não especificado. Sistemas operativos Não. Não. Disponível para o público em geral? Sim. Penso que não. Ainda não. Windows 98 ou mais recente. Sim. Todos (à partida, uma vez que é web based). Windows 2000 ou mais recente. Sim Sim Sim. . Não especificado. Não necessariamente (só algumas versões necessitam). . O preço varia muito com a versão da aplicação e com outros parâmetros. Versão client/server: desde $50,000 até $200,000. Versão online: a partir de $3,000 por ano para organizações mais pequenas. Versão Desktop and Campus: Desde $15,000 até $40,000. Não especificado; depende de alguns Sim. Todos (à partida, uma vez que é Sim. Nesta secção são apresentadas mais algumas soluções de outras empresas já presentes no mercado. Descrição PowerMeter Ferramenta de monitorização dos gastos de electricidade e gás numa habitação. Aplicação Energy Lens Metrix 4 Utility Accounting System EnergyCAP Ferramenta de monitorização e de Ferramenta de monitorização dos gastos de electricidade num edifício. Ferramenta de monitorização dos gastos de energia (electricidade, gás natural, água, óleo para aquecimento, gás propano, gás LP, resíduos sólidos, águas residuais) num edifício. Ferramenta de monitorização e gestão do consumo de energia (água e gás, pelo menos) e de processamento das contas associadas. Energy Expert 8 Notas Encontra-se em versão beta e neste momento apenas pode ser testado pelos empregados do Google e por um grupo restrito de clientes. Necessita que as habitações onde seja utilizado tenha um contador inteligente para funcionar. Precisa do Excel 97 ou mais recente para funcionar. Precisa do Excel 2003 ou mais recente para funcionar. Surveyor NightWatchman Power Management Hohm MarketManager Ferramenta que permite gerir a energia consumida por vários computadores ligados em rede de forma centralizada. previsão dos gastos de energia (mais eficientemente electricidade mas também gás) e de picos de corrente num edifício. Permite também calcular a poupança energética realizada. Ferramenta que permite monitorar e simular os gastos energéticos em edifícios e prever o efeito da aplicação de determinadas medidas energéticas nos mesmos. Ferramenta de monitorização dos gastos de energia numa habitação que fornece conselhos personalizados sobre poupança de energia. Ferramenta que permite gerir a energia consumida por vários computadores ligados em rede de forma centralizada. Ferramenta que permite gerir a energia consumida por vários computadores ligados em rede de forma centralizada. Sim. Sim. Windows 2000 ou mais recente e Apple Mac OS X. Windows Vista (Business, Enterprise, Enterprise x64 e Ultimate) e Windows XP SP2 e mais recentes. Windows Vista, Vista x64, Windows XP e Windows 2000 Professional SP4 (ou mais recente). Sim. Sim. Sim. Windows Azure. Windows. web based). Penso que não. Não. Penso que não. Sim. Não. Penso que não. Não. Penso que não. Sim. Penso que não Não especificado, mas não é grátis. Não especificado, mas não é grátis. Não especificado. Grátis. $1095. parâmetros. 9 Precisa do Windows Server 2008, 2008 (x64) ou Windows Server 2003 SP2 para o servidor e do SQL Server 2008, SQL Server 2005 SP2 & Express Edition ou Microsoft SQL Server 2000 para a base de dados Pode também ser adquirido como parte da suite Systems Lifecycle Management. Ainda só há versão beta e esta apenas se encontra disponível para os utilizadores dos Estados Unidos da América. Estado da arte Ferramenta de cálulo de poupança energética em computadores (para um ou vários). Ferramenta de cálculo de poupança energética em computadores (para um ou vários). Widget que recolhe os dados da poupança energética acumulada associada ao desligamento dos computadores dos utilizadores quando estes não estão a ser utilizados. Gadget de gestão Ferramenta de gestão energética em computadores (apenas para um). Ferramenta que permite controlar as opções de gestão energética de forma centralizada de vários computadores usando group policy objects. (GPO). Ferramenta de gestão energética em computadores (apenas para um) Ferramenta de cálculo de poupança energética em computadores (para um ou vários). Ferramenta que permite fazer a gestão energética de vários computadores. Estado da arte Edison EZ GPO EZ Wizard Client energy calculator Power Save Online energy savings calculator Advanced Power Save ROI Calculator Hewlett-Packard Power To Change Energy Saver 10 Windows XP (SP2) ou Windows Vista. Sim. Não. Não. Grátis. Grátis. Grátis. Penso que não. Não. Penso que não. Não. Sim. Sim. Windows 2000 e XP. Não. A partir de 5.29€ (para uma licença e um ano de Power Save Maintenance Package, para Portugal, na categoria educação). Grátis. Grátis. Não. Sim. Grátis. Sim. Sim. Sim. Sim. Sim. Windows e Mac OS X. Sim. Sim. Sim. Todos (à partida, uma vez que é web based). Sim. para funcionar. Versão grátis e mais leve do Surveyor. Os administradores de rede têm de correr Windows Active Directory. Só permite simular o consumo em sistemas Hewllett-Packard (e não todos). Widget que recolhe dados e envia-os para um servidor via Internet embora necessite de interacção com o utilizador. Todos (à partida, uma vez que é web based). Gadget para o Google Grátis. Grátis. Não. Não. Sim. Sim, pelo menos para Sim. Todos (à partida, uma vez que é web based). Windows 2000 e XP. Sim. Windows, Linux e Mac OS X. Windows Vista/XP, Linux e Mac OS X ver a quantidade de energia poupada pela comunidade de utilizadores do programa. 11 Desktop. Necessita do Google Desktop 5 ou mais recente para funcionar. Tabela 3 – Resumo das características mais importantes das principais aplicações de gestão energética existentes no mercado energética em computadores (apenas para um). Estado da arte iEnergy – Eficiência Energética em Edifícios Anexo II – Casos de uso Anexo II – Casos de Uso Documento de casos de uso Jan. 2011 Casos de Uso Índice 1 INTRODUÇÃO ........................................................................................................................ 1 2 CARACTERÍSTICAS DOS UTILIZADORES .................................................................................. 2 3 CASOS DE USO DO SISTEMA .................................................................................................. 3 Casos de Uso 1 Introdução Neste documento são apresentados os casos de uso do software de gestão energética que se pretende implementar. O software é composto por vários módulos que contem diferentes funcionalidades dentro de si, com este documento pretende-se apresentar os principais casos de uso do sistema. 1 Casos de Uso 2 Características dos Utilizadores Para este sistema foram identificados três actores como se descreve de seguida, com base nos requisitos de utilizador do sistema. Os diferentes perfis de utilizador são: Cliente: Tem acesso à plataforma apenas para ver indicadores (não os pode alterar) e extrair relatórios predefinidos (não os pode alterar) dos projectos a que está alocado. Gestor de energia: Acesso total à plataforma não podendo no entanto gerir utilizadores nem permissões nos grupos lógicos. Administrador: Acesso total à plataforma. Pode ser vista de seguida a hierarquia entre eles no seguinte diagrama: uc Actors Cliente Gestor de energia Administrador Imagem 1 - Hierarquia de Utilizadores 2 Casos de Uso 3 Casos de Uso do Sistema Nesta secção são detalhados todos os pacotes de casos de utilização do sistema, através dos seus respectivos diagramas de casos de utilização. Alguns desses diagramas contêm casos de utilização mais complexos - com a descrição Extension points - que representam funcionalidades pertencentes a outros pacotes. Ou seja, são uma espécie de apontadores para outro caso de utilização existente num outro pacote. Tanto o caso de utilização como o pacote onde se encontra são especificados nesse mesmo caso de uso mais complexo. Na imagem 2 estão representados todos os módulos do sistema bem como os utilizadores que acedem a eles. uc Primary Use Cases Sistema de gestão de energia Visualização de dados(alertas, actuação,grupos, indicadores, tarifários) Análise de dados Gestão de tarifários Cliente Gestor de energia Visualização de ralatórios Simulação de tarifários Gestão de grupos Cálculo de tarifário Verificação de actuações Gestão de alertas Verificação de alertas Administrador Gestão de Indicadores Cálculo da baseline Gestão de v irtual tags Gestão da baseline Gestão de actuação Imagem 2 - Casos de uso do sistema separados por pacotes 3 Sistema Casos de Uso uc Class Model Visualisação de Dados Escolher Agregação de dados Exportar Dados «include» «extend» Cliente Configurar Parâmetros de Aquisição «include» Visualizar Dados de Histórico «include» «include» Escolher Grupo Lógico «include» «include» Gestor de Energia Escolher Unidade de Medida Comparar Dados de Histórico Escolher Tag «include» Administrador Gerar Regressão Linear Imagem 3- Diagrama de casos de uso para visualização de dados 4 Casos de Uso uc Cálculo da baseline Baseline Gerir Baseline Gestor de energia (from Actors) Cálcular Baseline «include» Ver indicadores de poupança Sistema Imagem 4 - Casos de uso de gestão de baseline uc Gestão de grupos Gestão de Grupos Criar Sub Grupos «extend» Gerir Grupos «extend» Adicionar Utilizadores a grupos Gestor de energia «extend» (from Actors) Gerir Indicadores «extend» Adicionar Tags a Grupos Adicionar detalhes Gerir Virtual tags Imagem 5- Casos de uso para gestão de grupos 5 Casos de Uso uc Gestão de alertas Gestão de alertas Ver alertas disparados Env iar email com o estado do alerta Cliente (from Actors) «include» Gerir alertas Verificar alertas Sistema Gestor de energia (from Actors) Carregar alerta Administrador (from Actors) Imagem 6 - Casos de uso para gestão de alertas uc Cálculo de tarifário Gestão de tarifários Consultar tarifários Cliente (from Actors) Cálcular simulação de tarifários Ver Simulação de tarifários «include» Gestor de energia (from Actors) Criar nov as v ersões «extend» Cálcular tarifários Gerir tarifários Sistema Imagem 7 - Casos de uso para gestão de tarifários 6 Casos de Uso uc Gestão de actuação Gestão de actuação Gerir actuação Gestor de energia (from Actors) Actuar sobre o despositiv o «include» Verificar actuação Sistema Imagem 8 - Casos de uso para gestão de actuação 7 iEnergy – Eficiência Energética em Edifícios Anexo III – Plano de Risco Anexo III – Plano de Riscos iEnergy – Eficiência Energética em Edifícios Anexo III – Plano de Risco No decorrer do projecto foram identificados alguns riscos para o mesmo, para cada um desses riscos foi identificada uma estratégia de contingência. A tabela seguinte mostra os maiores riscos do projecto: Risco A carga a que o sistema vai ser sujeita. Estratégia de contingência Testes iniciais com uma base de dados de produção de forma a perceber como pode ser optimizado o sistema. Esperar demasiado da plataforma pode Deve existir uma apresentação da solução levar a alguns mal entendidos entre o que a para que toda a gente saiba o que é a solução. plataforma já é vs. Aquilo que é esperado da plataforma Documentação da solução em termos comerciais para identificar qual é a solução faz e não faz e pontos críticos. Pouca experiencia nas tecnologias usadas Estudo cuidado de todas as tecnologias que para a implementação. são usadas na implementação, através da internet ou livros. Implementação de protótipos usando as tecnologias em causa. 1 iEnergy – Eficiência Energética em Edifícios Anexo IV – Especificação do Web Service Anexo IV – Web Service de edifícios Especificação do Web Service Mai. 2011 Especificação Web Service Índice ANEXO IV – WEB SERVICE DE EDIFÍCIOS .......................................................................................... 1 1 INTRODUÇÃO ........................................................................................................................... 1 2 ESTRUTURAS DE DADOS ........................................................................................................... 2 2.1 2.2 2.3 2.4 2.5 2.6 2.7 2.8 2.9 2.10 2.11 2.12 2.13 2.14 2.15 2.16 2.17 2.18 2.19 2.20 2.21 2.22 2.23 2.24 2.25 2.26 2.27 2.28 3 RESULTADO DE UMA OPERAÇÃO ................................................................................................... 2 INDICADOR ............................................................................................................................... 2 GRUPO .................................................................................................................................... 3 DETALHES DE GRUPO ................................................................................................................. 3 TIPO DE GRUPO......................................................................................................................... 3 COLUNAS DE UM TIPO DE GRUPO ................................................................................................. 3 VALORES DAS COLUNAS DE UM TIPO DE GRUPO .............................................................................. 4 TIPO DE HÓRARIO DE GRUPO ....................................................................................................... 4 HÓRARIO DE GRUPO .................................................................................................................. 4 TAG ........................................................................................................................................ 4 PARÂMETRO DA VIRTUAL TAG...................................................................................................... 5 TARIFA .................................................................................................................................... 5 PARÂMETRO DE TARIFÁRIO .......................................................................................................... 5 CUSTOS FIXOS........................................................................................................................... 5 INTERVALO ............................................................................................................................... 6 FACTOR DE MULTIPLICAÇÃO ........................................................................................................ 6 TEMPORADA ............................................................................................................................. 6 SIMULAÇÃO DE TARIFA................................................................................................................ 6 LINHA DE SIMULAÇÃO DE TARIFA .................................................................................................. 7 UNIDADE DE MEDIDA.................................................................................................................. 7 CONVERSÃO DE MEDIDA ............................................................................................................. 7 ALERTA.................................................................................................................................... 7 PARÂMETRO DO ALERTA.............................................................................................................. 8 ALERTA DISPARADO.................................................................................................................... 8 ACTUAÇÃO ............................................................................................................................... 8 BASELINE ................................................................................................................................. 9 VALORES DA BASELINE ................................................................................................................ 9 UTENSÍLIOS DA BASELINE ............................................................................................................. 9 MÉTODOS .............................................................................................................................. 10 3.1 3.2 3.3 3.4 3.5 3.6 3.7 3.8 3.9 ACESSO A DADOS ..................................................................................................................... 10 GRUPOS ................................................................................................................................ 11 UNIDADES DE MEDIDA .............................................................................................................. 14 TARIFAS ................................................................................................................................. 15 ALERTS .................................................................................................................................. 16 MESSAGES ............................................................................................................................. 18 BASELINE ............................................................................................................................... 19 RELATÓRIOS ........................................................................................................................... 19 ACTUAÇÃO ............................................................................................................................. 20 Especificação Web Service 1 Introdução Este documento tem por objectivo apresentar a especificações dos métodos criados no novo End Point do Web Service do iEnergy (end point de edifícios). Web Service de Edíficios 1 Especificação Web Service 2 Estruturas de dados Nesta secção são apresentadas todas as estruturas de dados e enumerações que são usadas no end point de edifícios. Estas estruturas são específicas para um método ou para um conjunto de métodos que as podem utilizar. 2.1 Resultado de uma operação Todas as invocações de métodos retornam um código que indica o sucesso ou insucesso da uma operação. Os valores possíveis estão codificados na seguinte enumeração: public enum ResultCode : byte { Success = 1, UnexpectedError = 2, InvalidUser = 3, InvalidParameter = 4, NoData = 5, UnAuthorized = 6, ImpossibleConversion = 7 } Os primeiros três valores são comuns a todas as operações, os restantes são específicos para cada método e serão explicados em detalhe em cada caso. A descrição desses valores é: Valor Descrição Success A operação teve sucesso. UnexpectedError Erro durante a execução. InvalidUser Utilizador inválido. Token errado ou expirado. Acesso não autorizado a este método. InvalidParameter Parâmetro inválido. NoData Não existem dados para a operação desejada. UnAuthorized O utilizador não tem as permissões necessárias para a operação desejada. ImpossibleConversion A unidade de medida pedida não pode ser convertida. 2.2 Indicador A classe Indicator é usada para representa um indicador de estado e para fazer a sua serialização entre o cliente e a plataforma. A classe é definida por: public class Indicator { public int Id { get; set; } public string Name { get; set; } public int TagId { get; set; } 2 Web Service de Edíficios Especificação Web Service public byte TagMeasurementType{ get; set; } public bool IsAccumulate{ get; set; } } 2.3 Grupo A classe Group é usada para representa um grupo e para fazer a sua serialização entre cliente e a plataforma. A classe é definida por: public class Group { public int Id { get; set; } public string Name { get; set; } public string Description { get; set; } public int ParentId { get; set; } public int IsBuilding { get; set; } } 2.4 Detalhes de Grupo A classe GroupDetails é usada para representa um detalhe de um grupo que pode ser usada em indicadores de estado e para fazer a sua serialização entre cliente e a plataforma. A classe é definida por: public class GroupDetails { public int GroupId { get; set; } public string Name { get; set; } public decimal Value { get; set; } } 2.5 Tipo de Grupo A classe GroupType é usada para representa um tipo de grupo e para fazer a sua serialização entre cliente e a plataforma. A classe é definida por: public class GroupType { public int Id { get; set; } public string Name { get; set; } } 2.6 Colunas de um Tipo de Grupo A classe GroupColumns é usada para representa os parâmetros de um tipo de grupo e para fazer a sua serialização entre cliente e a plataforma. A classe é definida por: public class GroupColumns { public int Id { get; set; } public int GroupId { get; set; } public string Name { get; set; } public string Index { get; set; } } Web Service de Edíficios 3 Especificação Web Service 2.7 Valores das Colunas de um Tipo de Grupo A classe GroupColumnsValues é usada para representa um valor de uma coluna de um tipo de grupo e para fazer a sua serialização entre cliente e a plataforma. A classe é definida por: public class GroupColumnsValues { public int Id { get; set; } public string GroupId { get; set; } public string ColumnId { get; set; } public decimal Value { get; set; } } 2.8 Tipo de Hórario de Grupo A classe GroupScheduleType é usada para representa um tipo de hórario de um grupo e para fazer a sua serialização entre cliente e a plataforma. A classe é definida por: public class GroupColumns { public int Id { get; set; } public int GroupId { get; set; } public int ColumnId { get; set; } public string Value { get; set; } } 2.9 Hórario de Grupo A classe GroupScheduleé usada para representar um horário de um grupo e para fazer a sua serialização entre cliente e a plataforma. A classe é definida por: public class GroupColumns { public int Id { get; set; } public int GroupId { get; set; } public int ColumnId { get; set; } public string Value { get; set; } } 2.10 Tag A classe Tag é usada para representa uma Tag(variável medida) e para fazer a sua serialização entre cliente e a plataforma. A classe é definida por: public class Tag { public int Id { get; set; } public string Name { get; set; } public int UnitId { get; set; } public int DeviceId { get; set; } public int RemoteId { get; set; } public int TagTypeId { get; set; } public int LocalId { get; set; } public int IsVirtual { get; set; } } 4 Web Service de Edíficios Especificação Web Service 2.11 Parâmetro da Virtual Tag A classe Tag é usada para representa uma Tag(variável medida) e para fazer a sua serialização entre cliente e a plataforma. A classe é definida por: public class TagVirtualParameter { public int Id { get; set; } public string TagId { get; set; } public string VirtualParameterType { get; set; } } 2.12 Tarifa A classe Tariff é usada para representar uma tarifa e é serializada entre o cliente e a plataforma. A classe tariff é definida por: public class Tariff { public int Id { get; set; } public int Supid { get; set; } public string Name { get; set; } public int AquisitionPeriods { get; set; } public int SeasonSeries { get; set; } public int Identification { get; set; } public int UserId { get; set; } public short Version { get; set; } public bool IsPublic { get; set; } public DateTime Start{ get; set; } public DateTime End{ get; set; } public List<Interval> Intervals { get; set; } public List<FixedCosts> FixedCosts { get; set; } public List<TariffParameter> Parameter{ get; set; } } 2.13 Parâmetro de Tarifário A classe TariffParameter é usada para representar um parâmetro do tarifário e é serializada entre o cliente e a plataforma. A classe TariffParameter é definida por: public class TariffParamter { public int Id { get; set; } public int Type { get; set; } public string Name { get; set; } public int Period { get; set; } public int Price { get; set; } public List<int> Hours{ get; set; } public List<MultiplicationFactor> Factor{ get; set; } public List<Season> Seasons{ get; set; } } 2.14 Custos Fixos A classe FixedCosts é usada para representar um custo fixo associado ao tarifário e é serializada entre o cliente e a plataforma. A classe FixedCosts é definida por: public class FixedCosts Web Service de Edíficios 5 Especificação Web Service { public public public public int Id { get; set; } string Description { get; set; } decimal ContractedPower { get; set; } decimal Price { get; set; } } 2.15 Intervalo A classe Interval é usada para representar um intervalo do tarifário e é serializada entre o cliente e a plataforma. A classe Interval é definida por: public class Interval { public int Id { get; set; } public TimeSpan Start { get; set; } public TimeSpan End { get; set; } public int Season { get; set; } public byte WeekDay { get; set; } public decimal Price { get; set; } public byte Type { get; set; } } 2.16 Factor de Multiplicação A classe MultiplicationFactor é usada para representar um factor de multiplicação e é serializada entre o cliente e a plataforma. A classe MultiplicationFactor é definida por: public class MultiplicationFactor { public int Id { get; set; } public string Name { get; set; } public decimal? Min { get; set; } public decimal? Max { get; set; } public decimal Factor { get; set; } } 2.17 Temporada A classe Season é usada para representar uma temporada associada aos parametros do tarifário e é serializada entre o cliente e a plataforma. A classe MultiplicationFactor é definida por: public class Season { public int Id { get; public string Name { public int StartDate public int EndDate { } set; } get; set; } { get; set; } get; set; } 2.18 Simulação de tarifa A classe TariffSimulation é usada para representar uma simulação e é serializada entre clientes e a plataforma. A classe TariffSimulation é definida por: public class TariffSimulation { public string Name { get; set; } 6 Web Service de Edíficios Especificação Web Service public List<TariffSimulationRow> Costs { get; set; } public int Id { get; set; } } 2.19 Linha de Simulação de tarifa A classe TariffSimulationRow é usada para representar uma linha da simulação e é serializada entre clientes e a plataforma. A classe TariffSimulation é definida por: public class TariffSimulationRow { public decimal? RushHourCosts { get; set; } public decimal? FloodHourCosts { get; set; } public decimal? EmptyHourCosts { get; set; } public decimal? SuperEmptyHouCostsr { get; set; } public decimal? InductiveEnergyCosts { get; set; } public decimal? CapacitiveEnergyCosts { get; set; } public decimal? ContractedPowerCosts { get; set; } public decimal? RushPowerCosts { get; set; } } 2.20 Unidade de medida A classe MeasurementUnit é usada para representa uma unidade de medida (kwh, € etc) e para fazer a sua serialização entre cliente e a plataforma. A classe é definida por: public class MeasurementUnit { public int Id { get; set; } public string Name { get; set; } public string SmallName { get; set; } } 2.21 Conversão de medida A classe MeasurementConversion é usada para representa uma conversão de uma unidade de medida (kwh,€ etc) para outra (CO2,Car etc) e para fazer a sua serialização entre cliente e a plataforma. A classe é definida por: public class MeasurementConversion { public int Id { get; set; } public Tuple<int,string,decimal> Source { get; set; } public Tuple< int,string,decimal> Destination { get; set; } } 2.22 Alerta A classe Alert é usada para representa um alerta e para fazer a sua serialização entre cliente e a plataforma. A classe é definida por: public class Alert { public int Id { get; set; } public Dictionary<string, string> Properties { get; set; } public string Type { get; set; } public bool HasEnable { get; set; } Web Service de Edíficios 7 Especificação Web Service public public public public string Name { get; set; } int? EntityId { get; set; } datetime StartDate { get; set; } datetime EndDate { get; set; } } 2.23 Parâmetro do alerta A classe AlertParameterParameters é usada para representa um parâmetro de um alerta e para fazer a sua serialização entre cliente e a plataforma. A classe é definida por: public class AlertTriggerParameters { public int Id { get; set; } public int AlertTriggerId { get; set; } public string Name { get; set; } public string ValueString { get; set; } public decimal Value { get; set; } } 2.24 Alerta disparado A classe AlertTrigger é usada para representa um alerta que foi disputado e para fazer a sua serialização entre cliente e a plataforma. A classe é definida por: public class AlertTrigger { public int Id { get; set; } public List< AlertTriggerParameters> Parameter { get; set; } public string AlertName { get; set; } public AlertType Type { get; set; } public int AlertId { get; set; } public bool HasChecked{ get; set; } public int16 Priority { get; set; } public bool HasSent { get; set; } public datetime Date { get; set; } } Os tipos de alerta que existem são: public enum AlertType: byte { Tag = (byte)0, Unit = (byte)1, Group = (byte)2, System = (byte) 3 } 2.25 Actuação A classe Action é usada para representa uma actuação e para fazer a sua serialização entre cliente e a plataforma. A classe é definida por: public class Action { public int Id { get; set; } public int Weekday { get; set; } public timespan Hour{ get; set; } public bool Action { get; set; } } 8 Web Service de Edíficios Especificação Web Service 2.26 Baseline A classe Baseline é usada para representa uma baseline e para fazer a sua serialização entre cliente e a plataforma. A classe é definida por: public class Baseline { public int Id { get; set; } public datetime Date { get; set; } public decimal AvacPower{ get; set; } public timespan AvacStartTime { get; set; } public timespan AvacEndTime { get; set; } public List<BaselineValue> BaselineValues { get; set; } public List<BaselineAppliance> BaselineAppliances{ get; set; } } 2.27 Valores da Baseline A classe BaselineValue é usada para representar um valor da baseline e para fazer a sua serialização entre cliente e a plataforma. A classe é definida por: public class BaselineValue { public int Id { get; set; } public datetime Date { get; set; } public decimal Rush { get; set; } public decimal Full { get; set; } public decimal Empty { get; set; } public decimal SuperEmpty { get; set; } } 2.28 Utensílios da baseline A classe BaselineAppliance é usada para representar um utensílio e para fazer a sua serialização entre cliente e a plataforma. A classe é definida por: public class BaselineAppliance { public int Id { get; set; } public string Name { get; set; } public decimal Power{ get; set; } public timespan StartTime { get; set; } public timespan EndTime { get; set; } } Web Service de Edíficios 9 Especificação Web Service 3 Métodos Nesta secção encontram-se todos os métodos que podem ser chamados no Web Service de edifícios para retornar informação sobre as entidades armazenadas no sistema. Nesta secção existe um método que é usado para listar algumas entidades no sistema segundo alguns criterios: ResultCode Search{Entidade} (string token, string? columnName, int? pagesize, int? page, string searchText, string filter, out List<Entidade> entidade); Descrição dos parâmetros: Parâmetro Fluxo Token In ColumnName In Pagesize In Page In SearchText In Filter In Entidade Out Descrição Token usado para verificar as credenciais do utilizador. Nome da coluna para ordenação. Número de resultados por página. Página actual. Texto que vai ser procurado. Coluna da entidade que vai servir de filtro a pesquisa. Lista com as entidades que preenchem o critério. 3.1 Acesso a dados O método seguinte permite aceder a dados de consumos agregados para uma dada tag num intervalo de tempo específico. Os valores são retornados numa unidade de medida específica: ResultCode GetAggregatedConsumptions(string token, int tagId, DateTime beginDate, DateTime endDate, byte measurementUnitId, AggType aggregation, out List<Tuple<DateTime, decimal>> data); Descrição dos parâmetros: Parâmetro Fluxo Token In TagId BeginDate EndDate MeasurementUnitId In In In In Aggregation In Data Out Descrição Token usado para verificar as credenciais do utilizador. Id da tag Data de início Data de fim Unidade de medida em que os dados devem ser retornados. Tipo de agregação. (INSTANT, HOURLY, DAILY, MONTHLY, YEARLY) Lista de tuples que contem os dados. Cada tuple contém uma data e um decimal que representa o valor em cada momento. Explicação dos códigos retornados: Código de resultado Descrição NoData 10 Não existem dados para os parâmetros especificados. Web Service de Edíficios Especificação Web Service O método seguinte permite aceder a dados de consumos agregados (valores instantâneos) para uma dada tag num intervalo de tempo específico. Os valores são retornados numa unidade de medida específica: ResultCode GetAggregatedInstants(string token, int tagId, DateTime beginDate, DateTime endDate, byte measurementUnitId, Core.Structures.AggType aggregation, Core.Structures.InstantType instant, out List<Tuple<DateTime, decimal>> data); Descrição dos parâmetros: Parâmetro Fluxo Token In TagId In BeginDate In EndDate In MeasurementUnitId In Aggregation In Instants In Data Out Descrição Token usado para verificar as credenciais do utilizador. Id da tag Data de início Data de fim Unidade de medida em que os dados devem ser retornados. Tipo de agregação. (INSTANT, HOURLY, DAILY, MONTHLY, YEARLY) Operação estatística que deve ser aplicada aos dados. (AVERAGE, MIN, MAX, STDEV) Lista de tuples que contem os dados. Cada tuple contém uma data e um decimal que representa o valor em cada momento. 3.2 Grupos Este método pesquisa por grupos com um nome ou descrição específicos: ResultCode SearchGroup(string token, string text, out List<Group> groups); Descrição de parâmetros: Parâmetro Fluxo Token In Text In Groups Out Descrição Token usado para verificar as credenciais do utilizador. Texto a pesquisar. Lista de grupos. Método usado para retorna todos os grupos raiz: ResultCode GetRootGroups (string token, out List<Group> groups); Descrição de parâmetros: Parâmetro Fluxo Token In Groups Out Descrição Token usado para verificar as credenciais do utilizador. Lista dos grupos raiz. Este método verifica se um determinado grupo tem grupos filhos: ResultCode HasChild (string token, int groupId, out bool hasChild); Descrição de parâmetros: Parâmetro Fluxo Token In GroupId In Web Service de Edíficios Descrição Token usado para verificar as credenciais do utilizador. Group id. 11 Especificação Web Service HasChild Out Returna verdadeiro ou falso. Este método retorna as tag de um determinado grupo: ResultCode GetTagsFromGroup (ing token, int groupId, out List<Tag> tags); Descrição de parâmetros: Parâmetro Fluxo Token In GroupId In Tags Out Descrição Token usado para verificar as credenciais do utilizador. Id do grupo. Lista de tags. Os códigos de retorno que podem ser retornados por este método são: Código de resultado Descrição InvalidParameter groupid é nulo ou vazio groupid inválido Método que retorna os indicadores de um determinado grupo: ResultCode GetIndicatorsFromGroup (ing token, int groupId, out List<Tag> tags); Descrição de parâmetros: Parâmetro Fluxo Token In GroupId In Indicators Out Descrição Token usado para verificar as credenciais do utilizador. Group id Lista de indicadores do grupo. Os códigos de retorno que podem ser retornados por este método são: Código de resultado Descrição InvalidParameter groupid é nulo ou vazio groupid inválido O método seguinte permite ao utilizador adicionar um novo grupo no sistema: ResultCode AddGroup(string token, Group group, out int id); Descrição dos parâmetros: Parâmetro Fluxo Token In Group In Id Out Descrição Token usado para verificar as credenciais do utilizador. O grupo á adicionar. Os grupos estão organizados hierarquicamente á informação referente ao seu parente (id) deve ser também fornecido no grupo. Se não será um novo grupo raiz. O id do novo grupo criado. O método seguinte permite adicionar tags a um determinado grupo: ResultCode AddTagsToGroup(string token, int[] tags, int group); Descrição dos parâmetros: 12 Web Service de Edíficios Especificação Web Service Parâmetro Token Tags Fluxo In In Group In Descrição Token usado para verificar as credenciais do utilizador. Um array com os ids das tags para serem adicionadas ao grupo. Id do grupo. Este método permite editar informação de um determinado grupo: ResultCode EditGroup(string token, Group g); Descrição dos parâmetros: Parâmetro Fluxo Token In Group In Descrição Token usado para verificar as credenciais do utilizador. Grupo a ser editado. O método seguinte permite apagar um grupo: ResultCode DeleteGroup(string token, int id); Nota: Apenas grupos folha podem ser apagados. Descrição dos parâmetros: Parâmetro Fluxo Descrição Token In Token usado para verificar as credenciais do utilizador. Id In Id do grupo apagar. O método seguinte permite linkar dois grupos um ao outro numa relação hierárquica. ResultCode LinkGroups(string token, int parentId, int childId); Descrição dos parâmetros: Parâmetro Fluxo Token In ParentId In Childid In Descrição Token usado para verificar as credenciais do utilizador. Id do grupo pai. Id do grupo filho. O método seguinte permite que dois grupos sejam separados: ResultCode UnLinkGroups(string token, int parentId, int childId); Descrição dos parâmetros: Parâmetro Fluxo Token In ParentId In Childid In Descrição Token usado para verificar as credenciais do utilizador. Id do grupo pai. Id do grupo filho. O método seguinte permite ao utilizador listar todos os grupos que tem acesso: ResultCode GetGroups(string token, out List<Group> groups); Descrição dos parâmetros: Parâmetro Fluxo Token In Groups out Web Service de Edíficios Descrição Token usado para verificar as credenciais do utilizador. Lista de grupos. 13 Especificação Web Service O método seguinte permite ao utilizador obter todos os grupos filhos de um determinado grupo. ResultCode GetDirectGroupChilds(string token, int groupId, out List<Group> children); Descrição dos parâmetros: Parâmetro Fluxo Token In GroupId In Children Out Descrição Token usado para verificar as credenciais do utilizador. Id do grupo. Lista de grupos filhos. O método seguinte permite ao utilizador obter todos os grupos filhos de um determinado grupo. ResultCode GetAllGroupChilds(string token, int groupId, out List<Group> children); Descrição dos parâmetros: Parâmetro Fluxo Token In GroupId In Children Out Descrição Token usado para verificar as credenciais do utilizador. Id do grupo. Lista de grupos filhos. O método seguinte permite ao utilizador obter todas as tags dos grupos filhos de um determinado grupo. ResultCode GetAllTagsFromGroup(string token, int groupId, out List<Tag> tags); Descrição dos parâmetros: Parâmetro Fluxo Token In GroupId In Tags Out Descrição Token usado para verificar as credenciais do utilizador. Id do grupo. Lista de tags dos grupos filhos. O método seguinte permite que sejam listadas grupos por um certa condição: ResultCode SearchGroups(string token, string? columnName, int? pagesize, int? page, string searchText, string filter, out List<Group> entidade); Explicação dos códigos retornados: Código de resultado Descrição InvalidUser Success UnexpectedError Token errado. Token expirado. Acesso não autorizado ao método. Operação com sucesso. Erro inesperado no acesso a base de dados. 3.3 Unidades de medida O método seguinte permite ao utilizador obter uma lista de unidades de conversão: ResultCode GetMeasurementConversions(string token, out List<MeasurementConversions> conversions); 14 Web Service de Edíficios Especificação Web Service Uma conversão representa o factor pelo qual a unidade deve ser multiplicada para obter uma outra unidade. Descrição dos parâmetros: Parâmetro Fluxo Descrição Token In Token usado para verificar as credenciais do utilizador. MeasurementUnits Out Lista de unidades de medida. O método seguinte permite obter uma lista de tipos de medida (Gás, Água, Temperatura …): ResultCode GetMeasurementTypes(string token, out List<Tuple<int, string>> measurementTypes); Descrição dos parâmetros Parâmetro Fluxo Token In MeasurementTypes Out Descrição Token usado para verificar as credenciais do utilizador. Lista de tuples onde cada um deles contém o id e uma string que representam o id e o nome do tipo, respectivamente O método seguinte permite que o utilizador possa obter as unidades de medida (Volt, Kilowatt/h, CO2, …): ResultCode GetMeasurementUnits(string token, out List<Tuple<int, string>> measurementUnits); Descrição dos parâmetros: Parâmetro Fluxo Token In MeasurementUnits Out Descrição Token usado para verificar as credenciais do utilizador. Lista de tuples onde cada um deles contém o id e uma string que representam o id e o nome do tipo, respectivamente 3.4 Tarifas O método seguinte permite obter o tarifário aplicado a uma determinada tag: ResultCode GetDeviceTariff(string token,int tagId, out tariff Tariff); Descrição dos parâmetros: Parâmetro Fluxo Token In TagId In Tariff Out Descrição Token usado para verificar as credenciais do utilizador. Id da tag. Tarifa aplicada a tag. O método seguinte permite actualizar um tarifário de uma tag. ResultCode UpdateDeviceTariff(string token,int tagId,int tarId out tariff Tariff); Descrição dos parâmetros: Parâmetro Fluxo Token In TagId In Web Service de Edíficios Descrição Token usado para verificar as credenciais do utilizador. Id da tag. 15 Especificação Web Service TarId Tariff In Out Id do tarifário. Tarifa aplicado a tag. O método seguinte retorna a lista de tarifários aplicados num determinado local ou para todos os locais: ResultCode GetTariffs(string token,string zipcode, out List<tariff> tariffs); Descrição dos parâmetros: Parâmetro Fluxo Token In Zipcode In Tariff Out Descrição Token usado para verificar as credenciais do utilizador. Id do código postal onde se pretende consultar os tarifários. Lista de tarifários. O método seguinte permite adicionar um novo tarifário a base de dados: ResultCode AddTariffs(string token, tariff tariff); Descrição dos parâmetros: Parâmetro Fluxo Token In Tariff In Descrição Token usado para verificar as credenciais do utilizador. Tarifário a ser adicionado. O método seguinte permite adicionar um novo versão do tarifário a base de dados: ResultCode AddTariffVersion(string token,int lastTariffId tariff tariff); Descrição dos parâmetros: Parâmetro Fluxo Token In LastTariffId In Tariff In Descrição Token usado para verificar as credenciais do utilizador. Id do tarifário para o qual se pretende criar nova versão do tarifário. Tarifário a ser adicionado. O método seguinte permite obter uma simulação de tarifário com todos os tarifários inseridos no sistema. ResultCode GetTariffSimulation(string token,int grupId, string? columnName, int? pagesize, int? page, out List<TariffSimulation> simulation); Descrição dos parâmetros: Parâmetro Fluxo Token In GroupId In Simulation Out Descrição Token usado para verificar as credenciais do utilizador. Id do grupo que se pretende obter a simulação. Lista de simulações com cada um dos tarifários. 3.5 Alerts O método seguinte retorna uma lista de alertas configurados no sistema: ResultCode GetAlerts(string token, string? columnName, int? pagesize, int? page, out List<alert> alerts); 16 Web Service de Edíficios Especificação Web Service Descrição dos parâmetros: Parâmetro Fluxo Token In Alerts Out Descrição Token usado para verificar as credenciais do utilizador. Lista de alertas configurados no sistema. O método seguinte permite adicionar novos alertas ao sistema. ResultCode AddAlert (string token, Alert alert); Descrição dos parâmetros: Parâmetro Fluxo Token In Alert Out Descrição Token usado para verificar as credenciais do utilizador. Novo alerta a ser adicionado. O método seguinte permite ao utilizador apagar alertas definidos no sistema ResultCode DeleteAlert (string token, int alertId) Descrição dos parâmetros: Parâmetro Fluxo Token In AlertId In Descrição Token usado para verificar as credenciais do utilizador. Id do alerta. O método seguinte permite listar todos os alertas lançados pelo sistema. ResultCode GetAlertTriggers (string token, string? columnName, int? pagesize, int? page, out List<Tuple<int, string>> alertTriggers); Descrição dos parâmetros: Parâmetro Fluxo Token In Triggers Out Descrição Token usado para verificar as credenciais do utilizador. Lista de alertas lançados no sistema. O método seguinte permite listar todos os alertas lançados pelo sistema, filtrados por grupo ou por tipo. ResultCode GetAlertTriggersByGroup (string token, int? groupId, int? groupId, int? type, out List<Tuple<int, string>> measurementUnits); Descrição dos parâmetros: Parâmetro Fluxo Token In GroupId In Triggers Out Descrição Token usado para verificar as credenciais do utilizador. Id do grupo na qual se pretende listar os alertas. Lista de alertas lançados no sistema. O método seguinte permite que sejam listadas alertas disparados por um certa condição: ResultCode SearchAlertTriggers(string token, string? columnName, int? pagesize, int? page, string searchText, string filter, out List<AlertTriggers> entidade); O método seguinte permite colocar um alerta como lido. ResultCode SetAlertHasRead (string token, int alertId); Web Service de Edíficios 17 Especificação Web Service Descrição de parâmetros: Parâmetro Fluxo Token In AlertId In Descrição Token usado para verificar as credenciais do utilizador. Id do alerta. 3.6 Messages O método seguinte permite que sejam inseridas novas mensagens no sistema: ResultCode AddMessage(string token, int groupId, string? columnName, int? pagesize, int? page, Message message); Descrição de parâmetros: Parâmetro Fluxo Token In GroupId In Message In Descrição Token usado para verificar as credenciais do utilizador. Id do grupo a que pertence a mensagem Mensagem a ser adicionada ao grupo. O método seguinte permite apagar uma mensagem do sistema, esta mensagem é introduzida para determinado grupo. ResultCode DeleteMessage (string token,int messageId); Descrição de parâmetros: Parâmetro Fluxo Token In MessageId Out Descrição O token de autenticação usado para verificar as credenciais do utilizador. Id da mensagem. O método seguinte permite listar todas a mensagens no sistema. ResultCode GetMessage (string token,out Descrição de parâmetros: Parâmetro Fluxo Token In Message Out Message message); Descrição O token de autenticação usado para verificar as credenciais do utilizador. Mensagens registadas no sistema. O método seguinte permite listar todas as mensagens para um determinado grupo. ResultCode GetMessageFromGroup string token, int groupId, out List<Message> message); Descrição de parâmetros: Parâmetro Fluxo Token In GroupId Message In Out Descrição O token de autenticação usado para verificar as credenciais do utilizador. Id d grupo. Lista de mensagens. O método seguinte permite que sejam listadas mensagens por um certa condição: 18 Web Service de Edíficios Especificação Web Service ResultCode SearchMessage(string token, string? columnName, int? pagesize, int? page, string searchText, string filter, out List<Message> entidade); 3.7 Baseline O método seguinte permite que sejam inseridas novas baselines no sistema. ResultCode AddBaseline(string token, int groupId,baseline baseline); Descrição de parâmetros: Parâmetro Fluxo Token In GroupId In Baseline In Descrição Token usado para verificar as credenciais do utilizador. Id do grupo a que pertence a baseline Baseline a ser adicionada ao grupo. O método seguinte permite actualizar uma baseline: ResultCode UpdateBaseline(string token, int lastId, baseline baseline); Descrição de parâmetros: Parâmetro Fluxo Token In LastId In Baseline In Descrição Token usado para verificar as credenciais do utilizador. Id da última baseline. Nova baseline. O método seguinte permite obter as baselines de um determinado grupo: ResultCode GetBaselines(string token,groupId, out List<Baseline> baselines); Descrição de parâmetros: Parâmetro Fluxo Token In GroupId In Baselines Out Descrição Token usado para verificar as credenciais do utilizador. Id do grupo. Lista de baselines do grupo. O método seguinte permite apagar uma baseline do sistema, apenas é possível apagar a ultima baseline introduzida para determinado grupo: ResultCode DeleteBaseline(string token,int baselineId); Descrição de parâmetros: Parâmetro Fluxo Token In BaselineId Out Descrição O token de autenticação usado para verificar as credenciais do utilizador. Id da baseline. 3.8 Relatórios O método seguinte permite ao utilizador obter um relatório para um determinado grupo: ResultCode GetReport(string token,int id,int type, out bytes[] report); Descrição de parâmetros: Web Service de Edíficios 19 Especificação Web Service Parâmetro Token Fluxo In Id Type Report In In Out Descrição O token de autenticação usado para verificar as credenciais do utilizador. Id do grupo para o qual se pretende obter o relatório. Tipo de relatório (1 – Completo, 2 - Resumido). Lista de bytes que representa o relatório. 3.9 Actuação O método seguinte permite que sejam listadas todas as actuações do sistema: ResultCode GetActions(string token, string? columnName, int? pagesize, int? page, List<Action> actions); Descrição de parâmetros: Parâmetro Fluxo Token In Action In Descrição Token usado para verificar as credenciais do utilizador. Lista de actuações no sistema. O método seguinte permite que sejam listadas as actuações de um grupo. ResultCode GetGroupActions(string token, int groupId, string? columnName, int? pagesize, int? page, List<Action> action); Descrição de parâmetros: Parâmetro Fluxo Token In GroupId In Action In Descrição Token usado para verificar as credenciais do utilizador. Id do grupo a que pertencem as actuações. Lista de actuações no sistema. O método seguinte permite que sejam inseridas novas actuações no sistema ResultCode AddAction(string token,Action action); Descrição de parâmetros: Parâmetro Fluxo Token In Action In Descrição Token usado para verificar as credenciais do utilizador. Actuação a ser adicionada. O método seguinte permite que sejam apagadas actuações do sistema: ResultCode DeleteAction(string token, int actionId); Descrição de parâmetros: Parâmetro Fluxo Token In ActionId In Descrição Token usado para verificar as credenciais do utilizador. Id da actuação a ser adicionada. O método seguinte permite que sejam listadas actuações por um certa condição: ResultCode SearchAction(string token, string? columnName, int? pagesize, int? page, string searchText, string filter, out List<Action> entidade); 20 Web Service de Edíficios Anexo V – Especificação da Base de Dados Modelo de dados Abril. 2011 Especificação da base de dados Índice 1 INTRODUÇÃO ........................................................................................................................................... 1 2 TABELAS DE ALERTAS ............................................................................................................................... 2 2.1 2.2 2.3 2.4 3 TABELAS DE ACTUAÇÃO ........................................................................................................................... 5 3.1 4 HIERARCHY................................................................................................................................................ 9 INDICADOR ................................................................................................................................................ 9 GROUP ..................................................................................................................................................... 9 GROUP_TYPE .......................................................................................................................................... 10 GROUP_COLUMNS ................................................................................................................................... 10 GROUP_COLUMNS_VALUES ....................................................................................................................... 10 GROUP_SCHEDULE ................................................................................................................................... 11 GROUP_DETAILS ...................................................................................................................................... 11 GROUP_TAG ........................................................................................................................................... 11 GROUP_USER .......................................................................................................................................... 12 TABELAS TARIFÁRIOS ............................................................................................................................. 14 6.1 6.2 6.3 6.4 6.5 6.6 6.7 7 BASELINE .................................................................................................................................................. 6 BASELINE_VALUES ...................................................................................................................................... 6 BASELINE_APPLIANCE ................................................................................................................................. 7 TABELAS GRUPOS..................................................................................................................................... 9 5.1 5.2 5.3 5.4 5.5 5.6 5.7 5.8 5.9 5.10 6 ACTION .................................................................................................................................................... 5 TABELAS BASELINE ................................................................................................................................... 6 4.1 4.2 4.3 5 ALERT....................................................................................................................................................... 2 ALERT_PARAMETER .................................................................................................................................... 2 ALERT_TRIGGER ......................................................................................................................................... 3 ALERT_TRIGGER_PARAMETER ...................................................................................................................... 3 TARIFF .................................................................................................................................................... 14 TARIFF_PARAMETER ................................................................................................................................. 14 MULTIPLICATION_FACTOR ......................................................................................................................... 15 SEASON .................................................................................................................................................. 15 SEASON_SERIES ....................................................................................................................................... 16 INTEVAL .................................................................................................................................................. 16 FIXED_COSTS........................................................................................................................................... 16 TABELAS KPI’S ........................................................................................................................................ 18 7.1 7.2 7.3 7.4 7.5 KPI ........................................................................................................................................................ 18 KPI_DATA ............................................................................................................................................. 18 KPI_MESSAGE ...................................................................................................................................... 19 KPI_CONF ............................................................................................................................................. 20 KPI_ERROR_LOG .................................................................................................................................. 20 Especificação da base de dados 1 Introdução Neste documento são especificadas alterações feitas a base de dados no decorrer do desenvolvimento do estágio bem como o modelo entidade relação, apenas da parte que faz parte do estágio. Especificação da base de dados 1 Especificação da base de dados 2 Tabelas de alertas Secção com a descrição das tabelas referentes a funcionalidade de alertas. 2.1 Alert Entidade que representa um alerta irá conter as configurações dos alertas que podem ser configurados no sistema. Tabela interna de sistema. Nome Tipo Def. Null Idx Descrição alr_id int alr_type int Tipo do alerta (unidades, patamares, objectivos). tag_id int Id da tag de associada ao alerta. unt_id int Id da unidade de associada ao alerta. alr_enabled bit Diz se o alerta está activo ou não. alr_schedule bit Dias em que o alerta ocorre. alr_last_exec datetime Data da última execução dll_id int Id da dll em que o alerta está implementado. alr_name string Nome do alerta. alr_data datetime Data de início do alerta. alr_stop_date datetime Chave primaria. Data de fim do alerta. Dependencies Dependent Tables unit, tag, dll Dependent Procedures 2.2 Alert_Parameter Entidade que representa um parâmetro do alerta que pode representar um valor que faz disparar certo alerta. Nome Tipo Def. Null Idx Descrição ap_id int ap_name int 2 Chave primaria. Nome do parâmetro. Especificação da base de dados Especificação da base de dados ap_value decimal Valor associado ao parâmetro. ap_value_string string String associada ao parâmetro. Dependencies Dependent Tables alert Dependent Procedures 2.3 Alert_Trigger Entidade que representa um parâmetro do alerta que foi disparado. Nome Tipo Def. Null Idx Descrição Chave primaria. at_id int at_date datetime Data em que o alerta foi disparado. at_checked bit Diz se o alerta já foi verificado. at_priority smallint Prioridade(Depende do plugin que implementa) alr_id int Chave estrangeira que referencia o alerta. at_mail string Emails para onde foi enviado o alerta. Dependencies Dependent Tables alert Dependent Procedures 2.4 Alert_Trigger_Parameter Entidade que representa um parâmetro do alerta que fez disparar um determinado alerta. Nome Tipo Def. Null Idx Descrição Chave primaria. atp_id int atp_name datetime Nome do parâmetro que fez disparar o alerta. atp_value bit Valor decimal que fez disparar o alerta. Especificação da base de dados 3 Especificação da base de dados atp_string_value smallint String que representa um parâmetro do alerta. at_id int Chave estrangeira que referencia o alerta_trigger. Dependencies Dependent Tables Alert_trigger Dependent Procedures alert alr_id alr_type unt_id g_id tag_id alr_enabled alr_schedule alr_last_exec alert_trigger at_id at_date at_checked dll_id alr_name alr_data alr_stop_date at_priority alr_id at_email alert_parameter ap_id ap_name alert_trigger_parameter ap_value atp_id alr_id atp_name ap_value_string atp_value atp_string_value at_id 4 Especificação da base de dados Especificação da base de dados 3 Tabelas de actuação Secção com a descrição das tabelas referentes a funcionalidade de actuação. 3.1 Action A tabela action irá conter as configurações das actuações agendadas no sistema. Tabela interna de sistema. Nome Tipo Def. Null Idx Descrição Chave primaria. act_id int uni_id int Id da unidade que vai ser usada para actuar. tag_id int Id da tag de actuação. act_weekday bit Bit que diz em que dias da semana a actuação deve ser feita. act_hour timestamp Hora em que a actuação vai ser efectuada. act_action bit Acção a realizar (On/off) act_next datetime Data da próxima actuação Dependencies Dependent Tables unit, tag Dependent Procedures action act_id uni_id tag_id act_weekday act_hour act_action act_next Figura 1 – Diagrama ER relativo a actuação Especificação da base de dados 5 Especificação da base de dados 4 Tabelas Baseline Secção com a descrição das tabelas referentes a funcionalidade de baseline. 4.1 Baseline A tabela Baseline irá conter as configurações das baselines armazenada na BD. Tabela interna de sistema. Nome Tipo Def. Null Idx Descrição Chave primaria. bl_id int g_id int Id do grupo a que pertence a baseline. bl_date datetime Data da baseline. bl_last_id int Id da última baseline. bl_next_id int Id da próxima baseline. open_time timestamp Hora de abertura da instalação. close_time timestamp Hora de fecho da instalação avac_power decimal(15, 5) Potência nominal do AVAC. timestamp Hora de início de funcionamento do AVAC. timestamp Hora em que o AVAC é desligado. bit Diz se a baseline já foi ou não calculada. avac_start_time avac_stop_time bl_calculated Dependencies group Dependent Tables Dependent Procedures 4.2 Baseline_Values A tabela baseline_values irá conter os valores para cada uma das baselines do sistema. Tabela interna de sistema. Nome 6 Tipo Def. Null Idx Descrição Especificação da base de dados Especificação da base de dados Chave primaria. bv_id int bv_date datetime Data a que o valor diz respeito. bv_ae_rush decimal(15, 5) Valor de consumo em horas de ponta. bv_ae_full decimal(15, 5) Valor de consumo em horas de cheira. bv_ae_empty decimal(15, 5) Valor de consumo em horas de vazio normal. bv_ae_superempty decimal(15, 5) Valor de consumo em horas de super vazio. bl_id Id da baseline. int Dependencies baseline Dependent Tables Dependent Procedures 4.3 Baseline_Appliance A tabela Baseline_Appliance irá conter os electrodomésticos configurados para cada baseline. Nome Tipo Def. Null Idx Descrição Chave primaria. ap_id int ap_name nvarchar(100) Nome do electrodoméstico. ap_power decimal(15, 5) Potência nominal. ap_start timespan Hora de início de funcionamento. ap_end timespan Hora de fim de funcionamento dtt_index int Index no interface. bl_id int Id da baseline a que esta associada ao electrodomésticos. Dependencies baseline Dependent Tables Especificação da base de dados 7 Especificação da base de dados Dependent Procedures baseline bl_id g_id baseline_value bl_date bv_id bl_last_id bv_date bl_next_id bv_ae_rush bl_last_date bv_ae_full open_time bv_ae_empty close_time bv_ae_superempty avac_power bl_id avac_start_time avac_stop_time bl_calculated baseline_appliance ap_id ap_name ap_power ap_start ap_end bl_id dttt_index Figura 2 - Diagrama ER relativo a baseline 8 Especificação da base de dados Especificação da base de dados 5 Tabelas Grupos Secção com as tabelas que constituem a funcionalidade de grupos. 5.1 Hierarchy Tabela que armazena a relação hierarquizada dos grupos. Nome Tipo h_parent int h_group h_level int tinyint h_references tinyint g_private bit Dependencies Dependent Tables Dependent Procedures Def. Null Idx Descrição Chave estrangeira que referencia (pai) group Chave estrangeira que referencia (filho) group Distância entre pai e filho Número de referência devido a herança múltipla Flag que indica se o grupo filho é privado ou não. group 5.2 Indicador Entidade relacionar que armazena indicadores. Nome Tipo Def. Null ind_id int ind_operation nchar(3) ind_field ind_name nvarchar(50) nvarchar(50) ind_constant decimal(15,5) ind_isgroup bit Dependencies Dependent Tables Dependent Procedures Idx Descrição Chave primaria String que representa a operação (sum, sub, avg …) String que representa o nome do group_details ou dos local_details (dependendo da flag isgroup) Nome do indicador. Valor constante que pode ser usado no indicador Flag que indica que o indicador vai usar para cálculo o group_details ou local_details group_indicator 5.3 Group Entidade que armazena todas as instâncias de um grupo. Especificação da base de dados 9 Especificação da base de dados Nome Tipo g_id g_name g_description int nvarchar(20) nvarchar(100) g_deleted bit g_private bit Dependencies Dependent Tables Dependent Procedures Def. Null Idx Descrição Chave primaria Nome do grupo Descrição do grupo Flag que indica se o grupo esta a pagado. Flag que indica que o grupo é privado (Pertence a um único utilizador). local group_tag, group_user, hierarchy, user 5.4 Group_Type Entidade que armazena todas as instâncias de um tipo de grupo. Nome Tipo Def. Null Idx Descrição gt_id gt_name int nvarchar(20) Dependencies Dependent Tables Dependent Procedures Chave primária. Nome do tipo de grupo. group 5.5 Group_Columns Entidade que armazena todas as instâncias dos parâmetros de um tipo de grupo. Nome Tipo Def. Null Idx Descrição gc_id gc_name int nvarchar(20) gt_id dttt_index int int Dependencies Dependent Tables Dependent Procedures Chave primária. Nome do parâmetro. Chave estrangeira que referencia o tipo de grupo. Index do parâmetro no tipo de grupo. group_type 5.6 Group_Columns_Values Entidade que armazena todas as instâncias dos valores associados aos tipos de grupo. Nome Tipo Def. Null Idx Descrição gtc_id 10 int Chave primária. Especificação da base de dados Especificação da base de dados gtc_value nvarchar(20) gt_id int g_id int Dependencies Dependent Tables Dependent Procedures Valor do parâmetro. Chave estrangeira que referencia o tipo de grupo. Chave estrangeira que referencia o grupo. Group, group_type 5.7 Group_Schedule Entidade que armazena todas as instâncias de um hórario de um grupo. Nome Tipo Def. Null Idx Descrição sh_id start_hour weekday end_hour int time int time Dependencies Dependent Tables Dependent Procedures Chave primária. Hora de início do turno. Dia da semana Hora de fim do turno group 5.8 Group_Details Entidade que armazena detalhes do grupo que são usados no cálculo de indicadores. Nome Tipo Def. Null Idx Descrição g_id gd_name gd_value int nvarchar(20) Decimal(15,3) Dependencies Dependent Tables Dependent Procedures Chave estrangeira que referencia um grupo. Nome do detalhe. Valor do detalhe group 5.9 Group_Tag Entidade relacional que armazena todas as tags que pertencem a um certo grupo. Nome Tipo Def. Null Idx Descrição g_id int tag_id int Especificação da base de dados Chave estrangeira que referencia o grupo. Chave estrangeira que referencia o tag 11 Especificação da base de dados Dependencies Dependent Tables Dependent Procedures tag, group 5.10 Group_Indicator Entidade relacional que armazena todas os indicadores que pertencem a um certo grupo. Nome Tipo Def. Null Idx Descrição g_id int tag_id int Ind_id int Dependencies Dependent Tables Dependent Procedures Chave estrangeira que referencia o grupo. Chave estrangeira que referencia o tag Chave estrangeira que referencia o indicador tag, group, indicator 5.11 Group_User Entidade relacional que armazena todos os utilizadores que tem acesso a um certo grupo. Nome Tipo Def. Null Idx Descrição g_id int usr_id int Dependencies Dependent Tables Dependent Procedures 12 Chave estrangeira que referencia o grupo. Chave estrangeira que referencia o utilizador tag, user Especificação da base de dados Especificação da base de dados group_columns_values group_columns gtc_id gc_id gtc_value gc_name gt_id g_id g_id g_id gt_id gt_name gt_id gd_name gc_id dttt_index group_type group_types_values group_details gd_value group_schedule_type sh_id sh_name g_id hierarchy group group_schedule h_parent g_id h_group g_name sh_id h_level g_description s_id h_references g_deleted weekday g_private g_private start_hour gt_id end_hour group_tag g_id tag_id indicator ind_id group_indicator ind_operation ind_id ind_field g_id ind_name tag_id ind_constant gi_id group_user g_id usr_id ind_isgroup Figura 3 - Diagrama ER relativo aos grupos Especificação da base de dados 13 Especificação da base de dados 6 Tabelas Tarifários Secção corresponde as tabelas dos tarifários. 6.1 Tariff Esta entidade armazena dados relativos aos tarifários. Nome Tipo Def. Null tar_id tar_name int nvarchar(100) sup_id int tar_deleted bit tar_version smallint tar_start smalldatetime tar_end smalldatetime sse_id int Idx tar_tariff_identification int usr_id tar_ispublic int Bit Dependencies Dependent Tables Dependent Procedures Descrição Chave primária. Nome do tarifário Chave estrangeira a referencia o fornecedor. Flag que indica se o tarifário esta apagado ou não. Número que indica a versão do tarifário. Data em que o tarifário começa a estar activo Data que indica quando a tarifária deixa de estar activo. Chave estrangeira que referencia a tabela season_series Número que identifica as diferentes versões do mesmo tarifário Chave estrangeira que identifica o utilizador que criou o tarifário. Flag que indica se a tarifa é publica. supplier interval, fixed_cost 6.2 Tariff_Parameter A tabela tariff_parameter irá conter os parâmetros associados a um determinado tarifário. Tabela interna de sistema. Nome Tipo int tp_type smallint 14 nvarchar(100 ) Null Idx tp_id tp_name Def. Descrição Chave primária. Tipo de parâmetro (energia activa, potência, energia reactiva). Nome do parâmetro. Especificação da base de dados Especificação da base de dados tp_price tp_period smallmoney Custo associado ao parâmetro. smallint De quanto em quanto tempo é calculado o parâmetro (horário, mensal, diário) Dependencies tariff Dependent Tables Dependent Procedures 6.3 Multiplication_Factor A tabela multiplication_factor irá conter os factores de multiplicação associados a um determinado parâmetro de um tarifário. Tabela interna de sistema. Nome Tipo Def. Null Idx Descrição mf_id int mf_name nvarchar(100) Nome do factor de multiplicação mf_factor Decimal(15,5) Factor de multiplicação mf_min Decimal(15,5) Valor mínimo para activar o factor. mf_max Decimal(15,5) Valor máximo para activar o factor. tp_id int Dependencies Chave primária. Ida do parâmetro do tarifário a que o factor de multiplicação pertence. tariff_parameter Dependent Tables Dependent Procedures 6.4 Season Entidade que armazena o inicio e o fim que cada temporada. Nome Tipo Def. Null Idx Descrição s_begindate s_enddate s_id smalldatetime smalldatetime int Especificação da base de dados Data de início da temporada Data de fim da temporada Chave primária 15 Especificação da base de dados s_deleted bit sse_id int s_season tinyint Dependencies Dependent Tables Dependent Procedures Flag se a temporada foi apagada Chave estrangeira para a season_series Indice da temporada. (e.x. 1, 2, …) Onde 1=1st trimestre 2= 2nd trimestre 3=3rd trimestre season_series 6.5 Season_Series Entidade que armazena os tipos de temporadas que podem ser usadas nos tarifários. Nome Tipo Def. Null Idx Descrição sse_id int sse_type nvarchar(50) sse_number_seasons tinyint Dependencies Dependent Tables Dependent Procedures Primary Key Descrição do tipo de temporada. Número de temporadas nesta serie. tariff 6.6 Inteval Entidade que armazena os intervalos de facturação de um tarifário. Nome Tipo Def. Null Idx Descrição int_id int_start int_end s_season int_weekday int_price int time(0) time(0) int tinyint smallmoney tar_id h_type int tinyint Dependencies Dependent Tables Chave primária Hora de início do intervalo. Hora de fim de fim do intervalo Índex da temporada nas séries Dias da semana (bit mask) Preço por unidade Chave estrangeira que referencia a tarifa. Tipo de hora. tariff Dependent Procedures 6.7 Fixed_Costs Entidade que armazena os custos fixos associados a um tarifário. 16 Especificação da base de dados Especificação da base de dados Nome Tipo fxc_id fxc_description fxc_price int nvarchar(50) smallmoney tar_id int Dependencies Dependent Tables Dependent Procedures Def. Null Idx Descrição Chave primária Descrição do custo fixo Valor do custo Chave estrangeira que referencia a tarifa tariff season s_season season_series sse_id s_begindate sse_type s_enddate sse_number_seasons s_id sse_id tariff tar_id tar_name sup_id interval tar_intervals int_id tar_deleted int_start tar_version int_end tar_start s_season tar_end tar_issingle_step fixed_cost int_weekday tar_id sse_id fxc_id tar_isstepbased fxc_description tar_tariff_identification fxc_price usr_id tar_id tar_ispublic int_type contracted_power tariff_parameter tp_id tp_type tar_id tp_price tp_period tp_name p_id multiplication_factor mf_id mf_name mf_min mf_max mf_factor tp_id tariff_parameter_season tp_id s_season tps_id Figura 4 - Diagrama ER relativo aos tarifários Especificação da base de dados 17 Especificação da base de dados 7 Tabelas KPI’s Nesta secção encontram-se todas as tabelas relacionadas com os KPI’s. 7.1 KPI A tabela KPI irá conter informação sobre os KPIs existentes e para os quais serão feitos carregamentos de dados. Nome Tipo Def. Null Idx Descrição kpi_id int Chave primária. kpi_name nvarchar(100) Nome do KPI. kpi_description nvarchar(4000) Descrição do KPI. kpi_type nchar(10) Tipo de KPI, valores possíveis: Hourly, Daily, Weekly, Monthly, Yearly mu_id tinyint Unidade de medida para os valores do KPI. kpi_last_load datetime A última data usada para ler valores para um KPI específico. Quando for null vai ser usado 2005-01-01 como defeito. kpi_active bit Flag que indica se o KPI está activo. Activo – 1 Inactivo -0 Dependencies Dependent Tables KPI_DATA, KPI_ERROR_LOG Dependent Procedures 7.2 KPI_DATA A tabela KPI_DATA irá conter todos os dados associados aos KPIs. O carregamento de dados para esta tabela será feito através de Stored Procedures, que serão escalonados através de SQL Server Job. Nome kpi_id 18 Tipo int Def. Null Idx Descrição Chave estrangeira que referência o KPI. Especificação da base de dados Especificação da base de dados kpid_value decimal(15, 5) kpid_current_value decimal(15, 5) Valor do KPI. Valor current lido para calcular o KPI (kpid_value). O valor de referência lido para calcular o KP (kpid_value). Este é usado quando é definido um objectivo. kpid_reference_value decimal(15, 5) kpid_date datetime Data a qual o KPI está associado. tag_id int ID da tag a qual o KPI esta associado. unt_id int ID da unidade a qual o KPI esta associado. kpid_branch_code nvarchar(50) Código do grupo ao qual a mensagem esta associada. kpid_branch_name nvarchar(50) Nome do grupo ao qual a mensagem esta associada. Dependencies KPI Dependent Tables Dependent Procedures 7.3 KPI_MESSAGE A tabela KPI_MESSAGE irá conter as mensagens registadas pelo gestor de energia para notificação das agências relativamente a problemas encontrados. Nome Tipo Def. Null Idx Descrição kpim_id int kpim_date datetime Data de criação da mensagem. kpim_severity nchar(10) kpim_title nvarchar(100) Gravidade da mensagem: Grande, Média and pequena. Título da menssagem. kpim_body nvarchar(4000) Corpo da mensagem. kpim_branch_code nvarchar(50) Código do grupo ao qual a mensagem esta associada. Especificação da base de dados Primary Key. 19 Especificação da base de dados kpim_branch_name Nome do grupo ao qual a mensagem esta associada. nvarchar(50) Dependencies Dependent Tables Dependent Procedures 7.4 KPI_CONF A tabela KPI_CONF irá conter configurações que serão usadas pelos procedimentos durante a execução. Tabela interna de sistema. Nome Tipo Def. Null Idx Descrição Primary Key. Código da configuração. kpic_code nvarchar(100) kpic_value nvarchar(100) Valor da configuração. kpic_description nvarchar(4000) Descrição da configuração do KPI. Dependencies Dependent Tables Dependent Procedures 7.5 KPI_ERROR_LOG A tabela KPI_ERROR_LOG irá registar os problemas encontrados durante a execução dos Stored Procedures de forma a facilitar a identificação e correcção de problemas. Tabela interna de sistema. Nome Tipo Def. Null Idx Descrição Chave estraneira que referencia o KPI. kpi_id int kel_error_number int Número do erro. kel_error_severity int Gravidade do erro. kel_error_state int Estado do erro. kel_error_line int Linha do erro. 20 Especificação da base de dados Especificação da base de dados kel_error_procedure nvarchar(200) Procedimento do erro. kel_error_message nvarchar(4000) Mensagem do erro. kel_date datetime Dependencies Data de ocorrencia do erro. KPI Dependent Tables Dependent Procedures Figura 5 - Diagrama ER relativo aos KPI Especificação da base de dados 21 iEnergy – Eficiência Energética em Edifícios Anexo VI – Fase de Integração Anexo VI – Requisitos Fase de Integração iEnergy – Eficiência Energética em Edifícios Anexo VI – Fase de Integração Este anexo apresenta os requisitos detalhados para a fase de integração relativos ao projecto de eficiência energética em embarcações. Associar Mestres a Viagem (RFMV) No módulo “Gestão -> Mestres e Viagens" deve ser possível associar mestres a viagens, bem como consultar os já existentes no sistema. Requisito Descrição Introdução deve ser feita através da importação de um ficheiro Excel. RFA01 RFA02 Deve ser possível seleccionar o ficheiro a importar. RFA03 O ficheiro deve conter a seguinte informação: o Nome do mestre o Embarcação (nome da embarcação) o Data inicial o Data final RFA04 Após seleccionar o ficheiro para importar, caso existam erros, deve aparecer um menu intermédio apresentando os mesmos. RFA05 Caso existam erros, deve inserir os registos possíveis, indicando os registos que apresentam erros. A tabela de erros deve ter as seguintes colunas: o Nome do mestre o Embarcação (nome da embarcação) o Data inicial o Data final o Descrição do erro RFA06 RFA07 Se a associação a introduzir já existir no sistema, deve sobrepor à existente, actualizando o portal. RFA08 Após importação do ficheiro deverá aparecer uma mensagem a apresentar o resultado da operação (sucesso ou insucesso). Notas Caso ocorram erros na validação do ficheiro, antes de importar, é apresentado um menu intermédio ao utilizador indicando os conflitos no ficheiro. Um erro pode ter origem em falta de dados ou dados inválidos. Um exemplo pode ser “Embarcação não existente”. A edição de uma associação é realizada através de nova introdução do ficheiro. Integração com bilhética para criação de viagens (RFBL) O sistema deve permitir criar viagens com base em ficheiros de bilhética. Requisito Descrição Serviço deve processar ficheiros de bilhética. RFBL01 RFBL02 RFBL03 Para cada viagem existente no ficheiro, o serviço deve verificar se essa viagem já existe no sistema. Caso uma viagem não exista no sistema, esta deve ser inserida. Os dados Especificação de requisitos 1 Anexo VI – Fase de Integração iEnergy – Eficiência Energética em Edifícios necessários para inserir uma viagem são: o Data o Hora o Terminal partida o Carreira o Embarcação o Passageiros o Tipo Viagem (Carreira) o Estado da viagem (Válida) Notas O formato dos dados dos ficheiros de bilhética contém a seguinte informação: <dia value="2010-10-21"> <cais value="1501"> <hora value="10:20"> <horaPrevista>10:20</horaPrevista> <navio>51</navio> <carreira>7</carreira> <passageiros>44</passageiros> </hora> </cais> </dia> Sempre que existam viagens de bilhética por criar, deve-se verificar na tabela de Abastecimentos se existem registos por processar para as datas das viagens a inserir. Caso existam deve-se cruzar a informação e efectuar o cálculo dos consumos. Após este processo deve-se marcar o abastecimento como “processado”. Gestão de Alarmística - Web (RFAL) A aplicação deve permitir ao utilizador visualizar os alarmes existentes no sistema. Requisito Descrição Na página inicial, deve ser apresentada uma mensagem indicando o número de RFAL01 alarmes “Por processar”. RFAL02 Deverá existir um link na mensagem por forma a redireccionar para o módulo “Operações -> Gestão de Alarmes”. RFAL03 Na página inicial, deverá ser apresentada uma tabela com os alarmes “Por processar”. RFAL04 Na tabela com os alarmes não processados deve ser possível seleccionar alarmes, colocando-os no estado “Em processamento”. Para tal deve ser possível aceder à página de edição da viagem. RFAL05 RFAL06 RFAL07 2 As colunas da tabela de alarmes “Por processar” são: o Data/Hora o Embarcação o Mensagem o Estado No módulo “Operações -> Gestão de Alarmes” deve ser possível pesquisar alarmes. A pesquisa deve permitir filtragem por: o Data Especificação de requisitos iEnergy – Eficiência Energética em Edifícios o o RFAL08 Anexo VI – Fase de Integração Embarcação Estado Possibilidade de visualizar os alarmes resultantes da pesquisa através de uma tabela. RFAL09 As colunas a apresentar na tabela são: o Data/Hora o Embarcação o Mensagem o Estado RFAL10 A tabela de alarmes deve ter paginação. RFAL11 Deve ser possível editar o estado do alarme. RFAL12 Deve ser possível editar as notas relativas ao alarme. Notas Devem existir três estados distintos para os alarmes: o Por processar o Em processamento o Processado Para os alarmes do navio, só são exibidos como novos (Por processar), caso não exista nenhum alarme com o estado “Em Processamento” ou “Por processar” para o navio em causa. Podemos ter os seguintes tipos de alarme de navio: o Falha de comunicação o Falha de GPS (existe comunicação mas sem informação de localização) o Falha de caudalímetro (se houver velocidade e caudalimetro for zero) o Falha de nível de combustível o Aquecimento o Motores/Carreira menor que 30 Os alarmes da bilhética, são sempre exibidos. Podemos ter os seguintes tipos: o Ficheiros de bilhética não existentes (em caso de atraso ou falha do sistema de bilhética) No caso do aquecimento do navio, devem ser tidos em conta os seguintes parâmetros anormais: o Consumo/Viagem (aquecimento) inferior a 5 e superior a 60 o Tempo/Viagem (aquecimento) maiores que 50 minutos o Velocidade instantânea superior a 2 nós (ou outro valor a definir) Mecanismo de criação de alarmes (RFMA) Deverá existir um mecanismo responsável pela geração de alarmes do sistema. Desse mecanismo fazem parte os serviços de recolha de dados e de bilhética. Requisito Descrição O serviço de recolha de dados tem de distinguir entre os diferentes tipos de RFMA01 alarme RFMA02 O serviço de recolha tem de identificar se o alarme já ocorreu e/ou o seu estado. RFMA03 O serviço de bilhética tem de gerar alarmes. Notas Especificação de requisitos 3 Anexo VI – Fase de Integração iEnergy – Eficiência Energética em Edifícios Os alarmes do navio, só são gerados, caso não exista nenhum alarme com o estado “Em Processamento” ou “Por processar” para o navio em causa. Os alarmes da viagem, só são gerados, caso não exista nenhum alarme com o estado “Em Processamento” ou “Por processar”, para a viagem em causa. Os alarmes da bilhética, são sempre gerados. Mecanismo de validação de viagens – novas regras Abaixo estão descritas as novas regras para validação de viagens. Notas No módulo de validação de viagens devem ser incluídos os seguintes parâmetros como sendo necessária validação: o Consumo/Viagem inferior a 20 e superior a 220 o Distância/Carreira superior a 12000 metros o Tempo/Viagem menor que 6 e maiores que 35 minutos o Velocidade instantânea superior ou igual a 25 nós Neste módulo, deve ser incluído a informação pela qual a viagem foi considerada invalida e um campo de observações para que o operador possa colocar qualquer comentário que ache necessário. Relatório embarcação dados gerais (REDG) O sistema deverá permitir a criação de relatórios com os dados gerais das embarcações para um determinado mês/ano ou para todo o ano. Requisito REDG01 REDG02 REDG03 REDG04 REDG05 REDG06 4 Descrição Deverá existir no portal duas páginas dedicadas a criação de relatórios sobre os dados gerais das embarcações, uma para relatórios anuais, outra para relatórios mensais. Na página de relatórios mensais deverá ser possível seleccionar o ano e o mês para o qual se pretende criar um novo relatório. Na página de relatórios anuais deverá ser possível seleccionar o ano para o qual se pretende criar um novo relatório. O relatório para o mês ou ano escolhido e apresenta uma tabela com as seguintes colunas: Nome da embarcação; Consumo Horário (L/h) (caudalímetro); Consumo Horário (L/h) (Registos); Consumo/Carreira (L) (caudalímetro); Consumo/Carreira (L) (Registos; Consumo Total (L) (caudalímetro); Consumo Total (L) (Registos); Custo/Km (Euro/km); Distância/Carreira; Eficiência da Oferta (pKm/L); Eficiência da Procura (pKm/L); Motores/Carreira (%); Passageiros/Carreira (nº); Peso transportado (Kg); Tempo/Viagem (min); Velocidade (nós); Carreiras realizadas Deve ser possível pré-visualizar o relatório na página. Deve ser possível exportar o relatório criado para um dos seguintes formatos: DOC, XLS, PDF. Especificação de requisitos iEnergy – Eficiência Energética em Edifícios Anexo VI – Fase de Integração Notas Todos os cálculos são baseados na tabela Indicators, alguns dos valores são médias outros são somas. De seguida é apresentada a forma que cada um destes indicadores é calculado: Consumo Horário (L/h) (caudalímetro) – Consumo médio horário de uma embarcação numa viagem do tipo carreira; Consumo Horário (L/h) (Registos) – Consumo médio horário de uma embarcação numa viagem do tipo carreira através dos registos de consumos inseridos; Consumo/Carreira (L) (caudalímetro) – Consumo médio de uma embarcação por viagem do tipo carreira; Consumo/Carreira (L) (Registos) – Consumo médio de uma embarcação por viagem do tipo carreira através dos registos de consumos inseridos; Consumo Total (L) (caudalímetro) – Soma dos consumos de uma embarcação; Consumo Total (L) (Registos) – Soma dos consumos de uma embarcação dos registos de consumos inseridos; Custo/Km (Euro/km) – Custo médio da embarcação por Km percorrido; Distância/Carreira – Distância media percorrida por viagem do tipo carreira; Eficiência da Oferta (pKm/L) - Eficiência média da oferta por pKm/L; Eficiência da Procura (pKm/L) – Eficiência média da procura por pKm/L; Motores/Carreira (%) – Percentagem de utilização dos motores em viagens do tipo carreira (( Tempo viagem tipo carreira - tempo viagem manobras)/( Tempo outras viagens – Tempo carreira - Tempo manutenção)); Passageiros/Carreira (nº) - Número médio de passageiros por viagem do tipo carreira; Peso transportado (Kg) – Peso médio transportado por viagem do tipo carreira; Tempo/Viagem (min) - Duração média de cada viagem do tipo carreira; Velocidade (nós) - Velocidade média das viagens do tipo carreira; Carreiras realizadas – Soma das viagens do tipo carreira realizadas. Os dados que não e possível adquirir através do cauldalímetro são assinaladas com N/A (Não aplicável) os dados que não e possível calcular por não existirem dados são assinaladas com S/D (Sem dados). Relatório de uso de embarcação (RUE) O sistema deverá permitir a criação de relatórios com os dados de uso de uma embarcação para um determinado intervalo de datas. Requisito RUE01 RUE02 RUE03 RUE04 Descrição Deverá existir no portal uma página dedicada a criação de relatórios sobre o uso de uma embarcação. Na página do relatório mensal deverá ser possível seleccionar uma data inicial e final para criação do relatório. Na página do relatório mensal deverá ser possível seleccionar a embarcação para criar o relatório. Deverá existir uma tabela para cada um dos meses do ano com os dados gerais da embarcação. As linhas da tabela são: Nome da embarcação Consumo Horário (L/h) (caudalímetro); Consumo Horário (L/h) (Registos; Consumo/Carreira (L) (caudalímetro); Consumo/Carreira (L) (Registos); Consumo Total (L) (caudalímetro; Consumo Total (L) (Registos); Custo/Km (Euro/km); Distância/Carreira. Eficiência da Oferta (pKm/L); Eficiência da Procura (pKm/L); Motores/Carreira (%); Passageiros/Carreira (nº); Peso transportado (Kg); Tempo/Viagem (min); Velocidade (nós); Carreiras realizadas. Especificação de requisitos 5 Anexo VI – Fase de Integração RUE05 REDG06 REDG07 REDG08 REDG09 iEnergy – Eficiência Energética em Edifícios Deverá existir uma tabela para cada um dos meses do ano com os tempos totais em percentagem gastos em cada um dos tipos de viagens. As linhas da tabela são: Outras viagens; Aquecimento; Carreira; Manobras; Por Validar; Tempo ao cais; Tempo geral; Total registos. Deverá existir uma tabela para cada um dos meses do ano com os consumos totais gastos em cada um dos tipos de viagens. As linhas da tabela são: Outras viagens; Aquecimento; Cruzeiro; Manobras; Por Validar; Tempo ao cais; Tempo geral; Total registos. Deverá existir uma tabela com dados para cada um dos mestres por área geográfica em relação as carreiras realizadas, velocidade e peso. As colunas da tabela são: Mestre – Nome dos mestres; Consumo o Média; o Desvio padrão. Velocidade o Média; o Desvio padrão. Peso o Média; o Desvio padrão. Consumo total; Passageiros totais; Distância total percorrida; Nº Carreiras. Deve ser possível pré-visualizar o relatório na página. Deve ser possível exportar o relatório criado para um dos seguintes formatos: DOC, XLS, PDF. Notas Todos os cálculos são baseados na tabela Indicators, alguns dos valores são médias outros são somas. Este relatório está dividido por várias tabelas. De seguida é apresentada a forma que cada um destes indicadores dessas tabelas é calculado. Os indicadores da tabela para cada um dos meses do ano com os dados gerais da embarcação são calculados da seguinte forma: Consumo Horário (L/h) (caudalímetro) – Consumo médio horário de uma embarcação numa viagem do tipo carreira; Consumo Horário (L/h) (Registos) – Consumo médio horário de uma embarcação numa viagem do tipo carreira através dos registos de consumos inseridos; Consumo/Carreira (L) (caudalímetro) – Consumo médio de uma embarcação por viagem do tipo carreira; Consumo/Carreira (L) (Registos) – Consumo médio de uma embarcação por viagem do tipo carreira através 6 Especificação de requisitos iEnergy – Eficiência Energética em Edifícios Anexo VI – Fase de Integração dos registos de consumos inseridos; Consumo Total (L) (caudalímetro) – Soma dos consumos de uma embarcação; Consumo Total (L) (Registos) – Soma dos consumos de uma embarcação através dos dados inseridos; Custo/Km (Euro/km) – Custo médio da embarcação por Km percorrido; Distância/Carreira – Distância média percorrida por viagem do tipo carreira. Eficiência da Oferta (pKm/L) - Eficiência média da oferta por pKm/L; Eficiência da Procura (pKm/L) – Eficiência média da procura por pKm/L; Motores/Carreira (%) – Percentagem de utilização dos motores em viagens do tipo carreira; Passageiros/Carreira (nº) - Número médio de passageiros por viagem do tipo carreira; Peso transportado (Kg) – Peso médio transportado por viagem do tipo carreira; Tempo/Viagem (min) - Duração média de cada viagem do tipo carreira; Velocidade (nós) - Velocidade média das viagens do tipo carreira durante um intervalo de tempo; Carreiras realizadas – Número das viagens do tipo carreiras realizadas. Os indicadores para a tabela de tempos totais em percentagem gastos em cada um dos tipos de viagens, são calculados da seguinte forma: Outras viagens - Percentagem de tempo total gasto em viagens validas que não são cruzeiro, manobras, tempo em cais ou aquecimento; Aquecimento – Percentagem de tempo total gasto em viagens validas do tipo aquecimento; Carreira - Percentagem de tempo total gasto em viagens validas do tipo Carreira; Manobras - Percentagem de tempo total gasto em viagens validas do tipo manobras; Por Validar - Percentagem de tempo total gasto em todas as viagens que ainda não estão validadas; Tempo ao cais - Percentagem de tempo total gasto em cais que ainda não estão validadas, em cada um dos meses do ano; Tempo geral – Tempo total em horas gasto para cada uma das viagens acima descritas; Total registos – Tempo total de funcionamento calculado a partir dos dados introduzidos. Os indicadores da tabela de consumos totais gastos em cada um dos tipos de viagens, são calculados da seguinte forma: Outras viagens – Consumo em viagens validas que não sejam viagens de carreira, manobra, tempo em cais ou aquecimento; Aquecimento – Consumo em viagens validas do tipo aquecimento; Cruzeiro - Consumo em viagens validas do tipo carreira; Manobras - Consumo em viagens validas do tipo manobras; Por Validar - Consumo médio em viagens que não estão validadas; Tempo ao cais - Consumo médio em cais de viagens validadas; Tempo geral - Consumo total gasto para cada mês do ano; Os indicadores na tabela para cada um dos mestres por área geográfica em relação as carreiras realizadas, velocidade e peso, são calculados da seguinte forma: Consumo - Cálculo do consumo para cada um dos mestres o Média – Valor médio de consumo do mestre em viagens do tipo carreira para o intervalo de tempo especificado; o Desvio padrão – Desvio padrão amostral de consumo de viagens do tipo carreira. Velocidade - Cálculo da velocidade para um mestre o Média – Velocidade média do mestre em viagens do tipo carreira; o Desvio padrão – Desvio padrão amostral de velocidade de viagens do tipo carreira. Peso - Cálculo do peso carregado por cada mestre nas viagens realizadas o Média – Media de pesos de viagens do tipo carreira por cada mestre; o Desvio padrão – Desvio padrão amostral do peso de viagens do tipo carreira. Consumo total – Consumo total de combustível em viagens do tipo carreira por cada mestre; Passageiros totais – Número total de passageiros em viagens do tipo carreira para cada um dos mestres; Distância total percorrida – Distância total percorrida em viagens do tipo carreira por cada um dos mestres; Nº Carreiras – Total de viagens do tipo carreira realizadas por cada um dos mestres. Total registos – Consumo total calculado a partir dos dados introduzidos. Os tempos são calculados a partir da hora de partida e chegados registados na tabela journey. O intervalo de datas deve ser no máximo um ano. Os dados que não e possível adquirir através do cauldalímetro são assinaladas com N/A (Não aplicável) os dados que não e possível calcular por não existirem dados são assinaladas com S/D (Sem dados). A fórmula usada para calcular o desvio padrão é a seguinte: S k 1 k i 1 fi (( x i 1 i x) 2 f i ) Especificação de requisitos 7 Anexo VI – Fase de Integração iEnergy – Eficiência Energética em Edifícios Relatório de carreiras por área geográfica (RCAG) O sistema deverá permitir a criação de relatórios com dados relativos as carreiras realizadas para cada área geográfica para um determinado intervalo de datas. Requisito RCAG01 RCAG02 RCAG03 RCAG04 RCAG5 RCAG6 RCAG7 Descrição Deverá existir no portal uma página dedicada a criação de relatórios sobre o uso de uma embarcação. Na página do relatório deverá ser possível seleccionar uma data inicial e final para criação do relatório. Na página do relatório deverá ser possível seleccionar a área geográfica. Deverá existir uma tabela com alguns dados da embarcação. As colunas da tabela são: Número Carreiras; Consumo/Carreira o Desvio Padrão Consumo/Carreira (Registos); Passageiros/Carreira o Desvio Padrão Deverá existir uma tabela com alguns dados das ligações para a área geográfica. As colunas da tabela estão divididas fim-de-semana e feriados para cada uma dessas divisões são calculados os indicadores: Passageiros/carreira; Desvio padrão. Deve ser possível pré-visualizar o relatório na página. Deve ser possível exportar o relatório criado para um dos seguintes formatos: DOC, XLS, PDF. Notas Todos os cálculos são baseados na tabela Indicators, alguns dos valores são médias outros são somas. Este relatório está dividido em duas tabelas. Estas tabelas são apresentadas de seguida. Os indicadores na tabela com dados de embarcação, são calculados da seguinte forma: Número Carreiras – Número total de carreiras para a área geográfica em análise; Consumo/Carreira – Consumo médio por carreira (media de consumo por viagem do tipo carreira para a área geográfica). o Desvio Padrão – Desvio padrão amostral de consumo por carreira. Consumo/Carreira (Registos) – Consumo por carreira baseado nos registos inseridos através do ficheiro de consumos; Passageiros/Carreira – Média de passageiros por carreira (média de passageiros em viagens do tipo carreira) o Desvio Padrão – Desvio padrão amostral de passageiros por carreira. Os indicadores na tabela com as medias e desvio padrão de passageiros, são calculados da seguinte forma: Passageiros/carreira – Média de passageiros por carreira (média de passageiros em viagens do tipo carreira). Desvio padrão – Diferença entre o valor máximo e mínimo de passageiros por carreira. Os dados que não e possível adquirir através do cauldalímetro são assinaladas com N/A (Não aplicável) os dados que não e possível calcular por não existirem dados são assinaladas com S/D (Sem dados). A fórmula usada para calcular o desvio padrão é a seguinte: S k i 1 8 k 1 fi (( x i 1 i x) 2 f i ) Especificação de requisitos iEnergy – Eficiência Energética em Edifícios Anexo VII – Manual de Utilizador Anexo VII – Manual de Utilizador Manual de utilizador Jul. 2011 Manual de Utilizador Índice 1 INTRODUÇÃO ........................................................................................................................... 1 1.1 2 ÍCONES DA APLICAÇÃO ......................................................................................................... 2 VISUALIZAÇÃO ........................................................................................................................ 2 2.1 ÁRVORE DE AGÊNCIAS E EDIFÍCIOS ...................................................................................... 3 2.2 CAMPOS DE FILTRAGEM ....................................................................................................... 4 2.2.1 Calendário .................................................................................................................. 4 2.2.2 Intervalo de Datas ...................................................................................................... 5 2.2.3 Granularidade ............................................................................................................ 5 2.2.4 Tipos de Hora ............................................................................................................. 5 2.2.5 Horas .......................................................................................................................... 5 2.2.6 Intervalos .................................................................................................................... 5 2.2.7 Opções de Visualização .............................................................................................. 6 2.2.8 Operações................................................................................................................... 7 2.3 VISUALIZAÇÃO DO GRÁFICO (E TABELAS DE DADOS) ........................................................... 7 2.3.1 Gráfico ....................................................................................................................... 7 2.3.2 Tabela Geral............................................................................................................... 7 2.3.3 Tabela De Conclusões ................................................................................................ 8 2.3.4 Análise de Custos ....................................................................................................... 9 3 MENSAGENS .............................................................................................................................. 9 4 SIMULAÇÃO ............................................................................................................................ 11 4.1 5 RELATÓRIOS .......................................................................................................................... 13 5.1 5.2 5.3 5.4 5.5 5.6 5.7 5.8 5.9 6 RESULTADOS ...................................................................................................................... 12 SECÇÃO DE ENERGIA ACTIVA ............................................................................................. 14 SECÇÃO DE ENERGIA REACTIVA ......................................................................................... 15 SECÇÃO DE FACTOR DE POTÊNCIA...................................................................................... 16 SECÇÃO DE ANÁLISE DE POTÊNCIA .................................................................................... 17 SECÇÃO DE INDICADORES DE ESTADO ................................................................................ 18 SECÇÃO DE INDICADORES DE POUPANÇA ........................................................................... 18 POUPANÇA DE ENERGIA ACTIVA ........................................................................................ 18 POUPANÇA DE DINHEIRO .................................................................................................... 18 POUPANÇA DE EMISSÕES .................................................................................................... 19 OPERAÇÕES DE BACK OFFICE ......................................................................................... 19 6.1 ALERTAS ............................................................................................................................ 19 6.2 TIPOS DE GRUPOS ............................................................................................................... 20 6.2.1 Listar ........................................................................................................................ 20 6.2.2 Detalhes .................................................................................................................... 20 6.2.3 Editar ........................................................................................................................ 21 6.2.4 Adicionar Tipo de Grupo.......................................................................................... 22 6.3 GRUPOS .............................................................................................................................. 22 6.3.1 Listar ........................................................................................................................ 22 6.3.2 Detalhes .................................................................................................................... 23 6.3.3 Adicionar Grupo....................................................................................................... 24 6.3.4 Alertas ...................................................................................................................... 32 6.4 FACTURAÇÃO ......................................................................................................................34 6.4.1 Fornecedores .............................................................................................................34 6.4.2 Tarifas .......................................................................................................................36 6.5 ESTAÇÕES ............................................................................................................................45 7 PLUGINS ALERTAS ................................................................................................................47 7.1 7.2 7.3 LISTAGEM ............................................................................................................................47 EDITAR ................................................................................................................................48 ADIÇÃO ...............................................................................................................................49 Manual de Utilizador 1 Introdução O portal iEnergy4Buildings é um portal de eficiência energética que permite fazer análise de consumo, simulações de tarifários e produzir relatórios que permitam analisar os gastos e proveitos associados ao comportamento energético de edifícios. Existe ainda um back office que permite fazer administração de algumas entidades do sistema. O portal divide-se em quatro secções distintas que são as seguintes: Visualização – secção que permite fazer a análise e comparação de consumos com diferentes intervalos de tempo; Mensagens – secção que permite as mensagens que aparecem nos aplicativos disponíveis aos utilizadores do sistema; Simulação – secção que permite fazer simulações para identificar a melhor tarifa a ser aplicada a cada edifício; Relatórios – secção que permite gerar relatórios que possibilitam analisar o comportamento energético de um edifício. Tarifários – Permite fazer gestão dos tarifários existentes no sistema. Grupos – Permite fazer a gestão dos grupos existentes no sistema. Alertas – Permite gerir e ver os alertas disparados no sistema. Neste documento são descritas as secções indicadas em detalhe para que o utilizador consiga tirar um melhor proveito do sistema. Manual de Utilizador 1 Manual de Utilizador 1.1 Ícones da aplicação Ícone Funcionalidade Adicionar um registo. Indicação que uma acção está a ser executada. Representa um campo do tipo booleano marcado com o valor falso. Representa um campo do tipo booleano marcado com o valor verdadeiro. Acesso ao componente calendário. Botões para expandir e encolher. Apagar um registo. Editar um registo. Atribuir nova password. Indicação do estado OK de uma Unidade, Dispositivo ou Tag. Exportar dados para um ficheiro do tipo excel. Executar pesquisa. Exportar os dados para um ficheiro excel. Indica que está a ser feito um pedido ao servidor. 2 Visualização A secção de visualização é a secção que permite analisar os consumos de um ou mais edifícios/agências. Ao aceder a esta secção é apresentada uma janela semelhante à seguinte: 2 Manual de Utilizador Manual de Utilizador Imagem 1 - Janela de Visualização A secção de Visualização divide-se em 3 áreas: Árvore das Agências e Edifícios Campos de Filtragem do Gráfico Visualização do Gráfico (e Tabelas de dados) 2.1 Árvore de Agências e Edifícios A caixa de pesquisa: Imagem 2 - Caixa de Pesquisa permite filtrar, na árvore, a(s) agência(s) e edifício(s) pelo seu nome, reduzindo assim o tempo que o utilizador demora a localizar uma agência em específico. A Árvore apresenta vários níveis: Manual de Utilizador 3 Manual de Utilizador Imagem 3 – Árvore - Nível Topo : Estão localizadas as agências e edifícios; - Nível Intermédio - Nível Folha : Estão localizados os grupos das agências e edifícios; : Estão localizadas as variáveis de medida (que contêm os consumos de energia) Pode navegar-se na árvore expandido os nós de nível superior (topo) até ao nível mais inferior (folha). Para cada grupo é permitida a selecção de variáveis de medida para posteriormente serem apresentados os respectivos dados no gráfico gerado, conforme os parâmetros de filtragem seleccionados. Nota: Pode seleccionar de 1 a 10 variáveis de medida para serem representadas no gráfico tendo de ter no máximo 2 unidades diferentes entre as variáveis seleccionadas. As variáveis de medida podem ser de 3 tipos: Variáveis de medida primárias (Ex. Temperatura, Energia Activa, …); Variáveis de medida secundárias (Ex. Energia Activa Dispositivo 1 + Energia Activa Dispositivo 2); Indicadores (Ex. Energia Activa / Nº de Pessoas). Nota: As variáveis de medida primárias e secundárias e os indicadores têm de ser previamente configurados no sistema para poderem ser visualizados na árvore. Ao seleccionar determinadas variáveis de medida, o utilizador pode ter de escolher a Unidade a visualizar como se apresenta na seguinte janela: Imagem 4 - Selecção de Unidades Nesta janela o utilizador pode escolher que unidades irá aparecer representadas no gráfico. Pode escolher a unidade por defeito da variável de medida (1ª escolha) ou outra unidade de medida, que resulta da aplicação de um factor de conversão sobre a unidade da variável de medida. Nota: Os factores de conversão têm de ser previamente configurados no BackOffice. 2.2 Campos de Filtragem Nesta secção encontram-se todos os campos que permitem a filtragem dos resultados apresentados nos gráficos (e tabelas) gerados. 2.2.1 Calendário Ao escolher a opção os resultados do gráfico serão filtrados por intervalos de tempo contínuos e/ou descontínuos. Pode-se seleccionar 1 ou vários dias do calendário podendo estar localizados em meses e anos diferentes (Imagem 5): 4 Manual de Utilizador Manual de Utilizador Imagem 5 - Calendário Nota: Por definição, no calendário, está seleccionado o dia anterior ao dia actual. 2.2.2 Intervalo de Datas Ao escolher a opção os resultados do gráfico serão filtrados por um intervalo de tempo contínuo entre uma data inicial e uma data final (Imagem 6): Imagem 6 - Intervalo de Datas 2.2.3 Granularidade O campo Granularidade permite definir o detalhe do gráfico gerado. O utilizador pode escolher entre três opções (Imagem 7): Granularidade Horária: Gráfico gerado apresenta os resultados com detalhe horário (As unidades do eixo XX do gráfico são representadas em horas); Granularidade Diária: Gráfico gerado apresenta os resultados com detalhe diário. (As unidades do eixo XX do gráfico são representadas em dias); Granularidade Mensal: Gráfico gerado apresenta os resultados com detalhe mensal. (As unidades do eixo XX do gráfico são representadas em meses). Imagem 7 – Granularidade 2.2.4 Tipos de Hora Ao escolher a opção de Granularidade Horária o utilizador pode filtrar os resultados do gráfico nos diferentes tipos de hora existentes na aplicação (Imagem 8). Imagem 8 - Tipos de Hora Por exemplo, estando só seleccionado o tipo Horas de Ponta só serão apresentados dados no gráfico, de horas que estejam configuradas como horas de ponta no tarifário do dispositivo que esteja seleccionado na árvore. 2.2.5 Horas Os campos Hora Início e Hora Final permitem filtrar os dados do gráfico pelo intervalo definido entre as mesmas (Imagem 9). Imagem 9 – Horas 2.2.6 Intervalos O utilizador pode ainda definir vários intervalos de tempo contínuos a serem representados no gráfico e com várias opções na apresentação dos resultados sobre os dados desses mesmos intervalos (Imagem 10): Manual de Utilizador 5 Manual de Utilizador Imagem 10 - Intervalos de Tempo Podem acrescentar-se intervalos à listagem de intervalos de duas formas: - Usando a opção a Data de Início do intervalo será o dia mais antigo seleccionado no calendário e a Data de Fim será o dia mais recente seleccionado no calendário; - Usando a opção a Data de Início será igual ao valor de Data Início e a Data de Fim será igual ao valor de Data Fim. O utilizador pode escolher entre 4 opções (operações) de amostragem dos dados no gráfico nos intervalos de tempo definidos na listagem: A opção irá apresentar os dados no gráfico fazendo a média dos valores em cada intervalo de tempo definido; A opção irá apresentar os dados no gráfico fazendo a soma dos valores em cada intervalo de tempo definido; A opção irá apresentar os dados no gráfico fazendo a média sobre os valores de todos os intervalos de tempo definidos; A opção irá apresentar os dados no gráfico fazendo a soma sobre os valores de todos os intervalos de tempo definidos. 2.2.7 Opções de Visualização São ainda possibilitadas outras opções de configuração da visualização do gráfico a ser gerado. Imagem 11 - Opções de Visualização As opções (Imagem 11) são as seguintes: Gráfico de regressão linear - O gráfico gerado apresenta a relação entre 2 variáveis de medida, com unidades diferentes. Ao seleccionar esta opção a selecção Inverter fica disponível. Seleccionando a opção Inverter o gráfico gerado representa a relação invertida das mesmas variáveis; Linhas de Média, Máximo e Mínimo - O gráfico gerado apresenta as linhas de média, máximo e mínimo para os dados apresentados no gráfico; Trendline? - O gráfico gerado apresenta as linhas de tendência para os dados apresentados no gráfico; Custos de energia? - Caso a opção Granularidade Horária esteja seleccionada são identificados no gráfico os vários tipos de horas (com símbolos e cores diferentes para cada tipo de hora); 6 Manual de Utilizador Manual de Utilizador Tipo de Gráfico - Existem três possibilidades de escolha: o Linhas - Gráfico gerado com linhas; o Barras - Gráfico gerado com barras; o Stacked Bars - Gráfico gerado com barras cumulativas. 2.2.8 Operações Nesta área estão disponíveis 2 botões que permitem executar as seguintes acções: limpa os dados que foram seleccionados nos campos de filtragem e as selecções na árvore de agências e edifícios; gera o gráfico conforme os parâmetros de filtragem seleccionados e as selecções na árvore de agências e edifícios. 2.3 Visualização do Gráfico (e Tabelas de dados) A área de visualização do gráfico está dividida por várias secções (Gráfico, Tabela Geral, Tabela de Conclusões e Análise de Custos). O link Exportar Dados permite exportar os dados visualizados nesta área para um ficheiro no formato excel. 2.3.1 Gráfico A secção Gráfico apresenta o gráfico gerado: Imagem 12 - Gráfico Esta secção permite ver a seguinte informação: Período sazonal; Legenda com as várias variáveis de medida seleccionadas; Descrição do período temporal que foi configurado na secção de filtragem; Gráfico gerado (eixo YY – Unidade de medida, eixo XX – Granularidade Temporal). 2.3.2 Tabela Geral A secção Tabela Geral permite visualizar a informação detalhada dos dados obtidos e representados no gráfico: Manual de Utilizador 7 Manual de Utilizador Imagem 13 - Tabela Geral A tabela apresenta os dados detalhados por data (granularidade definida na filtragem), o edifício, o grupo, o parâmetro (variável de medida), o valor (para cada ponto de dados no gráfico) e a unidade de medida da variável. 2.3.3 Tabela De Conclusões A secção Tabela de Conclusões permite visualizar a informação estatística dos dados obtidos e representados no gráfico: Imagem 14 - Tabela de Conclusões As informações apresentadas são: Máximo – O valor de máximo e quando ocorreu; Mínimo – O valor de mínimo e quando ocorreu; Média – A medida usada mais frequentemente da tendência central de uma série de observações; Desvio padrão – Isto é simplesmente a raiz quadrada da variância. Isto traz de volta a medida de variabilidade às unidades dos dados; Frequência – Peso da amostra na população total; Moda – o valor que surge com mais frequência se os dados são discretos, ou o intervalo de classe com maior frequência se os dados são contínuos; Mediana - Ordenados os elementos da amostra, a mediana é o valor (pertencente ou não à amostra) que a divide ao meio, isto é, 50% dos elementos da amostra são menores ou iguais à mediana e os outros 50% são maiores ou iguais à mediana; Variância - Variância mede o ponto no qual os valores observados diferem uns dos outros, isto é, a variabilidade ou a dispersão. Quanto maior a variabilidade, maior a incerteza na média; Erro padrão – Esta medida é usada para estimar a precisão; Precisão - A precisão é a medida da extensão absoluta ou relativa dentro da qual se espera que o valor verdadeiro ocorra com algum intervalo de confiança específico; Total – O somatório dos dados da mesma variável em análise. 1. 8 Manual de Utilizador Manual de Utilizador Esta secção apresenta ainda a informação dos consumos divididos por tipos de hora: Imagem 15 - Consumos por tipo de hora A informação mostra o tipo de hora, a data, o edifício/agência, o grupo, o parâmetro (variável de medida) e o valor correspondente ao consumo nesse período temporal. 2.3.4 Análise de Custos A secção Análise de Custos permite visualizar os custos correspondentes aos consumos registados nas variáveis de medida seleccionadas e respectivo período temporal escolhido. O gráfico (Imagem 16) apresenta a informação dos custos associados aos consumos para o período temporal escolhido. O detalhe temporal é correspondente à granularidade seleccionada na área de campos de filtragem. Imagem 16 - Gráfico de Custos A tabela de custos (Imagem 17) apresenta a informação detalhada dos custos associados aos consumos para o período temporal escolhido. A informação mostra o dia, o edifício/agência, o grupo, o tipo de dia da semana, o custo e consumo para a posição temporal correspondente. Imagem 17 - Tabela de Custos 3 Mensagens A secção de mensagens permite criar mensagens que são guardadas no sistema e que podem ser consumidas por outros aplicativos para as apresentar ao utilizador final. Quando o utilizador acede a esta secção visualiza um ecrã semelhante ao da imagem seguinte: Manual de Utilizador 9 Manual de Utilizador Imagem 18 - Secção de Mensagens Ao aceder a esta secção o utilizador pode ver uma lista das mensagens existentes no sistema. Para facilitar a pesquisa o utilizador pode filtrar as mensagens por agência/edifício, para isso basta seleccionar a agência/edifício pretendida da lista do campo Agência e clicar no botão Pesquisar. Para cada mensagem da listagem o utilizador pode apagar clicando em ou pode editar clicando em . Quando o utilizador tenta apagar uma mensagem é apresentada uma janela, como a seguinte, para o utilizador confirmar que quer apagar: Imagem 19 - Confirmar que pretende apagar mensagem Quando o utilizador clica em Editar ou em Nova Mensagem, aparece uma janela semelhante à seguinte: 10 Manual de Utilizador Manual de Utilizador Imagem 20 - Janela de editar e criar mensagem Para criar uma mensagem é necessário o utilizador inserir a seguinte informação: Agência – O utilizador deve seleccionar uma agência/edifício entre as que já existem no sistema; Severidade – O nível de importância da mensagem. Existem no sistema três níveis: Alta, média e baixa; Título – O título que é atribuído à mensagem; Corpo – O conteúdo extenso da mensagem. Ao clicar em Guardar é guardada a mensagem no sistema, ou se não foi preenchido nenhum campo obrigatório é apresentada uma mensagem de aviso indicando qual o campo obrigatório em falta. 4 Simulação A secção de simulação permite simular os custos dos consumos de uma agência/edifício em determinado período de tempo para as várias tarifas configuradas no BackOffice. Ao aceder a esta secção é apresentada uma janela semelhante à seguinte: Manual de Utilizador 11 Manual de Utilizador Imagem 21 - Janela de simulações Para fazer uma simulação o utilizador tem que: 1. Seleccionar uma agência ou edifício (no máximo só pode seleccionar um item) apresentado na árvore de agências e edifícios - barra lateral esquerda; 2. Seleccionar o período temporal (Data Inicio e Data Fim) em que quer fazer a simulação; 3. Clicar no botão Submeter. Nota: Para a correcta apresentação de resultados os tarifários têm de estar devidamente configurados e atribuídos devidamente a cada agência no BackOffice. 4.1 Resultados Depois de clicar em Submeter o resultado apresentado da simulação terá um aspecto semelhante ao seguinte: 12 Manual de Utilizador Manual de Utilizador Imagem 22 - Resultado de Simulação As linhas da tabela de resultados da simulação apresentam os custos dos tarifários e respectivas versões, combinados com os custos fixos associados a cada um dos tarifários. A informação apresentada em cada linha distribui-se por: Custos pelos Tipos de Hora; Custo de Potência Contratada; Custo de Potência em Horas de Ponta; Custo de Energia Reactiva Indutiva; Custo de Energia Reactiva Capacitiva; Custo Fixo; Custo Total: Soma dos valores das colunas prévias; Poupança: Apresenta a diferença entre o custo do tarifário actual da agência e o custo simulado do tarifário da linha. Um valor a verde significa que houve poupança e a vermelho significa que houve mais gasto. Na legenda aparece referenciado o tarifário activo (*) e por (#) os tarifários que não podem ser usados por não terem potência contratada suficiente para as necessidades da agência/edifício. Devem ser visualizadas estes tarifários nas linhas da tabela de resultados. Nota: Os tarifários devem estar previamente parametrizados no BackOffice, nomeadamente devem estar parametrizados os tipos de hora, os custos de energia activa pelos tipos de hora, os custos de energia reactiva e indutiva pelos tipos de hora, os custos da potência pelos tipos de hora, e os vários custos fixos associados ao tarifário. Caso o utilizador pretenda exportar os resultados da simulação para um ficheiro excel basta clicar no link Exportar Dados. 5 Relatórios A secção de relatórios permite gerar relatórios por agência ou edifício para fazer uma análise mais detalhado dos padrões de consumo. Ao aceder à zona de relatórios é apresentada uma janela semelhante à seguinte: Manual de Utilizador 13 Manual de Utilizador Imagem 23 - Janela de relatórios Para gerar um relatório o utilizador tem de: 1. Seleccionar uma agência ou edifício (no máximo só pode seleccionar um item) apresentado na árvore de agências e edifícios - barra lateral esquerda; 2. Seleccionar a data inicial (Data Início) e seguidamente um tipo de período (diário, semanal, mensal ou anual). Consoante o tipo escolhido automaticamente é encontrado o dia final (Data Fim). É esse período temporal que vai ser usado na geração do relatório; 3. Seleccionar a tipo de relatório: Completo – Toda a informação é exibida: Secção de Energia Activa, Secção de Factor de Potência, Secção de Energia Reactiva, Secção de Análise de Potência, Secção de Indicadores de Estado, Secção de Indicadores de Poupança; Resumido – Secção de Energia Activa, Secção de Energia Reactiva, Secção de Indicadores de Estado, Secção de Indicadores de Poupança. 4. Clicar no botão Submeter. O relatório gerado no formato PDF pode ser impresso ou guardado em disco. 5.1 Secção de Energia Activa É apresentado o gráfico e tabela de dados da variável de medida de energia activa associada à agência/edifício que foi seleccionada para a geração do relatório, para o período temporal escolhido. 14 Manual de Utilizador Manual de Utilizador Imagem 24 - Energia Activa Os valores apresentados na tabela de dados incluem: Média; Desvio Padrão; Máximo; Mínimo. É apresentada uma tabela com os custos da energia activa por tipos de intervalo. Os dados correspondem a: Tipo do intervalo; Percentagem - de custo da energia, no tipo de intervalo, em relação ao total; Custo Especifico – valor do custo para o tipo de intervalo; Total Média Máximo Mínimo Nota: É necessária a prévia configuração da variável de medida de energia activa no BackOffice assim como da correcta configuração do tarifário (tipos de hora e respectivos custos) associado à agência seleccionada para a geração do relatório. 5.2 Secção de Energia Reactiva É apresentado o gráfico e tabela de dados das variáveis de medida de energia reactiva (capacitiva, indutiva e total) associadas à agência/edifício, que foi seleccionada para a geração do relatório, para o período temporal escolhido. Manual de Utilizador 15 Manual de Utilizador Imagem 25 - Energia Reactiva Os valores apresentados na tabela por cada variável de medida de energia reactiva são: Média; Desvio Padrão; Máximo; Mínimo; Total; Frequência. É também apresentada a tabela de custos (por tipos de hora) das variáveis de medida de energia reactiva. Os dados correspondem a: Tipo do intervalo; Percentagem - de custo da energia, no tipo de intervalo, em relação ao total; Custo Específico – valor do custo para o tipo de intervalo; Total; Média; Máximo; Mínimo. Nota: É necessária a prévia configuração das variáveis de medida de energia reactiva no BackOffice (criação de variáveis de medida secundárias com base em variáveis de medida primárias do tipo energia reactiva) assim como da correcta configuração do tarifário (tipos de hora e respectivos custos) associado à agência seleccionada para a geração do relatório. 5.3 Secção de Factor de Potência É apresentado o gráfico e tabela de dados da variável de medida de factor de potência associada à agência/edifício, que foi seleccionada para a geração do relatório, para o período temporal escolhido. 16 Manual de Utilizador Manual de Utilizador Imagem 26 - Factor de Potência Os valores apresentados na tabela de dados incluem: Média; Moda; Máximo; Mínimo. Nota: É necessária a prévia configuração da variável de medida do factor de potência no BackOffice. 5.4 Secção de Análise de Potência É apresentado o gráfico e tabela de dados das potências tomadas, pelos vários tipos de hora e da potência contratada para a agência/edifício, que foi seleccionada para a geração do relatório, para o período temporal escolhido. Imagem 27 - Análise de Potência Os valores apresentados na tabela de dados incluem: Potência Tomada (Tipo de Hora): o Média; o Desvio Padrão; o Máximo; o Mínimo; o Total; o Frequência. Potência Contratada: Manual de Utilizador 17 Manual de Utilizador o Média; o Desvio Padrão; o Máximo; o Mínimo; o Total; o Frequência. É ainda apresentada a tabela de custos da potência contratada com o custo específico por mês em análise. 5.5 Secção de Indicadores de Estado É apresentada uma tabela de dados com os indicadores de estado, e respectivos valores, associados à agência/edifício, que foi seleccionada para a geração do relatório, para o período temporal escolhido. Imagem 28 - Indicadores de Estado A tabela apresenta uma listagem com o nome do indicador e o respectivo valor, para o período temporal escolhido. Nota: Para a apresentação da Secção de Indicadores de Estado estes indicadores devem ser previamente configurados no BackOffice para cada agência/edifício seleccionada. 5.6 Secção de Indicadores de Poupança É apresentada uma tabela de dados com os indicadores de poupança, e respectivos valores, associados à agência/edifício, que foi seleccionada para a geração do relatório, para o período temporal escolhido. 5.7 Poupança de Energia Activa É apresentado na tabela as diferenças entre os valores medidos e os valores expectáveis (valores da Baseline) para cada mês e pelos vários tipos de hora existentes no sistema. Imagem 29 - Poupança de Energia Activa Nota: Para a apresentação dos Indicadores de Poupança de Energia Activa, no BackOffice, deve ser configurada previamente a Baseline associada a cada agência/edifício. Esta configuração envolve caracterizar os consumos por mês e por tipo de hora. 5.8 Poupança de Dinheiro Os valores das poupanças de dinheiro resultam da multiplicação dos valores da tabela de poupança de consumos de energia activa, pelo custo (por tipo de hora) parametrizado para o tarifário do mês em análise. 18 Manual de Utilizador Manual de Utilizador Imagem 30 - Poupança de Dinheiro Nota: Para a apresentação dos Indicadores de Poupança de Dinheiro, no BackOffice, deve ser configurada previamente a Baseline associada a cada agência/edifício além de ter-se de configurar correctamente os custos pelos tipos de hora do tarifário associado à agência para a qual se está a gerar o relatório. 5.9 Poupança de Emissões A tabela de dados de Poupança de Emissões resulta da multiplicação dos valores da tabela de poupança de consumos de energia activa, pelo factor de conversão configurado no BackOffice. Imagem 31 - Poupança de Emissões Nota: Para a apresentação dos Indicadores de Poupança de Emissões, no BackOffice, deve ser configurada previamente a Baseline associada a cada agência/edifício além de ter de se configurar correctamente o factor de conversão de energia por CO2, no BackOffice. 6 Operações de Back Office 6.1 Alertas No painel Alertas Disparados, o utilizador pode consultar os alertas disparados por unidade, tipo de alerta, nome, data e hora. Imagem 32 - Painel de Alertas Manual de Utilizador 19 Manual de Utilizador O painel oferece a possibilidade de filtrar os dados através de vários campos relativos ao Alerta: Tipo de Alerta, Novo, Alerta, Prioridade, Data, Unidade, Grupo e Tag. Imagem 33 - Alertas filtrados por Prioridade Miníma Neste painel, além do utilizador conseguir ver os detalhes dos alertas disparados, pode também verificar a data, se foi ou não enviado Email e se o alerta é novo ou recorrente. A coluna ‘Prioridade’ apresenta, de forma visual, o Tipo de Prioridade do alerta disparado. 6.2 Tipos de Grupos Os Tipos de Grupos permitem ao utilizador estabelecer parâmetros partilhados entre várias Unidades, Dispositivos e TAGs. 6.2.1 Listar A imagem seguinte apresenta o ecrã de listagem de Tipos de Grupos onde o utilizador pode Adicionar um Tipo de Grupo, pesquisar pelos tipos existentes, consultar e editar os detalhes de um tipo e até remove-lo. Imagem 34 - Listagem de Tipos de Grupos 6.2.2 Detalhes Ao clicar sobre o nome de um Tipo de Grupo da listagem, o utilizador é redireccionado para a página de detalhes do registo escolhido. 20 Manual de Utilizador Manual de Utilizador Imagem 35 - Ecrã de detalhes do Tipo de Grupo Na zona superior é possível encontrar ainda as seguintes acções: 6.2.2.1 Listar Esta acção remete o utilizador para a listagem de Tipos de Grupo. 6.2.2.2 Editar Esta acção dá acesso aos detalhes do Tipo de Grupo em modo de edição. 6.2.3 Editar A imagem que se segue apresenta o ecrã de edição de um Tipos de Grupo. Imagem 36 - Edição de um Tipo de Grupo O formulário de edição permite ao utilizador alterar os seguintes campos: Nome – O nome que identifica o Tipo de Grupo; Colunas – São os parâmetros que serão partilhados entre todos os Grupos deste tipo. Podem ser adicionados ou removidos na quantidade desejada. Se o utilizador desejar regressar à listagem de Tipos de Grupos basta escolher a acção Voltar. Se pelo contrário desejar efectivar as alterações efectuadas deve escolher a acção Guardar. Após enviar os dados à Base de Dados, a aplicação redirecciona o utilizador para a listagem inicial de Tipos de Grupos. Manual de Utilizador 21 Manual de Utilizador 6.2.4 Adicionar Tipo de Grupo A próxima imagem apresenta o ecrã de adição de Tipo de Grupo. Imagem 37 - Adicionar Tipo de Grupo O formulário de adição de Tipo de Grupo permite ao utilizador definir algumas propriedades como as descritas a seguir: Nome – O nome que identifica o Tipo de Grupo; Colunas – São os parâmetros que serão partilhados entre todos os Grupos deste tipo. Podem ser adicionados ou removidos na quantidade desejada. Se o utilizador desejar regressar à listagem de Tipo de Grupo basta escolher a acção Voltar. Se pelo contrário desejar adicionar o Tipo de Grupo deve escolher a acção Guardar. Após enviar os dados à Base de Dados, a aplicação redirecciona o utilizador para a listagem inicial de Tipos de Grupo. 6.3 Grupos A página de Grupos permite ao utilizador criar Grupos para adicionar Unidades, Dispositivos ou TAGs. Os Grupos podem servir para definir permissões sobre todos os membros do Grupo ou visualizar consumos e TAGs Virtuais associadas ao Grupo. 6.3.1 Listar Ao aceder a esta página o utilizador tem acesso à listagem de registos tal como na imagem seguinte. 22 Manual de Utilizador Manual de Utilizador Imagem 38 - Listagem de Grupos 6.3.2 Detalhes Para aceder aos detalhes de um Grupo basta clicar sobre o nome do mesmo na listagem de registos. De seguida o utilizador é redireccionado para um ecrã semelhante ao seguinte. Imagem 39 - Detalhes de um Grupo No canto superior direito dos detalhes do Grupo, o utilizador tem as seguintes acções disponíveis: 6.3.2.1 Listar Esta acção permite voltar à listagem de Grupos inicial. 6.3.2.2 Virtual Tags Esta acção disponibiliza a lista de Tags Virtuais associadas a este Grupo. 6.3.2.3 Indicadores Esta acção disponibiliza a lista de Indicadores associadas a este Grupo. Manual de Utilizador 23 Manual de Utilizador 6.3.2.4 Alertas Esta acção disponibiliza a lista de Alertas associados a este Grupo. 6.3.2.5 Alertas Disparados Esta acção disponibiliza a lista de Alertas Disparados associadas a este Grupo. 6.3.3 Adicionar Grupo Ao escolher a opção Adicionar Grupo, o ecrã de seguinte é apresentado. Imagem 40 - Criar um novo Grupo No ecrã acima apresentado, o utilizador pode definir o nome do Grupo, atribuir-lhe uma Descrição e associar-lhe um Tipo de Grupo. Pode ainda definir se será um Grupo principal ou subgrupo. Para adicionar definitivamente o Grupo basta escolher a acção Guardar. Após guardar os dados o utilizador é redireccionado para a página de detalhes do Grupo recém-criado. Neste novo ecrã o utilizador pode verificar todas as configurações inerentes ao Grupo que foram automaticamente associadas. Entre elas estão por exemplo os utilizadores do Grupo e o equipamento do Grupo. Sob o nome do novo Grupo existem inúmeras acções disponíveis. Se o utilizador clicar com o botão direito do rato sobre o nome do Grupo, vai encontrar um conjunto de acções como se apresenta de seguida. Imagem 41 - Acções sobre o Grupo 24 Manual de Utilizador Manual de Utilizador 6.3.3.1 Criar TAG Virtual Esta opção disponibiliza ao utilizador o ecrã de criação da TAG Virtual como se demonstra a seguir. Imagem 42 - Criar um TAG Virtual Neste painel o utilizador pode definir a seguinte informação: Nome da tag – Nome que quer atribuir à virtual tag; Tipo de tag – Tipo de tag que estará associado à virtual tag; Tipo de Medida - Tipo de unidade de medida que deve estar associado à tag; Campo – Neste campo pode ser definido se a virtual tag recebe valores de consumo (Consumo) ou valores instantâneos (Valor Absoluto); Fórmula – Local onde se constrói a fórmula que define os valores da virtual tag e que contém as opções: o Limpar Tudo – limpa todos os dados da fórmula; o Limpa últimos – limpa o último dado da fórmula; o Operações: (+ soma), (- subtracção), (* multiplicação), (/ divisão) que podem ser feitas sobre as tags e são acrescentadas ao campo Fórmula; Pesquisa de tags – Permite pesquisar as tags que podem ser adicionadas ao campo Fórmula. Estas tags são todas as tags que estejam no grupo ou nos seus sub-grupos; Acrescento de tags acessíveis do tipo – O utilizador selecciona na caixa de selecção a sua escolha e ao carregar no botão da operação que pretende automaticamente á adicionada à fórmula todas as tags acessíveis do tipo escolhido (isto é, tags do grupo e sub-grupos) com a respectiva operação. Acrescento de Todos os grupos de tags do tipo – O utilizador selecciona na caixa de selecção a sua escolha e ao carregar no botão da operação que pretende automaticamente á adicionada à fórmula todas as tags do grupo e do tipo escolhido (isto é, tags do grupo) com a respectiva operação. Ao clicar no botão Guardar é criada uma nova virtual tag, no botão Re-iniciar o formulário e limpo. 6.3.3.2 Criar Indicador Esta opção disponibiliza ao utilizador o ecrã de criação da Indicador como se demonstra a seguir. Manual de Utilizador 25 Manual de Utilizador Imagem 43 - Criar Indicador Neste painel o utilizador pode definir a seguinte informação: Nome – Nome que quer dar ao Indicador; Pesquisa de tags – Permite pesquisar as tags que podem ser associadas ao Indicador. Estas tags são todas as tags que estejam no grupo ou nos seus sub-grupos; Fórmula – Local onde se constrói a fórmula que define os valores da virtual tag e que contém as opções: o Limpar Tudo – limpa todos os dados da fórmula; o Limpa últimos – limpa o último dado da fórmula; o Operações: (+ soma), (- subtracção), (* multiplicação), (/ divisão) que podem ser feitas sobre as tags e são acrescentadas ao campo Fórmula; Calcular indicador – Valor sobre o qual será calculado o indicador que pode ser uma constante (valor numérico) ou um detalhe de grupo (ver cap. 6.3.3.11). Ao clicar no botão Guardar é criado um novo indicador, no botão Re-iniciar o formulário e limpo. 6.3.3.3 Criar Sub-Grupo Esta acção permite ao utilizador criar um novo Grupo que automaticamente ficará em hierarquia com o Grupo em edição. Ao escolher esta opção a seguinte janela surge. Imagem 44 - Criar subgrupo O utilizador deve preencher os campos obrigatórios como Nome e Descrição. Premir o botão OK para guardar os dados. A aplicação reage actualizando a árvore de Grupo com o mais novo grupo criado sob o Grupo principal. Se for 26 Manual de Utilizador Manual de Utilizador activa a opção principal o grupo passa a ser considerado como grupo principal e tem obrigatoriamente que ter um sub-grupo geral. 6.3.3.4 Adicionar Utilizador Para adicionar um utilizador este deve já existir no sistema. Assim, após escolher a opção Adicionar Utilizador uma janela, semelhante à que se apresenta de seguida, surge. O utilizador escreve o nome e a aplicação vai apresentando os registos que validem os dados inseridos. Imagem 45 - Adicionar utilizador Apenas se pode indicar um utilizador de cada vez, pelo que após escolher o desejado deve premir OK e o registo é de imediato visível nos detalhes do Grupo. 6.3.3.5 Adicionar Unidade Para adicionar uma Unidade o processo é semelhante ao anteriormente descrito para utilizadores. Uma janela semelhante surge, onde o utilizador insere o Identificador ou o Nome ou Local da Unidade. Após o sistema encontrar o registo, o utilizador confirma clicando no OK e a aplicação redirecciona para a página de detalhes do Grupo onde já se encontra a nova Unidade disponível. 6.3.3.6 Adicionar Dispositivo Para adicionar um Dispositivo o processo é semelhante ao anteriormente descrito para Unidades. Uma janela semelhante surge, onde o utilizador insere o Nome ou Local do Dispositivos. Após o sistema encontrar o registo, o utilizador confirma clicando no OK e a aplicação redirecciona para a página de detalhes do Grupo onde já se encontra o novo Dispositivos disponível. 6.3.3.7 Adicionar Tag Para adicionar uma TAG o processo é semelhante ao anteriormente descrito para Dispositivos. Uma janela semelhante surge, onde o utilizador insere o Nome ou Local da TAG. Após o sistema encontrar o registo, o utilizador confirma clicando no OK e a aplicação redirecciona para a página de detalhes do Grupo onde já se encontra a nova TAG disponível. 6.3.3.8 Editar Grupo Esta acção também escolhida a partir da listagem na página inicial de Grupos. Após escolher a opção editar Grupo, os detalhes do Grupo ficam disponíveis em modo de edição, sendo possível alterar alguns detalhes como se exemplifica na imagem seguinte. Manual de Utilizador 27 Manual de Utilizador Imagem 46 - Editar Grupo 6.3.3.9 Ligar Grupo Esta opção permite ao utilizador adicionar um Grupo existente como um subgrupo. Ou seja, um Grupo pode estar ligado a muitos outros sem a sua estrutura ter de ser replicada. Este mecanismo é feito da mesmo forma que a adição de Utilizadores, Unidade, Dispositivos e TAGs. 6.3.3.10 Adicionar Baseline O grupo não possuindo nenhuma Baseline associada ao utilizador é lhe apresentada a opção de criar uma nova Baseline Ano 0: Imagem 47 - Baseline Ano 0 Ao carregar no botão é-lhe apresentado a janela de introdução de dados duma nova Baseline do Ano 0. O utilizador deve preencher todos os campos relevantes: Data – Ano da Baseline Ano 0; Consumos divididos por Tipos de Hora (Horas de Ponta, Cheia, Vazio, Vazio Normal, SuperVazio), para cada mês do Ano 0; 28 Avac - Sistema Avac associado ao grupo: o Potência Nominal (kw) – potência do AVAC em Kw o Hora Inicio - Hora em que o AVAC entrou em funcionamento o Hora Fim – Hora em que o AVAC finalizou o funcionamento Equipamentos – Lista de Equipamentos que entraram em funcionamento, associados ao grupo: o Nome – Nome do Equipamento o Potência Nominal (Kw) – Potência do Equipamento em Kw o Inicio - Hora em que o Equipamento entrou em funcionamento o Fim – Hora em que o Equipamento finalizou o funcionamento Manual de Utilizador Manual de Utilizador Imagem 48 - Adição de Baseline do Ano 0 No final o utilizador ao clicar em Ok é guardada a Baseline no sistema, se carregar em Cancel é descartada a informação que foi introduzida no formulário da Baseline. Ao guardar a Baseline ao utilizador é apresentada a Baseline na listagem de Baselines do Grupo, como demonstrado na imagem seguinte. Imagem 49 - Listagem de Baselines Actualizar Baseline Depois de criada a Baseline do Ano 0 só pode ser actualizada essa Baseline com dados para os meses do Ano 1 (automaticamente definido como o ano posterior ao Ano 0). Clicando no botão do registo da Baseline do ano 0 é-lhe apresentada a janela de actualização. Manual de Utilizador 29 Manual de Utilizador Imagem 50 - Actualização de Baseline Nesta janela o utilizador pode escolher o mês da actualização, no campo Data. Automaticamente é restringido o mês começando no mês de início do ano ou o mês posterior ao último mês de actualização da Baseline do Ano 1. O utilizador pode preencher de seguida os campos com as alterações de consumos que aconteceram desde o mês do ano 0 para o mês do ano 1, nomeadamente: AVAC – Sistema Avac associado ao grupo: o Potência Nominal (kw) – potência do AVAC em Kw; o Hora Inicio - Hora em que o AVAC entrou em funcionamento; o Hora Fim – Hora em que o AVAC finalizou o funcionamento. Equipamentos – Lista de Equipamentos que entraram em funcionamento, associados ao grupo: o Nome – Nome do Equipamento; o Potencia Nominal (Kw) – Potência do Equipamento em KW; o Inicio - Hora em que o Equipamento entrou em funcionamento; o Fim – Hora em que o Equipamento finalizou o funcionamento. No final o utilizador ao clicar em Ok é guardada a actualização da Baseline no sistema, e se carregar em Cancel é descartada a informação que foi introduzida no formulário. De notar que depois de criadas as actualizações de consumos do AVAC e Equipamentos da Baseline do Ano 1, existe um serviço que actualizará os consumos globais para os respectivos meses do ano 1. Clicando no botão de edição sobre uma das Baselines do ano 1 é apresentado uma janela que apresentará os valores actualizados sobre os consumos globais dos meses da Baseline do ano 1 (depois de ter sido executado o serviço de actualização das Baselines). 30 Manual de Utilizador Manual de Utilizador Imagem 51 - Edição de Baseline Ano 1 6.3.3.11 Adicionar Detalhe Esta opção faz aparecer uma nova janela, semelhante à seguinte, onde o utilizador pode preencher os campos Nome e Valor. Estes dados funcionam como um Parâmetro do Grupo. Imagem 52 - Adicionar Detalhe Após o preenchimento dos campos pode premir OK. A aplicação guarda os dados e redirecciona o utilizador para a página de detalhes do Grupo, com a separa dor Detalhes do Grupo em foco onde se pode visualizar o recém-criado Detalhes. A imagem seguinte exemplifica o resultado Final. Imagem 53 - Visualizar Detalhes do Grupo 6.3.3.12 Separar Grupo Esta opção permite ao utilizador exterminar a ligação entre Grupos. Ao escolher esta acção num determinado Grupo, a ligação ao outro será eliminada. Se por um lado a ligação pode ser removida por outro lado os Grupos não Manual de Utilizador 31 Manual de Utilizador podem deixar de pertencer a uma hierarquia. Assim, se o Grupo não possuir nenhuma outra ligação, a separação não pode ser efectuada. 6.3.3.13 Apagar Grupo Se o utilizador deseja remover um Grupo do sistema então deve escolher esta opção. Note-se que apenas Grupos simples (sem subgrupos ou ligações a outros Grupos) podem ser apagados. Em alternativa a esta acção, o utilizador pode escolher a opção presente na página inicial de Grupos. 6.3.4 Alertas Para realizar a gestão dos alertas o utilizador deve clicar no link Plugin de Alertas no menu da aplicação. 6.3.4.1 Listagem A listagem apresenta os campos referentes a cada Alerta: Nome, Algoritmo, Tipo de Tag (ao qual se aplica a validação), Tag (à qual se aplica a validação), Activo (se a Validação está activa ou não). Este painel Imagem 54 ainda oferece a possibilidade de pesquisar por alertas específicos pelo seu nome. Imagem 54 - Listagem de Alarmes Adicionar Alerta Se o utilizador desejar adicionar um novo alerta ele pode fazê-lo premindo o botão Adicionar Alerta. 6.3.4.2 Edição O utilizador pode desactivar ou activar o alerta seleccionando ou não o campo Activo. Depois de alterar as informações do painel de edição Imagem 55 o utilizador pode simplesmente pressionar o botão Guardar, a fim de confirmar as alterações na base de dados. Pressionando o botão Voltar o utilizador voltará para a página anterior. 32 Manual de Utilizador Manual de Utilizador Imagem 55 - Edição de Alerta 6.3.4.3 Adição No painel de adição Imagem 56 de validação o utilizador tem de introduzir o nome do alerta. De seguida deve escolher o tipo de alerta que deseja criar: Sistema – alerta avaliado sobre todo o sistema; Grupo – alerta avaliado sobre todas as tags desse grupo; Unidade – alerta avaliado sobre a unidade; Tag – alerta avaliado sobre uma tag específica. A seguir deve introduzir no campo Id o identificador respectivo de grupo, tag ou unidade conforme a escolha anterior. O campo Data de Inicio será o tempo em que o alerta ficará activo e o campo Parar o tempo será o tempo em que alerta ficará desactivo. Seguidamente o utilizador terá de escolher um plugin do tipo alerta na caixa de selecção Plugin. Conforme os parâmetros codificados em cada plugin eles irão aparecer no painel para serem preenchidos os respectivos valores. O utilizador ao carregar em Guardar é criado o alerta. Imagem 56 - Adição de Alerta Manual de Utilizador 33 Manual de Utilizador 6.4 Facturação 6.4.1 Fornecedores 6.4.1.1 Listar Depois de clicar no link de administração o painel da Imagem 57 é mostrado. Imagem 57 - Painel de Fornecedores Nesta secção o utilizador pode ver a lista de fornecedores existentes, procurar por um fornecedor específico e fazer as operações de gestão usuais. Na pesquisa o utilizador tem duas possibilidades de pesquisa: pesquisa por nome ou por tipo. No primeiro caso o utilizador pode escrever uma palavra que identifique o fornecedor. No segundo caso o utilizador necessita simplesmente de mudar o tipo de procura e depois escolher o tipo da lista de tipos fornecida. No grupo de fornecedores está disponível uma opção que permite ver os fornecedores que foram removidos do sistema. Se o utilizador desejar ver os fornecedores anteriores deve activar esta opção e depois fazer a pesquisa. A Imagem 58 mostra um exemplo da pesquisa filtrada por tipo gás com a opção “Mostrar fornecedores eliminados” activada. Imagem 58 - Lista de Fornecedores 34 Manual de Utilizador Manual de Utilizador 6.4.1.2 Apagar fornecedores ( ) Na lista de fornecedores o utilizador pode clicar no ícone de apagar para remover um fornecedor. 6.4.1.3 Editar fornecedores ( ) Na lista de fornecedores o utilizador pode clicar no ícone de editar para ter acesso ao painel de edição do fornecedor. 6.4.1.4 Adicionar Fornecedor Este botão dá acesso ao formulário de adicionar fornecedor 6.4.1.5 Detalhes No painel de listagem o utilizador pode aceder aos detalhes de um fornecedor específico, clicando no nome do fornecedor. Esta acção vai mostrar o painel da Imagem 599. Imagem 59 - Detalhes do Fornecedor No painel de detalhes o utilizador pode ver todos os tarifários associados a um fornecedor específico. Como no caso da listagem de fornecedores o utilizador pode também seleccionar a opção “Mostrar tarifas eliminadas” para ver as tarifas apagadas. Na secção esquerda o utilizador tem três botões que dão acesso a acções diferentes: Editar Este botão dá acesso ao formulário de edição de tarifários. Adicionar tarifa Este botão dá acesso ao formulário de adição de tarifa. Manual de Utilizador 35 Manual de Utilizador Listagem Este botão dá acesso a lista de fornecedores. 6.4.1.6 Editar Para editar um fornecedor já existente o utilizador deve carregar no botão de edição. O processo de edição e parecido com processo de adição explicado em baixo. De acordo com isso, e para evitar repetições, vamos explicar o painel envolvido nestes processo na próxima secção. 6.4.1.7 Adicionar Para adicionar um novo fornecedor o utilizador deve usar o botão Adicionar fornecedor, que depois de clicado, da acesso ao painel mostrado na Imagem 600 Imagem 60 - Adição de Fornecedor Neste painel o utilizador precisa simplesmente de preencher o nome e tipo de fornecedor e moeda em qual o fornecedor trabalha. Se o utilizador desejar cancelar a operação pode clicar no botão de retroceder. Clicando no botão guardar a informação do fornecedor será guardada na base de dados e direcciona o utilizador para o painel de detalhes que permite ao utilizador adicionar tarifas e códigos postais a um fornecedor ou mudar a informação inserida. 6.4.2 Tarifas 6.4.2.1 Listar Depois de clicar no link de administração o painel da Imagem 61 é mostrado. 36 Manual de Utilizador Manual de Utilizador Imagem 61 - Listagem de Tarifas 6.4.2.2 Adicionar Tarifa Tipo Intervalo Para adicionar uma tarifa o utilizador tem de, no painel de Detalhe de um fornecedor, clicar no botão Adicionar Tarifa que ira redireccionar para o painel na Imagem 62. Imagem 62 - Adição de Tarifa Neste painel o utilizador pode definir a seguinte informação: Nome – nome da tarifa; Período de facturação – período de facturação associado com a tarifa; Data de início da tarifa – Data em que a tarifa começa; Tipo de Temporada – Associação da tarifa as estações da secção de estações; Publico – Se a tarifa tem visibilidade publica ao não; Tipo – Tipo de tarifa (escalões ou intervalos); Depois de adicionar a informação o utilizador será redireccionado para o painel mostrado na Imagem 63. Manual de Utilizador 37 Manual de Utilizador Imagem 63 - Detalhe de Tarifa Nota que o sistema indica que não foram encontrados períodos nem escalões nem parâmetros nem factores de multiplicação, para adicionar qualquer uma destas entidades o utilizador pode clicar no Adicionar Período, Adicionar Passo ou Adicionar Custos Fixos, Adicionar Parâmetro respectivamente. Quando o utilizador clica no botão de adicionar período o painel da Imagem 64 é mostrado ao utilizador. Imagem 64 - Adição de Período Como é visível no painel de adição de intervalos o utilizador terá de preencher a seguinte informação: Inicio – Hora de início do intervalo. Fim – Hora de fim do intervalo. Temporada – Um inteiro que indica a estação em que o intervalo é aplicado. As estações são definidas em separado. Por agora, a estação 0 é o verão e a estação 1 é o inverno. 38 Manual de Utilizador Manual de Utilizador Tipo de hora – Tipo de hora a que o intervalo pertence. Preço – Valor numérico que indica o preço. Dias da semana – Dias da semana em que o intervalo é aplicado. Depois de preenchida a informação requerida o utilizador pode clicar em guardar e guardar o intervalo na base de dados. Esta acção vai então redireccionar o utilizador para os detalhes da tarifa Imagem 65. Imagem 65 - Listagem de Períodos por Tipo de Hora Note de que depois de inserir a informação dos intervalos a mensagem de aviso anterior desaparece. Para adicionar um custo fixo o processo é semelhante. O utilizador clica no botão Adicionar custo fixo o que lhe vai mostrar o painel na Imagem 66. Imagem 66 - Adição de Custo Fixo Como é visível no painel de adição de custos fixos o utilizador terá de preencher a seguinte informação: Descrição – Descrição do custo fixo; Preço – Valor numérico que indica o preço; Potência contractada – Potência que esta associada ao custo fixo; Depois de preenchida a informação requerida o utilizador pode clicar em guardar e guardar o custo fixo na base de dados. Esta acção vai então redireccionar o utilizador para os detalhes da tarifa Imagem 67. Imagem 67 - Listagem de Custo Fixo Para adicionar um parâmetro ao tarifário o processo é semelhante. O utilizador clica no botão Adicionar parâmetro o que lhe vai mostrar o painel na Imagem 68. Manual de Utilizador 39 Manual de Utilizador Imagem 68 - Adição de Parâmetro Como é visível no painel de adição de parâmetros o utilizador terá de preencher a seguinte informação: Nome – Nome do parâmetro tarifário; Período de cálculo – De quanto em quanto tempo o parâmetro deve ser calculado; Parâmetro – Parâmetro que vai ser associado ao tarifário; Tipos de horas – Tipos de hora em que o parâmetro vai ser avaliado; Preço – Preço associado ao parâmetro; Depois de preenchida a informação requerida o utilizador pode clicar em guardar e guardar o parâmetro na base de dados. Esta acção vai então redireccionar o utilizador para os detalhes da tarifa Imagem 69. Imagem 69 - Listagem de Parâmetros Nos parâmetros do tarifário para além das opções de edição, apagar existe ainda uma opção associada ao parâmetro de energia reactiva indutiva, que permite adicionar novos factores de multiplicação. O utilizador clica no botão de adição de factor de multiplicação ( ) sendo mostrado a formulário de factores de multiplicação como mostra a Imagem 70. 40 Manual de Utilizador Manual de Utilizador Imagem 70 - Factor de Multiplicação Como é visível no painel de adição de factores de multiplicação o utilizador terá de preencher a seguinte informação: Descrição – Descrição do factor de multiplicação; Máximo – Valor máximo do factor; Mínimo – Valor mínimo do factor; Factor de multiplicação – Factor de multiplicação atribuído. Depois de preenchida a informação requerida o utilizador pode clicar em guardar e o factor de multiplicação é adicionado na base de dados. Esta acção vai então redireccionar o utilizador para os detalhes da tarifa Imagem 711. Imagem 71 - Listagem de Factor de Multiplicação 6.4.2.3 Adicionar Tarifa De Tipo Escalão Para adicionar uma tarifa por escalões basta seleccionar o tipo escalão no painel de adição de tarifas já descrito anteriormente. Quando se selecciona esta opção aparece mais uma opção como se pode ver na Imagem 72 o tipo de escalão que pode ser singular ou múltiplo. Manual de Utilizador 41 Manual de Utilizador Imagem 72 - Adição de Tarifa de Tipo Escalão Depois de adicionada a tarifa de escalão é mostrado um painel em tudo parecido com o painel de tarifas por intervalos como mostra a Imagem 73. Imagem 73 - Detalhe de Tarifa de Tipo Escalão Nas tarifas por escalões existem as opções já referidas anteriormente e ainda a opção para adição de um novo escalão. 42 Manual de Utilizador Manual de Utilizador Imagem 74 - Adicionar Escalão Adicionar novo escalão requer que o utilizador preencha o campo de mínimo, máximo com uma identificação numérica e indicar o custo do novo escalão. Depois de preencher os dois campos o utilizador pode pressionar guardar o que vai guardar a informação na base de dados e redirecciona para o painel de detalhes de tarifa da Imagem 75. Imagem 75 - Detalhe de Tarifa por Escalão Note que os avisos sobre os escalões desapareceram. 6.4.2.4 Editar No painel de detalhes de tarifa o utilizador pode usar o botão de editar para mudar as configurações de qualquer parâmetro do tarifário e pode usar o botão de apagar para remover qualquer parâmetro. Se o utilizador desejar modificar outros detalhes sobre o tarifário pode usar o botão de editar que vai abrir o painel de edição de tarifa como é mostrado na Imagem 76. Manual de Utilizador 43 Manual de Utilizador Imagem 76 - Edição de Tarifa Neste ponto acabamos a adição de informação sobre uma tarifa específica do fornecedor, mais tarifas podem ser adicionas seguindo os passos anteriores. Outra informação importante que pode ser adicionada ao fornecedor é o código postal onde estes oferecem os seus serviços. No painel de detalhes de fornecedor na imagem 66 existe uma secção que permite o utilizador adicionar, remover e procurar por códigos postais que foram associados aos fornecedores. Para adicionar um código postal o utilizado precisa simplesmente de especificar o número do código postal e clicar no botão de adicionar. Note que o código postal tem dois números separados por traço, o primeiro número contém sempre 4 dígitos e o segundo contém sempre 3 dígitos (ex. 3000-247). O primeiro número identifica um país específico e o segundo identifica uma rua no país. O interface permite ao utilizador adicionar apenas o código do país o que significa que o sistema vai associar todos os códigos postais do país, aquele fornecedor. Na Imagem 77 o utilizador esta adicionar o país identificado por 3000 no sistema. Imagem 77 - Códigos Postais Depois de pressionado no botão para adicionar o utilizador terá a opção de confirmar o seu pedido. Neste ponto o utilizador pode procurar na base de dados pelo código postal associado ao fornecedor. A Imagem 78 mostra o resultado da pesquisa por códigos postais começados por 3000. Imagem 78 - Pesquisa por código postal 44 Manual de Utilizador Manual de Utilizador Se o utilizador desejar apagar um código postal específico ou todos os códigos postais apenas tem de preencher a caixa de texto de apagar e pressionar o botão de apagar. Outra opção para apagar um código postal específico é usar o botão de apagar na lista de códigos postais. 6.5 Estações 6.5.1.1 Listar Depois de clicar no link de estações o painel da Imagem 79 é mostrado. Imagem 79 - Listagem de Estações Nesta secção o utilizador pode ver a lista de estações existentes, procurar por uma estação específica e fazer as operações de gestão usuais. Na pesquisa o utilizador tem a possibilidade de pesquisar por nome. O utilizador pode escrever uma palavra que identifique as estações e os resultados serão filtrados por essa palavra. 6.5.1.1.1 Apagar Estação ( ) Na lista de estações o utilizador pode clicar no ícone de apagar para remover uma estação. 6.5.1.1.2 Editar Estação ( ) Na lista de estações o utilizador pode clicar no ícone de editar para ter acesso ao painel de edição das estações. 6.5.1.1.3 Adicionar Estação Este botão dá acesso ao formulário de adição de estação 6.5.1.2 Detalhes No painel de listagem o utilizador pode aceder aos detalhes de uma estação específica, clicando no nome da estação. Esta acção vai mostrar o painel da Imagem 80. Manual de Utilizador 45 Manual de Utilizador Imagem 80 - Detalhe de Estação No painel de detalhes, o utilizador pode ver todas as temporadas associados a uma estação específica. Na secção esquerda o utilizador tem três botões que dão acesso a acções diferentes: 6.5.1.2.1 Editar Este botão dá acesso ao formulário de edição de estação. 6.5.1.2.2 Adicionar Temporada Este botão dá acesso ao formulário de adição de uma temporada à estação. Imagem 81 - Adição de Temporada No painel de adição de temporada é possível adicionar uma temporada a uma estação, uma temporada não é mais do que um período de tempo em que a estação está associada. Sendo que o início é a data em que a estação se inicia e a ordem por ano é uma valor inteiro que se refere a estação, existindo duas estações o valor 1 seria o verão e o 2 o inverno. 6.5.1.2.3 Listagem Este botão dá acesso à listagem de estações. 6.5.1.3 Editar Para editar uma estação já existente o utilizador deve carregar no botão de edição. O processo de edição e parecido com processo de adição explicado em baixo. De acordo com isso, e para evitar repetições, vamos explicar o painel envolvido nestes processo na próxima secção. 46 Manual de Utilizador Manual de Utilizador 6.5.1.4 Adicionar Para adicionar uma nova estação o utilizador deve usar o botão Adicionar Estação, que depois de clicado, dá acesso ao painel mostrado na Imagem 82 Imagem 82 - Adição de Estação Neste painel o utilizador precisa simplesmente de preencher o tipo e o número de temporadas por ano de uma estação. Se o utilizador desejar cancelar a operação pode clicar no botão de listar para regressar a listagem de estações. Clicando no botão Guardar a informação da estação será guarda na base de dados e direcciona o utilizador para o painel de detalhes da estação que permite ao utilizador adicionar temporadas a uma estação, sendo que cada estação deve ter sempre uma pelo menos uma temporada. 7 Plugins Alertas 7.1 Listagem Esta secção permite a gestão de todas as Dlls que vão servir de suporte aos validadores e alertas. A listagem apresenta os campos referentes a cada Plugin: Nome, Peso, Tipo, Nome da Classe (Dll), Utilizações (número de vezes que o plugin foi usado em validações\alertas). Este painel Imagem 83 ainda oferece a possibilidade de pesquisar por plugins específicos pelo seu nome. Imagem 83 - Listagem de Plugins Manual de Utilizador 47 Manual de Utilizador 7.1.1.1 Adicionar PLugin Se o utilizador desejar adicionar um novo plugin ele pode fazê-lo premindo o botão Adicionar Plugin. 7.1.1.2 Detalhes Neste painel Imagem 84 o utilizador pode validar os dados do plugin e consultar a listagem de alertas ou validações associados a esse plugin. Imagem 84 - Detalhe de Plugin 7.2 Editar O link permite editar os campos do plugin 7.2.1.1 Adicionar Alerta/Validação Dependo do tipo de plugin este link permite criar um alerta\validação automaticamente associado ao plugin. 7.2.1.2 Edição Depois de alterar as informações do painel de edição Imagem 85 o utilizador pode simplesmente pressionar o botão Guardar, a fim de confirmar as alterações na base de dados. Pressionando o botão Voltar o utilizador voltará para a página anterior. Imagem 85 - Edição do Plugin 48 Manual de Utilizador Manual de Utilizador 7.3 Adição Neste painel Imagem 86 o utilizador pode definir as informações para a criação de um plugin. Os campos são: Nome - Nome do plugin; Peso - peso do plugin; Nome da Classe – nome da classe da Dll usada pelo plugin. Imagem 86 - Adição do Plugin Manual de Utilizador 49