Building Automation ehouse – Création d'une superposition de logiciels Windows et des algorithmes personnalisés

Domotique ehouse avec le logiciel PC vous permet de créer des superpositions pour le système d'automatisation du bâtiment .
Cela vous permet de créer votre propre , algorithmes individuels , ne sont pas implémentés dans le logiciel ou le pilote firmware qui contrôle la série Domotique ehouse .
À cette fin, , nous fournissons aux utilisateurs avec les codes sources des logiciels (en Delphi 5) . Ils peuvent être compilés avec les nouvelles versions de Delphi ou utilisés pour d'autres langages de programmation .
Nous avons sciemment choisi cette versions archaïques car elles sont déjà disponibles gratuitement pour le programme amateur .
Ils fonctionnent aussi de manière fiable sur Windows XP , Vue , Windows 7 32 et 64 bits .
Ce logiciel est appelé eHouseLogAnalizer et ces demandes modèle journaux qui lisent des fichiers texte à jour .
Il peut être géré et contrôlé par KillWdt applications . exe .
Les principales caractéristiques de l'application:

  • Lecture du statut et aux noms de tous les pilotes
  • Lecture de l'état et entrez les noms de tous les conducteurs
  • Lire les mesures et les noms de tous les conducteurs de mesure des entrées
  • Charger toutes les données de la mémoire de programme interne , qui peuvent être traitées ultérieurement, par une application

L'application utilise l'état des fichiers créés dans des fichiers texte dans un répertoire ‘ logs / état / ‘ extension ‘ . statut ‘ .
Le fichier est en lecture seule dans le cas de changements dans la demande ehouse . exe .

Traitement des données sont chargées dans les Actes des instances suivantes ” ehouse_rm_em_hm ” répertoriés dans le tableau RM .

En plus , les données sont sauvegardées Gestionnaire de chaleur sur les variables suivantes:
bonfire_status: string ; / / Etat du feu de joie pour Gestionnaire de chaleur – Statut cheminée panneau de chauffage ehouse . exe
boiler_status: string ; / / Statut de la chaudière pour HM – statut de la ehouse panneau de chaudière . exe
Solar_status: string ; / / État du système solaire – statut de ehouse chauffage panneau solaire . exe
recuperator_status: string ; / / Etat de récupération , ventilation , chauffage de l'air – l'état de chauffage, de ventilation et de récupération de chaleur
HADC: array [0 . . 15] de la double ; / / Chaleur Températures gestionnaire – Température mesures Gestionnaire de chaleur
/ Indices des directeurs / chaleur pour un accès direct de la matrice HADC – Indices à température constante pour la lecture directe de la température Gestionnaire de chaleur
CONST HM_GWC = 3 ; / / GWC – Échangeur de chaleur souterrain
HM_KOM1 = 4 ; / / Cheminée Coat 1 – Veste Bonfire l'eau 1
HM_KOMKONV = 5 ; / / Cheminée konvekcyjne – feu de joie convection
HM_KOM2 = 6 ; / / Feu plan 2 – chemise d'eau feu 2 (sauvegarde)
HM_TWEWN = 7 ; / / Température ambiante interne – la température ambiante interne
HM_SOLAR = 9 ; / Sun Collector / – système solaire
HM_ZEWNPN = 8 ; Température / / Externe nord – température extérieure nord
HM_ZEWNPD = 1 ; Température / / Externe du sud – température extérieure sud
HM_KOC = 10 ; / / Température chaudière – température de la chaudière
HM_BANDOL = 11 ; / / CO / réservoir d'eau chaude vers le bas – chaude tampon de fond watter
HM_REQIN = 12 ; / / L'air pur récupérateur d'entrée – d'entrée d'air de récupération claire
HM_REQOUT = 13 ; / / Sortie récupérateur à domicile – heaten soufflent de l'air frais dans la chambre de récupération – température
HM_NAG = 14 ; / / Température contrôlée trois – valve unidirectionnelle pour le chauffage et pour les radiateurs – la température au bout de trois façons coupure de chauffe-eau ou autre système de chauffage
HM_REQWYC = 15 ; / / Accueil récupérateur extrait sale – récupération de la maison sale température d'échappement
HM_BANGORA = 2 ; / / Chauffage / eau chaude du réservoir gora – TOP tampon d'eau chaude
HM_BANSRO = 0 ; / / Chauffage / ballon d'eau chaude un moyen de – MOYEN-tampon d'eau chaude
HADCNames var: array [0 . . 15] de la chaîne ; / / Les noms des capteurs (entrées de mesure) HeatManagera
Basic EhouseLogAnalizer fonctions:
init_heat_temperature_names procédure ; / / Initialiser et / ou capteurs de température a lu les noms de HM
loadnames_rm procédure ; / Noms RoomManagerĂłw / charge (ehouse 1)
readethernetdevs procédure ; / / Lit les noms des pilotes Ethernet (ehouse 2)
fonction get_index_rm (str: string): integer ; / / Retourne l'index de la table à la recherche d'roomManagerami selon le statut de nom de fichier
fonction go (chr: char): boolean ; / / Retourne une valeur booléenne pour l'état de lecture
procédure adc_hm (str: string ; index: integer) ; / / Convertit la chaîne avec des températures enregistrées de l'état lu HeatManagera
procédure adc_rm (str: string ; index: integer) ; / / Convertit une chaîne de mesures analogiques lors de la lecture de l'état RoomManagerĂłw
gbs fonction (b: boolean): String ; / / Ecrire booléen sous forme de texte (0 , 1)
Fonction RMDeviceIndexByName (str: string): integer ; / / Retourne l'index de la table à la recherche d'RoomManagerami par nom du pilote
Fonction RMGetOutputStateNr (indice: entier ; OutputNr: integer): boolean ; / / Retourne le RM état de sortie [index] et le numéro de la sortie OutputNR
Fonction RMGetOutputState (indice: entier ; OutputName: string): boolean ; / / Retourne la RM état de sortie [index] et cria outputName
Fonction RMGetInputStateNr (indice: entier ; InputNr: integer): boolean ; / / Retourne le statut de l'entrée RM [Index] et le nombre de InputNr entrée
Fonction RMGetInputState (indice: entier ; InputName: string): boolean ; / / Retourne le statut de l'entrée RM [Index] et le nom de l'entrée InputName
Fonction RMGetTempNr (indice: entier ; InputNr: integer): double ; / / Retourne la température RM [Index] et le nombre de InputNr entrée
Fonction RMGetTemp (indice: entier ; InputName: string): double ; / / Retourne la température RM [Index] et le nom de l'entrée InputName
Fonction RMGetInvPercent (indice: entier ; InputName: string): double ; / / Retourne un pourcentage de mesure envers 100 % – x RM [Index] et le nom de la InputName entrée (par rapport à la tension d'alimentation du contrôleur)
Fonction RMGetInvPercentNr (indice: entier ; InputNr: integer): double ; / / Retourne un pourcentage de mesure envers 100 % – x RM [Index] et le nombre de InputNr entrée (par rapport à la tension d'alimentation du contrôleur)
Fonction RMGetPercent (indice: entier ; InputName: string): double ; / / Retourne un pourcentage de mesure [index] RM et le nom de la InputName entrée (par rapport à la tension d'alimentation du contrôleur)
Fonction RMGetPercentNr (indice: entier ; InputNr: integer): double ; / / Retourne un pourcentage de mesure envers 100 % – x RM [Index] et le nom de la InputNr entrée (par rapport à la tension d'alimentation du contrôleur)
Fonction RMGetDeviceOutputState (DEVNAME: string ; OutputName: string): boolean ; / / Retourne l'état du pilote de sortie appelé DEVNAME et appelé outputName
Fonction RMGetDeviceInputState (DEVNAME: string ; InputName: string): boolean ; / / Retourne l'état de l'entrée chauffeur le nom et le nom de l'entrée InputName DEVNAME
Fonction HMGetTemp (InputName: string): double ; / / Retourne la température de l'entrée de mesure appelé à HeatManagera InputName
HMGetTempNr fonction (InputNr: integer): double ; / / Retourne la température du numéro de l'entrée de mesure pour HeatManagera InputNr (1 . . 16)
fonction chk_int (st: string): integer ; / / Safe pour convertir une chaîne en un entier
procédure update_status ; / / Mettre à jour le statut de tous les pilotes dans le tableau (doit être exécuté périodiquement)
Test_save procédure ; / / Procédure d'essai pour écrire les résultats dans un fichier texte pour faciliter
Initialiser le conducteur et tous les noms sont faites lorsque l'application est lancée (FormCreate)
procédure TForm1 . FormCreate (Sender: TObject) ;
commencer
chemin: getcurrentdir = () ; / / Obtenir le chemin actuel du programme doivent être dans le répertoire % eHouse_DIR % \ BIN \
chemin: = StringReplace (chemin , ‘ \ Bin ‘ , ‘ \ ‘ , [Rfignorecase]) ; / / Récupère le chemin de l'application ehouse – définit le chemin d'application d'ehouse
loadnames_rm ; Les noms de contrôleur / / Charger ehouse1 – charge le nom des pilotes ehouse 1
init_heat_temperature_names ; / / Nom heatManagera charge des capteurs
readethernetdevs ; / / Charge les contrôleurs Ethernet noms ehouse – dispositif de lecture des noms ehouse 2
timer1 . Intervalle: = 3000 ; / Intervalle / Set tâche cyclique en millisecondes – Définit le temps de commencer à vérifier les données cycliques
timer1 . Enabled: = true ; / / Début des tâches automatiques (mise à jour d'état – inclut la vérification régulière des données
update_status ; / / Lit le premier statut
fin ;
Cyclique vérification des données est fait par la fonction Timer1 (Timer1Timer) fonctionne dans un intervalle de temps défini dans le paramètre Timer1 . Intervalle (en millisecondes) .
procédure TForm1 . Timer1Timer (Sender: TObject) ;
var tf: fichier texte ;
commencer
update_status ; / / Conversion de l'état du conducteur
Test_save ; / / Pour le test écrit tous les résultats dans un fichier texte
try / / Création d'un fichier de marqueurs pour l'application KillExec . exe qui peuvent ” regarder ” application avant accident
AssignFile (tf , chemin + ‘ logs \ log – Analizer . stp ‘ ) ;
/ / Indiquer WDT Cette demande fonctionne correctement en utilisant stampfile ” log log \ – Analizer . stp ”
réécrire (tf) ;
writeln (tf , ‘ 1 ‘ ) ;
enfin ;
CloseFile (tf) ;
fin ;
fin ;