Ankündigung

Einklappen
Keine Ankündigung bisher.

- √ - Beschattungssteuerung

Einklappen
Dieses Thema ist geschlossen.
X
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

    Also ich kann nur sagen, was das Coding macht ...
    Wenn eine Ausrichtung für das Fenster angegeben ist, wird der Startwinkel auf Ausrichtung-85° und der Endwinkel auf Ausrichtung+85° gesetzt.
    Existiert für das Fenster ein Startwinkel (in der Konfiguration), so überschreibt dieser den vorher berechneten Startwinkel.
    Existiert für das Fenster ein Endwinkel (in der Konfiguration), so überschreibt dieser den vorher berechneten Endwinkel.

    Dabei gehts, wie du schon richtig geschrieben hast, um den Azimuth.
    Für Elevation sag ich dzt. generell, wenn <0, dann wird sowieso nicht beschattet.

    LG
    Marcus

    Kommentar


      Hallo,

      heute hat das soweit ganz super funktioniert. Eh ich das für alle Fenster übernehme noch eine Frage zu der Globalen Sperre, kann ich diese Nutzen um zu verhindern das abends wenn die Freigabe beendet und die JAL im EG über den HS heruntzergfahren wurden wieder hochfahren.

      Ich würde die dann evtl. mit nem Pyranometer von Elsner verbinden wollen.

      Gestern wurden trotz das ich auf die Sperr GA man. eine 1 gesendet hatte das Bad Fenster hochgefahren.


      Beschattung_Freigabe_sperre stand auf 1

      Gruß
      Thomas

      Kommentar


        AW: - √ - Beschattungssteuerung

        Dazu verwende ich die einzelnen Sperr GAs je Fenster.

        Kommentar


          irgendwas scheint bei mir mit dem berechne_sonnenstand-Plugin nicht zu stimmen, habe gerade nochmal neu von Sourceforge geladen, trotzdem wird seit 9:20 immer ein Azimuth von 100 gesendet
          Code:
          2013-07-29 06:30:32.062,A_GroupValue_Write,1.1.1,0/7/243,AF,68.6,,5.001,0,low,7,T_DATA_XXX_REQ,0
          2013-07-29 06:35:32.908,A_GroupValue_Write,1.1.1,0/7/243,B2,69.8,,5.001,0,low,7,T_DATA_XXX_REQ,0
          2013-07-29 06:40:33.848,A_GroupValue_Write,1.1.1,0/7/243,B4,70.6,,5.001,0,low,7,T_DATA_XXX_REQ,0
          2013-07-29 06:45:34.544,A_GroupValue_Write,1.1.1,0/7/243,B6,71.4,,5.001,0,low,7,T_DATA_XXX_REQ,0
          2013-07-29 06:50:35.427,A_GroupValue_Write,1.1.1,0/7/243,B9,72.5,,5.001,0,low,7,T_DATA_XXX_REQ,0
          2013-07-29 06:55:35.548,A_GroupValue_Write,1.1.1,0/7/243,BB,73.3,,5.001,0,low,7,T_DATA_XXX_REQ,0
          2013-07-29 07:00:35.971,A_GroupValue_Write,1.1.1,0/7/243,BD,74.1,,5.001,0,low,7,T_DATA_XXX_REQ,0
          2013-07-29 07:05:36.628,A_GroupValue_Write,1.1.1,0/7/243,BF,74.9,,5.001,0,low,7,T_DATA_XXX_REQ,0
          2013-07-29 07:10:37.690,A_GroupValue_Write,1.1.1,0/7/243,C2,76.1,,5.001,0,low,7,T_DATA_XXX_REQ,0
          2013-07-29 07:15:38.144,A_GroupValue_Write,1.1.1,0/7/243,C4,76.9,,5.001,0,low,7,T_DATA_XXX_REQ,0
          2013-07-29 07:20:38.236,A_GroupValue_Write,1.1.1,0/7/243,C6,77.6,,5.001,0,low,7,T_DATA_XXX_REQ,0
          2013-07-29 07:25:38.572,A_GroupValue_Write,1.1.1,0/7/243,C9,78.8,,5.001,0,low,7,T_DATA_XXX_REQ,0
          2013-07-29 07:30:39.452,A_GroupValue_Write,1.1.1,0/7/243,CB,79.6,,5.001,0,low,7,T_DATA_XXX_REQ,0
          2013-07-29 07:35:39.594,A_GroupValue_Write,1.1.1,0/7/243,CD,80.4,,5.001,0,low,7,T_DATA_XXX_REQ,0
          2013-07-29 07:40:40.012,A_GroupValue_Write,1.1.1,0/7/243,CF,81.2,,5.001,0,low,7,T_DATA_XXX_REQ,0
          2013-07-29 07:45:40.990,A_GroupValue_Write,1.1.1,0/7/243,D2,82.4,,5.001,0,low,7,T_DATA_XXX_REQ,0
          2013-07-29 07:50:41.819,A_GroupValue_Write,1.1.1,0/7/243,D4,83.1,,5.001,0,low,7,T_DATA_XXX_REQ,0
          2013-07-29 07:55:42.111,A_GroupValue_Write,1.1.1,0/7/243,D6,83.9,,5.001,0,low,7,T_DATA_XXX_REQ,0
          2013-07-29 08:00:42.962,A_GroupValue_Write,1.1.1,0/7/243,D9,85.1,,5.001,0,low,7,T_DATA_XXX_REQ,0
          2013-07-29 08:05:43.979,A_GroupValue_Write,1.1.1,0/7/243,DB,85.9,,5.001,0,low,7,T_DATA_XXX_REQ,0
          2013-07-29 08:10:44.167,A_GroupValue_Write,1.1.1,0/7/243,DD,86.7,,5.001,0,low,7,T_DATA_XXX_REQ,0
          2013-07-29 08:15:45.370,A_GroupValue_Write,1.1.1,0/7/243,E0,87.8,,5.001,0,low,7,T_DATA_XXX_REQ,0
          2013-07-29 08:20:45.307,A_GroupValue_Write,1.1.1,0/7/243,E2,88.6,,5.001,0,low,7,T_DATA_XXX_REQ,0
          2013-07-29 08:25:45.692,A_GroupValue_Write,1.1.1,0/7/243,E4,89.4,,5.001,0,low,7,T_DATA_XXX_REQ,0
          2013-07-29 08:30:46.126,A_GroupValue_Write,1.1.1,0/7/243,E7,90.6,,5.001,0,low,7,T_DATA_XXX_REQ,0
          2013-07-29 08:35:46.183,A_GroupValue_Write,1.1.1,0/7/243,E9,91.4,,5.001,0,low,7,T_DATA_XXX_REQ,0
          2013-07-29 08:40:46.219,A_GroupValue_Write,1.1.1,0/7/243,EC,92.5,,5.001,0,low,7,T_DATA_XXX_REQ,0
          2013-07-29 08:45:47.092,A_GroupValue_Write,1.1.1,0/7/243,EE,93.3,,5.001,0,low,7,T_DATA_XXX_REQ,0
          2013-07-29 08:50:48.035,A_GroupValue_Write,1.1.1,0/7/243,F1,94.5,,5.001,0,low,7,T_DATA_XXX_REQ,0
          2013-07-29 08:55:49.044,A_GroupValue_Write,1.1.1,0/7/243,F3,95.3,,5.001,0,low,7,T_DATA_XXX_REQ,0
          2013-07-29 09:00:49.924,A_GroupValue_Write,1.1.1,0/7/243,F6,96.5,,5.001,0,low,7,T_DATA_XXX_REQ,0
          2013-07-29 09:05:50.492,A_GroupValue_Write,1.1.1,0/7/243,F8,97.3,,5.001,0,low,7,T_DATA_XXX_REQ,0
          2013-07-29 09:10:50.620,A_GroupValue_Write,1.1.1,0/7/243,FB,98.4,,5.001,0,low,7,T_DATA_XXX_REQ,0
          2013-07-29 09:15:51.452,A_GroupValue_Write,1.1.1,0/7/243,FD,99.2,,5.001,0,low,7,T_DATA_XXX_REQ,0
          2013-07-29 09:20:52.344,A_GroupValue_Write,1.1.1,0/7/243,FF,100.0,,5.001,0,low,7,T_DATA_XXX_REQ,0
          2013-07-29 09:25:53.074,A_GroupValue_Write,1.1.1,0/7/243,FF,100.0,,5.001,0,low,7,T_DATA_XXX_REQ,0
          2013-07-29 09:30:53.896,A_GroupValue_Write,1.1.1,0/7/243,FF,100.0,,5.001,0,low,7,T_DATA_XXX_REQ,0
          2013-07-29 09:35:54.008,A_GroupValue_Write,1.1.1,0/7/243,FF,100.0,,5.001,0,low,7,T_DATA_XXX_REQ,0
          2013-07-29 09:40:55.011,A_GroupValue_Write,1.1.1,0/7/243,FF,100.0,,5.001,0,low,7,T_DATA_XXX_REQ,0
          2013-07-29 09:45:55.350,A_GroupValue_Write,1.1.1,0/7/243,FF,100.0,,5.001,0,low,7,T_DATA_XXX_REQ,0
          2013-07-29 09:50:55.960,A_GroupValue_Write,1.1.1,0/7/243,FF,100.0,,5.001,0,low,7,T_DATA_XXX_REQ,0
          2013-07-29 09:55:56.460,A_GroupValue_Write,1.1.1,0/7/243,FF,100.0,,5.001,0,low,7,T_DATA_XXX_REQ,0
          2013-07-29 10:00:56.748,A_GroupValue_Write,1.1.1,0/7/243,FF,100.0,,5.001,0,low,7,T_DATA_XXX_REQ,0
          2013-07-29 10:05:57.415,A_GroupValue_Write,1.1.1,0/7/243,FF,100.0,,5.001,0,low,7,T_DATA_XXX_REQ,0
          2013-07-29 10:10:57.880,A_GroupValue_Write,1.1.1,0/7/243,FF,100.0,,5.001,0,low,7,T_DATA_XXX_REQ,0
          2013-07-29 10:15:58.163,A_GroupValue_Write,1.1.1,0/7/243,FF,100.0,,5.001,0,low,7,T_DATA_XXX_REQ,0
          2013-07-29 10:20:58.235,A_GroupValue_Write,1.1.1,0/7/243,FF,100.0,,5.001,0,low,7,T_DATA_XXX_REQ,0
          2013-07-29 10:25:58.547,A_GroupValue_Write,1.1.1,0/7/243,FF,100.0,,5.001,0,low,7,T_DATA_XXX_REQ,0
          2013-07-29 10:30:59.106,A_GroupValue_Write,1.1.1,0/7/243,FF,100.0,,5.001,0,low,7,T_DATA_XXX_REQ,0
          2013-07-29 10:36:00.115,A_GroupValue_Write,1.1.1,0/7/243,FF,100.0,,5.001,0,low,7,T_DATA_XXX_REQ,0
          2013-07-29 10:41:01.012,A_GroupValue_Write,1.1.1,0/7/243,FF,100.0,,5.001,0,low,7,T_DATA_XXX_REQ,0
          2013-07-29 10:46:01.550,A_GroupValue_Write,1.1.1,0/7/243,FF,100.0,,5.001,0,low,7,T_DATA_XXX_REQ,0
          2013-07-29 10:51:01.787,A_GroupValue_Write,1.1.1,0/7/243,FF,100.0,,5.001,0,low,7,T_DATA_XXX_REQ,0
          2013-07-29 10:56:02.812,A_GroupValue_Write,1.1.1,0/7/243,FF,100.0,,5.001,0,low,7,T_DATA_XXX_REQ,0
          2013-07-29 11:01:02.979,A_GroupValue_Write,1.1.1,0/7/243,FF,100.0,,5.001,0,low,7,T_DATA_XXX_REQ,0
          2013-07-29 11:06:03.295,A_GroupValue_Write,1.1.1,0/7/243,FF,100.0,,5.001,0,low,7,T_DATA_XXX_REQ,0
          2013-07-29 11:11:04.262,A_GroupValue_Write,1.1.1,0/7/243,FF,100.0,,5.001,0,low,7,T_DATA_XXX_REQ,0
          2013-07-29 11:16:04.399,A_GroupValue_Write,1.1.1,0/7/243,FF,100.0,,5.001,0,low,7,T_DATA_XXX_REQ,0
          2013-07-29 11:21:04.722,A_GroupValue_Write,1.1.1,0/7/243,FF,100.0,,5.001,0,low,7,T_DATA_XXX_REQ,0
          2013-07-29 11:26:04.779,A_GroupValue_Write,1.1.1,0/7/243,FF,100.0,,5.001,0,low,7,T_DATA_XXX_REQ,0
          2013-07-29 11:31:05.328,A_GroupValue_Write,1.1.1,0/7/243,FF,100.0,,5.001,0,low,7,T_DATA_XXX_REQ,0
          2013-07-29 11:36:05.419,A_GroupValue_Write,1.1.1,0/7/243,FF,100.0,,5.001,0,low,7,T_DATA_XXX_REQ,0
          2013-07-29 11:41:05.623,A_GroupValue_Write,1.1.1,0/7/243,FF,100.0,,5.001,0,low,7,T_DATA_XXX_REQ,0
          2013-07-29 11:46:05.703,A_GroupValue_Write,1.1.1,0/7/243,FF,100.0,,5.001,0,low,7,T_DATA_XXX_REQ,0
          2013-07-29 11:51:06.606,A_GroupValue_Write,1.1.1,0/7/243,FF,100.0,,5.001,0,low,7,T_DATA_XXX_REQ,0
          2013-07-29 11:56:06.951,A_GroupValue_Write,1.1.1,0/7/243,FF,100.0,,5.001,0,low,7,T_DATA_XXX_REQ,0
          2013-07-29 12:01:07.687,A_GroupValue_Write,1.1.1,0/7/243,FF,100.0,,5.001,0,low,7,T_DATA_XXX_REQ,0
          2013-07-29 12:06:07.987,A_GroupValue_Write,1.1.1,0/7/243,FF,100.0,,5.001,0,low,7,T_DATA_XXX_REQ,0
          2013-07-29 12:11:08.114,A_GroupValue_Write,1.1.1,0/7/243,FF,100.0,,5.001,0,low,7,T_DATA_XXX_REQ,0
          2013-07-29 12:16:09.070,A_GroupValue_Write,1.1.1,0/7/243,FF,100.0,,5.001,0,low,7,T_DATA_XXX_REQ,0
          2013-07-29 12:21:09.390,A_GroupValue_Write,1.1.1,0/7/243,FF,100.0,,5.001,0,low,7,T_DATA_XXX_REQ,0
          2013-07-29 12:26:09.804,A_GroupValue_Write,1.1.1,0/7/243,FF,100.0,,5.001,0,low,7,T_DATA_XXX_REQ,0
          2013-07-29 12:31:10.668,A_GroupValue_Write,1.1.1,0/7/243,FF,100.0,,5.001,0,low,7,T_DATA_XXX_REQ,0
          2013-07-29 12:36:10.792,A_GroupValue_Write,1.1.1,0/7/243,FF,100.0,,5.001,0,low,7,T_DATA_XXX_REQ,0
          2013-07-29 12:41:10.856,A_GroupValue_Write,1.1.1,0/7/243,FF,100.0,,5.001,0,low,7,T_DATA_XXX_REQ,0
          2013-07-29 12:46:11.596,A_GroupValue_Write,1.1.1,0/7/243,FF,100.0,,5.001,0,low,7,T_DATA_XXX_REQ,0
          2013-07-29 12:51:12.188,A_GroupValue_Write,1.1.1,0/7/243,FF,100.0,,5.001,0,low,7,T_DATA_XXX_REQ,0
          2013-07-29 12:56:12.363,A_GroupValue_Write,1.1.1,0/7/243,FF,100.0,,5.001,0,low,7,T_DATA_XXX_REQ,0
          2013-07-29 13:01:12.572,A_GroupValue_Write,1.1.1,0/7/243,FF,100.0,,5.001,0,low,7,T_DATA_XXX_REQ,0
          2013-07-29 13:06:13.619,A_GroupValue_Write,1.1.1,0/7/243,FF,100.0,,5.001,0,low,7,T_DATA_XXX_REQ,0
          2013-07-29 13:11:14.672,A_GroupValue_Write,1.1.1,0/7/243,FF,100.0,,5.001,0,low,7,T_DATA_XXX_REQ,0
          2013-07-29 13:16:14.940,A_GroupValue_Write,1.1.1,0/7/243,FF,100.0,,5.001,0,low,7,T_DATA_XXX_REQ,0
          2013-07-29 13:21:15.563,A_GroupValue_Write,1.1.1,0/7/243,FF,100.0,,5.001,0,low,7,T_DATA_XXX_REQ,0
          2013-07-29 13:26:15.959,A_GroupValue_Write,1.1.1,0/7/243,FF,100.0,,5.001,0,low,7,T_DATA_XXX_REQ,0
          2013-07-29 13:31:16.491,A_GroupValue_Write,1.1.1,0/7/243,FF,100.0,,5.001,0,low,7,T_DATA_XXX_REQ,0
          2013-07-29 13:36:17.544,A_GroupValue_Write,1.1.1,0/7/243,FF,100.0,,5.001,0,low,7,T_DATA_XXX_REQ,0
          2013-07-29 13:41:18.560,A_GroupValue_Write,1.1.1,0/7/243,FF,100.0,,5.001,0,low,7,T_DATA_XXX_REQ,0
          2013-07-29 13:46:19.456,A_GroupValue_Write,1.1.1,0/7/243,FF,100.0,,5.001,0,low,7,T_DATA_XXX_REQ,0
          2013-07-29 13:51:20.020,A_GroupValue_Write,1.1.1,0/7/243,FF,100.0,,5.001,0,low,7,T_DATA_XXX_REQ,0
          2013-07-29 13:56:21.064,A_GroupValue_Write,1.1.1,0/7/243,FF,100.0,,5.001,0,low,7,T_DATA_XXX_REQ,0
          2013-07-29 14:01:21.376,A_GroupValue_Write,1.1.1,0/7/243,FF,100.0,,5.001,0,low,7,T_DATA_XXX_REQ,0
          2013-07-29 14:06:21.416,A_GroupValue_Write,1.1.1,0/7/243,FF,100.0,,5.001,0,low,7,T_DATA_XXX_REQ,0
          2013-07-29 14:11:21.706,A_GroupValue_Write,1.1.1,0/7/243,FF,100.0,,5.001,0,low,7,T_DATA_XXX_REQ,0
          2013-07-29 14:16:21.820,A_GroupValue_Write,1.1.1,0/7/243,FF,100.0,,5.001,0,low,7,T_DATA_XXX_REQ,0
          2013-07-29 14:21:22.379,A_GroupValue_Write,1.1.1,0/7/243,FF,100.0,,5.001,0,low,7,T_DATA_XXX_REQ,0
          2013-07-29 14:26:23.415,A_GroupValue_Write,1.1.1,0/7/243,FF,100.0,,5.001,0,low,7,T_DATA_XXX_REQ,0
          2013-07-29 14:31:24.259,A_GroupValue_Write,1.1.1,0/7/243,FF,100.0,,5.001,0,low,7,T_DATA_XXX_REQ,0
          2013-07-29 14:36:25.072,A_GroupValue_Write,1.1.1,0/7/243,FF,100.0,,5.001,0,low,7,T_DATA_XXX_REQ,0
          2013-07-29 14:41:25.439,A_GroupValue_Write,1.1.1,0/7/243,FF,100.0,,5.001,0,low,7,T_DATA_XXX_REQ,0
          2013-07-29 14:46:25.631,A_GroupValue_Write,1.1.1,0/7/243,FF,100.0,,5.001,0,low,7,T_DATA_XXX_REQ,0
          2013-07-29 14:51:25.955,A_GroupValue_Write,1.1.1,0/7/243,FF,100.0,,5.001,0,low,7,T_DATA_XXX_REQ,0
          2013-07-29 14:56:26.460,A_GroupValue_Write,1.1.1,0/7/243,FF,100.0,,5.001,0,low,7,T_DATA_XXX_REQ,0
          2013-07-29 15:01:27.024,A_GroupValue_Write,1.1.1,0/7/243,FF,100.0,,5.001,0,low,7,T_DATA_XXX_REQ,0
          2013-07-29 15:06:27.808,A_GroupValue_Write,1.1.1,0/7/243,FF,100.0,,5.001,0,low,7,T_DATA_XXX_REQ,0
          2013-07-29 15:11:28.832,A_GroupValue_Write,1.1.1,0/7/243,FF,100.0,,5.001,0,low,7,T_DATA_XXX_REQ,0
          2013-07-29 15:16:29.056,A_GroupValue_Write,1.1.1,0/7/243,FF,100.0,,5.001,0,low,7,T_DATA_XXX_REQ,0
          2013-07-29 15:21:29.755,A_GroupValue_Write,1.1.1,0/7/243,FF,100.0,,5.001,0,low,7,T_DATA_XXX_REQ,0
          2013-07-29 15:26:29.788,A_GroupValue_Write,1.1.1,0/7/243,FF,100.0,,5.001,0,low,7,T_DATA_XXX_REQ,0
          2013-07-29 15:31:30.423,A_GroupValue_Write,1.1.1,0/7/243,FF,100.0,,5.001,0,low,7,T_DATA_XXX_REQ,0
          2013-07-29 15:36:31.298,A_GroupValue_Write,1.1.1,0/7/243,FF,100.0,,5.001,0,low,7,T_DATA_XXX_REQ,0
          2013-07-29 15:41:32.003,A_GroupValue_Write,1.1.1,0/7/243,FF,100.0,,5.001,0,low,7,T_DATA_XXX_REQ,0
          2013-07-29 15:46:33.004,A_GroupValue_Write,1.1.1,0/7/243,FF,100.0,,5.001,0,low,7,T_DATA_XXX_REQ,0
          2013-07-29 15:51:33.658,A_GroupValue_Write,1.1.1,0/7/243,FF,100.0,,5.001,0,low,7,T_DATA_XXX_REQ,0
          2013-07-29 15:56:34.476,A_GroupValue_Write,1.1.1,0/7/243,FF,100.0,,5.001,0,low,7,T_DATA_XXX_REQ,0
          2013-07-29 16:01:35.411,A_GroupValue_Write,1.1.1,0/7/243,FF,100.0,,5.001,0,low,7,T_DATA_XXX_REQ,0
          2013-07-29 16:06:36.671,A_GroupValue_Write,1.1.1,0/7/243,FF,100.0,,5.001,0,low,7,T_DATA_XXX_REQ,0
          2013-07-29 16:11:36.822,A_GroupValue_Write,1.1.1,0/7/243,FF,100.0,,5.001,0,low,7,T_DATA_XXX_REQ,0
          2013-07-29 16:16:37.243,A_GroupValue_Write,1.1.1,0/7/243,FF,100.0,,5.001,0,low,7,T_DATA_XXX_REQ,0
          2013-07-29 16:21:37.386,A_GroupValue_Write,1.1.1,0/7/243,FF,100.0,,5.001,0,low,7,T_DATA_XXX_REQ,0
          2013-07-29 16:26:37.643,A_GroupValue_Write,1.1.1,0/7/243,FF,100.0,,5.001,0,low,7,T_DATA_XXX_REQ,0
          2013-07-29 16:31:38.060,A_GroupValue_Write,1.1.1,0/7/243,FF,100.0,,5.001,0,low,7,T_DATA_XXX_REQ,0
          2013-07-29 16:36:38.843,A_GroupValue_Write,1.1.1,0/7/243,FF,100.0,,5.001,0,low,7,T_DATA_XXX_REQ,0
          2013-07-29 16:41:38.895,A_GroupValue_Write,1.1.1,0/7/243,FF,100.0,,5.001,0,low,7,T_DATA_XXX_REQ,0
          2013-07-29 16:46:39.496,A_GroupValue_Write,1.1.1,0/7/243,FF,100.0,,5.001,0,low,7,T_DATA_XXX_REQ,0
          2013-07-29 16:51:39.720,A_GroupValue_Write,1.1.1,0/7/243,FF,100.0,,5.001,0,low,7,T_DATA_XXX_REQ,0
          2013-07-29 16:56:40.327,A_GroupValue_Write,1.1.1,0/7/243,FF,100.0,,5.001,0,low,7,T_DATA_XXX_REQ,0
          2013-07-29 17:01:40.958,A_GroupValue_Write,1.1.1,0/7/243,FF,100.0,,5.001,0,low,7,T_DATA_XXX_REQ,0
          2013-07-29 17:06:41.723,A_GroupValue_Write,1.1.1,0/7/243,FF,100.0,,5.001,0,low,7,T_DATA_XXX_REQ,0
          2013-07-29 17:11:41.863,A_GroupValue_Write,1.1.1,0/7/243,FF,100.0,,5.001,0,low,7,T_DATA_XXX_REQ,0
          2013-07-29 17:16:42.388,A_GroupValue_Write,1.1.1,0/7/243,FF,100.0,,5.001,0,low,7,T_DATA_XXX_REQ,0
          2013-07-29 17:21:42.683,A_GroupValue_Write,1.1.1,0/7/243,FF,100.0,,5.001,0,low,7,T_DATA_XXX_REQ,0
          2013-07-29 17:26:42.776,A_GroupValue_Write,1.1.1,0/7/243,FF,100.0,,5.001,0,low,7,T_DATA_XXX_REQ,0
          2013-07-29 17:31:43.243,A_GroupValue_Write,1.1.1,0/7/243,FF,100.0,,5.001,0,low,7,T_DATA_XXX_REQ,0
          2013-07-29 17:36:44.051,A_GroupValue_Write,1.1.1,0/7/243,FF,100.0,,5.001,0,low,7,T_DATA_XXX_REQ,0
          2013-07-29 17:41:44.231,A_GroupValue_Write,1.1.1,0/7/243,FF,100.0,,5.001,0,low,7,T_DATA_XXX_REQ,0
          2013-07-29 17:46:44.480,A_GroupValue_Write,1.1.1,0/7/243,FF,100.0,,5.001,0,low,7,T_DATA_XXX_REQ,0
          2013-07-29 17:51:44.542,A_GroupValue_Write,1.1.1,0/7/243,FF,100.0,,5.001,0,low,7,T_DATA_XXX_REQ,0
          2013-07-29 17:56:45.231,A_GroupValue_Write,1.1.1,0/7/243,FF,100.0,,5.001,0,low,7,T_DATA_XXX_REQ,0
          2013-07-29 18:01:45.355,A_GroupValue_Write,1.1.1,0/7/243,FF,100.0,,5.001,0,low,7,T_DATA_XXX_REQ,0
          2013-07-29 18:06:45.380,A_GroupValue_Write,1.1.1,0/7/243,FF,100.0,,5.001,0,low,7,T_DATA_XXX_REQ,0
          2013-07-29 18:11:46.132,A_GroupValue_Write,1.1.1,0/7/243,FF,100.0,,5.001,0,low,7,T_DATA_XXX_REQ,0
          2013-07-29 18:16:46.310,A_GroupValue_Write,1.1.1,0/7/243,FF,100.0,,5.001,0,low,7,T_DATA_XXX_REQ,0
          2013-07-29 18:21:46.850,A_GroupValue_Write,1.1.1,0/7/243,FF,100.0,,5.001,0,low,7,T_DATA_XXX_REQ,0
          2013-07-29 18:26:47.024,A_GroupValue_Write,1.1.1,0/7/243,FF,100.0,,5.001,0,low,7,T_DATA_XXX_REQ,0
          2013-07-29 18:31:47.172,A_GroupValue_Write,1.1.1,0/7/243,FF,100.0,,5.001,0,low,7,T_DATA_XXX_REQ,0
          2013-07-29 18:36:47.267,A_GroupValue_Write,1.1.1,0/7/243,FF,100.0,,5.001,0,low,7,T_DATA_XXX_REQ,0
          2013-07-29 18:41:47.926,A_GroupValue_Write,1.1.1,0/7/243,FF,100.0,,5.001,0,low,7,T_DATA_XXX_REQ,0
          2013-07-29 18:46:48.187,A_GroupValue_Write,1.1.1,0/7/243,FF,100.0,,5.001,0,low,7,T_DATA_XXX_REQ,0
          2013-07-29 18:51:48.656,A_GroupValue_Write,1.1.1,0/7/243,FF,100.0,,5.001,0,low,7,T_DATA_XXX_REQ,0
          2013-07-29 18:56:49.358,A_GroupValue_Write,1.1.1,0/7/243,FF,100.0,,5.001,0,low,7,T_DATA_XXX_REQ,0
          2013-07-29 19:01:49.491,A_GroupValue_Write,1.1.1,0/7/243,FF,100.0,,5.001,0,low,7,T_DATA_XXX_REQ,0
          2013-07-29 19:06:49.759,A_GroupValue_Write,1.1.1,0/7/243,FF,100.0,,5.001,0,low,7,T_DATA_XXX_REQ,0
          2013-07-29 19:11:50.807,A_GroupValue_Write,1.1.1,0/7/243,FF,100.0,,5.001,0,low,7,T_DATA_XXX_REQ,0
          2013-07-29 19:16:51.815,A_GroupValue_Write,1.1.1,0/7/243,FF,100.0,,5.001,0,low,7,T_DATA_XXX_REQ,0
          2013-07-29 19:21:51.864,A_GroupValue_Write,1.1.1,0/7/243,FF,100.0,,5.001,0,low,7,T_DATA_XXX_REQ,0
          2013-07-29 19:26:52.738,A_GroupValue_Write,1.1.1,0/7/243,FF,100.0,,5.001,0,low,7,T_DATA_XXX_REQ,0
          2013-07-29 19:31:53.232,A_GroupValue_Write,1.1.1,0/7/243,FF,100.0,,5.001,0,low,7,T_DATA_XXX_REQ,0
          2013-07-29 19:36:53.979,A_GroupValue_Write,1.1.1,0/7/243,FF,100.0,,5.001,0,low,7,T_DATA_XXX_REQ,0
          2013-07-29 19:41:54.690,A_GroupValue_Write,1.1.1,0/7/243,FF,100.0,,5.001,0,low,7,T_DATA_XXX_REQ,0
          2013-07-29 19:46:55.216,A_GroupValue_Write,1.1.1,0/7/243,FF,100.0,,5.001,0,low,7,T_DATA_XXX_REQ,0
          2013-07-29 19:51:56.179,A_GroupValue_Write,1.1.1,0/7/243,FF,100.0,,5.001,0,low,7,T_DATA_XXX_REQ,0
          2013-07-29 19:56:56.664,A_GroupValue_Write,1.1.1,0/7/243,FF,100.0,,5.001,0,low,7,T_DATA_XXX_REQ,0
          2013-07-29 20:01:56.720,A_GroupValue_Write,1.1.1,0/7/243,FF,100.0,,5.001,0,low,7,T_DATA_XXX_REQ,0
          2013-07-29 20:06:57.116,A_GroupValue_Write,1.1.1,0/7/243,FF,100.0,,5.001,0,low,7,T_DATA_XXX_REQ,0
          2013-07-29 20:11:57.579,A_GroupValue_Write,1.1.1,0/7/243,FF,100.0,,5.001,0,low,7,T_DATA_XXX_REQ,0
          2013-07-29 20:16:57.695,A_GroupValue_Write,1.1.1,0/7/243,FF,100.0,,5.001,0,low,7,T_DATA_XXX_REQ,0
          2013-07-29 20:21:58.762,A_GroupValue_Write,1.1.1,0/7/243,FF,100.0,,5.001,0,low,7,T_DATA_XXX_REQ,0
          2013-07-29 20:26:59.661,A_GroupValue_Write,1.1.1,0/7/243,FF,100.0,,5.001,0,low,7,T_DATA_XXX_REQ,0
          2013-07-29 20:31:59.832,A_GroupValue_Write,1.1.1,0/7/243,FF,100.0,,5.001,0,low,7,T_DATA_XXX_REQ,0
          2013-07-29 20:37:00.852,A_GroupValue_Write,1.1.1,0/7/243,FF,100.0,,5.001,0,low,7,T_DATA_XXX_REQ,0
          2013-07-29 20:42:01.055,A_GroupValue_Write,1.1.1,0/7/243,FF,100.0,,5.001,0,low,7,T_DATA_XXX_REQ,0
          2013-07-29 20:47:01.641,A_GroupValue_Write,1.1.1,0/7/243,FF,100.0,,5.001,0,low,7,T_DATA_XXX_REQ,0
          2013-07-29 20:52:02.164,A_GroupValue_Write,1.1.1,0/7/243,FF,100.0,,5.001,0,low,7,T_DATA_XXX_REQ,0
          2013-07-29 20:57:03.192,A_GroupValue_Write,1.1.1,0/7/243,FF,100.0,,5.001,0,low,7,T_DATA_XXX_REQ,0
          2013-07-29 21:02:03.230,A_GroupValue_Write,1.1.1,0/7/243,FF,100.0,,5.001,0,low,7,T_DATA_XXX_REQ,0
          2013-07-29 21:07:03.636,A_GroupValue_Write,1.1.1,0/7/243,FF,100.0,,5.001,0,low,7,T_DATA_XXX_REQ,0
          2013-07-29 21:12:04.055,A_GroupValue_Write,1.1.1,0/7/243,FF,100.0,,5.001,0,low,7,T_DATA_XXX_REQ,0
          2013-07-29 21:17:05.106,A_GroupValue_Write,1.1.1,0/7/243,FF,100.0,,5.001,0,low,7,T_DATA_XXX_REQ,0
          2013-07-29 21:22:05.399,A_GroupValue_Write,1.1.1,0/7/243,FF,100.0,,5.001,0,low,7,T_DATA_XXX_REQ,0
          2013-07-29 21:22:09.003,A_GroupValue_Write,1.1.1,0/7/243,FF,100.0,,5.001,0,low,7,T_DATA_XXX_REQ,0
          2013-07-29 21:26:48.421,A_GroupValue_Write,1.1.1,0/7/243,FF,100.0,,5.001,0,low,7,T_DATA_XXX_REQ,0
          2013-07-29 21:31:48.484,A_GroupValue_Write,1.1.1,0/7/243,FF,100.0,,5.001,0,low,7,T_DATA_XXX_REQ,0
          2013-07-29 21:41:45.863,A_GroupValue_Write,1.1.1,0/7/243,FF,100.0,,5.001,0,low,7,T_DATA_XXX_REQ,0
          2013-07-29 21:46:46.876,A_GroupValue_Write,1.1.1,0/7/243,FF,100.0,,5.001,0,low,7,T_DATA_XXX_REQ,0
          2013-07-29 21:51:47.332,A_GroupValue_Write,1.1.1,0/7/243,FF,100.0,,5.001,0,low,7,T_DATA_XXX_REQ,0
          2013-07-29 21:56:48.391,A_GroupValue_Write,1.1.1,0/7/243,FF,100.0,,5.001,0,low,7,T_DATA_XXX_REQ,0
          2013-07-29 22:01:48.559,A_GroupValue_Write,1.1.1,0/7/243,FF,100.0,,5.001,0,low,7,T_DATA_XXX_REQ,0
          2013-07-29 22:06:49.513,A_GroupValue_Write,1.1.1,0/7/243,FF,100.0,,5.001,0,low,7,T_DATA_XXX_REQ,0
          2013-07-29 22:06:49.984,A_GroupValue_Write,1.1.1,0/7/243,FF,100.0,,5.001,1,low,7,T_DATA_XXX_REQ,0
          2013-07-29 22:11:49.981,A_GroupValue_Write,1.1.1,0/7/243,FF,100.0,,5.001,0,low,7,T_DATA_XXX_REQ,0
          2013-07-29 22:16:50.620,A_GroupValue_Write,1.1.1,0/7/243,FF,100.0,,5.001,0,low,7,T_DATA_XXX_REQ,0
          2013-07-29 22:19:45.840,A_GroupValue_Write,1.1.1,0/7/243,FF,100.0,,5.001,0,low,7,T_DATA_XXX_REQ,0
          2013-07-29 22:24:46.643,A_GroupValue_Write,1.1.1,0/7/243,FF,100.0,,5.001,0,low,7,T_DATA_XXX_REQ,0
          2013-07-29 22:29:46.960,A_GroupValue_Write,1.1.1,0/7/243,FF,100.0,,5.001,0,low,7,T_DATA_XXX_REQ,0
          2013-07-29 22:34:47.311,A_GroupValue_Write,1.1.1,0/7/243,FF,100.0,,5.001,0,low,7,T_DATA_XXX_REQ,0
          2013-07-29 22:39:47.509,A_GroupValue_Write,1.1.1,0/7/243,FF,100.0,,5.001,0,low,7,T_DATA_XXX_REQ,0
          2013-07-29 22:44:47.932,A_GroupValue_Write,1.1.1,0/7/243,FF,100.0,,5.001,0,low,7,T_DATA_XXX_REQ,0
          2013-07-29 22:49:48.296,A_GroupValue_Write,1.1.1,0/7/243,FF,100.0,,5.001,0,low,7,T_DATA_XXX_REQ,0
          hier nochmal der Code von berechne_sonnenstand.pl
          Code:
          #############################################################################
          # Plugin: Berechnung Azimuth und Elevation per Standort
          # V1.0 2013-05-06
          # Copyright: Marcus Lichtenberger (marcus@lichtenbergers.at)
          # License: GPL (v3)
          #
          # Das Ergebnis dieses Plugins kann in mehreren anderen Plugins verwendet werden.
          #
          #############################################################################
          #
          # Änderungshistorie:
          # 20130506 - mclb - Erstellung
          # 20130617 - mclb - Azimuth und Elevation werden nun zusätzlich auf GAs geschrieben.
          #
          #############################################################################
          #
          # Offene Punkte:
          # - Dzt. keine bekannt
          #
          #############################################################################
          #
          # Abhängigkeiten:
          # - Paket libastro-satpass-perl
          #   - Astro::Coord::ECI;
          #   - Astro::Coord::ECI::Sun;
          #   - Astro::Coord::ECI::TLE;
          #   - Astro::Coord::ECI::Utils qw{rad2deg deg2rad};
          #   - Installation:
          #     - Wiregate Web-IF unter Updates Paket installieren libastro-satpass-perl oder
          #     - in der Konsole apt-get -install libastro-satpass-perl
          #
          #############################################################################
          #
          # plugin_info-Werte
          # - azimuth: Azimuth-Wert
          # - elevation: Elevation-Wert
          #
          #############################################################################
          
          # Module laden
          use Astro::Coord::ECI;
          use Astro::Coord::ECI::Sun;
          use Astro::Coord::ECI::TLE;
          use Astro::Coord::ECI::Utils qw{rad2deg deg2rad};
          
          my $gv_lat;
          my $gv_lon;
          my $gv_elev;
          my $show_debug;
          
          my $gv_azimuth;
          my $gv_elevation;
          my $gv_gaAzimuth;
          my $gv_gaElevation;
          
          # Read config file in conf.d
          my $confFile = '/etc/wiregate/plugin/generic/conf.d/'.basename($plugname,'.pl').'.conf';
          if (! -f $confFile)
          {
            plugin_log($plugname, "0.1 - no conf file [$confFile] found.") if ($show_debug > 0); 
            return "no conf file [$confFile] found.";
          }
          else
          {
            plugin_log($plugname, "0.2 - reading conf file [$confFile].") if ($show_debug > 0); 
            open(CONF, $confFile);
            my @lines = <CONF>;
            close($confFile);
            my $result = eval("@lines");
            if( $show_debug > 1 )
            {
              ($result) and plugin_log($plugname, "0.3 - conf file [$confFile] returned result[$result]");
            }
            if ($@) 
            {
              plugin_log($plugname, "0.4 - conf file [$confFile] returned:") if ($show_debug > 0);
              my @parts = split(/\n/, $@);
              if( $show_debug > 1 )
              {
                plugin_log($plugname, "0.5 - --> $_") foreach (@parts);
              }
            }
          }
          
          # Ruf mich alle 5 Minuten selbst auf und berechne Azimuth und Elevation neu
          $plugin_info{$plugname.'_cycle'} = 300;
          
          ($gv_azimuth, $gv_elevation) = berechneSonnenstand($gv_lat, $gv_lon, $gv_elev);
          
          plugin_log($plugname, '1 - Azimuth alt: '.$plugin_info{'azimuth'}.', Azimuth neu: '.$gv_azimuth) if ($show_debug > 0);
          plugin_log($plugname, '2 - Elevation alt: '.$plugin_info{'elevation'}.', Elevation neu: '.$gv_elevation) if ($show_debug > 0);
          
          if ($gv_azimuth ne $plugin_info{'azimuth'} or $gv_elevation ne $plugin_info{'elevation'}) {
            $plugin_info{'azimuth'} = $gv_azimuth;
            $plugin_info{'elevation'} = $gv_elevation;
          
            if ($gv_gaAzimuth ne '') { knx_write($gv_gaAzimuth, $gv_azimuth); }
            if ($gv_gaElevation ne '') { knx_write($gv_gaElevation, $gv_elevation); }
          }
          
          return 'Sonnenstand erfolgreich berechnet!';
          
          ####################################################
          # Aufruf mit berechneSonnenstand($lat, $lon, $elev);
          ####################################################
          sub berechneSonnenstand {
           # Aktuelle Zeit
           my $lv_time = time ();
           # Die eigenen Koordinaten
           my $lv_loc = Astro::Coord::ECI->geodetic(deg2rad(shift), deg2rad(shift), shift);
           # Sonne instanzieren
           my $lv_sun = Astro::Coord::ECI::Sun->universal($lv_time);
           # Feststellen wo die Sonne gerade ist
           my ($lv_azimuth, $lv_elevation, $lv_range) = $lv_loc->azel($lv_sun);
           $lv_azimuth = rad2deg($lv_azimuth);
           $lv_elevation = rad2deg($lv_elevation);
           return ($lv_azimuth, $lv_elevation);
          }
          und noch meine berechne_sonnenstand.conf
          Code:
          # [BOF /etc/wiregate/plugin/generic/conf.d/berechne_sonnenstand.conf]
          
          # Geografische Lage
          ($gv_lat, $gv_lon, $gv_elev) = (
           48.47208905183292,        # Breitengrad in Grad
           12.046465873718262,                    # Längengrad in Grad
           405 / 1000                # Höhe über NN in Kilometer (deswegen geteilt durch 1000)
          );
          
          # GA wo Azimuth und Elevation hingeschrieben werden sollen
          $gv_gaAzimuth = '0/7/243';
          $gv_gaElevation = '0/7/244';
          
          # Aktiviert Debug-Meldungen
          $show_debug = 0;  # switches debug information that will be shown in the log
          
          # [EOF /etc/wiregate/plugin/generic/conf.d/berechne_sonnenstand.conf]
          vielleicht kann ja von euch jemand einen Fehler erkennen...



          Zitat von mclb Beitrag anzeigen
          Zitat von thommymail Beitrag anzeigen
          Ich habe auch ein ähnliches Problem, die Jalousienen fahren einfach wieder hoch. Ich denke das ist klar da sich bei mir aus irgendend einen Grund die beschattung auch nicht einschaltet.
          Willst du wirklich, dass die Beschattung bei 275° beginnt und bei 85° endet? Also wenn die Sonne im Norden steht? Zumindest ist dein Azimuth von 100° da nicht dazwischen.
          hier hast du wohl meinen Beitrag und den von Thomas durcheinander gewürfelt
          cu Yfkt5A
          DALI(ABB DG/S1.1), KODI Odroid, TrueNAS, Zehnder ComfoAir 200 L Luxe
          microk8s-Cluster: HomeAssistant, MusicAssistant, mosquitto, TVHeadend, jellyfin

          Kommentar


            Anscheinend war der in der für Azimuth eingetragene falsche DPT in der eibga.conf schuld.

            Hab diesen nun auf 8.011 geändert und nun siehts besser aus:
            Code:
            2013-07-31 23:00:00.032,A_GroupValue_Write,1.1.1,0/7/243,01 45,325,,8.011,0,low,7,T_DATA_XXX_REQ,0 
            2013-07-31 23:04:59.148,A_GroupValue_Write,1.1.1,0/7/243,01 46,326,,8.011,0,low,7,T_DATA_XXX_REQ,0 
            2013-07-31 23:09:59.692,A_GroupValue_Write,1.1.1,0/7/243,01 48,328,,8.011,0,low,7,T_DATA_XXX_REQ,0 
            2013-07-31 23:15:00.082,A_GroupValue_Write,1.1.1,0/7/243,01 49,329,,8.011,0,low,7,T_DATA_XXX_REQ,0 
            2013-07-31 23:20:00.962,A_GroupValue_Write,1.1.1,0/7/243,01 4A,330,,8.011,0,low,7,T_DATA_XXX_REQ,0 
            2013-07-31 23:25:01.086,A_GroupValue_Write,1.1.1,0/7/243,01 4B,331,,8.011,0,low,7,T_DATA_XXX_REQ,0 
            2013-07-31 23:30:01.889,A_GroupValue_Write,1.1.1,0/7/243,01 4C,332,,8.011,0,low,7,T_DATA_XXX_REQ,0 
            2013-07-31 23:35:02.045,A_GroupValue_Write,1.1.1,0/7/243,01 4D,333,,8.011,0,low,7,T_DATA_XXX_REQ,0 
            2013-07-31 23:40:02.944,A_GroupValue_Write,1.1.1,0/7/243,01 4F,335,,8.011,0,low,7,T_DATA_XXX_REQ,0 
            2013-07-31 23:45:03.636,A_GroupValue_Write,1.1.1,0/7/243,01 50,336,,8.011,0,low,7,T_DATA_XXX_REQ,0 
            2013-07-31 23:50:03.899,A_GroupValue_Write,1.1.1,0/7/243,01 51,337,,8.011,0,low,7,T_DATA_XXX_REQ,0 
            2013-07-31 23:55:04.128,A_GroupValue_Write,1.1.1,0/7/243,01 52,338,,8.011,0,low,7,T_DATA_XXX_REQ,0 
            2013-08-01 00:00:04.398,A_GroupValue_Write,1.1.1,0/7/243,01 54,340,,8.011,0,low,7,T_DATA_XXX_REQ,0
            Eine Frage noch:
            Wie sperrt ihr die Beschattungsautomatik wenn ihr eine Jalousie manuell in eine Position bringt?
            Wenns über eine Szene geschieht kann man ja die Sperr-GA einfach mitsetzen, aber ich kann in der Visu jede einzelne Jalou manuell fahren, wie kann ich das hier lösen?
            Nehmt ihr solche Sperren dann auch wieder per Hand raus oder habt ihr dafür Automatiken?

            Ok... waren doch drei Fragen
            cu Yfkt5A
            DALI(ABB DG/S1.1), KODI Odroid, TrueNAS, Zehnder ComfoAir 200 L Luxe
            microk8s-Cluster: HomeAssistant, MusicAssistant, mosquitto, TVHeadend, jellyfin

            Kommentar


              Hallo allerseits,

              ich glaub, ich bin auf einen Bug (oder Feature?) gestoßen, zumindest kann ich mir keinen Reim drauf machen. Meine Jalousien fahren abends hoch, obwohl die Sperre der Automatik gesetzt ist.
              • beschattung_freigabe.pl_sperre: 1
              • beschattung_freigabe.pl_resultEvent: cycle Freigabe: AUS Besch.Ein: AUS Sperre: 1 Helligk.:

              Das Ganze passiert laut Gruppenmonitor immer dann, wenn Azimut/Elevation geändert werden. Im Plugin-Log steht dann:
              Code:
              2014-04-10 07:48:24.629,beschattung_doit.pl,5 - Elevation = 10.51
              2014-04-10 07:48:24.629,beschattung_doit.pl,7 - Bus-Aufruf, [B][COLOR=Red]Sperre = ,[/COLOR][/B] Freigabe = 0
              2014-04-10 07:48:24.630,beschattung_doit.pl,8 - Beschattung
              2014-04-10 07:48:24.630,beschattung_doit.pl,9 - Freigabe = 0
              2014-04-10 07:48:24.630,beschattung_doit.pl,10 - Raffstore = 12JAL1, Aktiv = A, Sperre = 0, Automatik = EIN
              2014-04-10 07:48:24.630,beschattung_doit.pl,11 - Beschattung aktiv; Freigabe = 0
              Besonders wundert es mich, dass hier keine Sperre drin ist.
              Im Code von beschattung_doit wird allerdings dieser Wert auch nur abgefragt, aber nirgends gesetzt und taucht auch in der Variablen-Liste der Debug-Infos nirgends auf.
              Meiner Meinung nach müsste entweder die Bindung von beschattung_doit an die Azimut/Elevation-GAs raus (die werden ja auch von beschattung_freigabe behandelt), oder der Sperr-Status von beschattung_freigabe muss auch in beschattung_doit berücksichtigt werden.

              Ich hoffe mal, dass Marcus die Arbeit am Plugin noch nicht eingestellt hat
              CU,
              Mathias

              Kommentar


                Erweiterung auf drei Helligkeitswerte

                Hallo zusammen,

                erst einmal herzlichen Dank für Dein grandioses Plugin, Marcus. Ich benutze es seit einiger Zeit, und es funktioniert einwandfrei.

                Zwei Dinge habe geändert:

                Meine Wetterstation (MDT Home) sendet Helligkeitswerte nach Himmelsrichtung getrennt (Ost, Süd, West). Im Plugin wird aber nur einen Wert zur Steuerung genutzt- ich hatte da den Wert für Süd eingetragen. Das Freigabe-Plugin überprüft die Notwendigkeit der Beschattung in Abhängigkeit der Elevation (Einstrahlwinkel der Sonne) -> je höher die Sonne steht, desto größer muss die gemessene Helligkeit sein, damit die Beschattung aktiv wird. Morgens und Abends ist die Helligkeit manchmal schon sehr groß, der Grenzwert wird aber mit dem Messwert des Süd-Sensors verglichen, der viel geringere Werte liefert und damit die Freigabe sperrt.
                Ich habe eine Erweiterung geschrieben, die jeweils den Maximalwert aus den drei Messwerten ermittelt und an "beschattung_freigabe" per GA übergibt. Ich habe das Ganze in "berechne_sonnenstand" gepackt, wollte jetzt kein weiteres Puzzleteilchen der Beschattungsmimik hinzufügen.
                Ich bin in Sachen Perl-Programmierung in absolutem Neuland unterwegs, und habe versucht, in Markus Stil zu bleiben. Wenn es Verbesserungsvorschläge gibt oder sonstwas, immer gerne.

                Also folgende Plugins sind beteiligt:
                berechne_sonnenstand (modifizierter Code s.u.), beschattung_freigabe und beschattung_doit, jeweils mit deren *.conf.

                Code:
                #############################################################################
                # Plugin: Berechnung Azimuth und Elevation per Standort
                # V1.0 2013-05-06
                # Copyright: Marcus Lichtenberger (marcus@lichtenbergers.at)
                # License: GPL (v3)
                #
                # Das Ergebnis dieses Plugins kann in mehreren anderen Plugins verwendet werden.
                #
                #############################################################################
                #
                # Änderungshistorie:
                # 20130506 - mclb - Erstellung
                # 20130617 - mclb - Azimuth und Elevation werden nun zusätzlich auf GAs geschrieben.
                #
                #############################################################################
                #
                # Offene Punkte:
                # - Dzt. keine bekannt
                #
                #############################################################################
                #
                # Abhängigkeiten:
                # - Paket libastro-satpass-perl
                #   - Astro::Coord::ECI;
                #   - Astro::Coord::ECI::Sun;
                #   - Astro::Coord::ECI::TLE;
                #   - Astro::Coord::ECI::Utils qw{rad2deg deg2rad};
                #   - Installation:
                #     - Wiregate Web-IF unter Updates Paket installieren libastro-satpass-perl oder
                #     - in der Konsole apt-get -install libastro-satpass-perl
                #
                #############################################################################
                #
                # plugin_info-Werte
                # - azimuth: Azimuth-Wert
                # - elevation: Elevation-Wert
                #
                #############################################################################
                
                # Module laden
                use Astro::Coord::ECI;
                use Astro::Coord::ECI::Sun;
                use Astro::Coord::ECI::TLE;
                use Astro::Coord::ECI::Utils qw{rad2deg deg2rad};
                
                # Konstanten für Aufrufart
                use constant EVENT_BUS => 'bus';
                use constant EVENT_CYCLE => 'cycle';
                
                my $gv_lat;
                my $gv_lon;
                my $gv_elev;
                my $show_debug;
                
                my $gv_azimuth;
                my $gv_elevation;
                my $gv_helligkeit;
                my $gv_helligkeit_O;
                my $gv_helligkeit_S;
                my $gv_helligkeit_W;
                my $gv_gaAzimuth;
                my $gv_gaElevation;
                my $gv_gaHelligkeit;
                my $gv_gaHelligkeit_O;
                my $gv_gaHelligkeit_S;
                my $gv_gaHelligkeit_W;
                
                # Read config file in conf.d
                my $confFile = '/etc/wiregate/plugin/generic/conf.d/'.basename($plugname,'.pl').'.conf';
                if (! -f $confFile)
                {else
                {
                # Ruf mich alle 5 Minuten selbst auf und berechne Azimuth und Elevation neu
                $plugin_info{$plugname.'_cycle'} = 300;
                # Ruf mich auf, wenn sich die Helligkeit ändert, damit ich max. Helligkeits-Variable setzen kann
                if ($gv_gaHelligkeit_O ne '') { $plugin_subscribe{$gv_gaHelligkeit_O}{$plugname} = 1; }
                if ($gv_gaHelligkeit_S ne '') { $plugin_subscribe{$gv_gaHelligkeit_S}{$plugname} = 1; }
                if ($gv_gaHelligkeit_W ne '') { $plugin_subscribe{$gv_gaHelligkeit_W}{$plugname} = 1; }
                
                # Aus welchem Grund läuft das Plugin gerade
                my $gv_event=undef;
                if (%msg) { else {
                if ($gv_event eq EVENT_BUS) {
                    if ($msg{'apci'} eq "A_GroupValue_Write" and $msg{'dst'} eq $gv_gaHelligkeit_O) {
                     $gv_helligkeit_O = $msg{'value'};
                    } elsif ($msg{'apci'} eq "A_GroupValue_Write" and $msg{'dst'} eq $gv_gaHelligkeit_S) {
                     $gv_helligkeit_S = $msg{'value'};
                    } elsif ($msg{'apci'} eq "A_GroupValue_Write" and $msg{'dst'} eq $gv_gaHelligkeit_W) {
                     $gv_helligkeit_W = $msg{'value'};
                    }
                     
                    # Maximalwert der Aussenhelligkeit (richtungsunabhängig) ermitteln
                    $gv_helligkeit = $gv_helligkeit_O;
                    if ($gv_helligkeit_S > $gv_helligkeit) { $gv_helligkeit = $gv_helligkeit_S}
                    if ($gv_helligkeit_W > $gv_helligkeit) { $gv_helligkeit = $gv_helligkeit_W}
                    knx_write($gv_gaHelligkeit, $gv_helligkeit);
                      
                } elsif ($gv_event eq EVENT_CYCLE) {
                
                    ($gv_azimuth, $gv_elevation) = berechneSonnenstand($gv_lat, $gv_lon, $gv_elev);
                    
                    plugin_log($plugname, '1 - Azimuth alt: '.$plugin_info{'azimuth'}.', Azimuth neu: '.$gv_azimuth) if ($show_debug > 0);
                    plugin_log($plugname, '2 - Elevation alt: '.$plugin_info{'elevation'}.', Elevation neu: '.$gv_elevation) if ($show_debug > 0);
                    
                    if ($gv_azimuth ne $plugin_info{'azimuth'} or $gv_elevation ne $plugin_info{'elevation'}) {
                      $plugin_info{'azimuth'} = $gv_azimuth;
                      $plugin_info{'elevation'} = $gv_elevation;
                    
                      if ($gv_gaAzimuth ne '') { knx_write($gv_gaAzimuth, $gv_azimuth); }
                      if ($gv_gaElevation ne '') { knx_write($gv_gaElevation, $gv_elevation); }
                       
                    }
                }
                
                
                
                return 'Sonnenstand erfolgreich berechnet!';
                
                ####################################################
                # Aufruf mit berechneSonnenstand($lat, $lon, $elev);
                ####################################################
                sub berechneSonnenstand {
                 # Aktuelle Zeit
                 my $lv_time = time ();
                 # Die eigenen Koordinaten
                 my $lv_loc = Astro::Coord::ECI->geodetic(deg2rad(shift), deg2rad(shift), shift);
                 # Sonne instanzieren
                 my $lv_sun = Astro::Coord::ECI::Sun->universal($lv_time);
                 # Feststellen wo die Sonne gerade ist
                 my ($lv_azimuth, $lv_elevation, $lv_range) = $lv_loc->azel($lv_sun);
                 $lv_azimuth = rad2deg($lv_azimuth);
                 $lv_elevation = rad2deg($lv_elevation);
                 return ($lv_azimuth, $lv_elevation);
                }
                Code:
                # [BOF /etc/wiregate/plugin/generic/conf.d/berechne_sonnenstand.conf]
                
                # Geografische Lage
                ($gv_lat, $gv_lon, $gv_elev) = (
                 51.67201,        # Breitengrad in Grad
                 7.00621,                    # Längengrad in Grad
                 35 / 1000                # Höhe über NN in Kilometer (deswegen geteilt durch 1000)
                );
                
                # GA wo Azimuth und Elevation hingeschrieben werden sollen
                $gv_gaAzimuth = '0/3/0';
                $gv_gaElevation = '0/3/1';
                
                # GA für die Helligkeit
                # Wert Wetterstation Ost
                $gv_gaHelligkeit_O = '14/4/100';
                # Wert Wetterstation Sued
                $gv_gaHelligkeit_S = '14/4/101';
                # Wert Wetterstation West
                $gv_gaHelligkeit_W = '14/4/102';
                # Wert Wetterstation Maximal
                $gv_gaHelligkeit = '14/4/104';
                
                # Aktiviert Debug-Meldungen
                $show_debug = 1;  # switches debug information that will be shown in the log
                
                # [EOF /etc/wiregate/plugin/generic/conf.d/berechne_sonnenstand.conf]
                Das Zweite:
                Ich habe den Nachführungswinkel der Lamellen angepasst. Für optimale Lichtausbeute innen können bei mir die Lamellen auch flacher als 90° zur Elevation stehen, und meine Lamellen kippen auch nicht zwischen ganz zu und ganz auf um 90°, sondern sind schon bei etwa 80° dicht. Die angepasste Berechnung findet sich in "beschattung_doit" etwa in Zeile 407:
                Code:
                # Originalzeile:
                        # $gv_lamellePosNeu = (90 - $plugin_info{$plugname.'_elevation'})/90*100;
                        # Neue Zeile: Größere Öffnung der Lamellen, anderer Umrechnungsfaktor von ° in %
                        $gv_lamellePosNeu = (56 - $plugin_info{$plugname.'_elevation'})/80*100;
                Gruß,
                Jan.

                Kommentar


                  Hallo zusammen,

                  zuerst mal vielen Dank für das tolle Plugin. Ich habe nun die Beschattung incl Temp und Sperre soweit inbekommen.

                  benutze folgende Plugins:
                  Sonnenstandsberechnung, Beschattungsfreigabe, Beschattung_doit

                  Leider reagiert meine Beschattung nicht auf meine Helligkeit von der Wetterstation. Helligkeitswert DPT habe ich auf 9.001 Lux gestellt.

                  Ist dieses korrekt und ab welchem Helligkeitswert wird beschattet?

                  Im Log wird die Helligkeit ja auch angezeigt.

                  Hat jemand eine Idee an was das liegen könnte?


                  Auszug aus dem Log:
                  2014-09-01 17:24:23.237,Beschattung_freigabe,2 - Elevation: 26 , Helligkeit: 5570.56
                  2014-09-01 17:24:23.237,Beschattung_freigabe,3 - Beschattung ein: N

                  Kommentar

                  Lädt...
                  X