EHouse Automatización Predial – Creando un solapes de software de Windows e algoritmos personalizados

Domótica eHouse con software para PC permite que cree solapes para sistema de automatización predial .
Isto permite que cree o seu propio , algoritmos individuais , non son aplicados no firmware ou controlador software que controla o número de serie Domótica Ehouse .
Para este fin , que facilitar aos usuarios os códigos fonte de software (en Delphi 5) . Eles poden ser compilado con versións máis recentes do Delphi ou utilizados para outras linguaxes de programación .
Nós conscientemente escolleu esta versións arcaicas como xa están dispoñibles gratuitamente para o programa afeccionado .
Eles funcionan tan fiable en Windows XP , Vista , Windows 7 de 32 e 64 bits .
Este software é chamado eHouseLogAnalizer e estas aplicacións rexistros de modelo que ler ficheiros de texto ata a data .
Pode ser xestionado e monitor polo KillWdt aplicacións . exe .
Os principais recursos da aplicación:

  • Lectura do estado e os nomes de todos os controladores
  • Ler o estado e escriba os nomes de todos os controladores
  • Lea as medidas e os nomes de todos os controladores de medición insumos
  • Cargar todos os datos para a memoria do programa interno , que pode ser procesado por unha aplicación

A aplicación utiliza o estado de arquivos creados en arquivos de texto nun directorio ‘ rexistros / status / ‘ extensión ‘ . estado ‘ .
O ficheiro é lido só para o caso de cambios na aplicación eHouse . exe .

Os controladores de datos son cargados nos seguintes rexistros instancias ” ehouse_rm_em_hm ” alistado na RM matriz .

Ademais , datos son mantidos HeatManager as seguintes variables:
bonfire_status: cadea ; / Estado / de lume para HeatManager – Estado lareira eHouse panel de calefacción . exe
boiler_status: cadea ; / Estado / de caldeira para HM – estado do taboleiro eHouse caldeira de calefacción . exe
Solar_status: cadea ; / Estado / do sistema solar – estado de eHouse calefacción solar panel . exe
recuperator_status: cadea ; / Estado / de recuperación , ventilación , quentamento do aire – estado de ventilación, calefacción e recuperación de calor
HADC: array [0 . . 15] do dúo ; / / Calor director Temperaturas – HeatManager medicións de temperatura
/ / Calor índices xerente de acceso directo da matriz HADC – Constantes índices de temperatura para lectura directa do HeatManager temperatura
Consta HM_GWC = 3 ; / / GWC – Trocador de calor chan
HM_KOM1 = 4 ; / Lareira / Coat 1 – Fogueira unha camisa de auga
HM_KOMKONV = 5 ; / Lareira / konvekcyjne – fogueira convección
HM_KOM2 = 6 ; / Lume / plan 2 – fogueira camisa de auga 2 (backup)
HM_TWEWN = 7 ; / / Temperatura ambiente interna – temperatura ambiente interna
HM_SOLAR = 9 ; / Don colector / – sistema solar
HM_ZEWNPN = 8 ; / / Temperatura externa norte – temperatura externa norte
HM_ZEWNPD = 1 ; Temperatura / / externo do sur – temperatura exterior sur
HM_KOC = 10 ; / Caldeira de temperatura / – temperatura da caldeira
HM_BANDOL = 11 ; / CO / / tanque de auga quente para abaixo – buffer de fondo quente watter
HM_REQIN = 12 ; / / O aire puro entrada Recuperador – recuperación de entrada de aire claro
HM_REQOUT = 13 ; / / Output Recuperador casa – heaten recuperación golpe de aire fresco para o cuarto – temperatura
HM_NAG = 14 ; / / Temperatura controlada tres – chave camiño para calefacción e radiadores – temperatura logo de tres xeitos de corte para aquecedor de auga ou outro sistema de calefacción
HM_REQWYC = 15 ; / / Preme Recuperador extracto sucia – recuperación da casa sucia escape temporal
HM_BANGORA = 2 ; / / Calefacción / auga quente tanque Gora – TOP tapón auga quente
HM_BANSRO = 0 ; / Calefacción / / tanque de almacenamento de auga quente un medio de – Buffer de auga quente Medio
HADCNames var: array [0 . . 15] de corda ; / / Os nomes dos sensores (entradas de medición) HeatManagera
EhouseLogAnalizer funcións básicas:
init_heat_temperature_names procedemento ; / / Inicializar e / ou sensores de temperatura ler os nomes dos HM
loadnames_rm procedemento ; / / Carga nomes RoomManagerĂłw (eHouse 1)
readethernetdevs procedemento ; / / Le os nomes dos controladores Ethernet (Ehouse 2)
get_index_rm función (str: cadea): integer ; / / Volta o índice da táboa, con roomManagerami busca por estado nome do ficheiro
función GB (CHR: char): boolean ; / / Volta un valor booleano para o estado de lectura
adc_hm procedemento (str: cadea ; Índice: enteiro) ; / / Converte a cadea temperaturas rexistradas de lectura de estado HeatManagera
adc_rm procedemento (str: cadea ; Índice: enteiro) ; / / Convértese serie de medicións analóxicas ao ler o RoomManagerĂłw estado
GBS función (B: boolean): cadea ; / / Escribe booleana en forma de texto (0 , 1)
Función RMDeviceIndexByName (str: cadea): integer ; / / Volta o índice da táboa, con RoomManagerami busca polo condutor de nome
RMGetOutputStateNr función (índice: enteiro ; OutputNr: integer): boolean ; / / Volta o RM estado de saída [Índice] eo OutputNR número de saída
RMGetOutputState función (índice: enteiro ; Outputname: cadea): boolean ; / / Volta o RM estado de saída [Índice] e chamou outputname
RMGetInputStateNr función (índice: enteiro ; InputNr: integer): boolean ; / / Volta o estado do RM de entrada [Índice] eo número de InputNr entrada
RMGetInputState función (índice: enteiro ; InputName: cadea): boolean ; / / Volta o estado do RM de entrada [Índice] eo nome do InputName entrada
RMGetTempNr función (índice: enteiro ; InputNr: integer): Double ; / / Volta a temperatura RM [Índice] eo número de InputNr entrada
RMGetTemp función (índice: enteiro ; InputName: cadea): Double ; / / Volta a temperatura RM [Índice] eo nome do InputName entrada
Función RMGetInvPercent (índice: enteiro ; InputName: cadea): Double ; / / Volta porcentaxe de medición inversa 100 % – x [index] RM é o nome do InputName entrada (en relación ao controlador de tensión de alimentación)
RMGetInvPercentNr función (índice: enteiro ; InputNr: integer): Double ; / / Volta porcentaxe de medición inversa 100 % – x [index] RM e número de InputNr entrada (en relación ao controlador de tensión de alimentación)
Función RMGetPercent (índice: enteiro ; InputName: cadea): Double ; / / Volta unha medida da porcentaxe de [index] RM é o nome do InputName entrada (en relación ao controlador de tensión de alimentación)
RMGetPercentNr función (índice: enteiro ; InputNr: integer): Double ; / / Volta porcentaxe de medición inversa 100 % – x [index] RM é o nome do InputNr entrada (en relación ao controlador de tensión de alimentación)
RMGetDeviceOutputState función (devname: cadea ; Outputname: cadea): boolean ; / / Volta o estado do condutor saída chamada devname e chamou outputname
RMGetDeviceInputState función (devname: cadea ; InputName: cadea): boolean ; / / Volta o estado da entrada de condutor o nome eo nome do InputName devname entrada
HMGetTemp función (InputName: cadea): Double ; / / Volta temperatura da entrada de medición chamado para HeatManagera InputName
HMGetTempNr función (InputNr: integer): Double ; / Retorno / temperatura do número de entrada de medida para HeatManagera InputNr (1 . . 16)
chk_int función (st: cadea): integer ; / / Seguro para converter unha cadea para un enteiro
procedemento update_status ; / / Actualizar o estado de todos os controladores na táboa (debe ser executado periodicamente)
Test_save procedemento ; / / Proba de procedemento para escribir os resultados nun arquivo de texto para fácil
Inicializar o motor e todos os nomes son feitos unha vez que a aplicación execútase (FormCreate)
procedemento TForm1 . FormCreate (Sender: TObject) ;
comezar
camiño: = getcurrentdir () ; / / Pega o camiño actual do programa debe estar no directorio % eHouse_DIR % \ \ BIN
camiño: = StringReplace camiño ( , ‘ \ Bin ‘ , ‘ \ ‘ , [Rfignorecase]) ; / / Obter camiño de eHouse aplicación – define o camiño da aplicación eHouse
loadnames_rm ; / Carga / nomes do controlador ehouse1 – leva o nome de motores eHouse 1
init_heat_temperature_names ; / / Carga o nome heatManagera sensores
readethernetdevs ; / / Cargar os controladores de nomes eHouse ethernet – ler eHouse dispositivo nomes 2
timer1 . Rango: = 3000 ; / Intervalo da tarefa / Set cíclica en milisegundos – Define o tempo para comezar a comprobar os datos cíclicos
timer1 . Enabled: = true ; / / Iniciar tarefas automáticas (actualización de estado – inclúe a comprobación regular de datos
update_status ; / / Le o status de primeira
final ;
Comprobación cíclica de datos está feito pola función Timer1 (Timer1Timer) é executado en un intervalo de tempo definido no parámetro Timer1 . Intervalo (en milisegundos) .
procedemento TForm1 . Timer1Timer (Sender: TObject) ;
var tf: textfile ;
comezar
update_status ; / / Converte o estado do condutor
Test_save ; / / Para o exame grava todos os resultados a un ficheiro de texto
try / / crear un arquivo de marcador para a aplicación KillExec . exe que pode ” ver ” aplicación antes de accidente
AssignFile (tf , + Camiño ‘ rexistros \ log – analizer . STP ‘ ) ;
/ / Avisa WDT Esta petición funcionando correctamente mediante stampfile ” log \ log – analizer . STP ”
reescribir (TF) ;
writeln (tf , ‘ 1 ‘ ) ;
finalmente ;
closefile (TF) ;
final ;
final ;