Welcher Umweltsensor/Multisensor

Hallo zusammen,

ich kann mich nicht entscheiden und brauche eure Hilfe. Die Sensoren sind ansich die selben, nur für verschiedene Systeme.

Variante 1 Eltako (IPS kompatibel):
Eltako Multisensor MS + Funkmoduk: FWS61 + Netzteil: FSNT61
Kosten ca. 270€ + Kabel

Variante 2 Rademacher (so nicht IPS kompatbel - alle 30Sek pollen):
Rademacher Umweltsensor 9475
Kosten ca. 250€

Vorteile Variante 1:

  • IPS kompatibel
  • Werte immer aktuell

Vorteile Variante 2:

  • Werte abfragern nur mittels pollen möglich (ca. alle 30sek)
  • Einfache Einbindung für meine Rollos - Sonnenposition anfahren über Rademacher HomePilot

Ich möchte auf kurz oder lang komplett auf IPS setzen, die komplette Automatik der Rollos (Abwesenheit, Morgendämmerung, Abenddämmerung, etc) läuft mitterlweile schon über IPS. Jetzt weiß ich nicht wie schwer das
mit der Sonneposition berechnen wird (Azimuth und Elevation), aber auf Dauer hätte ich ganz gerne alles in einem System (IPS).

Die Hauptaufgabe des Sensors soll erstmal sein: Rollos bei Sonne, Regen, Wind herunterfahren, Dachrollos bei bestimmer Temperatur nicht mehr fahren, Brunnen bei niedriger Temperatur nicht anschalten.

Ich bin mir echt noch unsicher. Eigentlich sollte ich aufjedenfall den Eltako Sensor nehmen, wegen IPS. Ich hoffe nur, dass ich die Programmierung der Sonnenposition etc. sauber hinbekomme, so das die Rollos anständig fahren.
Im IPSShadowing sieht das schon recht komplex aus.

Also eigentlich ist meine Frage ganz leicht: Was würdet ihr machen?

Gruß Basti

Beide haben ihre individuellen Vor und Nachteile die du ja auch schon aufgelistet hast.
Ich für meine Person würde immer auf ein kompatibles Teil setzen, vor allem wenn es das System unterstützt wo du dich hin orientieten möchtest.

liebe Grüße

Torben

Also ich find die EltakoTeile super, und wenn Du eine Eltako Infrastrukrur hättest würd ich die auch empfehlen.

In Deinem Fall würd ich allerdings die Rademacher-Teile bevorzugen, da die auch noch funktionieren wenn Dein IPS-Server mal nicht läuft.

Ich habe bis jetzt nur ein IP-Symcon Enocean TCM310 LAN-Gateway, hier aus dem Forum gebraucht gekauft (ist noch nicht da). Aber wenn ich das richtig verstehe kann ich doch daran auch die Eltako Geräte anmelden?

Das die Teile laufen, wenn IPS nicht läuft stimmt nur bedingt. Ich habe ja alles an „Intelligenz“ auf den IPS Server gebracht und benutze den HomePilot von Rademacher nurnoch um die Befehle Hoch oder Runter zu empfangen. Da der HomePilot schon starke Einschränkungen beim umsetzen bestimmer Szenen hat. Ich möchte z.B. das die Rollos wieder an die vorherige Position gefahren werden, wenn ich nach Hause komme und nicht einfach auf 0%.

Schwere entscheidung… Was haltet ihr vom Pollen mittels Skript? Alle 30 sek pollen reicht für sonne,temp, wind aus, aber bei regen, ist das vllt schon etwas spät? Fensterscheiben sollen nicht nass werden :slight_smile:

Moin!

Tipp > mach es von Anfang an richtig und löse solche Dinge über Ereignisse (siehe IPS Doku). Zum Beispiel bei Variablenänderung vom Regensensor (false/true), dann wird dein Skript getriggert und die Rollladen fahren runter!
>> IP-Symcon - Wie kann ich… 2.0 - Seite 2
>> Ereignisse — IP-Symcon :: Automatisierungssoftware

Genauso geht es mit Wind…wenn Variable vom Windsensor den Wert 10 (nur als Beispiel) überschreitet, dann wird dein Skript aufgerufen und die Rollladen fahren hoch.

Das gleiche beim Sonnenstand. Wobei du da ruhig auch z.B. IPSShadowing nehmen kannst (gibt aber glaub auch noch andere), das ist alles gar nicht so schwer wie es aussieht! Einfach mal in Ruhe damit beschäftigen und du wirst sehen wie wenig PHP man können muss, damit dein IPS alles mögliche automatisch erledigt :slight_smile:

Grüße,
Chris

Dazu gibt es ein passendes Script irgendwo im Forum, z.B. in folgender Form

<?
   // Geographische Koordinaten des Objekts  !!! müssen angepasst werden !!!
    $latitude = 52.426341;    // Breitengrad
    $longitude = 9.805772;    // Längengrad

    //$timestamp = mktime($hour,$minute,$second,$month,$day,$year);
    $timestamp = time();

    // Zerlege Datum und Uhrzeit, Umrechnung in Weltzeit
   $monat     = intval(gmdate("n",$timestamp));
   $tag         = intval(gmdate("j",$timestamp));
   $jahr     = intval(gmdate("Y",$timestamp));
   $stunde     = intval(gmdate("G",$timestamp));
   $minute     = intval(gmdate("i",$timestamp));
   $sekunde = intval(gmdate("s",$timestamp));

    // Berechnungen
    // Ekliptikalkoordinaten der Sonne
   $jd12 = gregoriantojd($monat,$tag, $jahr);
   $stundenanteil = $stunde >= 12 ? (($stunde)/24+$minute/(60*24)+$sekunde/(60*60*24))-0.5 : (-1*($stunde/24-$minute/(24*60)-$sekunde/(24*60*60)));
   $jd12h = $jd12 + $stundenanteil;
   $n = $jd12h - 2451545;
   $L = 280.460 + 0.9856474 * $n;
   $g = 357.528 + 0.9856003 * $n;
   $i = intval($L / 360);
   $L = $L - $i*360;
   $i = intval($g / 360);
   $g = $g - $i*360;
   $e = 0.0167;
   $eL = $L + (2*$e * sin($g/180*M_PI)+ 5/4*$e*$e*sin(2*$g/180*M_PI))*180/pi();
   $epsilon = 23.439 - 0.0000004 * $n;
   $alpha = atan(cos($epsilon/180*M_PI)*sin($eL/180*M_PI)/cos($eL/180*M_PI))*180/M_PI;


   if ((cos($eL/180*M_PI)<0)) $alpha += 180;

   $delta = asin(sin($epsilon/180*M_PI)*sin($eL/180*M_PI))*180/M_PI;
   $jd0 = $jd12 - 0.5;
   $T0 = ($jd0 - 2451545.0) / 36525;
   $mittlere_sternzeit_greenwich = 6.697376 + 2400.05134 * $T0 + 1.002738 * ($stunde+$minute/60+$sekunde/3600);
   $i = intval($mittlere_sternzeit_greenwich / 24);
   $mittlere_sternzeit_greenwich = $mittlere_sternzeit_greenwich - $i*24;
   $stundenwinkel_fruehling_greenwich = $mittlere_sternzeit_greenwich * 15;
   $stundenwinkel_fruehling = $stundenwinkel_fruehling_greenwich + $longitude;
   $stundenwinkel_sonne = $stundenwinkel_fruehling - $alpha;
   $nenner = cos($stundenwinkel_sonne/180*M_PI)*sin($latitude/180*M_PI)-tan($delta/180*M_PI)*cos($latitude/180*M_PI);
   $azimut = atan(sin($stundenwinkel_sonne/180*M_PI)/$nenner)*180/M_PI;

   if ($nenner<0) $azimut+=180;
       if ($azimut>180) $azimut -= 360;
       $h = asin(cos($delta/180*M_PI)*cos($stundenwinkel_sonne/180*M_PI)*cos($latitude/180*M_PI)+sin($delta/180*M_PI)*sin($latitude/180*M_PI))*180/M_PI;
       $R = 1.02 / (tan(($h+10.3/($h+5.11))/180*M_PI));
       $elevation = round($h + ($R/60),1);

    // Von Norden ( 0 Grad) an berechnen
    $azimut = round ( $azimut += 180,1);

    // Himmelsrichtung der Sonne
    $SunDirectionNames = array("N", "NNO", "NO", "ONO", "O", "OSO", "SO", "SSO", "S", "SSW", "SW", "WSW", "W", "WNW", "NW", "NNW");
    $SunDirectionName = $SunDirectionNames[(int)((round($azimut)/ 22.5))];

    echo "Himmelsrichtung " .(string) $azimut . " Grad" ." [ " .$SunDirectionName . " ]";
//    echo "    Sonnenhöhe " .(string) $elevation . " Grad" ;

    $variableid = @IPS_GetVariableIDByName("Himmelsrichtung", $_IPS['SELF']);
    if($variableid === false)
    {
        $variableid = IPS_CreateVariable(2);
        IPS_SetName($variableid, "Himmelsrichtung");
        IPS_SetParent($variableid, $_IPS['SELF']);
    }
    SetValue(IPS_GetVariableIDByName("Himmelsrichtung", $_IPS['SELF']), $azimut);

    $variableid = @IPS_GetVariableIDByName("Sonnenrichtung", $_IPS['SELF']);
    if($variableid === false)
    {
        $variableid = IPS_CreateVariable(3);
        IPS_SetName($variableid, "Sonnenrichtung");
        IPS_SetParent($variableid, $_IPS['SELF']);
    }
    SetValue(IPS_GetVariableIDByName("Sonnenrichtung", $_IPS['SELF']), $SunDirectionName);

    $variableid = @IPS_GetVariableIDByName("Sonnenhoehe", $_IPS['SELF']);
    if($variableid === false)
    {
        $variableid = IPS_CreateVariable(2);
        IPS_SetName($variableid, "Sonnenhoehe");
        IPS_SetParent($variableid, $_IPS['SELF']);
    }
    SetValue(IPS_GetVariableIDByName("Sonnenhoehe", $_IPS['SELF']), $elevation);

?>

Hallo Chris, hallo Ralph,

vielen Dank für eure Anworten! Ich werde das aufjedenfall über Ereignisse lösen. Das Skript ist auch schonmal ganz hilfreich. Wenns geht, versuche ich aber möglichst alles selber zu schreiben. Ganz schlecht in php bin ich auch nicht, studiere Informatik.

Hatte den HomePilot Sensor vorher schon bestellt, deswegen hab ich den heute mal ausprobiert:
{„message“:„loadSensorData“,„status“:„uisuccess“,„data“:{„wind“:0,„elevation“:22,„sendStatusInterval“:15,„sendStatus“:0,„date“:„17.10.15“,„dcfValid“:1,„temperature“:25,„timestamp“:1445089408,„time“:„15:43“,„dcfEnabled“:1,„raining“:0,„azimut“:217.5,„lux“:112}}

Wird sekündlich aktualisiert, aber ich müsste ständig pollen bei diesem Sensor. Bin mir immernoch unsicher…