Stocker dans un fichier un extrait de flux série.

Forum dédié aux problématiques concernant les scripts pour DomoticZ.
Entourez votre code et les logs avec les balises nommées code grâce au bouton <\>.
benbidouille
Messages : 102
Inscription : 11 déc. 2017, 11:48

Stocker dans un fichier un extrait de flux série.

Message par benbidouille »

Bonjour,

Débutant en domoticz, je souhaite extraire des données depuis un flux de données d'une liaison série pour alimenter Domoticz.

En fait il s'agit d'une pompe a chaleur qui crache un flux continu de données et paramètres environ toutes les minutes sur la ligne série, les data utiles sont toutes dans une seule ligne à plusieurs champs délimitée comme ceci avec un délimiteur de début et de fin de ligne.

>>> champ 1 champ 2 ................... <<<

Connecté au raspberry, et après un stty adhoc, je me suis plus a croire qu'il suffisait de faire un bash script avec un grep ">>>" /dev/ttyUSB pour stockage dans un fichier puis un second script lisant le fichier et procédant à d'extraction des champs (awk ou cut ..... ) pour alimenter Domoticz.

S'agissant d'un /dev et donc d'un flux continue de données, je ne récupère pas la main et ne m'en sort pas en script .sh pour alimenter un fichier avec la seule ligne recherchée.

Débutant niveau 0 en python et lua, je cherche une solution simple et souhaiterait éviter de devoir installer un environnement eclipse ou autre cross compilateur pour faire cette fonction simple en C que je maitrise mieux, cela me parait un peu lourd.

Comment faire une boucle de détection de début de ligne suivie de 3 chevrons dans un flux de donné et le stocké dans un fichier en Python, Lua ou autre ?

Je remercie par avance celui et ceux qui voudront bien me donner le petit coup de pouce pour extraire cette seule ligne.
RPI3 + WDPiDrive + UPS Pico HV3.0B HAT + Teleinfo USB (6) + 1Wire GPIO + DS18B20 (15)+ Gateway MySensor NRF24, Sensors , Relais ... + Gateway Velux .... + Gestion Pompe à Chaleur + NRFDoctor .... tout en DIY
papoo
Messages : 2029
Inscription : 10 janv. 2016, 11:29
Localisation : Limoges (87)
Contact :

Re: Stocker dans un fichier un extrait de flux série.

Message par papoo »

j'y connais pas grand chose mais en bash il semblerait qu'il faille utiliser stty
https://forum.hardware.fr/hfr/OSAlterna ... m#t1315670
domoticz beta/RaspBerry PI3 stretch
https://pon.fr github
benbidouille
Messages : 102
Inscription : 11 déc. 2017, 11:48

Re: Stocker dans un fichier un extrait de flux série.

Message par benbidouille »

Merci @papoo je vais y jeter un œil

Pour le moment j'ai commencé à faire un script de lecture de la liaison série en Python (mon premier) qui à l'air de tourner correctement lorsque lancé en manuel.

Code : Tout sélectionner

#!/usr/bin/python
# -*- coding: utf-8 -*-
#

import serial

def main():
        print("Waiting for PAC data ....")
        ser = serial.Serial('/dev/ttyUSB-MONPAC', 115200, bytesize=serial.EIGHTBITS,
                                                          parity=serial.PARITY_EVEN,
                                                          stopbits=serial.STOPBITS_ONE,
                                                          timeout=3)
        ser.open()

        while True:
                lecture=ser.readline()    # Lecture du port jusqu'au \n (retour ligne)
    #            print("%s" % lecture )
                if lecture[0:3] == ">>>":
                         break
        fichier = open("PAC_data.txt", "w")
        fichier.write(lecture)
        fichier.close()
        print("... Job Done, PAC_data.txt file saved")
        ser.close()
        return 0

if __name__ == '__main__':
        main()
Il me reste à comprendre comment les scripts python s’exécutent de manière automatique dans domoticz, je n'ai pas encore trouvé le truc et j'ai pour le moment au démarrage de domoticz les messages suivant:

2018-01-11 00:06:22.259 Python EventSystem: Module not found - Trying to initialize.
2018-01-11 00:06:22.261 Python EventSystem: Initalizing event module.

Je crois qu'il y a une histoire de load au démarrage de domoticz, il est tard ce sera pour demain maintenant.
RPI3 + WDPiDrive + UPS Pico HV3.0B HAT + Teleinfo USB (6) + 1Wire GPIO + DS18B20 (15)+ Gateway MySensor NRF24, Sensors , Relais ... + Gateway Velux .... + Gestion Pompe à Chaleur + NRFDoctor .... tout en DIY
Bruno17
Messages : 28
Inscription : 28 août 2015, 23:17

Re: Stocker dans un fichier un extrait de flux série.

Message par Bruno17 »

Bonjour,
Le mieux est de lancer ton programme via le raspberry avec la fonction crontab -e, tu détermineras ton délai entre 2 captures indépendamment de domoticz.
Raspberry PI2, aeon Labs, SRT321, 2xaeon meter, 5x fibaro ouverture porte, IPX800 avec extension, tele info, OZW672.1 sur PAC Atlantic alféa excellia duo, Netatmo temp, hum, press, anénomètre, pluvio.
benbidouille
Messages : 102
Inscription : 11 déc. 2017, 11:48

Re: Stocker dans un fichier un extrait de flux série.

Message par benbidouille »

Oui, Merci, c'est exactement ce que j'ai eu fait.
cdlt
RPI3 + WDPiDrive + UPS Pico HV3.0B HAT + Teleinfo USB (6) + 1Wire GPIO + DS18B20 (15)+ Gateway MySensor NRF24, Sensors , Relais ... + Gateway Velux .... + Gestion Pompe à Chaleur + NRFDoctor .... tout en DIY
Répondre