Note de ce sujet :
  • Moyenne : 0 (0 vote(s))
  • 1
  • 2
  • 3
  • 4
  • 5
Falcon SDK 6 et Python
#1
Bonjour,

J'ai maintenant également utilisé le wrapper C# pour Python et il fonctionne également comme avec WinDev et Delphi.

Avant d'utiliser, la DLL signée du Falcon SDK doit être enregistrée sur l'ordinateur afin que Python puisse y accéder :
1. Copiez le dossier « Falcon SDK 6 Signé » dans votre dossier « Documents ».
2. C'est tout.


1. Installation de PythonNet :
  • Assurez-vous d'avoir Python (version 3.7–3.11) et un framework .NET compatible installés.
  • Installez PythonNet avec la commande :  pip install pythonnet
  • En cas de problèmes, des outils de développement comme Visual Studio Build Tools peuvent être nécessaires.
2. Version recommandée :
  • PythonNet fonctionne mieux avec Python 3.7 à 3.11.
3. Utilisation :
  • Après l'installation, utilisez le module clr pour charger et utiliser des assemblies .NET dans Python.
Les commandes sont identiques à celles de WinDev, mais la gestion des Assemblies .NET dans Delphi est un peu différente. Je vais maintenant reprendre quelques exemples de mon code source pour illustrer les commandes disponibles :

Utilisation des assemblies .NET dans Python avec PythonNet :
import clr
clr.AddReference(r'C:\Users\Username\Documents\Falcon SDK 6 Signiert\KNXlib.dll')

from KNXlib import KnxController
knxcontroller = KnxController()

Connectez-vous au gateway USB :
knxcontroller.ConnectUSB()

Connectez-vous à la passerelle IP :
knxcontroller.Connect("192.168.178.42", 3671, False)

Connectez-vous à la passerelle IP sécurisée :
knxcontroller.ConnectSecure("192.168.178.150", 3671, False, "1.1.243","test.knxkeys", "admin123!")

Chargement du fichier XML :
knxcontroller.LoadDptList("knxxml.xml")
Envoyer DPT1 :
knxcontroller.WriteBool("1/0/0" , True)

Envoyer DPT9.1 :
knxcontroller.WriteValueToDPT(Groupaddress, value as string, DPTupper value, DPTlower value)
knxcontroller.WriteValueToDPT("11/7/4", "20.5", 9, 1)

A lire :
knxcontroller.ReadValueAsync("11/7/4")

Envoi DPT5.1 :
knxcontroller.WriteValueToDPT("6/0/9", "90", 5, 1)

Envoi DPT5.4 :
knxcontroller.WriteValueToDPT("6/0/9", "240", 5, 4)

Lire DPT9.1 :
knxcontroller.ReadValue("11/7/4", 9, 1)

Envoyer la date actuelle :
knxcontroller.WriteDate("11/5/0")

Envoyer l'heure actuelle :
knxcontroller.WriteTime("11/5/1")

Envoyer la date actuelle en tant que DPT16 :
knxcontroller.WriteTimeAsText("11/6/1")


Voici le lien de téléchargement :
https://www.knx-board.org/download.php?f...rapper.zip
Répondre
#2
Bonjour,
j'ai légèrement modifié le wrapper afin qu'il dispose de plus de fonctionnalités.

Mise à jour vers la version 2.6
- Les informations sur l'adresse de groupe ainsi que l'unité DPT sont désormais transmises via le port TCP, à condition que le fichier XML soit disponible.
- Le codage pour l'envoi et la réception des données via TCP a été modifié de ASCII à UTF-8.
- L'appel de la méthode Version() renvoie désormais la version du pilote.

Des exemples simples pour Android Studio et Android MAUI sont également inclus, démontrant un contrôle via le port TCP/IP.

Lien de téléchargement :
https://www.knx-board.org/download.php?f...rapper.zip
Répondre
#3
Bonjour,

J'ai ajouté quelques nouvelles fonctionnalités, notamment des méthodes pour l'email, FTP et SFTP. Celles-ci simplifient grandement le transport des données, car elles rendent les processus correspondants plus simples.


Méthodes Email :

SendTextEmail(senderName: System.String, emailAddress: System.String, password: System.String, toAddress: System.String, subject: System.String, body: System.String)
Description :
Cette méthode envoie un email simple en texte brut à l'adresse du destinataire spécifiée, avec le sujet et le corps du message donnés.

SendHtmlEmail(senderName: System.String, emailAddress: System.String, password: System.String, toAddress: System.String, subject: System.String, htmlBody: System.String)
Description :
Cette méthode envoie un email formaté en HTML à l'adresse du destinataire spécifiée, avec le sujet et le contenu HTML donnés.

ReadEmailByIndex(emailAddress: System.String, password: System.String, emailIndex: System.Int32)
Description :
Cette méthode lit l'email à la position d'index spécifiée dans la boîte de réception du compte email donné.

GetEmailCount(emailAddress: System.String, password: System.String)
Description :
Cette méthode renvoie le nombre total d'emails dans la boîte de réception du compte email spécifié.

DeleteEmailByIndex(emailAddress: System.String, password: System.String, emailIndex: System.Int32)
Description :
Cette méthode supprime un email de la boîte de réception en fonction de l'index spécifié.


Méthodes FTP :

FtpClientUserData(newhost: System.String, newusername: System.String, newpassword: System.String)
Description :
Cette méthode définit les informations de connexion FTP (hôte, nom d'utilisateur et mot de passe) pour le client FTP.

UploadFtpFile(localFilePath: System.String, remoteFilePath: System.String)
Description :
Cette méthode télécharge un fichier depuis un chemin local vers le serveur FTP distant spécifié.

DownloadFtpFile(remoteFilePath: System.String, localFilePath: System.String)
Description :
Cette méthode télécharge un fichier depuis le serveur FTP distant vers le chemin local spécifié.

DeleteFtpFile(remoteFilePath: System.String)
Description :
Cette méthode supprime un fichier du serveur FTP distant.

ListFtpDirectory(remoteDirectory: System.String)
Description :
Cette méthode liste tous les fichiers du répertoire distant spécifié sur le serveur FTP.


Méthodes SFTP :

SFtpClientUserData(newhost: System.String, newport: System.Int32, newusername: System.String, newpassword: System.String)
Description :
Cette méthode définit les informations de connexion SFTP (hôte, port, nom d'utilisateur et mot de passe) pour le client SFTP.

UploadSftpFile(localFilePath: System.String, remoteFilePath: System.String)
Description :
Cette méthode télécharge un fichier depuis un chemin local vers le serveur SFTP distant spécifié.

DownloadSftpFile(remoteFilePath: System.String, localFilePath: System.String)
Description :
Cette méthode télécharge un fichier depuis le serveur SFTP distant vers le chemin local spécifié.

DeleteSftpFile(remoteFilePath: System.String)
Description :
Cette méthode supprime un fichier du serveur SFTP distant.

ListSftpDirectory(remoteDirectory: System.String)
Description :
Cette méthode liste tous les fichiers du répertoire distant spécifié sur le serveur SFTP.


Quelques exemples de code :
Code :
 string senderName = "KNXlib Send you a message";
 string email = "karl.mustermann@web.de";
 string password = "123456";
 string toAddress = "max.mustermann@web.de";
 string subject = "Visu Status";
 string body = "Dies ist eine Test E-Mail.";
          
 string sendResult = knxController.SendTextEmail(senderName, email, password, toAddress, subject, body + downloadResult);

Code :
 string senderName = "KNXlib Send you a message";
 string email = "karl.mustermann@web.de";
 string password = "123456";
 string toAddress = "max.mustermann@web.de";
 string subject = "Visu Status";
 string htmlBody = @"
                     <html>
                        <body>
                           <h1>Dies ist eine Test HTML E-Mail</h1>
                           <p>Dies ist der <b>HTML Inhalt</b> der E-Mail.</p>
                           <p>Weitere Informationen finden Sie <a href='https://mustermann.de'>hier</a>.</p>
                        </body>
                     </html>";

 string sendResult2 = knxController.SendHtmlEmail(senderName, email, password, toAddress, subject, htmlBody);

Code :
 knxController.FtpClientUserData("ftp://asfasrt4tfdyf.myfritz.net", "FTP Mustermann", "123456");
 var directoryList = knxController.ListFtpDirectory("/Daten");
 foreach (var file in directoryList)
 {
     Console.WriteLine(file);
 }
 var downloadResult = knxController.DownloadFtpFile("/Daten/readme.txt", "C:\\Users\\Guido\\Desktop\\downloaded.txt");

Code :
 knxController.SFtpClientUserData("hosting.vodafone.de", 22,"admin@dsafdasfc6stf.vodafone.de", "123456");
 var directoryList = knxController.ListSftpDirectory("public_html/");
 foreach (var file in directoryList)
 {
     Console.WriteLine(file);
 }
 var downloadResult2 = knxController.DownloadSftpFile("log.txt", "C:\\Users\\Guido\\Desktop\\downloaded.txt");


Lien de téléchargement v3.0 :
KNXlib.dll
Répondre


Atteindre :


Utilisateur(s) parcourant ce sujet : 2 visiteur(s)