Stromzähler auslesen und in Homematic integrieren - wget

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
acidbath
User
Beiträge: 21
Registriert: Mittwoch 26. Januar 2011, 19:10

Hallo EyDu,

Danke für Deine Antwort.
Würdest Du im konkreten Fall dann eine eigene, neue Exception werfen, oder einfach die aktuelle weiterreichen?

Code: Alles auswählen

IP = '192.168.1.2'
ADDRESS = 'http://{0}:8181/tclrega.exe'.format(IP)

def send_hm_command(command):
    try:
        url_response = urllib2.urlopen(ADDRESS, command)
    except urllib2.URLError:
        raise
    response = url_response.read()
    if response.find('<xml>'):
        return response.split('<xml>')[0]
Ich frage, weil mir die Code-Doppelung (ich hätte zweimal ein "except urllib2.URLError", sowohl in send_hm_command als auch der übergeordneten Funktion) etwas komisch vorkommt - deshalb griff ich vermutlich ursprünglich auch sofort auf die Variante mit dem zurückgegebenen Boolean zurück.

Gruß,
Daniel
BlackJack

@acidbath: Wenn man bei der aktuellen bleibt braucht man nichts weiterreichen sondern lässt einfach das ``try``/``except`` komplett weg. Nur ein ``raise`` im ``except`` macht doch gar keinen Sinn.
EyDu
User
Beiträge: 4881
Registriert: Donnerstag 20. Juli 2006, 23:06
Wohnort: Berlin

acidbath hat geschrieben:Würdest Du im konkreten Fall dann eine eigene, neue Exception werfen, oder einfach die aktuelle weiterreichen?
In dem konkreten Minibeispiel lohnt sich eine eigene Ausnahme nicht. Die würde ich, wie BlackJack schon geschrieben hat, einfach nach oben reichen lassen. Wenn es komplexer wird, dann musst du einfach mal selber etwas probieren. Über Vererbung kannst du ganze Hierarchien von Exceptions aufbauen und behandeln, das ist aber nicht immer sinnvoll.
Das Leben ist wie ein Tennisball.
acidbath
User
Beiträge: 21
Registriert: Mittwoch 26. Januar 2011, 19:10

@BlackJack: stimmt, ursprünglich hatte ich noch eine logging-Ausgabe im except-Block - ein nackiges raise bringt exakt gar nichts. :D

@EyDu: da ich bisher noch nicht mit eigenen Exceptions rumgespielt habe, nehme ich das jetzt mal zum Anlaß, mir das Thema etwas anzuschauen...
spirit22
User
Beiträge: 1
Registriert: Dienstag 3. Februar 2015, 14:12

Ich möchte nun aber die Werte nicht in eine MySQL-Datenbank schreiben lassen, sondern mit DB-Access der CCU verknüpfen.
Das habe ich aktuell schon mit den Daten meiner PV-Anlage.
Hallo,

ich habe genau das vor (PV Anlage) - komme aber nicht wirklich weiter. Kannst du mir deine Scripte zur Verfügung stellen?

Vielen Dank!
Antworten