Aha
Danke
Ankündigung
Einklappen
Keine Ankündigung bisher.
Googlewetter per Logik(urllib)
Einklappen
X
-
Wenn SN[3] kein Regex Match ist sonder durch die Initialisierung vielleicht vom Typ Float ist dann abruch um zu verhindern das SN[3].group fehlschlägtZitat von eckerho1 Beitrag anzeigen
Was ist das für ein Fehler bei dem die Googlewetter Logik hier abbricht?
Code:## Abbruch bei Fehler 5012|1|"str(type(SN[3])).find('SRE_Match') == -1"|""|""|0|0|0|0
Einen Kommentar schreiben:
-
Hallo Nils
Was ist das für ein Fehler bei dem die Googlewetter Logik hier abbricht?
Gruss, HolgerCode:## Abbruch bei Fehler 5012|1|"str(type(SN[3])).find('SRE_Match') == -1"|""|""|0|0|0|0
Einen Kommentar schreiben:
-
Bist ja auch kein Bärliner....
Aber vielleicht hilft ja Bärbel
LG
Einen Kommentar schreiben:
-
Ich weiß ich bin nicht gerade als Erklärbär geboren worden
Einen Kommentar schreiben:
-
Hallo
Nicht, dass ich kein Interesse hätte. Mir wars einfach zu hoch, habs nicht kapiert wie es im detail funktionieren soll.
Hoffe, dass ich es jetzt anhand des Beispiels verstehe und werde versuchen es einzubauen.
Danke! , Holger
Einen Kommentar schreiben:
-
Googlewetter per Logik(urllib)
Da ja irgendwie niemand einen Verwendungszweck für die nun schon des öfteren erwähnte Logikfunktion KNXUF_urllib hatte, hab ich mir gedacht mal ein kleines Beispiel dafür zu schreiben.
Die eigentliche Logikfunktion wird nur beim starten in die Variable SN[1] geladen und kann dann einfach über SN[1].open verwendet werden.
z.B. in diesem Beispiel ein
wird von Google's Wetter API das Wetter für den an E1 angebenen Ort geholt (Ortname oder PLZ). Über EN[2] kann ein Header an die Googleserver gesendet werden (Accept Language) der sagt welche Sprache gewünscht ist(2 Zeichen Länderkürzel - en/de/fr/es).Code:5012|0|"(EC[1] or EC[2]) and len(EN[1])>0"|"SN[1].open('http://www.google.com/ig/api?weather='+EN[1],lang=EN[2])"|""|9|0|2|0
Die Seite wird dann sowohl zum Debug an Ausgang 9, als auch auf SN[2] zur weiteren Verarbeitung gesendet.
Danach folgt eine (simple) Regex mit der die Inhalte als optionale Angaben in sogenannte Named-groups geteilt. Der Vorteil der optionalen Angaben ist, dass wenn ein Teil der Informationen fehlt oder anders als erwartet sind, schlägt die Abfrage NICHT fehl wie bei der HS Webabfrage.
Wenn ein bischen Zeit ist, ist angedacht das ganze 2 gestaffelt zu machen. Die erste Abfrage per urllib im Baustein holt erstmal vom KNX-Forenserver eine gültige Regex und führt erst danach die eigentliche Webabfrage durch. Versehen mit einer Kontrolle ob der Regex erfolgreich ist wäre auch möglich bei Versagen das aktuelle Regexmuster erneut vom Forenserver zu laden, und vielleicht auch diverse Info's mit zu übermitteln.
Dann könnte auf Forenserver Seite beim erhalten mehrerer dieser FAILED Meldungen eine Benachrichtigung an die Betreuer der Webabfrage geschickt werden, sodass diese das Regexmuster anpassen und die Abfrage nach kurzer Zeit wieder automatisch überall funktioniert. -- Ohne Experten und HS Neustart --
Die Werte an E1 und E2 können natürlich zur laufzeit geändert werden und aktualisieren sich sofort.Stichworte: -


Einen Kommentar schreiben: