• Außentemperaturanzeige mit Netatmo-Daten (III)

    Programm zur Ermittlung der Daten meiner Wetterstation

    Die Wetterdaten werden von der Netatmo-Wetterstation über das Internet an die Server von Netatmo versendet. Mit einer App für IOS oder Android lassen sich dann die Daten ansehen. Weiterhin ist dies auch mit einer Webseite nach Autentifikation mögich. Ein netter Nebenefekt dieser Datensammelei ist eine weltweite Karte mit den Außentemperaturen aller freigegebener Netatmogeräte (Link).

    Netatmo gibt die Möglichkeit eigene Apps zu erstellen, die Dokumentatiaon dazu findet man unter https://dev.netatmo.com/doc. Da ich Python für den RaspberryPi nutzen wollte fand ich auch dazu eine APi im GitHub: https://github.com/philippelt/netatmo-api-python
    Phillip Larduinat hat eine Bibliothek in Python erstellt um die API-Funktionen von Netatmo aufzurufen. Diese habe ich für mein Programm benutzt. Hier nun der Quelltext für das Auslesen der Daten meiner Wetterstation:

    #!/usr/bin/python3
    # encoding=utf-8
    
    # Ermittelung der Wetterdaten aus meiner Netatmo-Wetterstation
    # mithilfe der Phython-Api von Phillip Larduinat
    
    
    import sys, datetime, time
    import lnetatmo
    
    
    # Device-Liste von Netatmo abholen
    authorization = lnetatmo.ClientAuth()
    devList = lnetatmo.DeviceList(authorization)
    
    
    
    # Ermittlung der aktuellen Wetterdaten ---------------------------------------------
    
    # Aktuelle Aussentemperatur ausgeben
    temp_Out=devList.lastData()['Garten']['Temperature']
    
    # Min / Max Temperaturen ausgeben
    temp_min = devList.lastData()['Garten']['min_temp']
    temp_max = devList.lastData()['Garten']['max_temp']
    
    # Niederschlagmenge des heutigen Tages auslesen und ausgeben
    rain = devList.lastData()['Niederschlag']['sum_rain_24']
    
    
    # Wetterdaten des Vortages ermitteln: -----------------------------------------------
    now = time.time()    			# Von Jetzt
    start = now - 2* 24 * 3600		# zwei Tage zurück
    
    #Ermittlung der Temperaturen als Liste
    resp = devList.getMeasure( device_id='70:ee:50:01:d8:ec',      
                               module_id='02:00:00:01:e7:a0',    
                               scale="1day",
                               mtype="min_temp,max_temp",
                               date_begin=start,
                               date_end=now)
    
    # Extraieren von Zeit, minTemp und Maxtemp
    result = [(int(k),v[0],v[1]) for k,v in resp['body'].items()]
    # Liste sortieren (nach Zeit, da erstes Element)
    result.sort()
    
    #Ermittlung des Datums des Vortages der Min/Max Temperaturen vom Vortag
    messdatum = time.localtime(result[0][0])
    
    #Ermittlung der Min- und Max-Temperaturen des Vortages
    last_temp_min = result[0][1]
    last_temp_max = result[0][2]
    
    #Ermittlung des Niederschlages je Tag als Liste
    resp = devList.getMeasure( device_id='70:ee:50:01:d8:ec',      
    					       module_id='05:00:00:00:32:72',    
                               scale="1day",
                               mtype="sum_rain",
                               date_begin=start,
                               date_end=now)
    
    # Extraieren des Datums und des Niederschalges
    resultRain = [(int(k),v[0]) for k,v in resp['body'].items()]
    # Liste sortieren (nach Zeit, da erstes Element)
    resultRain.sort()
    
    #Ermittlung der Niederschlags von Gestern
    last_rain = resultRain[0][1]
    # ---------------------------------------------------------------------------------
    # Ausgabe der ermittelten Werte (Später erfolgt die Ausgabe auf dem CBerry28)
    print (' ')
    # Aktuelle Aussentemperatur ausgeben
    print ("Aussentemperatur: {0:.1f}°C".format(temp_Out))
    # Min / Max Temperaturen ausgeben
    print ("Min / Max:  {0:.1f}°C / {1:.1f}°C".format(temp_min,temp_max))
    # Niederschlagmenge des heutigen Tages auslesen und ausgeben
    print ("Regen: {0:.1f} Liter/qm".format(rain))
    print (' ')
    #Ausgabe des Datums vom Vortag
    print(time.strftime("Messwerte vom %d.%m.%Y", messdatum) +":")
    #Ausgabe der Min/Max Temperaturen vom Vortag
    print ("Min / Max:  {0:.1f}°C / {1:.1f}°C".format(last_temp_min,last_temp_max))
    #Ausgabe der Niederschlags von Gestern
    print ("Regen: {0:.1f} Liter/qm".format(last_rain))
    print (' ')
    # ---------------------------------------------------------------------------------
    

    Dadurch wird die Aktuelle Temperatur, die Minimas und Maximas der Aussentemperaturen und des Niedersschlages des aktuellen und des Vortages ermittelt.
    Das Auslesen der aktuellen Daten war für mich kein Problem, schwieriger stellte sich die Ermittelung der Altdaten heraus. Im Demoprogramm wird eine Device-ID und eine Modul-ID erwartet. Diese lassen sich mit dem folgenden Programm ermitteln…

    #!/usr/bin/python3
    # encoding=utf-8
    
    import sys
    import lnetatmo
    
    # Device-Liste von Netatmo abholen
    authorization = lnetatmo.ClientAuth()
    devList = lnetatmo.DeviceList(authorization)
    # Funktionen um die ID von Modulen und Device zu ermitteln
    print(devList.modulesNamesList())
    # Niederschlag ist der Modulname meines Regenmessers
    print(devList.moduleByName('Niederschlag'))
    

    Der nächste Schritt wird dann die Ausgabe auf dem CBerry28-Display sein.

     


  • Außentemperaturanzeige mit Netatmo-Daten (II)

    RaspiMitCBerry28Verwendete Hardware

    Hier seht ihr die verwendeten Bauteile für meine Temperaturanzeige. Die Steuerung übernimmt ein Raspberry Pi Modell B. Dies befand sich noch in meinem Vorrat denn eigentlich würde auch ein Modell A  (ca. 23 €) ausreichen, da die Netzwerkbuchse nicht verwendet wird.

    Die Anbindung an das Internet erledigt ein USB -Wlan-Stick (EDIMAX EW-7811) (ca. 10 €)

    Für die Darstellung der Temperatur ein CBerry28 Display von Admatec (ca. 16 €)

    Damit die Bauteile hinterher schön verpackt an der Wand hängen fehlt noch das Gehäuse. Ich habe mich hier für ein Universalgehäuse von Conrad ( 6,60€) entschieden. Eventuell bau ich mir später etwas hübsches aus Holz und Aluminium.


  • Panorama

    Als ich in mein neues Schlafzimmer gezogen bin sah der Ausblick noch so aus:

    Aussicht2014

     

     

    In diesem Jahr hat sich dann einiges getan. In Folge des letztjährigen Gewittersturms Ela sind bei den Nachbarn die großen Fichten gefällt worden. Nun bietet sich mir von meinem Bett aus ein grandioses Panorama. Dies wurde als HDR – Foto hier dargestellt:

    Aussicht aus meinem Schlafzimmer in Richtung Norden


  • Außentemperaturanzeige mit Netatmo-Daten

    NetAtmoEs entsteht wieder etwas Neues: In meinem Haushalt gibt es eine Netatmo Wetterstation. Diese mist Temperaturen, Niederschlag, Luftdruck, Lautstärke, Luftqualität usw. Infos gibts unter netatmo.com. Nun ist es so, das die Daten zwar überall in der Welt auf dem Handy, Ipad oder Computer zur Verfügung stehen, aber die Netatmo-Geräte kein eigenes Display haben.

     

    Also bau ich mir  so etwas selber!

     

    Die Wetterdaten werden von der Wetterstation in die Netatmo-Cloud übertragen und sind mit Apps für IOS und Android darstellbar. Weiterhin kann man sich seine Daten über eine Web-Seite ansehen. Interessant ist auch die Möglichkeit die Außentemperaturen aller Netatmo-Geräte Weltweit in einer Google-Map sich anzusehen.

    Es gibt auch die Möglichkeit mit den Daten eigene Apps zu erstellen und dies möchte ich nutzen. In meinem Elektronik-Vorrat fand sich außer einem Raspi noch ein 2,8′ Display welches ich bis jetzt noch nicht genutzt habe. Meine Idee ist, damit eine Anzeige für die Wand zu bauen.