Fehlermeldungen via Pushover.net

Sie möchten ihren Automower in ihre Hausautomatisierung einbinden oder eine eigene App entwicklen? Hier wird die Schnittstelle zum Robonect H30x Modul beschrieben.
Antworten
ixs
Beiträge: 3
Registriert: Sa 27. Mai 2017, 17:10
Mäher: Gardena smart SILENO+
Firmware des Mähers (MSW): MSW 7.xx.xx
Herstellungsjahr: 2017
Robonect-Modul: Robonect Hx (Rev.4)
Robonect Firmware: 0.9e

Fehlermeldungen via Pushover.net

Beitrag von ixs » Fr 7. Jul 2017, 14:36

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)

Antworten

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 1 Gast