FHEM Beschattung extrem 3infach

Von | März 26, 2023
FHEM Beschattung
FHEM Beschattung

Heutzutage sind sowieso bei der Neubau oder Renovierung die Rolladensteuerung oder Jalousiensteuerung im klassischen Elektroinstallation mit Taster (Schalter) und Motoren vorgesehen. Man kann sich auch selbst helfen und mit wenig Aufwand noch die Kosten enorm sparen. Klar am der Markt finden Sie die professionelle Systeme für die Haus Automatisation wie z.B. Warema, Loxone oder Gira.

Die Frage ist nur ob man die einfache Steuerungen von „Profis“ nicht teuer bezahlen muss. Das Beispiel, begehrtes Shelly 2.5 Modul, preislich sehr attraktiv, einfach an die bestehende Elektroinstallation anbinden, App installieren, Cloud aktivieren und die WLAN Rolladensteuerung ist fertig. Die Ausbaufähigkeit solches System bleibt mit einfachen und preiswerten Mitteln erhalten. Das Shelly 2.5 Modul in FHEM zuerst zu integrieren hilft Ihnen andere Artikel von uns FHEM Shelly 2 MQTT Integration weiter.

FHEM Beschattung – Wetter Modul

Das Wetter Modul brauchen wir um die Rolladensteuerung abhängig von die Wetterbedingungen zu realisieren. Wir nehmen das Proplanta Wetter Modul, sogenannte Agrarwetter. Einfach die Raw Code kopieren, Ort anpassen und danach in FHEM Befehlsleiste einfügen, speichern.

FHEM Befehlsleiste
FHEM Beschattung – FHEM Befehlsleiste
defmod PROWetter PROPLANTA Stuttgart de
attr PROWetter INTERVAL 1800
attr PROWetter alexaName Aussentemperatur
attr PROWetter alias ProPlanta Wetter
attr PROWetter event-on-change-reading .*
attr PROWetter forecastDays 4
attr PROWetter genericDeviceType thermometer
attr PROWetter group Klima
attr PROWetter icon weather_barometric_pressure@blue
attr PROWetter room Homebridge,Wetter
attr PROWetter sortby 5D
attr PROWetter stateFormat {sprintf("Temperatur: %.1f °C →; Feuchte: %.1f %%",ReadingsVal("PROWetter","temperature",0), ReadingsVal("PROWetter","humidity",0))}
attr PROWetter userReadings fc0_weatherIcon {ReadingsVal("PROWetter","fc0_weatherDayIcon","");;},\
fc1_weatherIcon {ReadingsVal("PROWetter","fc1_weatherDayIcon","");;},\
fc2_weatherIcon {ReadingsVal("PROWetter","fc2_weatherDayIcon","");;},\
fc3_weatherIcon {ReadingsVal("PROWetter","fc3_weatherDayIcon","");;},\
fc4_weatherIcon {ReadingsVal("PROWetter","fc4_weatherDayIcon","");;},\
fc5_weatherIcon {ReadingsVal("PROWetter","fc5_weatherDayIcon","");;},\
fc6_weatherIcon {ReadingsVal("PROWetter","fc6_weatherDayIcon","");;},\
fc0_sunshineHours {round(ReadingsVal($name, "fc0_sun", 100) / 100 * lengthOfDay, 1)}

Dazu definieren wir auch FileLog Datei um später vielleicht Grafiken zu plotten. Kopieren, anpassen und wie gewöhnt installieren.

defmod PROWetter_FileLog FileLog ./log/PROWetter_FileLog-%d-%m-%Y.log PROWetter
attr PROWetter_FileLog archivedir /opt/fhem/archive/
attr PROWetter_FileLog icon time_statistic
attr PROWetter_FileLog nrarchive 1
attr PROWetter_FileLog room FileLog
FHEM Proplanta Wetter Modul
FHEM Beschattung – Proplanta Wetter Modul

FHEM Beschattung – Sunpos Modul

Das FHEM Sunpos (nicht in FHEM Repository vorhanden) Modul berechnet wo sich die Sonne gerade befindet um davon abhängig die Rolladen oder die Markise (Jalousien) zu steuern. Dadurch wird Beschattung ganz präzise gesteuert. Das Modul müssen Sie separat herunterladen und per FTP in das Verzeichnis /opt/fhem/FHEM übertragen. Die Raw Code kopieren und anpassen, speichern und danach update (Befehlsleiste) starten.

defmod Sonnenposition sunpos
attr Sonnenposition devStateIcon south:ws_S_kl south-southwest:ws_SSW_kl southwest:ws_SW_kl west-southwest:ws_WSW_kl west:ws_W_kl west-northwest:ws_WNW_kl northwest:ws_NW_kl north-northwest:ws_NNW_kl north:ws_N_kl north-northeast:ws_NNO_kl northeast:ws_NO_kl east-northeast:ws_ONO_kl east:ws_O_kl east-southeast:ws_OSO_kl southeast:ws_SO_kl south-southeast:ws_SSO_kl
attr Sonnenposition group Klima
attr Sonnenposition icon weather_sun@orange
attr Sonnenposition room Wetter

FHEM Beschattung – Dummy für Sonnenwerte definieren

Geräte vom Typ dummy können für verschiedene Zwecke genutzt werden, mit einem dummy ist möglich Schalter zu definieren oder als der Speicher für die Zustände zu benutzen. Die Raw Code kopieren und anpassen, danach in Befehlsleiste einfügen und speichern.

defmod Sonnenschein dummy
attr Sonnenschein event-on-change-reading .*
attr Sonnenschein group Klima
attr Sonnenschein icon weather_sun@orange
attr Sonnenschein room Wetter
attr Sonnenschein stateFormat {sprintf("Sonnenstunden heute: %.1f h - UV Wert: %.1f - Solar Radiation: %.1f KWh/m2",ReadingsVal("Sonnenschein","sonne","0"),ReadingsVal("Sonnenschein","uv","0"),ReadingsVal("Sonnenschein","radiation","0"))}

FileLog Datei definieren um Werte zur weiteren Verwendung zu speichern.

defmod FileLog_Sonnenschein FileLog ./log/SonnenscheinFileLog-%m-%Y.log Sonnenschein
attr FileLog_Sonnenschein archivedir /opt/fhem/archive/
attr FileLog_Sonnenschein icon time_statistic
attr FileLog_Sonnenschein nrarchive 1
attr FileLog_Sonnenschein room FileLog

FHEM Beschattung – Notify Module

Das Hilfsmodul notify dient dazu Ereignisse über ein Suchmuster zu erkennen und bei einem Treffer eine Aktion auszulösen. Wir wollen mit Notify Modul die Werte: Sonnenstunde, UV und Radiation von Proplanta Modul abfangen und in das Dummy Modul zur weiteren Verwendung speichern.

##### Notify Sonnenstunde ######
defmod Sun_nty notify PROWetter:fc0_sunshineHours.* setreading Sonnenschein sonne $EVTPART1
attr Sun_nty icon hue_room_garage
attr Sun_nty room Wetter
##### Notify UV Strahlung #####
defmod UV_nty notify PROWetter:fc0_uv.* setreading Sonnenschein uv $EVTPART1
attr UV_nty icon hue_room_garage
attr UV_nty room Wetter
##### Notify Radiation #####
defmod sun_rad_nty notify PROWetter:fc0_rad.* setreading Sonnenschein radiation $EVTPART1
attr sun_rad_nty icon hue_room_garage
attr sun_rad_nty room Wetter

FHEM Beschattung – DOIF Modul

Im FHEM stellt das Modul DOIF eine eigene Benutzer-Schnittstelle zur Verfügung. Mit diesem Modul ist es möglich, sowohl Ereignis- als auch Zeitsteuerung mit Hilfe logischer Abfragen miteinander zu kombinieren. Damit können komplexere Problemstellungen innerhalb eines DOIF-Moduls gelöst werden, ohne Perlcode in Kombination mit anderen Modulen programmieren zu müssen.

Das DOIF Modul ist Herzstück unsere FHEM Beschattung. Hier werden die Ereignisse mit Wertabfragen und WLAN Rolladensteuerung kombiniert um die gewünschten Ziele zu erreichen, die Rolladen, Markisen oder Jalousien zu steuern.

defmod Beschattung DOIF ([Sonnenposition:Azimuth] > 210.0 and [Sonnenposition:Elevation] > 50.0 and [Sonnenschein:uv] > 4.0 and [Sonnenposition:Azimuth] < 310.0 and [Tageslicht] eq "hell" and [BalkonRollo:pct] > 40 and [Fensterkontakt_Balkon] eq "closed" and [Zuhause:state] eq "absent" and [PROWetter:temperature] > 25.0 and [BeschattungControl] eq "on" and [Whz_Wandthermostat:temperature] > 25.0)(set BalkonRollo pct 35) DOELSE ()
attr Beschattung devStateIcon cmd_1:fts_stutter_updown@orange cmd_2:fts_shutter_updown
attr Beschattung disable 0
attr Beschattung icon helper_doif
attr Beschattung room Beschattung

In die Raw Code oben sind auch die Ereignisse drin die wir nicht bearbeitet haben:

  • Tageslicht – Sie können Lichtsensor oder Twilight Modul benutzen oder einfach Sequenz and [Tageslicht] eq „hell“ löschen.
  • Fensterkontakt – Magnetkontakt z.B. MAX! Fensterkontakt benutzen oder Sequenz and [Fensterkontakt_Balkon] eq „closed“ einfach löschen. Wichtig: Magnetkontakt ist als Aussperrschutz eingebunden.
  • Zuhause – Präsenz- Status abfragen mit z.B. Bewegungsmelder oder mit das Presence Modul, wenn Sie nicht benutzen dann Sequenz and [Zuhause:state] eq „absent“ löschen. Gleiche Regeln gilt auch für „Wandthermostat“ als Temperatursensor.
  • Azimuth und Elevation Werte müssen Sie z.B. mit Kompass ermitteln und eintragen.

Wir haben dir mit “FHEM Beschattung extrem einfach” Artikel weitergeholfen? Dann zeig dich erkenntlich und gib uns Daumen hoch. Vielen Dank schon mal!

(Visited 882 times, 1 visits today)

Ein Gedanke zu „FHEM Beschattung extrem 3infach

  1. RS

    Danke für die Arbeit und die Tips, hat mir sehr geholfen ! Gestolpert bin ich bei dem userreading „fc0_sunshineHours {round(ReadingsVal($name, „fc0_sun“, 100) / 100 * lengthOfDay, 1)}“, weil mir fehlt das lengthofDay – freue mich über einen Tip !

Schreiben Sie einen Kommentar

Ihre E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert