Um Ihnen ein besseres Nutzererlebnis zu bieten, verwenden wir Cookies. Durch Nutzung des Shop-Systems stimmen Sie unserer Datenschutzerkärung zu.
Energie, Automation und SicherheitSie haben Fragen? Rufen Sie uns an ...
Hotline: 04266 9557921Anmelden
Mein Konto
Mein
Warenkorb

0


Produkte mit System
»Energiemanagement
»EV Ladetechnik
»Hausautomation
»Photovoltaik
» AC-Speichersystem
» Mini-PV-Speicher
» Montagematerial
» PV ab 4 kWp
»Sensoren und Adapter
»Service-Leistungen
»Sicherheit
Steuern mit CMatic
Szenarien, Lösungen & Support
Allgemeines
»Versandkosten
»Zahlungsarten
»Widerrufsrecht
»Firmenphilosophie
Wetterdaten und Sonnenprognose steuern Systeme

Wetter- und Sonnendaten können z. B. Gartenbeleuchtung nach Sonnenuntergang oder Rolläden bei widrigen Windverhältnissen steuern. Wärmepumpen, Waschvorgänge und Ladezeiten der Elektrofahrzeuge werden ggf. in prognostizierte Sonnenstunden verschoben. Bei einer vielzahl von Abläufen werden Daten zu Wetter und Sonne benötigt.

 

Wetterdaten

Aktuelle Wetterdaten und Prognosen zum Wetter werden von verschiedenen Wetterdaten-Providern bereitgestellt. Einer der Provider ist zum Beispiel darksky.net. genauere Informationen findet man hier: https://darksky.net/dev/docs

 

Astro-Komponente

Mit der Astro-Komponente werden verschiedene Daten zu Zeiten und Positionen von Sonne und Mond berechnet. So können die Zeitpunkte zu Sonnenaufgang und -untergang ermittelt werden.

 

Umsetzung der Integration in Openhab

Zur Umsetzung werden die Dateien home.items, home.sitemap, home.rules und home.things erstellt. Nach der Fertigstellung können Regeln die Laufzeiten großer Energieverbraucher wie z. B. Waschmaschine und Geschirrspüler entsprechend der Energieprognose aus regenerativen Energien steuern.

Darstellung mit CMatic

 

Daten-Items: home.items

Für die Darstellung auf der Oberfläche werden folgende Daten-Items in der Datei "items/home.items" definiert:

Number      Temperatur              "Temperatur [%.2f °C]"
Number      Feuchtigkeit            "Feuchtigkeit [%.0f %% rF]"            
Number      Luftdruck               "Luftdruck [%.0f hPa]"                 
Number      Windgeschwindigkeit     "Windgeschwindigkeit [%.2f km/h]"

DateTime    Sonnenaufgang           "Sonnenaufgang [%1$tH:%1$tM Uhr]"                  { channel="astro:sun:home:rise#start" }
DateTime    Sonnenuntergang         "Sonnenuntergang [%1$tH:%1$tM Uhr]"                { channel="astro:sun:home:set#start" }
Number      Bewoelkung              "Bewölkung [%.0f %%]"
String      Sonnenintensitaet       "Intensität der nächsten Stunden [%s]"                                             

 

Oberfläche zur Bedienung: home.sitemap

Die Darstellung der Oberfläche wird in der Datei "sitemaps/home.sitemap" definiert:

sitemap home label="CMatic"
{
    Frame label="Aktuelle Wetterdaten"   {
        Text    item=Temperatur
        Text    item=Feuchtigkeit
        Text    item=Luftdruck
        Text    item=Windgeschwindigkeit
    }
    Frame label="Daten zur Sonne"   {
        Text    item=Sonnenaufgang
        Text    item=Sonnenuntergang
        Text    item=Bewoelkung
        Text    item=Sonnenintensitaet
    }
}

 

Regeln: home.rules

Durch die Datei "rules/home.rules" werden Wetterdaten vom "Wetterdaten-Provider" gelesen und die Werte in den Daten-Items der Datei "home.items" gespeichert:

rule "Wetterdaten ermitteln"
when
    Time cron "0 0 * * * ?"   // Stündliche Aktualisierung der Wetterdaten
then
    
    // Kostenlosen "apikey" vom Wetterdaten-Provider api.darksky.net anfordern -> https://darksky.net/dev/docs
    var String  apikey="4eafd6855aa34585b07db7cae0783693a"

    // GPS-Koordinaten des Standorts ermitteln: http://www.gpskoordinaten.de
    var String  geolocation = "43.09449679999999,10.525193100000024"     //(Breitengrad,Längengrad)

    var String WeatherUrl   = "https://api.darksky.net/forecast/"+apikey+"/"+geolocation+"?lang=de&exclude=minutely,daily,alerts,flags&units=auto"
   
    // Wetterdaten anfordern (Antwort im JSON-Format)
    var String Weather      = sendHttpGetRequest(WeatherUrl)
    
    if(Weather!==null) {
        Temperatur.postUpdate(                              transform("JSONPATH", "$.currently.temperature",    Weather))
        Feuchtigkeit.postUpdate( 100*Double::parseDouble(   transform("JSONPATH", "$.currently.humidity",       Weather)))
        Luftdruck.postUpdate(                               transform("JSONPATH", "$.currently.pressure",       Weather))
        Windgeschwindigkeit.postUpdate(                     transform("JSONPATH", "$.currently.windSpeed",      Weather))
        Bewoelkung.postUpdate( 100*Double::parseDouble(     transform("JSONPATH", "$.currently.cloudCover",     Weather)))
        // Hinweis: JSONPath Online Evaluator: http://jsonpath.com


        // Bewölkung in Sonnenintensität umrechnen, dabei wird jede Sonnenstunde bis zum Sonnenuntergang als Zahl zwischen 0 - 9 repräsentiert
        // Beispiel: 5566888

        // Zeitpunkt des Sonnenuntergangs in Unix Epoch Time umwandeln: https://www.epochconverter.com
        var Sonnenuntergangepoch = (Sonnenuntergang.state as DateTimeType).zonedDateTime.toInstant.toEpochMilli/1000

        // Bewölkungswerte aus Wetterdaten bis zum Sonnenuntergang ermitteln
        var String[] BewoelkungStunde= transform("JSONPATH", "$.hourly.data[?(@.time<"+Sonnenuntergangepoch+")].cloudCover",     Weather).replace("[","").replace("]","").split(",")
        
        logInfo( "Wetterdaten", "Bewoelkung pro Stunde: " + BewoelkungStunde.toString())

        // Bewölkung in Sonnenintensität umrechnen
        // Stunden bis Sonnenaufgang berechnen und auf "0" setzen
        var String si = ""
        var int i = Integer::parseInt(Sonnenaufgang.state.format("%1$tH")) - now.getHourOfDay.intValue
        if (i>0) for (var j = 0; j < i; j++) si = si + "0"

        if (BewoelkungStunde.length()>0) {
            for (var b = 0; b < BewoelkungStunde.length(); b++) {
                var n = Double::parseDouble(BewoelkungStunde.get(b))
                si = si + Math::round((1-n)*10).toString()
            }
        } else si = si + "0"

        Sonnenintensitaet.postUpdate(si)

    } else {
        logInfo( "Wetterdaten", "Wetterdaten sind nicht erreichbar unter: " + WeatherUrl)
    }

end

rule "Nach Sonnenuntergang Gartenbeleuchtung anschalten"
when
    Channel "astro:sun:home:set#event" triggered START
then
    Gartenbeleuchtung.sendCommand(ON)
end

 

Astro-Komponente konfigurieren: home.things

Durch die Datei "things/home.things" wird die Astro-Komponente mit GPS-Koordinaten des Standorts konfiguriert.

astro:sun:home [ geolocation="53.09449679999999,9.525193100000024", interval=60]

 

Damit die Berechnung der Zeiten und Positionen von Sonne und Mond erfolgen kann muß "Astro" im PaperUI in Openhab aktiviert werden.

 

Beliebig erweiterbar

Dieses Beispiel kann um weitere Geräte, Elemente oder Funktionalität beliebig erweitert werden.

Es könnte z.B. die Gartenbeleuchtung oder Ladenschildbeleuchtungen entsprechend der Zeiten für Sonnenaufgang und -untergang geschaltet werden.



cMatic-Energiemanagementsystem
Das cMatic-Energiemanagementsystem steuert Erzeugungs- und Verbrauchseinheiten optimal, so dass weniger Energie aus dem Netz bezogen wird. Das Gerät erfasst und analysiert die zur Optimierung relevanten Energieströme aus Photovoltaik, Speicher oder dynamischen Stromtarif und regelt den Energiebezug von Verbrauchern (eAuto-Ladestation, Wärmepumpe etc).

279,90 €
4 Kanal WLAN-Schalter für 35mm DIN-Schiene (Hutschiene) mit Datenschutz
Der WLAN-Schalter kann 4 Geräte via WLAN schalten und ist für die unabhängige Integration in ein Gesamtsystem konzipiert. Schaltaktionen können manuell am WLAN-Schalter, via Weboberfläche oder mit externen Managementsystemen wie z.B. Openhab oder Fhem durchgeführt werden.

49,90 €
WLAN-Schaltsteckdose mit Energiemessung und Datenschutz
Die WLAN-Schaltsteckdose kann Geräte mit einer Leistungsaufnahme bis 2500 W schalten und den Energieverbrauch messen. Schaltaktionen können an der WLAN-Schaltsteckdose, via Weboberfläche oder mit CMatic durchgeführt werden.

39,90 €

Allgemeine Geschäftsbedingungen - Impressum - Datenschutzerklärung