+ Antworten
Ergebnis 1 bis 3 von 3
  1. #1
    Registriert seit
    Apr 2016
    Ort
    Mohorn - Sachsen
    Beiträge
    86

    Standard Script: Luftdrucktrend ermitteln

    Ich habe für eine kleine Trendvorhersage zwei Scripte erstellt.
    Mein System stellt den Luftdruck bereit. Der Trend muss selbst ermittelt werden.
    Die "offiziellen" Trendvorhersagen beachten den Trend der letzten 3 Sunden
    (in den letzten 3 Stunden leicht steigend...) und den Trend der letzten Stunde
    (...in der letzen Stunde stark fallend). Zusammenfassend: Erst leicht steigend, dann stark fallend.
    Es gibt einen Wetterumschwung und es deutet sich ein Sturm an...
    Zu diesen Texten werden Symbole zugeordnet. In diesem Beispiel wäre es dieses:
    Name:  ld-04.png
Hits: 401
Größe:  446 Bytes

    Schritte:
    1. Die in den beiden Scripts aufgeführten Variablen anlegen
    2. Die ID des Sensors im Script hinterlegen
    3. Die Archiv-ID wird automatisch ermittelt
    4.1 Script "Luftdrucktrend" neu anlegen, das Script "Luftdrucktrend" reinkopieren
    4.2 Ereignis: "Täglich alle 1 Stunden" zuordnen
    5.1 Script "Luftdrucktrend txt" neu anlegen, das Script "Luftdrucktrend txt" reinkopieren
    5.2 Ereignis: "Täglich alle 1 Stunden" zuordnen
    6.1 symbole.zip herunterladen und entpacken
    6.2 Symbole unter "/var/lib/symcon/webfront/user/LDTrendIcons" (IPS unter Ubuntu 16.04) speichern

    Nun werden jede Stunde die ermittelten Werte in die jeweiligen Variablen geschrieben.
    Es wird der Dateiname des Symboles zugeordnet. Die Darstellung des Symbols im WebFront habe ich noch nicht gelöst.
    Vielleicht kann mir da jemand einen Tip geben...

    Matthias


    Script "Luftdrucktrend"
    PHP-Code:
    <?
    /*
     ################################################################################
     # IP-Symcon Programm                                                           #
     #                                                                              #
     # Beschreibung : Luftdrucktrend ermitteln (aus Archivdaten)                    #
     # Create date  : 2016-09-06                                                    #
     # Last change  : 2016-10-07                                                    #
     # Version      : 0.01                                                          #
     # Datei        : 21488.ips.php                                                 #
     # Autor        : Matthias Herold                                               #
     # Copyright    :                                                               #
     ################################################################################
     */

    // Hardware
    $ID_ld         47824 /*[7 Technik\7.22 HomeMatic CCU\HomeMatic Variablen CCU\homeduino_garden_baro]*/ // Variablen-ID

    // Variablen (Float mit einer Nachkommastelle)
    $ID_ld_1h   27554 /*[99 meine Projekte\0 Klima+Wetter\UMW Luftdrucktrend\Luftdrucktendenz_1h]*/;
    $ID_ld_3h   49183 /*[99 meine Projekte\0 Klima+Wetter\UMW Luftdrucktrend\Luftdrucktendenz_3h]*/;
    $ID_ld_12h  31321 /*[99 meine Projekte\0 Klima+Wetter\UMW Luftdrucktrend\Luftdrucktendenz_12h]*/;
    $ID_ld_24h  34016 /*[99 meine Projekte\0 Klima+Wetter\UMW Luftdrucktrend\Luftdrucktendenz_24h]*/;

    //--config end--------------------


    //  letzte Stunde
    Ldtrend(1$ID_ld_1h$ID_ld);

    //  letzte 3 Stunden
    Ldtrend(3$ID_ld_3h$ID_ld);

    //  letzte 12 Stunden
    Ldtrend(12$ID_ld_12h$ID_ld);

    //  letzte 24 Stunden
    Ldtrend(24$ID_ld_24h$ID_ld);


    function 
    Ldtrend($lasthours$varid$ID_ld)
    {
    $ID_Archive IPS_GetInstanceListByModuleID('{43192F0B-135B-4CE7-A0A7-1475603F3060}')[0]; // Archiv Handler ID wird automatisch ausgelesen
    $ZeitraumVON time()- (3600 $lasthours);
    $ZeitraumBIS time();
    $LogDatenAR AC_GetLoggedValues($ID_Archive$ID_ld$ZeitraumVON$ZeitraumBIS0);
    $id_ld = (count($LogDatenAR)-1);
    $current_ld $LogDatenAR[0]["Value"];
    $last_ld $LogDatenAR[$id_ld]["Value"];
    $ld_tendenz round($current_ld $last_ld,1);

    SetValue($varid$ld_tendenz);
    }
    ?>
    Script "Luftdrucktrend txt"
    PHP-Code:
    <?
    /*
     ################################################################################
     # IP-Symcon Programm                                                           #
     #                                                                              #
     # Beschreibung : Luftdrucktrend-Texte ermitteln                                #
     # Create date  : 2016-09-06                                                    #
     # Last change  : 2016-10-07                                                    #
     # Version      : 0.01                                                          #
     # Datei        : 25596.ips.php                                                 #
     # Autor        : Matthias Herold                                               #
     # Copyright    :                                                               #
     ################################################################################
     */

    // Hardware
    $ID_ld          47824 /*[7 Technik\7.22 HomeMatic CCU\HomeMatic Variablen CCU\homeduino_garden_baro]*/ // Variablen-ID

    // Icons unter /var/lib/symcon/webfront/user/LDTrendIcons ablegen

    // Variablen (Float)
    $ID_ld_1h    27554 /*[99 meine Projekte\0 Klima+Wetter\UMW Luftdrucktrend\Luftdrucktendenz_1h]*/;
    $ID_ld_3h    49183 /*[99 meine Projekte\0 Klima+Wetter\UMW Luftdrucktrend\Luftdrucktendenz_3h]*/;
    // Variablen (String)
    $ID_ld_txt3h 57481 /*[99 meine Projekte\0 Klima+Wetter\UMW Luftdrucktrend\Luftdrucktrend 3h text]*/;
    $ID_ld_txt1h 32646 /*[99 meine Projekte\0 Klima+Wetter\UMW Luftdrucktrend\Luftdrucktrend 1h text]*/;
    $ID_ld_txtl  50955 /*[99 meine Projekte\0 Klima+Wetter\UMW Luftdrucktrend\Luftdrucktrend lang txt]*/;
    $ID_ld_icon  44208 /*[99 meine Projekte\0 Klima+Wetter\UMW Luftdrucktrend\Luftdrucktrend Icon]*/;

    $ld1h getValueFloat($ID_ld_1h);
    $ld3h getValueFloat($ID_ld_3h);
    $trend_icon "";
    $trend 0;

    //--config end--------------------

    // Werte für 3h (Standard in Wettermeldungen)
    // $trend3h = "";
    if (($ld3h <= -3.0))                             {$trend3h "stark fallend";}
    if ((
    $ld3h > -3.0)and($ld3h <= -1.0))         {$trend3h "schwach fallend";}
    if ((
    $ld3h > -1.0)and($ld3h 1.0))            {$trend3h "stabil";}
    if ((
    $ld3h >= 1.0)and ($ld3h 3.0))        {$trend3h "schwach steigend";}
    if ((
    $ld3h >= 3))                                 {$trend3h "stark steigend";}

    setValueString($ID_ld_txt3h,$trend3h);

    // Werte für 1h (zur Berechnung der Trendvorschau)
    if (($ld1h <= -3.0))                             {$trend1h "stark fallend";}
    if ((
    $ld1h > -3.0)and($ld1h <= -1.0))         {$trend1h "schwach fallend";}
    if ((
    $ld1h > -1.0)and($ld1h 1.0))            {$trend1h "stabil";}
    if ((
    $ld1h >= 1.0)and ($ld1h 3.0))        {$trend1h "schwach steigend";}
    if ((
    $ld1h >= 3))                                 {$trend1h "stark steigend";}

    setValueString($ID_ld_txt1h,$trend1h);

    // Trendvorschau
    if (($trend3h == "stark steigend")     and ($trend1h == "stark steigend"))     {$trend "Konstant stark steigend";                             $trend_icon "ld-01.png";}
    if ((
    $trend3h == "stark steigend")      and ($trend1h == "schwach steigend")) {$trend "Erst stark steigend, dann schwach steigend";     $trend_icon "ld-01.png";}
    if ((
    $trend3h == "stark steigend")      and ($trend1h == "stabil"))               {$trend "Erst stark steigend, dann stabil";                  $trend_icon "ld-03.png";}
    if ((
    $trend3h == "stark steigend")      and ($trend1h == "schwach fallend"))     {$trend "Erst stark steigend, dann schwach fallend";   $trend_icon "ld-02.png";}
    if ((
    $trend3h == "stark steigend")      and ($trend1h == "stark fallend"))        {$trend "Erst stark steigend, dann stark fallend";     $trend_icon "ld-04.png";}

    if ((
    $trend3h == "schwach steigend") and ($trend1h == "stark steigend"))      {$trend "Erst schwach steigend, dann stark steigend";     $trend_icon "ld-01.png";}
    if ((
    $trend3h == "schwach steigend") and ($trend1h == "schwach steigend")) {$trend "Konstant schwach steigend";                         $trend_icon "ld-01.png";}
    if ((
    $trend3h == "schwach steigend") and ($trend1h == "stabil"))               {$trend "Erst schwach steigend, dann stabil";              $trend_icon "ld-03.png";}
    if ((
    $trend3h == "schwach steigend") and ($trend1h == "schwach fallend"))    {$trend "Erst schwach steigend, dann schwach fallend"$trend_icon "ld-02.png";}
    if ((
    $trend3h == "schwach steigend") and ($trend1h == "stark fallend"))     {$trend "Erst schwach steigend, dann stark fallend";   $trend_icon "ld-04.png";}

    if ((
    $trend3h == "stabil")               and ($trend1h == "stark steigend"))     {$trend "Erst stabil, dann stark steigend";                 $trend_icon "ld-09.png";}
    if ((
    $trend3h == "stabil")                and ($trend1h == "schwach steigend")) {$trend "Erst stabil, dann schwach steigend";             $trend_icon "ld-09.png";}
    if ((
    $trend3h == "stabil")                and ($trend1h == "stabil"))               {$trend "Konstant stabil";                                         $trend_icon "ld-05.png";}
    if ((
    $trend3h == "stabil")                and ($trend1h == "schwach fallend"))  {$trend "Erst stabil, dann schwach fallend";                 $trend_icon "ld-04.png";}
    if ((
    $trend3h == "stabil")                and ($trend1h == "stark fallend"))     {$trend "Erst stabil, dann stark fallend";                 $trend_icon "ld-04.png";}

    if ((
    $trend3h == "schwach fallend")  and ($trend1h == "stark steigend"))     {$trend "Erst schwach fallend, dann stark steigend";    $trend_icon "ld-09.png";}
    if ((
    $trend3h == "schwach fallend")  and ($trend1h == "schwach steigend")) {$trend "Erst schwach fallend, dann schwach steigend";    $trend_icon "ld-09.png";}
    if ((
    $trend3h == "schwach fallend")  and ($trend1h == "stabil"))               {$trend "Erst schwach fallend, dann stabil";                $trend_icon "ld-08.png";}
    if ((
    $trend3h == "schwach fallend")  and ($trend1h == "schwach fallend"))  {$trend "Konstant schwach fallend";                            $trend_icon "ld-06.png";}
    if ((
    $trend3h == "schwach fallend")  and ($trend1h == "stark fallend"))      {$trend "Erst schwach fallend, dann stark fallend";        $trend_icon "ld-06.png";}

    if ((
    $trend3h == "stark fallend")       and ($trend1h == "stark steigend"))     {$trend "Erst stark fallend, dann stark steigend";        $trend_icon "ld-09.png";}
    if ((
    $trend3h == "stark fallend")       and ($trend1h == "schwach steigend")) {$trend "Erst stark fallend, dann schwach steigend";    $trend_icon "ld-07.png";}
    if ((
    $trend3h == "stark fallend")       and ($trend1h == "stabil"))               {$trend "Erst stark fallend, dann stabil";                    $trend_icon "ld-08.png";}
    if ((
    $trend3h == "stark fallend")       and ($trend1h == "schwach fallend"))  {$trend "Erst stark fallend, dann schwach fallend";        $trend_icon "ld-06.png";}
    if ((
    $trend3h == "stark fallend")       and ($trend1h == "stark fallend"))      {$trend "Konstant stark fallend";                                $trend_icon "ld-06.png";}

    setValueString($ID_ld_txtl,$trend);
    setValueString($ID_ld_icon,$trend_icon);

    ?>
    Angehängte Dateien Angehängte Dateien

  2. #2
    Registriert seit
    Dec 2010
    Beiträge
    931

    Hallo MHerold,

    nette Idee, danke fürs teilen.

    Das mit den Icons funktioniert so nicht. Du kannst glaub ich nicht einer String-Variable ein Bild zuordnen.
    Wenn dann musst Du das in html packen. Und ich hab gerade in den Scripts nichts mit Zielpfaden zu den Bildern gefunden. Werden die überhaupt vom Script/IPS gefunden?

    Versuche gerade noch Deine Scripts unter Win anzupassen.

    Melde mich wieder wenns was neues gibt.
    Grüsse, Wolfgang

  3. #3
    Registriert seit
    Oct 2011
    Ort
    Hattersheim (Hessen)
    Beiträge
    7,519

    Zitat Zitat von MHerold Beitrag anzeigen
    Es wird der Dateiname des Symboles zugeordnet. Die Darstellung des Symbols im WebFront habe ich noch nicht gelöst.
    Vielleicht kann mir da jemand einen Tip geben...
    Dafür gibt es das Medien Element dem ordnest Du eine Grafik zu
    IPS_SetMediaFile — IP-Symcon :: Automatisierungssoftware

Ähnliche Themen

  1. Tageshöchsttemperatur ermitteln?
    Von garfi35 im Forum Allgemeine Diskussion (2.x/3.x)
    Antworten: 53
    Letzter Beitrag: 29.04.20, 16:07
  2. Wochentag ermitteln
    Von Franky im Forum Skripte, PHP, SQL
    Antworten: 10
    Letzter Beitrag: 28.05.17, 19:21
  3. wie den trigger für script ermitteln?
    Von Jolly im Forum Skripte, PHP, SQL
    Antworten: 7
    Letzter Beitrag: 21.01.14, 19:01
  4. Verzeichnissgröße ermitteln.
    Von ThomasD im Forum Skripte, PHP, SQL
    Antworten: 5
    Letzter Beitrag: 18.11.13, 21:32
  5. Gerätekategorie im Script ermitteln
    Von Markus Arndt im Forum Allgemeine Diskussion (2.x/3.x)
    Antworten: 4
    Letzter Beitrag: 13.10.08, 10:03