From db06e812ee628ec59762b5e29af32238af7abc08 Mon Sep 17 00:00:00 2001 From: JuliusFreudenberger Date: Tue, 12 May 2020 22:29:44 +0200 Subject: [PATCH] Added ability to query for weather Uses meteomedia.de and a list of stations and their IDs to reply a fancy picture url with weather information. --- bot.py | 34 +- stations | 1037 ++++++++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 1067 insertions(+), 4 deletions(-) create mode 100644 stations diff --git a/bot.py b/bot.py index 2eaa565..b490219 100644 --- a/bot.py +++ b/bot.py @@ -1,6 +1,7 @@ import logging -import requests import re + +import requests from telegram import InlineQueryResultArticle, InputTextMessageContent, InlineKeyboardButton, InlineKeyboardMarkup from telegram.ext import Updater, CommandHandler, InlineQueryHandler, CallbackQueryHandler @@ -28,7 +29,7 @@ class Query: argument_names = re.findall(r' to | in | times ', request_tmp) arguments = re.split(r' to | in | times ', request_tmp) if not arguments[0].isdigit(): - reply = search_station(arguments[0]) + reply = search_vvs_station(arguments[0]) if len(reply) == 1: self.station_id = reply[0]['stationId'] else: @@ -77,7 +78,7 @@ def handle_multiple_stations_reply(update, context): del sent_multiple_station_message_ids[update.effective_chat['id']] -def search_station(query): +def search_vvs_station(query): request = requests.get("https://efa-api.asw.io/api/v1/station/?search=" + query) if request.status_code != 200: raise ServerCommunicationError @@ -121,7 +122,7 @@ def get_vvs_departures(query): reply.append("Next departures for station: " + request.json()[0]['stopName']) printed_departures = 0 for station in request.json(): - if station['direction'].casefold().find(query.destination.casefold()) != -1 : + if station['direction'].casefold().find(query.destination.casefold()) != -1: if query.line == '' or (query.line != -1 and station['number'] == query.line): reply.append( "Line " + station['number'] + " to \"" + station['direction'] + "\" at " @@ -154,6 +155,30 @@ def get_station_id_list(name): return request.json() +def search_weather_station(query: str): + station_file = open('stations', 'r') + for line in station_file: + if line.casefold().find(query.casefold()) != -1: + station_file.close() + return line + return 'none' + + +def handle_weather(update, context): + if len(context.args) == 0: + update.message.reply_text('Please provide a name!') + return + station_line = search_vvs_station(' '.join(context.args)) + if station_line == 'none': + update.message.reply_text('No weather station matching this name found!') + return + separator_index = station_line.find(' ') + update.message.reply_text('Weather for ' + station_line[separator_index+1:-1] + + ':\nhttp://wetterstationen.meteomedia.de/messnetz/vorhersagegrafik/' + + station_line[:separator_index] + '.png', + disable_notification=True) + + def error_callback(update, context): try: raise context.error @@ -172,6 +197,7 @@ def __main__(): inline_station_search_handler = InlineQueryHandler(inline_station_search) dispatcher.add_handler(inline_station_search_handler) dispatcher.add_handler(CommandHandler('vvs', handle_vvs)) + dispatcher.add_handler(CommandHandler('weather', handle_weather)) dispatcher.add_error_handler(error_callback) diff --git a/stations b/stations new file mode 100644 index 0000000..3199934 --- /dev/null +++ b/stations @@ -0,0 +1,1037 @@ +105050 Aachen-Orsbach +107481 Aalen-Stadtwerke +103090 Ahaus +103121 Ahlen/Westfalen +108250 Albstadt +198635 Albstadt-Lautlingen +196780 Aldersbach-Kriestorf +104420 Alfeld +190409 Alfhausen +192389 Alsfeld-Eifa +102710 Alt Ruppin +104970 Altdöbern +105810 Altenberg/Erzgebirge +105660 Altenburg/Thüringen +109540 Altenstadt +108320 Altensteig/Württemberg +193899 Altgeringswalde +198639 Altheim, Kreis Biberach +196474 Altomünster-Maisbrunn +191749 Alzey +195339 Amberg-Unterammersricht +102470 Amelinghausen +197415 Amerang-Pfaffing +100170 Amrum +109660 Andechs-Kloster +105200 Andernach +102910 Angermünde +190229 Anklam +107530 Ansbach +095550 Apolda +109440 Argenbühl/Allgäu +094290 Arnsberg-Neheim +194399 Arnstein-Müdesheim +104600 Artern +094610 Aschersleben +197209 Attenkam +193938 Aue +108520 Augsburg +102051 Aurich +097400 Backnang +099000 Bad Bellingen +191949 Bad Bergzabern +104271 Bad Berleburg-Hemschlar +191089 Bad Berleburg-Stünzel +106890 Bad Brambach-Kurpark +106900 Bad Brambach-Mineralquellen +106670 Bad Colberg +191869 Bad Dürkheim +107210 Bad Dürkheim (MG) +109130 Bad Dürrheim-Öfingen +106910 Bad Elster +193979 Bad Elster II +102360 Bad Fallingbostel +108951 Bad Griesbach - A. Hartl Resort +190493 Bad Harzburg +094501 Bad Harzburg-Burgberg +098101 Bad Herrenalb +105420 Bad Hersfeld +106580 Bad Kissingen +197699 Bad Kohlgrub (Rosshof) +194049 Bad Königshofen +191679 Bad Kreuznach +094720 Bad Lausick +104480 Bad Lauterberg +104820 Bad Liebenwerda +104300 Bad Lippspringe +193409 Bad Lobenstein +105260 Bad Marienberg +198149 Bad Mergentheim-Neunkirchen +093200 Bad Münder +106250 Bad Münster am Stein-Ebernburg +104890 Bad Muskau +192559 Bad Nauheim +106391 Bad Nauheim (MG) +191329 Bad Neuenahr-Ahrweiler +095340 Bad Orb +103330 Bad Pyrmont +099141 Bad Säckingen +103250 Bad Salzuflen +105481 Bad Salzungen +108330 Bad Teinach-Zavelstein +109410 Bad Waldsee +098220 Bad Wildbad +098210 Bad Wildbad-Sommerberg +109500 Bad Wörishofen +094320 Bad Wünnenberg/Aabach-Talsp. +108060 Baden-Baden Brenner's Parkhotel +198369 Baden-Baden-Geroldsau +108200 Baiersbronn +109431 Balderschwang (MG) +198633 Balingen-Bronnhaupten +108241 Balingen-Heselwangen +101140 Baltrum +106750 Bamberg +103630 Barleben +190449 Barsinghausen-Hohenbostel +101800 Barth +103760 Baruth +105060 Barweiler +190379 Bassum +105470 Bebra +192909 Beerfelden +109020 Belchen/Schwarzwald +103120 Belm +109670 Benediktbeuern-Kloster +101160 Bensersiel +096460 Bensheim +190709 Berge +102380 Bergen-Hohne +105270 Bergisch Gladbach +103870 Berlin-Adlershof +103880 Berlin-Buch +103810 Berlin-Dahlem +103800 Berlin-Eiskeller +103940 Berlin-Insulaner/Sternwarte +190889 Berlin-Kaniswall +103780 Berlin-Kreuzberg +190888 Berlin-Marzahn +103910 Berlin-Müggelsee +103820 Berlin-Tegel +103840 Berlin-Tempelhof +103900 Berlin-Wannsee +193629 Bernburg-Strenzfeld +103180 Bersenbrück +193909 Bertsdorf-Hörnitz +107040 Berus/Saarland +103750 Bestensee +190468 Bevern +104340 Beverungen-Drenke +104310 Beverungen/Weser +103270 Bielefeld +190927 Bielefeld-Deppendorf +093270 Bielefeld-Sparrenburg +097020 Bietzen +193304 Birx/Rhön +094680 Bitterfeld-Wolfen +191609 Blankenrath +104061 Bocholt +190994 Bochum +094110 Bochum-Harpen +094040 Bochum-Lottental +104110 Bochum-Sundern +102490 Boizenburg +101610 Boltenhagen +105170 Bonn-Rüngsdorf +190989 Borken (Westfalen) +093091 Borken/Westfalen (MG) +101100 Borkum +190276 Borkum-Flugplatz +107120 Bostalsee +103710 Brandenburg an der Havel +106110 Brauneberg-Juffer +106120 Brauneberg/Mosel +104520 Braunlage +104521 Braunlage-Wurmberg +103480 Braunschweig +103470 Braunschweig-Flughafen +098000 Breisach am Rhein +099070 Breitnau/Schwarzwald +102240 Bremen-Flughafen +101290 Bremerhaven +101330 Bremerhaven (MG) +101390 Bremervörde +107190 Bretten +191049 Brilon-Thülen +104530 Brocken +100420 Brodersby-Schoenhagen +106130 Büchel +198109 Buchen (Odenwald) +198669 Buchenbach +103350 Bückeburg +103830 Buckow/Märkische Schweiz +098050 Bühl/Baden +103281 Bünde +104250 Büren-Ahden/Flughafen PAD +095370 Burgwald +192169 Burgwald-Bottendorf +100300 Büsum +101281 Butjadingen +101440 Buxtehude +105740 Carlsfeld +104140 Castrop-Rauxel +103430 Celle +105770 Chemnitz +109820 Chieming +106700 Coburg (MG) +192279 Cölbe +190769 Coschen +094860 Coswig/Sachsen +104960 Cottbus +101310 Cuxhaven +193029 Dachwig +095090 Dahlemer Binz +104770 Dahme-Technikhandel Kreißler +101540 Dahme/Ostsee +096430 Darmstadt +192809 Darmstadt II +100800 Darßer Ort +095070 Daun +095071 Daun-Gemünden +094660 Delitzsch +102220 Delmenhorst +193509 Demker +101870 Demmin +104741 Dessau-Flugplatz 'Hugo Junkers' +106150 Deuselbach +193936 Deutschneudorf-Brüderwiese +103210 Diepholz +106161 Dill/Hunsrück +192329 Dillenburg +196339 Dillingen/Donau-Fristingen +107030 Dillingen/Saar +108722 Dingolfing +193929 Dippoldiswalde-Reinberg +104900 Doberlug-Kirchhain +108260 Doline Degerfeld +098090 Dollenberg +196019 Donauwörth-Osterweiler +101500 Dörnick +108160 Dornstetten +190376 Dörpen +104170 Dortmund- Technische Universität +104880 Dresden-Flughafen +104870 Dresden-Hosterwitz +104881 Dresden-Rossendorf +193869 Dresden-Strehlen +193529 Drewitz (bei Burg) +190990 Duisburg-Baerl +094080 Duisburg-Hochfeld +108041 Durbach +095040 Düren +094000 Düsseldorf-City +104000 Düsseldorf-Flughafen +104002 Düsseldorf-Messe +104001 Düsseldorf-Uni +105930 Ebersbach-Neugersdorf +197039 Ebersberg-Halbing +092900 Eberswalde +194479 Ebrach +095750 Ehrenfriedersdorf +196059 Eichstätt-Landershofen +105400 Eisenach +104620 Eisleben-Reifen Ziegler +198329 Ellwangen-Rindelbach +101491 Elmshorn-Stadtwerke +101300 Elpersbüttel +196119 Elsendorf-Horneck +094910 Elstra +106311 Eltville a. Rhein-Kloster Eberbach +198589 Elzach-Fisnacht +102000 Emden-Flugplatz +198569 Emmendingen-Mundingen +104041 Emmerich-Elten +103160 Emsdetten +093190 Emstek +109040 Endenburg/Schwarzwald +190939 Ennigerloh-Ostenfelde +105830 Eppendorf +198209 Eppingen-Elsenz +106170 Erbeskopf/Hunsrück +190049 Erfde +105540 Erfurt-Flughafen +104031 Erkelenz +095700 Erlabrunn-Klinik/Erzgebirge +095730 Erlbach/Vogtland +107690 Eschenfelden/Frankenalb +107890 Eschlkam +192249 Eschwege +094460 Eschwege +105030 Eschweiler +191029 Eslohe +104100 Essen +107381 Esslingen am Neckar +106200 Eßweiler +108000 Europapark Rust +196739 Falkenberg +102460 Fassberg +090590 Fehmarn-Staberhuk +100550 Fehmarn-Westermarkelsdorf +090580 Fehmarn-Wulfener Hals +109080 Feldberg im Schwarzwald +109180 Feldberg-Feldberger Hof +102820 Feldberg/Mecklenburg +106350 Feldberg/Taunus +107401 Fellbach +107560 Feuchtwangen-Heilbronn +105780 Fichtelberg +194619 Fichtelberg/Ofr.-Hüttstadl +109550 Fischen/Allgäu +105380 Frankenberg/Eder +093990 Frankfurt (Oder) +192755 Frankfurt-Westend +106370 Frankfurt/Flughafen +098081 Freiamt +190309 Freiburg (Elbe) +098020 Freiburg i.Br.-Hans von Rudloff +108030 Freiburg im Breisgau +108040 Freiburg-Ebnet +098021 Freiburg-Munzingen +107070 Freisener Höhe +094870 Freital +198139 Freudenberg/Main-Boxtal +108150 Freudenstadt +108140 Freudenstadt-Langenwald +108190 Freudenstadt-Marktplatz +195321 Freystadt-Oberndorf +109360 Friedrichshafen (MG) +198789 Friedrichshafen-Unterraderach +107100 Friedrichsthal/Saar +107041 Friedrichweiler +095221 Friesenhagen +102100 Friesoythe-Altenoythe +104390 Fritzlar +104370 Fritzlar-Lohne Reifen Klein +094160 Fröndenberg-Hohenheide MG +104161 Fröndenberg-Mitte +105360 Fulda +109990 Funtensee-Wolfgang Gröbl +108950 Fürstenzell +107620 Fürth +109250 Gaienhofen +103590 Gardelegen +109630 Garmisch-Partenkirchen +109640 Garmisch-Partenkirchen (MG) +193839 Garsebach b. Meissen +101451 Geesthacht +105000 Geilenkirchen +106280 Geisenheim +198678 Geisingen +107770 Gelbelsee +190969 Geldern-Walbeck +104130 Gelsenkirchen-Westfälische Hochschule +103650 Genthin +105670 Gera +097260 Germersheim +108061 Gernsbach-Kaltenbronn +109100 Gersbach/Schwarzwald +094300 Gevelsberg +191014 Gevelsberg-Oberbröking +105320 Gießen +095320 Gießen-Botanischer Garten +095330 Gießen-Linden +192289 Gilserberg-Moischeid +100330 Glücksburg-Meierwik +101000 Göhren/Rügen +101680 Goldberg +106240 Göllheim +194859 Gollhofen +094990 Görlitz +104990 Görlitz-Flugplatz +099142 Görwihl-Segeten +105510 Gotha-Stadtwerke +108720 Gottfrieding +104440 Göttingen +104450 Göttingen +190262 Grabow (Kläranlage Fahlenkamp) +194939 Gräfenberg-Kasberg +196299 Grainet-Rehberg +190109 Grambek +190589 Grambow-Schwennenz +102010 Greetsiel +101840 Greifswald +100970 Greifswalder Oie +100990 Greifswalder Oie/Leuchtturm +105680 Greiz +105090 Grevenbroich +096420 Griesheim +093020 Gronau/Westfalen +190209 Groß Lüsewitz +101600 Groß Schwansee +102180 Großenkneten +190377 Großenkneten II +107910 Großer Arber +108961 Großer Falkenstein +198269 Großerlach-Mannenweiler +109690 Grosshartpenning +192677 Gründau-Breitenborn +102890 Grünow +108611 Grünwald-Bavaria Filmstadt +094980 Guben +103410 Gut Sunder +104910 Guteborn/Lausitz +106160 Hahn/Hunsrück +108990 Haidmühle +104860 Hainichen +094551 Halberstadt +103580 Haldensleben +104650 Halle-Trotha +103290 Halle/Westfalen +103420 Hambühren-Ovelgönne +101470 Hamburg-Flughafen +190269 Hamburg-Neuwiedenthal +101450 Hamburg-Veddel +093320 Hameln - GWS Stadtwerke Hameln GmbH +190429 Hameln-Hastenbeck +103380 Hannover-Flughafen +103390 Hannover-Messe +108500 Harburg (Schwaben) +091260 Harlesiel-Flugplatz +105850 Hartha-Tharandt +104580 Harzgerode +190039 Hattstedt +105120 Hatzenport/Mosel +103110 Havixbeck-Tilbeck +198529 Hechingen +190766 Heckelberg +107320 Heidelberg-Universität +108401 Heidenheim/Brenz +104470 Heilbad Heiligenstadt +107370 Heilbronn +107440 Heilbronn-Wartberg +196569 Heilbronn/Neckar +101630 Heiligendamm +105230 Heimbach/Eifel +194599 Heinersreuth-Vollhof +191069 Heinsberg-Schleiden +109010 Heitersheim-Jürgen Ehret +100140 Helgoland-Oberland +100150 Helgoland-Südhafen +190471 Helmstedt-Emmerstedt +104120 Hemer +103801 Hennigsdorf-Nord +198429 Hermaringen-Allewind +105630 Hermsdorf/Thüringen +108230 Herrenberg +107631 Hersbruck +190494 Herzberg am Harz +104611 Hettstedt-Kolping-Berufsbildungswerk +100850 Hiddensee-Dornbusch +100860 Hiddensee-Dünenheide +190129 Hiddensee-Vitte +191289 Hilgenroth +107140 Hilst +099120 Hinterzarten +109140 Höchenschwand +105940 Hochwald +106850 Hof +094420 Hofgeismar +096341 Hofheim am Taunus +109620 Hohenpeißenberg +108350 Hohenstadt/Schwäbische Alb +109240 Hohentwiel +105340 Hoherodskopf/Vogelsberg +100380 Hohn +190089 Hohwacht +104760 Holzdorf +197359 Holzkirchen +109680 Holzkirchen MG +104412 Holzminden-Silberborn +103010 Hoogstede-Kalle +101180 Hooksiel +109510 Hopferau/Allgäu +108100 Hornisgrinde +198361 Hornisgrinde (DWD) +100230 Hörnum/Sylt +101250 Horumersiel/Wangerland +104411 Höxter +104950 Hoyerswerda +191339 Hümmerich +100260 Husum +093170 Ibbenbüren +106180 Idar-Oberstein +108010 Ihringen +104550 Ilsenburg +198189 Ingelfingen-Stachenhausen +108600 Ingolstadt (Flugplatz) +099440 Isny +104070 Issum +091420 Itzehoe +101420 Itzehoe-Flugplatz +109270 Iznang-Mole +193149 Jena (Sternwarte) +104750 Jessen/Elster +193659 Jeßnitz +109200 Jestetten +101121 Juist-Flugplatz +100920 Juliusruh/Rügen +104840 Kabelsketal +194309 Kahl/Main +104270 Kahler Asten +107470 Kaisersbach-Cronhütte +191859 Kaiserslautern +191169 Kall-Sistig +105460 Kaltennordheim +105080 Kalterherberg +100910 Kap Arkona (Rügen) +190219 Karlshagen +107260 Karlsruhe +104361 Kassel +104360 Kassel-Calden +105560 Katzhütte +197229 Kaufbeuren-Oberbeuren +094140 Kemnader See +109460 Kempten +197910 Kiefersfelden-Gach +100460 Kiel-Holtenau +100470 Kiel/Holtenau Airport +100440 Kiel/Leuchtturm +198234 Kirchberg/Jagst-Herboldshausen +190189 Kirchdorf (Insel Poel) +096100 Kirchheimbolanden +107090 Kirkel +107150 Kirrberg +099430 Kißlegg im Allgäu +194809 Kitzingen +193199 Kleiner Inselsberg +190849 Klettwitz +104020 Kleve +108900 Klingenbrunn-Bahnhof +102660 Klink/Müritz +108180 Klippeneck +193789 Klitzschen (Mockrehna) +095160 Koblenz-EVM +105110 Köln-City +105290 Köln-Porz-Wahn-Reifen Johann +191093 Köln-Stammheim +105130 Köln/Bonn-Flughafen +108170 Königsfeld im Schwarzwald +104560 Königshütte/Harz +105190 Königswinter-Heiderhof +109290 Konstanz +109320 Konstanz-Dettingen +109280 Konstanz-Südkurier +196069 Kösching +193709 Köthen (Anhalt) II +104850 Köthen/Anhalt +094050 Krefeld +193745 Kreipitzsch bei Bad Kösen +109370 Kressbronn/Bodensee +106730 Kronach +109160 Krunkelbachhütte +193849 Kubschütz +107710 Kümmersbruck +102670 Kyritz +101720 Laage +107250 Ladenburg +108050 Lahr +107900 Lalling +102650 Land Fleesensee +097320 Landau in der Pfalz +108570 Landsberg/Lech +196481 Landshut-Reithof +104400 Landwehrhagen +106390 Langen +190789 Langenlipsdorf +193299 Langenwetzendorf-Göttendorf +101150 Langeoog +109461 Lauben/Oberallgäu +108370 Laupheim +108560 Lechfeld +100220 Leck +093110 Legden +104490 Leinefelde +104710 Leipzig-City +104690 Leipzig-Flughafen +104700 Leipzig-Stadtwerke +105251 Lennestadt-Sauerland Pyramiden +191084 Lennestadt-Theten +190529 Lenzen (Elbe) +198674 Lenzkirch-Ruhbühl +109450 Leutkirch-Herlazhofen +105910 Lichtenhain-Mittelndorf +193934 Lichtentanne +190480 Liebenburg-Othfresen +109400 Lindau-Bad Schachen +103930 Lindenberg +109420 Lindenberg/Allgäu +103050 Lingen +190949 Lippstadt-Bökenförde +100200 List/Sylt +100160 List/Sylt-Ellenbogen +094970 Löbau +109220 Löffingen/Schwarzwald +192410 Löhnberg-Obershausen +103280 Löhne +194359 Lohr(Main)-Halsbach +190394 Löningen +109070 Lörrach +097030 Losheim am See +105760 Lößnitz-Reifen Oeser +093231 Lübbecke +190809 Lübben-Blumenfelde +102030 Lübbertsfehn +101560 Lübeck +101590 Lübstorf +101670 Lübz +102530 Lüchow +103761 Luckenwalde +101990 Luckow-Rieth +104180 Lüdenscheid +190931 Lüdinghausen-Brochtrup +097200 Ludwigsburg +107141 Ludwigswinkel +104330 Lügde-Paenbruch +106570 Lülsfeld +092460 Lüneburg +103610 Magdeburg +106950 Mähring +109340 Mainau-Blumeninsel +191684 Mainz-Lerchenberg +196959 Maisach-Galgen +196149 Mallersdorf-Pfaffenberg +191569 Manderscheid +107290 Mannheim +107300 Mannheim-Flugplatz +103960 Manschnow +108020 March/Breisgau +105790 Marienberg +105761 Marienberg-Kühnhaide +196099 Markt Erlbach-Mosbach +094130 Marl-Smith u. Nephew +102640 Marnitz +193264 Martinroda +105590 Masserberg +104951 Mattendorf +099080 Maulburg +109380 Meckenbeuren +104290 Medebach +094310 Medebach-Schlossberg +105802 Meerane +109330 Meersburg/Bodensee +193703 Mehringen +191091 Meinerzhagen-Redlendorf +105480 Meiningen +190271 Memmingen +109470 Memmingen +190579 Menz +103041 Meppen +198499 Merklingen +108270 Meßstetten +196949 Metten +103171 Mettingen-Schlickelde +198469 Metzingen +192899 Michelstadt +106480 Michelstadt-Vielbrunn/Odenwald +190319 Mittelnkirchen-Hohenfelde +197930 Mittenwald-Buckelwiesen +194919 Möhrendorf-Kleinseebach +191088 Mönchengladbach +104030 Mönchengladbach-Flughafen +191397 Montabaur +193049 Moorgrund-Gräfendorf-Nitzendorf +105730 Morgenröthe-Rautenkranz +190469 Moringen-Lutterbeck +104670 Mücheln (Geiseltal) +107360 Mühlacker +097360 Mühlacker +108750 Mühldorf am Inn +192989 Mühlhausen-Görmar +198709 Müllheim +108090 Mummelsee +190729 Müncheberg +108700 München-Flughafen +098620 München-Giesing +098670 München-Museumsturm +108650 München-Neuhausen +108612 München-ÖBZ +198549 Münsingen-Apfelstetten +103150 Münster/Osnabrück +103130 Münster/Westfalen +102690 Müritz-Nationalpark +107780 Nabburg-Reifen Köppl +096860 Naila +191509 Nastätten +103730 Nauen-Neukammer +095601 Naumburg/Saale +109570 Nebelhorn +105250 Netphen-Bell Oil Tankstelle +095060 Nettersheim +105300 Neu-Anspach-Reifen Löhr +105370 Neu-Ulrichstein +198389 Neubulach-Oberhaugstett +195149 Neuburg an der Kammel-Langenhaslach +108530 Neuburg/Donau +109000 Neuenburg am Rhein +098200 Neuenbürg/Enz +104200 Neuenrade +101170 Neuharlingersiel +105570 Neuhaus am Rennweg +109231 Neuhausen ob Eck Flugplatz +106460 Neuhütten/Spessart +192309 Neukirchen-Hauptschwenda +095760 Neukirchen/Erzgebirge +191129 Neunkirchen-Seelscheid-Krawinkel +191272 Neunkirchen-Wellesweiler +107110 Neunkirchen/Saar +102700 Neuruppin +094060 Neuss +194934 Neustadt am Kulm-Filchendorf +104481 Neustadt/Harz +102780 Neustrelitz +106380 Nidderau +191109 Nideggen-Schmidt +107430 Niederstetten +191699 Niederwörresbach +190417 Nienburg +091140 Norden-Norddeich +101130 Norderney +104210 Nordhelle +101360 Nordholz +103100 Nordhorn-Schulzentrum Deegfeld +105020 Nörvenich +193904 Nossen +099051 Notschrei/Schwarzwald +198129 Notzingen +095161 Nürburgring +107630 Nürnberg +195309 Nürnberg-Netzstall +197311 Oberhaching-Laufzorn +105500 Oberhof/Thüringer Wald +096240 Obermoschel +109430 Oberstaufen/Allgäu +109480 Oberstdorf +109631 Oberstdorf Sprungschanze +109530 Oberstdorf-Birgsau +198229 Obersulm-Willsbach +195439 Oberviechtach +105840 Oberwiesenthal +105960 Oderwitz-Rodelbahn +105950 Oderwitz/Dorf +093260 Oerlinghausen +106410 Offenbach +098040 Offenburg +198449 Ohlsbach +107420 Öhringen +193013 Olbersleben +094220 Olpe/Biggesee +191529 Olsdorf +103740 Oranienburg-Lehnitz +105070 Ormont-Raiffeisen +107020 Orscholz-Reifen Kiefer +104800 Oschatz +103172 Osnabrück +190069 Ostenfeld (Rendsburg) +105650 Osterfeld +102230 Osterholz-Scharmbeck +194007 Ostheim v.d. Rhön +102090 Ostrhauderfehn +101311 Otterndorf-Nordseebad +197599 Oy-Mittelberg-Petersthal +193589 Pabstorf +190101 Padenstedt +102070 Papenburg +101660 Parchim +195724 Parsberg-Eglwang +100190 Pellworm +101520 Pelzerhaken +101950 Penkun/Vorpommern +107000 Perl-Nennig +191779 Perl-Nennig (II) +102630 Perleberg +108220 Pforzheim +198237 Pforzheim-Ispringen +099501 Pfronten +198685 Pfullendorf +105451 Philippsthal/Werra +198055 Piding +191889 Pirmasens +105880 Pirna +105690 Plauen +195323 Pommelsbrunn-Mittelburg +103230 Porta Westfalica +107670 Postbauer-Heng +103790 Potsdam +103770 Potsdam-RBB +195919 Prackenbach-Neuhäusel +095101 Pulheim-Brauweiler +100930 Putbus/Rügen +193701 Quedlinburg +094630 Querfurt +193731 Querfurt-Mühle Lodersleben +101460 Quickborn +109260 Radolfzell-Mettnau +190909 Rahden-Varl +090950 Rambin/Rügen +106140 Ramstein +098060 Rastatt +105901 Rathen-Kurort +095900 Rathmannsdorf +102860 Rattey-Schloss +098700 Regen/Bayer.Wald +107760 Regensburg-Nord +190381 Rehlingen-Ehlbeck +105801 Reichenbach/Vogtland +191059 Reichshof-Eckenhagen +196005 Reimlingen +105803 Reinsdorf/Sachsen +197959 Reit im Winkl +191079 Remscheid-Lennep +095150 Rengsdorf +198409 Renningen-Ihinger Hof +198349 Rheinau-Memprechtshofen +103060 Rheine-Bentlage +198729 Rheinfelden +107310 Rheinstetten +101790 Ribnitz-Damgarten +104810 Riesa +093220 Rietberg +103950 Rietz-Neuendorf +103300 Rinteln +104830 Rochlitz +193291 Rockendorf +106230 Rockenhausen +195345 Röllbach +197421 Rosenheim +101710 Rostock +190374 Rotenburg (Wümme) +107650 Roth-Fliegerhorst +109210 Rothaus-Brauerei +195119 Rothenburg ob der Tauber +108240 Rottenburg +099130 Rottweil +198609 Rottweil II +105610 Rudolstadt +105490 Ruhla +192519 Runkel-Ennerich +191809 Ruppertsecken +107080 Saarbrücken +191279 Saarbrücken-Burbach +198249 Sachsenheim +196279 Saldenburg-Entschenreuth +193999 Sandberg +105191 Sankt Augustin-Hochschule +192869 Schaafheim-Schlierbach +104410 Schauenburg-Elgershausen +108080 Schauinsland-Bergstation +109421 Scheidegg/Allgäu +104500 Schierke/Harz +105040 Schleiden-Schöneseiffen +105640 Schleiz +100350 Schleswig +100370 Schleswig-Jagel +100360 Schleswig-Schloss Gottorf +103220 Schloss Holte-Stukenbrock +192569 Schlüchtern-Herolz +193259 Schmalkalden +104280 Schmallenberg-Westernbödefeld +193289 Schmieritz-Weltwitz +105520 Schmücke +191349 Schneifelforsthaus +108221 Schömberg/LK Calw +109090 Schönau im Schwarzwald +103850 Schönefeld-Flughafen +194405 Schonungen-Mainberg +195849 Schorndorf-Knöbling +192429 Schotten +198309 Schwäbisch Gmünd-Weiler +107451 Schwäbisch Hall +107450 Schwäbisch Hall-Kochendörfer +195414 Schwandorf +193269 Schwarzburg +105700 Schwarzenberg/Erzgebirge +098370 Schwendi +101620 Schwerin +105890 Sebnitz +091501 Seedorf (Kreis Segeberg) +102610 Seehausen +098070 Seelbach/Ortenaukreis +190479 Seesen +194292 Selb-Lauterbach/Oberfranken +104010 Selfkant +197459 Siegsdorf-Höll +198649 Sigmaringen-Laiz +197425 Sigmarszell-Zeisertsweiler +197179 Simbach/Inn +191615 Simmern-Wahlbach +198769 Singen +097350 Sinsheim +094330 Soest +193889 Sohland/Spree +104150 Solingen-Krahenhöhe +102350 Soltau +102351 Soltau-Wasserwerk +105580 Sonneberg-Neufang +108300 Sonnenbühl +109520 Sonthofen-Breiten +109490 Sonthofen-Reifen Fastner +192229 Sontra +107200 Speyer +101190 Spiekeroog +109790 Spitzingsattel +109780 Spitzingsee +109980 St. Bartholomä (Königssee) +108130 St. Georgen im Schwarzwald +100280 St. Peter-Ording +101430 Stade +103370 Stadthagen +104630 Staßfurt +190299 Steinau, Kr. Cuxhaven +093060 Steinfurt-FH Münster +190149 Steinhagen-Negast +193699 Stiege +108360 Stötten +094070 Straelen +101820 Stralsund +107880 Straubing +106290 Stromberg +099190 Stühlingen/Schwarzwald +107380 Stuttgart-Flughafen +107390 Stuttgart-Rot +107400 Stuttgart-Wilhelma +102260 Syke +192509 Tann (Rhön) +100290 Tarp +193129 Tegkwitz +102870 Templin +101770 Teterow +194217 Teuschnitz +107060 Tholey +101550 Timmendorfer Strand +194623 Tirschenreuth-Lodermühl +099110 Todtmoos/Schwarzwald +191009 Tönisvorst +104510 Torfhaus/Harz-Jugendherberge +104790 Torgau +101891 Trassenheide-Ostseebad +094950 Trebendorf/Sachsen +193939 Treuen +108120 Triberg +108110 Triberg-Kurhaus +190169 Tribsees +106090 Trier +191653 Trier-Zewen +102810 Trollenhagen +197422 Trostberg +108290 Tübingen-SWR +109230 Tuttlingen +192089 Twistetal-Mühlhausen +109310 Überlingen/Bodensee +101930 Ueckermünde +102480 Uelzen +190389 Uelzen II +193249 Uhlstädt-Kirchhasel-Niederkrossen +108400 Ulm-Mähringen +103560 Ummendorf +094170 Unna +108613 Unterschleißheim +099320 Unteruhldingen-Pfahlbaumuseum +101910 Usedom-Stadt +097370 Vaihingen an der Enz +193253 Veilsdorf +102270 Verden +109110 Villingen-Schwenningen +198629 Villingen-Schwenningen II +100980 Vilm/Insel +097050 Völklingen +101421 Wacken +190029 Wagersrott +198169 Waghäusel-Kirrlach +191989 Wahlsburg-Lippoldsberg +107330 Waibstadt +108210 Waldbronn +192619 Waldems-Reinborn +108970 Waldkirchen/Bayerischer Wald +107161 Waldmohr +107820 Waldmünchen +109150 Waldshut-Tiengen +109760 Wallberg +092700 Walsleben (Brandenburg) +193141 Waltershausen +190992 Waltrop-Abdinghof +099410 Wangen im Allgäu +190289 Wangerland-Hooksiel +101200 Wangerooge +104350 Warburg +102680 Waren +101700 Warnemünde +109700 Warngau-Schäfflerhof +105440 Wasserkuppe +094600 Weberstedt/Hainich +094020 Wegberg +106880 Weiden +195249 Weidenbach-Weiherschneidbach +104980 Weifa/Steinigtwolmsdorf +108630 Weihenstephan-Duernast +109050 Weil am Rhein-Werner Detterer +191149 Weilerswist-Lommersum +105620 Weimar +193079 Weimar Schöndorf +107240 Weinbiet +198689 Weingarten, Kr. Ravensburg +191239 Weiskirchen +094900 Weißenberg/Sachsen +107610 Weißenburg-Emetzheim +094920 Welzow +190369 Wendisch Evern +104240 Werl +104540 Wernigerode +106470 Wertheim-Mainhafen +108501 Wertingen +100270 Westerhever +100180 Westerland/Sylt +104460 Wetze/Northeim +094480 Wieda/Harz +197319 Wielenbach +106331 Wiesbaden +192729 Wiesbaden-Auringen +103680 Wiesenburg +102040 Wiesmoor +101280 Wilhelmshaven +094341 Willingen/Upland +105240 Windeck-Rosbach +106210 Winnweiler +094230 Winterberg/HSK +104191 Wipperfürth +101640 Wismar +104740 Wittenberg +190102 Wittenborn +190387 Wittingen-Vorhop +101260 Wittmund-Webershausen +102720 Wittstock-Rote Mühle +198509 Wolfach +103510 Wolfsburg-Autostadt +103520 Wolfsburg-Brackstedt +190458 Wolfsburg-Ehmen +098610 Wolnzach +097280 Worms +191769 Worms II +190359 Worpswede-Hüttenbusch +107230 Wörth/Pfalz +106860 Wunsiedel-Schönbrunn +103340 Wunstorf +191021 Wuppertal-Buchenhofen +106550 Würzburg +190689 Wusterwitz +198749 Wutöschingen-Ofteringen +102510 Zarrentin am Schaalsee +190649 Zehdenick +193749 Zeitz +101900 Zinnowitz +105820 Zinnwald-Georgenfeld +105990 Zittau +104640 Zörbig-Mößlitz +109610 Zugspitze +105220 Zülpich +105800 Zwickau +107960 Zwiesel