[ Beispiel ] IF The Season come ( Berechnung von Jahreszeiten )

Beschreibung:
Heute habe ich als Beispiele:

  1. Bedingungen
  2. Berechnung von Jahreszeiten.

 

Vorraussetzung:

Paket/APP Version
*

 

Schwirigkeitsgrad:
  :eight_spoked_asterisk: :eight_spoked_asterisk: :asterisk: :asterisk: :asterisk:
 
 
Hier eine einfach Bedingung:
image
 
image

Eine einfache Bedingung funktioniert ganz einfach über eine Switch Node, Ihr tragt die Bedingung die zu erfüllen ist ein, danach wird auf Ausgang0 ein True, zur weiteren Verwendung ausgegeben.

 
Hier eine wenn dann Bedingung:
image

 
 
image
 
Für eine Wenn dann, wird einfach eine weiter Bedingung hinzugefügt, die dann auf Ausgang1 das True zur weiteren Verwendung ausgibt.
 

 
Hier eine wenn dann Bedingung:
image
 
image
Genauso funktioniert eine von bis Bedingung, in der Ihr einfach die werte von bis eintragt.

 
 
Berechnung von Jahreszeiten:
Und hier auf Wunsch von @leika241265 ein Beispiel zur Berechnung von Jahreszeiten.

image
Hier der Code Teil:

$first_calc_spring=1426891500; //Fri Mar 20 2015 22:45:00 only to Calc
$SeasonTickArray=array(8014464, 8091360, 7762176, 7688736);

// 0=Spring 1=Summer, 2=Fall ,3=Winter
$current_season=0;
$current_season_name="Spring";
$current_time=time();

while ($first_calc_spring + $SeasonTickArray[$current_season] < $current_time) { // Schleife solange durchlaufen, wie die Unixzeit nicht ueberschritten wird
    $first_calc_spring += $SeasonTickArray[$current_season++]; // zum Startdatum die Sekunden pro Jahreszeit addieren und den Jahreszeiten-Zaehler erhoehen
    if ($current_season > 3) $current_season = 0;    // wenn der Jahreszeiten-Zaehler beim Winter (3) angekommen ist, wieder zum Fruehling (0) springen
};

if($current_season ==0)
    $current_season_name="Spring";
else if($current_season ==1)
    $current_season_name="Summer";
else if($current_season ==2)
    $current_season_name="Fall";
else if($current_season ==3)
    $current_season_name="Winter";

$msg['payload'] = "{\"name\": \"".$current_season_name."\", \"month\": \"".gmdate("F",$current_time)."\", \"seasonid\": ".$current_season."}";
return $msg;

Hier ist eine einfache Berechnung, in der wir von einem Festen Frühlingswert irgendwann in der Vergangenheit ausgehen. Von dort aus werden jeweils die Sekunden hochgerechnet um die Aktuelle Jahreszeit zu ermitteln.

while ($first_calc_spring + $SeasonTickArray[$current_season] < $current_time) { // Schleife solange durchlaufen, wie die Unixzeit nicht ueberschritten wird
    $first_calc_spring += $SeasonTickArray[$current_season++]; // zum Startdatum die Sekunden pro Jahreszeit addieren und den Jahreszeiten-Zaehler erhoehen
    if ($current_season > 3) $current_season = 0;    // wenn der Jahreszeiten-Zaehler beim Winter (3) angekommen ist, wieder zum Fruehling (0) springen
};

Hier geht die Magie ab ;). Die while Schleife läuft solange das SeasonTrickArray in denen sich die Sekunden der Jahreszeiten befinden bis wir die Aktuelle Zeit erreicht haben.

if($current_season ==0)
    $current_season_name="Spring";
else if($current_season ==1)
    $current_season_name="Summer";
else if($current_season ==2)
    $current_season_name="Fall";
else if($current_season ==3)
    $current_season_name="Winter";

Zum ändern der Sprache müssen einfach die Variablen geändert werden.

$msg['payload'] = "{\"name\": \"".$current_season_name."\", \"month\": \"".gmdate("F",$current_time)."\", \"seasonid\": ".$current_season."}";
return $msg;
// { month: "January", name: "Winter", seasonid: 3 }

Natürlich könnt Ihr auch die Json für die Ausgabe nach eigenen wünschen anpassen.
 
 
Hier noch der Flow als Json:
Seasons.json (2,6 KB)

 
So hier haben wir diesmal einen Leserwunsch erfüllt also Lesen lohnt sich ;). Ich hoffe das meine Teile endlich kommen, und ich nächste Woche das Beispiel machen kann das ich Ursprünglich schon letzte Woche vor hatte.

 
Wie immer Viel Spaß
Gruß
Michael
 


Weitere Beispiele Link
Und hier findest Ihr Video Tutorials für die Smartha Home Zentrale Link
Und hier findest Ihr Video Tutorials für die Smartha APP Link

1 „Gefällt mir“

Super :+1: :+1:

Danke

Gerne Doch :slight_smile:
Viel Spass damit

Etwas Gedult :wink: mehr verrate ich nicht.