Surveiller les pannes de Mojo avec Python et Skype

Il s'agit d'un script que Python surveille lorsque l'imprimante 3D Mojo est arrêtée et vous avertit via Skype.

Surveillez les journaux de Mojo et envoyez tous les journaux via le chat Skype pour le moment. Quand il s'arrêtera, je passerai un appel.

Étant donné que Mojo s'arrête fréquemment dans un état redémarrable, je vous avertirai lorsqu'il s'arrête. Il ne redémarre pas automatiquement car il est nécessaire de vérifier visuellement les anomalies d'impression.

Bibliothèque utilisée

Comment utiliser

Définissez simplement le chemin d'accès au journal Mojo et aux contacts Skype Si vous l'exécutez, la surveillance commencera

référence

scénario

python


# -*- coding: utf-8 -*-

import time
import os
import re
import numpy as np
from watchdog.events import FileSystemEventHandler
from watchdog.observers import Observer
import Skype4Py

#Chemin vers le journal de Mojo
BASEDIR = "C:/ProgramData/Mojo/Mojo 3D Printer Software/Log/"
log_filename = "SystemLog.log"

#Informations de contact
user_name = 'Frend name'

#-------Exemples Skype4Py->callfriend.Copier depuis py(Pour appel)--------->
# This variable will get its actual value in OnCall handler
CallStatus = 0

# Here we define a set of call statuses that indicate a call
# has been either aborted or finished
CallIsFinished = set([Skype4Py.clsFailed, Skype4Py.clsFinished,
                       Skype4Py.clsMissed, Skype4Py.clsRefused,
                       Skype4Py.clsBusy, Skype4Py.clsCancelled]);

def AttachmentStatusText(status):
   return skype.Convert.AttachmentStatusToText(status)

def CallStatusText(status):
    return skype.Convert.CallStatusToText(status)

# This handler is fired when status of Call object has changed
def OnCall(call, status):
    global CallStatus
    CallStatus = status
    print 'Call status: ' + CallStatusText(status)

# This handler is fired when Skype attatchment status changes
def OnAttach(status):
    print 'API attachment status: ' + AttachmentStatusText(status)
    if status == Skype4Py.apiAttachAvailable:
        skype.Attach()
#<--Copiez et collez jusqu'à présent----------------------------------------------------

#Joindre les paramètres de chat à Skype
skype = Skype4Py.Skype()
if not skype.Client.IsRunning:
    print 'Starting Skype..'
    skype.Client.Start()
skype.Attach()
skype.OnAttachmentStatus = OnAttach
skype.OnCallStatus = OnCall
chat = skype.CreateChatWith(user_name)
chat.SendMessage('Mojo''s watchdog has been started!')

#Surveillance des journaux Mojo
class ChangeHandler(FileSystemEventHandler):

    def on_modified(self, event):
        if event.is_directory:
            return
        else:
            time.sleep(5)
            data = np.loadtxt(
               os.path.join(BASEDIR, log_filename),
               delimiter="\n", dtype=str)
            #-Dernière ligne à 1(Dernières informations du journal)Seulement sortie
            print(data[-1])
            chat.SendMessage(data[-1])
            #Passer un appel lorsque la pause est incluse
            n = len(re.findall('pause', data[-1])) + \
                len(re.findall('Paused', data[-1]))
            if n > 0:
			     skype.PlaceCall(user_name)
                while not CallStatus in CallIsFinished:
                    pass

#"Watchdog est très utile pour la surveillance des fichiers"Copiez le code de
if __name__ in '__main__':
    while 1:
        event_handler = ChangeHandler()
        observer = Observer()
        observer.schedule(event_handler, BASEDIR, recursive=True)
        observer.start()
        try:
            while True:
                time.sleep(1)
        except KeyboardInterrupt:
            observer.stop()
        observer.join()

Recommended Posts

Surveiller les pannes de Mojo avec Python et Skype
Programmation avec Python et Tkinter
Chiffrement et déchiffrement avec Python
Python et matériel - Utilisation de RS232C avec Python -
python avec pyenv et venv
Avec skype, notifiez avec skype de python!
Fonctionne avec Python et R
Communiquez avec FX-5204PS avec Python et PyUSB
Robot fonctionnant avec Arduino et python
Installez Python 2.7.9 et Python 3.4.x avec pip.
Réseau neuronal avec OpenCV 3 et Python 3
Modulation et démodulation AM avec python
Scraping avec Node, Ruby et Python
Grattage avec Python, Selenium et Chromedriver
Grattage avec Python et belle soupe
Surveillez les applications Web Python avec Prometheus
Surveillez les performances des applications Python avec Dynatrace ♪
Encodage et décodage JSON avec python
Introduction à Hadoop et MapReduce avec Python
[GUI en Python] PyQt5-Glisser-déposer-
Lire et écrire NetCDF avec Python
J'ai joué avec PyQt5 et Python3
Lire et écrire du CSV avec Python
Intégration multiple avec Python et Sympy
Coexistence de Python2 et 3 avec CircleCI (1.0)
Jeu Sugoroku et jeu d'addition avec Python
Modulation et démodulation FM avec Python
Construction de pipeline de données avec Python et Luigi
Calculer et afficher le poids standard avec python
Modulation et démodulation FM avec Python Partie 3
[Automation] Manipulez la souris et le clavier avec Python
Authentification sans mot de passe avec RDS et IAM (Python)
Installation de Python et gestion des packages avec pip
Utilisation de Python et MeCab avec Azure Databricks
POSTER diversement avec Python et recevoir avec Flask
Capturer des images avec Pupil, python et OpenCV
Fractal pour faire et jouer avec Python
Un mémo contenant Python2.7 et Python3 dans CentOS
Utilisez PIL ou Pillow avec Cygwin Python
Créer et décrypter du code César avec python
CentOS 6.4, Python 2.7.3, Apache, mod_wsgi, Django
Lire et écrire des fichiers JSON avec Python
Gérer les "années et mois" en Python
J'ai installé et utilisé Numba avec Python3.5
Analyse des tweets avec Python, Mecab et CaboCha
Lier Python et JavaScript avec le notebook Jupyter
Surveillance du trafic avec Kibana, ElasticSearch et Python
Modulation et démodulation FM avec Python Partie 2
Crypter avec Ruby (Rails) et décrypter avec Python
Téléchargez facilement des mp3 / mp4 avec python et youtube-dl!
Faites fonctionner des appareils électroménagers avec Python et IRKit
Nettoyer l'environnement python avec Pythonz et virtualenv
Pratiquer le web scraping avec Python et Selenium
Scraping Web facile avec Python et Ruby
Importer et exporter des images GeoTiff avec Python
J'utilise tox et Python 3.3 avec Travis-CI
Construction d'interface graphique heureuse avec électron et python
Utiliser Python et MeCab avec Azure Functions
Touchez AWS avec Serverless Framework et Python