Seite 1 von 1

Fehlermeldungen via Pushover.net

Verfasst: Fr 7. Jul 2017, 14:36
von ixs
https://pushover.net ist ein Service für Pushmeldungen. Clients gibt es für Android, iOS, Chrome/Firefox/Safari Browser, macOS, Windows und Linux.

Hier ist mal ein kleiner Python client, der den Roboter abfragt und im Fall einer Fehlermeldung eine entsprechende Nachricht verschickt. Für Leute mit pushover Account sicher interessant.

Code: Alles auswählen

#!/usr/bin/python
# coding=utf-8

#
# Pushover error notification for robonect
#
# Copyright 2017 Andreas Thienemann, licensed under GPLv3+ 

host = '192.168.3.24'
user = None
pwd = None
po_token = 'eigenen_pushover_token_hier_einfuegen'
po_user = 'eigenen_pushover_user_hier_einfuegen'

import requests

def fetch_status(host, cmd, user=None, pwd=None):

    payload = {'cmd': 'status'}
    if user is not None and pwd is not None:
        payload.update(user=user, pwd=pwd)
    result = requests.get('http://{}/json'.format(host), params=payload)
    return result.json()


def parse_for_error(response):
    # 7: Error
    if not response['successful']:
        raise Exception('Remote call not succesful.')
    if response['status']['status'] == 7:
        name = response['name']
        error = response['error']['error_message']
        errortime = response['error']['time'][0:5]
        return (name, error, errortime)
    return None

def alert(error, po_token, po_user):
    payload = {
      'token': po_token,
      'user': po_user,
      'message' : '{} Fehler seit {}: {}.'.format(error[0], error[2], error[1]),
      'title': 'Robonect Fehlermeldung',
      'priority': '1',
    }

    requests.post('http://api.pushover.net/1/messages.json', data=payload)

response = fetch_status(host, 'status', user, pwd)
error = parse_for_error(response)
if error:
    alert(error, po_token, po_user)