1er script python + exécutable

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 <\>.
david86
Messages : 224
Inscription : 06 avr. 2018, 08:22

1er script python + exécutable

Message par david86 »

Bonjour à tous,
J'essaye, je découvre encore et encore domoticz... et les scripts.
J'essaye de me faire une interface avec telegram, sur le principe de telepot ou dtgbot qui n'est plus supporté à ce jour, c'est dommage je trouve car c'est très fluide telegram. M'enfin ;)

Avant de lancer une usine à gaz, dont je ne serai pas capable de faire, je chercher à faire un script en python qui exécute mon bot telegram et donc qui tourne en permanence sur mon rpi pi3.
Est-ce qu'un scritp python rendu exécutable (chmod) ne risque pas de faire planter un rpi ?
Actuellement le bout de script que j'ai écrit (modifié à partir de chose existante trouvée) fonctionne avec la commande sudo pyhton + chemin/nom.py et que j'arrête manuellement avec CTRL+C
J'ai vu qu'il est possible de le rendre exécutable et qu'il démarre à chaque redémarrage aussi du rpi.
Possible de le stopper à un moment donné quand même ? :)

Voici mon script :

Code : Tout sélectionner

import time
import os
import random
import datetime
import telepot
from telepot.loop import MessageLoop

def handle(msg):
    chat_id = msg['chat']['id']
    command = msg['text']

    print 'Got command: %s' % command

    if command == '/roll':
        bot.sendMessage(chat_id, random.randint(1,6))

#   elif command == '/pool':
#       os.system ('curl -s "http://login:mdp@IP:port/json.htm?type=graph&sensor=temp&idx=576&range=day"')
    elif command == '/time':
        bot.sendMessage(chat_id, str(datetime.datetime.now()))
    elif command == '/start':
        bot.sendMessage(chat_id,'Salut David !')
    elif command == '/cellier':
        os.system ('curl -s "http://login:mdp@IP:port/json.htm?type=command&param=switchlight&idx=41&switchcmd=Toggle"')
    elif command == '/potager':
        os.system ('curl -s "http://login:mdp@IP:port/json.htm?type=command&param=switchlight&idx=570&switchcmd=On"')

bot = telepot.Bot('bot-token')

MessageLoop(bot, handle).run_as_thread()
print 'I am listening ...'

while 1:
    time.sleep(10)
Lorsque je fait tourner ce script manuellement, ça fonctionne, quand je l'arrête j'ai parfois quelques lignes qui apparaissent que voici ci-dessous. Image

Le rendu sur telegram : Image

Merci pour vos conseils, la sécurisation d'un bon fonctionnement.

-rendre exécutable ce script et le faire tourner en permanence.
-comment le stopper si je veux le modifier ou l'arrêter tout simplement après l'avoir mis en exécutable
-pas de plantage du rpi
-pas de surcharge car script tourne en "arrière plan"

Merci et belle journée,
Pièces jointes
IMG_7321.jpg
IMG_7321.jpg (180.5 Kio) Consulté 711 fois
2023-07-20 06_06_59-Window.png
2023-07-20 06_06_59-Window.png (39.99 Kio) Consulté 711 fois
Raspberry Pi 3, Domoticz, RFXComm, contrôle RTS, contrôle SPOT PISCINE ;-), 2 inter Chacon 1000W, 2 inter CHACON 3000W, AEON Stick ZWAVE, 1 wall plug
1 WEMOS avec capteur pression
Boitier sonde + LED en cours...
Répondre