Edificio eHouse Automatización – Creación de una superposición de software de Windows y algoritmos personalizados

Domótica eHouse con software para PC le permite crear plantillas para el sistema de automatización de edificios .
Esto le permite crear su propio , algoritmos individuales , no se implementan en software o firmware del controlador que controla el número de serie Domótica eHouse .
Para este fin , proporcionamos a los usuarios con los códigos de software de fuente (en Delphi 5) . Ellos pueden ser compilados con versiones más recientes de Delphi o utilizados para otros lenguajes de programación .
Nos eligió conscientemente estas versiones arcaicas puesto que ya están disponibles de forma gratuita para el programa de aficionado .
Trabajan igual forma fiable en Windows XP , Vista , Windows 7 de 32 y 64 bits .
Este software se llama eHouseLogAnalizer y estas aplicaciones de plantillas registros que se leen los archivos de texto al día .
Puede ser gestionado y controlado por KillWdt aplicaciones . exe .
Las principales características de la aplicación:

  • La lectura del estado y los nombres de todos los controladores
  • Lectura del estado y escriba los nombres de todos los conductores
  • Lea las mediciones y los nombres de todos los controladores que miden los insumos
  • Cargar todos los datos a la memoria interna del programa , que pueden ser procesados ​​por una aplicación

La aplicación utiliza el estado de los archivos creados en archivos de texto en un directorio ‘ logs / estado / ‘ extensión ‘ . estado ‘ .
El archivo es de sólo lectura en el caso de cambios en la aplicación eHouse . exe .

Los responsables del tratamiento se cargan en los registros siguientes casos ” ehouse_rm_em_hm ” aparece en la serie RM .

Además , datos se mantienen HeatManager las siguientes variables:
bonfire_status: cadena ; / / Estado de la hoguera para HeatManager – Chimenea de estado calefacción del panel eHouse . exe
boiler_status: cadena ; / / Estado de la caldera para HM – estado de la caldera eHouse panel de la calefacción . exe
Solar_status: cadena ; / / Estado del sistema solar – estado del panel de la calefacción solar eHouse . exe
recuperator_status: cadena ; / / Situación de la recuperación , ventilación , calefacción de aire – estado de calefacción, ventilación y recuperación de calor
CDAV: array [0 . . 15] de doble ; / / Temperaturas calor gestor – mediciones de temperatura HeatManager
/ / Calor índices gestor para el acceso directo de la matriz CDAV – Índices constantes de temperatura para la lectura directa de temperatura HeatManager
CONST HM_GWC = 3 ; / / GWC – Intercambiador de calor de tierra
HM_KOM1 = 4 ; / / Escudo Chimenea 1 – Bonfire camisa de agua 1
HM_KOMKONV = 5 ; / / Chimenea konvekcyjne – convección hoguera
HM_KOM2 = 6 ; / / Fuego PLANO 2 – hoguera camisa de agua 2 (copia de seguridad)
HM_TWEWN = 7 ; / / Temperatura ambiente interna – temperatura ambiente interna
HM_SOLAR = 9 ; / / Collector dom. – sistema solar
HM_ZEWNPN = 8 ; / / Temperatura externa norte – temperatura exterior norte
HM_ZEWNPD = 1 ; Temperatura / / Externa del sur – temperatura exterior sur
HM_KOC = 10 ; / / Temperatura de la caldera – temperatura de la caldera
HM_BANDOL = 11 ; / / CO / depósito de agua caliente hacia abajo – watter caliente tope inferior
HM_REQIN = 12 ; / / Recuperador de limpieza del aire de entrada – recuperación de entrada de aire limpio
HM_REQOUT = 13 ; / / Salida recuperador casa – recuperación heaten soplan aire fresco a la habitación – temperatura
HM_NAG = 14 ; / / Temperatura controlada tres – válvula unidireccional para la calefacción y para radiadores – temperatura después de las tres formas de corte para el calentador de agua o de otro sistema de calefacción
HM_REQWYC = 15 ; / / Inicio recuperador extracto sucio – recuperación de la casa sucia escape temp
HM_BANGORA = 2 ; / / Calefacción / depósito de agua caliente gora – agua caliente TOP búfer
HM_BANSRO = 0 ; / / Calefacción / tanque de almacenamiento de agua caliente a través de – Tampón MEDIO agua caliente
var HADCNames: array [0 . . 15] de cadena ; / / Los nombres de los sensores (entradas de medida) HeatManagera
Funciones EhouseLogAnalizer básica:
init_heat_temperature_names procedimiento ; / / Inicializar y / o sensores de temperatura leer los nombres de HM
procedimiento loadnames_rm ; / / Cargar nombres RoomManagerĂłw eHouse (1)
readethernetdevs procedimiento ; / / Lee los nombres de los controladores Ethernet (eHouse 2)
función get_index_rm (str: String): integer ; / / Devuelve el índice de la tabla con roomManagerami búsqueda por nombre de archivo de estado
función gb (chr: char): boolean ; / / Devuelve un valor booleano para el estado de lectura
adc_hm procedimiento (str: String ; índice: integer) ; / / Convertir la cadena con temperaturas registradas del estado de lectura HeatManagera
procedimiento adc_rm (str: string ; índice: integer) ; / / Convierte la cadena de medidas analógicas cuando se lee el estado RoomManagerĂłw
gbs función (b: boolean): String ; / / Escribir booleana en forma de texto (0 , 1)
Función RMDeviceIndexByName (str: String): integer ; / / Devuelve el índice de la tabla con búsqueda por nombre del controlador RoomManagerami
Función RMGetOutputStateNr (índice entero ; OutputNr: integer): boolean ; / / Devuelve el estado de la salida RM [indice] y la salida OutputNR número
Función RMGetOutputState (índice entero ; OutputName: string): boolean ; / / Devuelve el estado de la salida RM [indice] y gritó OutputName
Función RMGetInputStateNr (índice entero ; InputNr: integer): boolean ; / / Devuelve el estado de la RM de entrada [indice] y el número de entrada InputNr
Función RMGetInputState (índice entero ; InputName: string): boolean ; / / Devuelve el estado de la RM de entrada [indice] y el nombre de la entrada InputName
Función RMGetTempNr (índice entero ; InputNr: integer): doble ; / / Devuelve la temperatura RM [indice] y el número de entrada InputNr
Función RMGetTemp (índice entero ; InputName: string): double ; / / Devuelve la temperatura RM [indice] y el nombre de la entrada InputName
Función RMGetInvPercent (índice entero ; InputName: string): double ; / / Devuelve una medición de porcentaje de inversión 100 % – x RM [índice] y el nombre de la InputName entrada (en relación con el controlador de tensión de alimentación)
Función RMGetInvPercentNr (índice entero ; InputNr: integer): doble ; / / Devuelve una medición de porcentaje de inversión 100 % – x RM [índice] y el número de InputNr entrada (en relación con el controlador de tensión de alimentación)
Función RMGetPercent (índice entero ; InputName: string): double ; / / Devuelve una medición de porcentaje de [índice] RM y el nombre de la InputName entrada (en relación con el controlador de tensión de alimentación)
Función RMGetPercentNr (índice entero ; InputNr: integer): doble ; / / Devuelve una medición de porcentaje de inversión 100 % – x RM [índice] y el nombre de la InputNr entrada (en relación con el controlador de tensión de alimentación)
Función RMGetDeviceOutputState (DEVNAME: cadena ; OutputName: string): boolean ; / / Devuelve el estado del controlador de salida llamado DEVNAME y llamó OutputName
Función RMGetDeviceInputState (DEVNAME: cadena ; InputName: string): boolean ; / / Devuelve el estado de la entrada del conductor el nombre y el nombre de la entrada InputName DEVNAME
Función HMGetTemp (InputName: string): double ; / / Devuelve la temperatura de la entrada de medición llamado para HeatManagera InputName
HMGetTempNr función (InputNr: integer): doble ; / / Devuelve la temperatura del número de entrada de medición para HeatManagera InputNr (1 . . 16)
función chk_int (st: string): integer ; / / Seguro para convertir una cadena a un entero
procedimiento update_status ; / / Actualizar el estado de todos los controladores en la tabla (se debe ejecutar periódicamente)
procedimiento Test_save ; / / Método de ensayo para escribir los resultados en un archivo de texto para fácil
Inicialice el conductor y todos los nombres se hacen una vez se inicia la aplicación (FormCreate)
procedimiento TForm1 . FormCreate (Sender: TObject) ;
comenzar
path: GetCurrentDir = () ; / / Obtiene la ruta actual del programa debe estar en el directorio % eHouse_DIR % \ BIN \
path: = stringreplace (ruta , ‘ \ Bin ‘ , ‘ \ ‘ , [Rfignorecase]) ; / / Obtiene la ruta de eHouse aplicación – establece la ruta de la aplicación eHouse
loadnames_rm ; / / Carga nombres de los controladores ehouse1 – carga los controladores nombre eHouse 1
init_heat_temperature_names ; / / Carga sensores nombre heatManagera
readethernetdevs ; / / Cargar controladores ethernet nombres eHouse – dispositivo de lectura de los nombres de eHouse 2
timer1 . Intervalo: = 3000 ; / Cíclico / Set tarea intervalo en milisegundos – Establece el tiempo para empezar a comprobar los datos cíclicos
timer1 . Habilitado: = true ; / / Start tareas automáticas (actualización de estado – incluye la comprobación periódica de los datos
update_status ; / / Lee el primer estado
final ;
Comprobación de los datos cíclicos se realiza mediante la función Timer1 (Timer1Timer) se ejecuta en un intervalo de tiempo establecido en el parámetro Timer1 . Intervalo (en milisegundos) .
procedimiento TForm1 . Timer1Timer (Sender: TObject) ;
var tf: archivo de texto ;
comenzar
update_status ; / / Convierte el estado del controlador
Test_save ; / / Para la prueba escribe todos los resultados en un archivo de texto
try / / crear un archivo de marcador de la aplicación KillExec . exe que puede ” ver ” aplicación antes del accidente
AssignFile (tf , ruta de acceso + ‘ logs \ log – analizador . stp ‘ ) ;
/ / Notificar WDT Esa aplicación que funciona correctamente con stampfile ” log log \ – analizador . stp ”
reescribir (tf) ;
writeln (tf , ‘ 1 ‘ ) ;
finalmente ;
función closefile (tf) ;
final ;
final ;