EHouse Automação Predial – Criando um sobreposições de software do Windows e algoritmos personalizados

Domótica eHouse com software para PC permite que você crie sobreposições para sistema de automação predial .
Isso permite que você crie o seu próprio , algoritmos individuais , não são implementados no firmware ou driver de software que controla o número de série Domótica Ehouse .
Para este fim , que fornecer aos usuários os códigos-fonte de software (em Delphi 5) . Eles podem ser compilado com as versões mais recentes do Delphi ou utilizados para outras linguagens de programação .
Nós conscientemente escolheu esta versões arcaicas como eles já estão disponíveis gratuitamente para o programa amador .
Eles funcionam tão confiável no Windows XP , Vista , Windows 7 de 32 e 64 bits .
Este software é chamado eHouseLogAnalizer e estas aplicações registros de modelo que ler arquivos de texto até à data .
Ele pode ser gerenciado e monitorado pelo KillWdt aplicações . exe .
Os principais recursos do aplicativo:

  • Leitura do status e os nomes de todos os drivers
  • Leia o estado e digite os nomes de todos os drivers
  • Leia as medidas e os nomes de todos os drivers de medição insumos
  • Carregar todos os dados para a memória do programa interno , que pode ainda ser processado por uma aplicação

O aplicativo usa o status de arquivos criados em arquivos de texto em um diretório ‘ logs / status / ‘ extensão ‘ . estado ‘ .
O arquivo é lido apenas para o caso de mudanças na aplicação eHouse . exe .

Os controladores de dados são carregados nos seguintes registros instâncias ” ehouse_rm_em_hm ” listado na RM matriz .

Além , dados são mantidos HeatManager as seguintes variáveis:
bonfire_status: string ; / Estado / de fogueira para HeatManager – Estado lareira eHouse painel de aquecimento . exe
boiler_status: string ; / Estado / de caldeira para HM – status do painel eHouse caldeira de aquecimento . exe
Solar_status: string ; / Estado / do sistema solar – status de eHouse aquecimento solar painel . exe
recuperator_status: string ; / Estado / de recuperação , ventilação , aquecimento do ar – estado de ventilação, aquecimento e recuperação de calor
HADC: array [0 . . 15] da dupla ; / / Calor gerente Temperaturas – HeatManager medições de temperatura
/ / Calor índices gerente de acesso direto da matriz HADC – Constantes índices de temperatura para leitura direta do HeatManager temperatura
CONST HM_GWC = 3 ; / / GWC – Trocador de calor chão
HM_KOM1 = 4 ; / Lareira / Coat 1 – Fogueira uma camisa de água
HM_KOMKONV = 5 ; / Lareira / konvekcyjne – fogueira convecção
HM_KOM2 = 6 ; / Fogo / plano 2 – fogueira camisa de água 2 (backup)
HM_TWEWN = 7 ; / / Temperatura ambiente interna – temperatura ambiente interna
HM_SOLAR = 9 ; / Dom coletor / – sistema solar
HM_ZEWNPN = 8 ; / / Temperatura externa norte – temperatura externa norte
HM_ZEWNPD = 1 ; Temperatura / / externo do sul – temperatura externa sul
HM_KOC = 10 ; / Caldeira de temperatura / – temperatura da caldeira
HM_BANDOL = 11 ; / CO / / tanque de água quente para baixo – buffer de fundo quente watter
HM_REQIN = 12 ; / / O ar puro entrada Recuperador – recuperação de entrada de ar claro
HM_REQOUT = 13 ; / / Output Recuperador casa – heaten recuperação sopro de ar fresco para o quarto – temperatura
HM_NAG = 14 ; / / Temperatura controlada três – válvula caminho para aquecimento e para radiadores – temperatura após três maneiras de corte para aquecedor de água ou outro sistema de aquecimento
HM_REQWYC = 15 ; / / Principal Recuperador extrato suja – recuperação de casa suja escape temporário
HM_BANGORA = 2 ; / / Aquecimento / água quente tanque gora – TOP tampão água quente
HM_BANSRO = 0 ; / Aquecimento / / tanque de armazenamento de água quente um meio de – Buffer de água quente MÉDIO
HADCNames var: array [0 . . 15] de corda ; / / Os nomes dos sensores (entradas de medição) HeatManagera
EhouseLogAnalizer funções básicas:
init_heat_temperature_names procedimento ; / / Inicializar e / ou sensores de temperatura ler os nomes dos HM
loadnames_rm procedimento ; / / Carrega nomes RoomManagerĂłw (eHouse 1)
readethernetdevs procedimento ; / / Lê os nomes dos drivers Ethernet (Ehouse 2)
get_index_rm função (str: string): integer ; / / Retorna o índice da tabela, com roomManagerami busca por status nome do arquivo
função gb (chr: char): boolean ; / / Retorna um valor booleano para o estado de leitura
adc_hm procedimento (str: string ; índice: inteiro) ; / / Converte a string com temperaturas registradas da leitura de status HeatManagera
adc_rm procedimento (str: string ; índice: inteiro) ; / / Converte série de medições analógicas ao ler o RoomManagerĂłw estado
gbs função (b: boolean): String ; / / Escreve booleana em forma de texto (0 , 1)
Função RMDeviceIndexByName (str: string): integer ; / / Retorna o índice da tabela, com RoomManagerami busca pelo motorista de nome
RMGetOutputStateNr função (índice: inteiro ; OutputNr: integer): boolean ; / / Retorna o RM estado de saída [índice] eo OutputNR número de saída
RMGetOutputState função (índice: inteiro ; Outputname: string): boolean ; / / Retorna o RM estado de saída [índice] e chamou outputname
RMGetInputStateNr função (índice: inteiro ; InputNr: integer): boolean ; / / Retorna o status do RM de entrada [índice] eo número de InputNr entrada
RMGetInputState função (índice: inteiro ; InputName: string): boolean ; / / Retorna o status do RM de entrada [índice] eo nome do InputName entrada
RMGetTempNr função (índice: inteiro ; InputNr: integer): double ; / / Retorna a temperatura RM [índice] eo número de InputNr entrada
RMGetTemp função (índice: inteiro ; InputName: string): double ; / / Retorna a temperatura RM [índice] eo nome do InputName entrada
Função RMGetInvPercent (índice: inteiro ; InputName: string): double ; / / Retorna um percentual de medição inversa 100 % – x [index] RM e o nome do InputName entrada (em relação ao controlador de tensão de alimentação)
RMGetInvPercentNr função (índice: inteiro ; InputNr: integer): double ; / / Retorna um percentual de medição inversa 100 % – x [index] RM e o número de InputNr entrada (em relação ao controlador de tensão de alimentação)
Função RMGetPercent (índice: inteiro ; InputName: string): double ; / / Retorna uma medição da percentagem de [index] RM e o nome do InputName entrada (em relação ao controlador de tensão de alimentação)
RMGetPercentNr função (índice: inteiro ; InputNr: integer): double ; / / Retorna um percentual de medição inversa 100 % – x [index] RM e o nome do InputNr entrada (em relação ao controlador de tensão de alimentação)
RMGetDeviceOutputState função (devname: string ; Outputname: string): boolean ; / / Retorna o estado do condutor saída chamada devname e chamou outputname
RMGetDeviceInputState função (devname: string ; InputName: string): boolean ; / / Retorna o status da entrada de motorista o nome eo nome do InputName devname entrada
HMGetTemp função (InputName: string): double ; / / Retorna temperatura da entrada de medição chamado para HeatManagera InputName
HMGetTempNr função (InputNr: integer): double ; / Retorno / temperatura do número de entrada de medição para HeatManagera InputNr (1 . . 16)
chk_int função (st: string): integer ; / / Seguro para converter uma string para um inteiro
procedimento update_status ; / / Atualizar o status de todos os drivers na tabela (deve ser executado periodicamente)
Test_save procedimento ; / / Teste de procedimento para escrever os resultados em um arquivo de texto para fácil
Inicializar o motorista e todos os nomes são feitos uma vez que o aplicativo é iniciado (FormCreate)
procedimento TForm1 . FormCreate (Sender: TObject) ;
começar
caminho: = getcurrentdir () ; / / Pega o caminho atual do programa deve estar no diretório % eHouse_DIR % \ \ BIN
caminho: = StringReplace caminho ( , ‘ \ Bin ‘ , ‘ \ ‘ , [Rfignorecase]) ; / / Obter caminho de eHouse aplicação – define o caminho do aplicativo eHouse
loadnames_rm ; / Carga / nomes do controlador ehouse1 – carrega o nome de motoristas eHouse 1
init_heat_temperature_names ; / / Carregar o nome heatManagera sensores
readethernetdevs ; / / Carregar os controladores de nomes eHouse ethernet – ler eHouse dispositivo nomes 2
timer1 . Intervalo: = 3000 ; / Intervalo da tarefa / Set cíclica em milissegundos – Define o tempo para começar a verificar os dados cíclicos
timer1 . Enabled: = true ; / / Iniciar tarefas automáticas (atualização de status – inclui a verificação regular de dados
update_status ; / / Lê o status de primeira
final ;
Verificação cíclica de dados é feito pela função Timer1 (Timer1Timer) é executado em um intervalo de tempo definido no parâmetro Timer1 . Intervalo (em milissegundos) .
procedimento TForm1 . Timer1Timer (Sender: TObject) ;
var tf: textfile ;
começar
update_status ; / / Converte o estado do condutor
Test_save ; / / Para o teste grava todos os resultados para um arquivo de texto
try / / criar um arquivo de marcador para a aplicação KillExec . exe que pode ” ver ” aplicação antes de acidente
AssignFile (tf , + caminho ‘ logs \ log – analizer . stp ‘ ) ;
/ / Avisa WDT Esse pedido funcionando corretamente usando stampfile ” log \ log – analizer . stp ”
reescrever (TF) ;
writeln (tf , ‘ 1 ‘ ) ;
finalmente ;
closefile (TF) ;
final ;
final ;