Überwachen Sie Mojo-Ausfälle mit Python und Skype

Dies ist ein Skript, das Python überwacht, wenn der 3D-Drucker Mojo gestoppt wird, und Sie über Skype benachrichtigt.

Überwachen Sie die Protokolle von Mojo und senden Sie vorerst alle Protokolle per Skype-Chat. Wenn es aufhört, werde ich einen Anruf tätigen.

Da Mojo häufig in einem neu startbaren Zustand stoppt, werde ich Sie benachrichtigen, wenn es stoppt. Es wird nicht automatisch neu gestartet, da visuell nach Druckstörungen gesucht werden muss.

Bibliothek verwendet

Wie benutzt man

Legen Sie einfach den Pfad zum Mojo-Protokoll und zu den Skype-Kontakten fest Wenn Sie es ausführen, wird die Überwachung gestartet

Referenz

Skript

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

#Pfad zu Mojos Protokoll
BASEDIR = "C:/ProgramData/Mojo/Mojo 3D Printer Software/Log/"
log_filename = "SystemLog.log"

#Kontaktinformation
user_name = 'Frend name'

#-------Skype4Py-Beispiele->callfriend.Kopie von py(Für einen Anruf)--------->
# 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()
#<--Bisher kopieren und einfügen----------------------------------------------------

#Hängen Sie Chat-Einstellungen an Skype an
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!')

#Mojo-Protokollüberwachung
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)
            #-Letzte Zeile um 1(Neueste Protokollinformationen)Nur Ausgabe
            print(data[-1])
            chat.SendMessage(data[-1])
            #Rufen Sie an, wenn Pause enthalten ist
            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 ist sehr nützlich für die Dateiüberwachung"Kopieren Sie den Code von
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

Überwachen Sie Mojo-Ausfälle mit Python und Skype
Programmieren mit Python und Tkinter
Ver- und Entschlüsselung mit Python
Python und Hardware-Verwenden von RS232C mit Python-
Python mit Pyenv und Venv
Mit Skype benachrichtigen Sie mit Skype von Python!
Funktioniert mit Python und R.
Kommunizieren Sie mit FX-5204PS mit Python und PyUSB
Roboter läuft mit Arduino und Python
Installieren Sie Python 2.7.9 und Python 3.4.x mit pip.
Neuronales Netzwerk mit OpenCV 3 und Python 3
AM-Modulation und Demodulation mit Python
Scraping mit Node, Ruby und Python
Scraping mit Python, Selen und Chromedriver
Kratzen mit Python und schöner Suppe
Überwachen Sie Python-Webanwendungen mit Prometheus
Überwachen Sie die Leistung von Python-Anwendungen mit Dynatrace ♪
JSON-Codierung und -Decodierung mit Python
Hadoop-Einführung und MapReduce mit Python
[GUI in Python] PyQt5-Drag & Drop-
Lesen und Schreiben von NetCDF mit Python
Ich habe mit PyQt5 und Python3 gespielt
Lesen und Schreiben von CSV mit Python
Mehrfachintegration mit Python und Sympy
Koexistenz von Python2 und 3 mit CircleCI (1.0)
Sugoroku-Spiel und Zusatzspiel mit Python
FM-Modulation und Demodulation mit Python
Datenpipeline-Aufbau mit Python und Luigi
Berechnen Sie das Standardgewicht und zeigen Sie es mit Python an
FM-Modulation und Demodulation mit Python Part 3
[Automatisierung] Bearbeiten Sie Maus und Tastatur mit Python
Passwortlose Authentifizierung mit RDS und IAM (Python)
Python-Installation und Paketverwaltung mit pip
Verwenden von Python und MeCab mit Azure Databricks
POST verschieden mit Python und empfange mit Flask
Bilder mit Pupil, Python und OpenCV aufnehmen
Fraktal zum Erstellen und Spielen mit Python
Ein Memo mit Python2.7 und Python3 in CentOS
Verwenden Sie PIL oder Pillow mit Cygwin Python
Erstellen und entschlüsseln Sie Caesar-Code mit Python
CentOS 6.4, Python 2.7.3, Apache, mod_wsgi, Django
Lesen und Schreiben von JSON-Dateien mit Python
Umgang mit "Jahren und Monaten" in Python
Ich habe Numba mit Python3.5 installiert und verwendet
Tweet-Analyse mit Python, Mecab und CaboCha
Verknüpfung von Python und JavaScript mit dem Jupiter-Notizbuch
Verkehrsüberwachung mit Kibana, ElasticSearch und Python
FM-Modulation und Demodulation mit Python Part 2
Mit Ruby (Rails) verschlüsseln und mit Python entschlüsseln
Laden Sie einfach mp3 / mp4 mit Python und youtube-dl herunter!
Betreiben Sie Haushaltsgeräte mit Python und IRKit
Bereinigen Sie die Python-Umgebung mit Pythonz und virtualenv
Üben des Web-Scrapings mit Python und Selen
Einfaches Web-Scraping mit Python und Ruby
Importieren und Exportieren von GeoTiff-Bildern mit Python
Ich verwende Tox und Python 3.3 mit Travis-CI
Fröhliche GUI-Konstruktion mit Elektron und Python
Verwenden Sie Python und MeCab mit Azure-Funktionen
Berühren Sie AWS mit Serverless Framework und Python