Beschreibung:
Heute habe ich ein Beispiel wo es ums Zählen geht, ob Fenster Türen oder andere Sachen.
Vorraussetzung:
| Paket/APP | Version | |
|---|---|---|
| * | 
Schwirigkeitsgrad:
   
  
  
  
 
 
 

if($msg['payload'] == true){
$msg['payload'] = getFlowData('WindowCount')-1;
return $msg; 
}
In den Funktions Nodes befindet sich lediglich eine Abfrage auf True sowie einmal Addieren einmal Subtrahieren oder alles auf 0 setzen. Im Template könnt Ihr dann eure Nachrricht eintragen die gesendet wird wenn alle Fenster geschlossen sind.
 
Namen der Fenster Ausgeben:
Da die frage wahrscheinlich sowieso kommt, hier noch  wie ihr herausbekommt welche Fenster offen sind. Da Ihr wieder zu Faul seit  um eure Füsse zu  bewegen und nachschauen  . Deshalb habe ich bzw. in diesem fall @pstebbe mal was vorbereitet :).
. Deshalb habe ich bzw. in diesem fall @pstebbe mal was vorbereitet :).

$category = 5;
$devices = $hg->getDevicesInCategory($category);
foreach ($devices as $peerID) {
    try {
        if ($hg->getValue($peerID, 1, 'ONOFF')) {
            $openWindows[] = "- " . $hg->getName($peerID) . "\n";
        }
        continue;
    } catch(Exception $e) {
        //
    }
    
    try {
        if ($hg->getValue($peerID, 1, 'STATE')) {
            $openWindows[] = "- " . $hg->getName($peerID) . "\n";
        }
        continue;
    } catch(Exception $e) {
        //
    }
}
$msg['date'] = $date = date('d.m.Y', time());
$msg['payload'] = ($openWindows ? implode('', $openWindows) : false);
$msg['count'] = count($openWindows);
$msg['devices'] = $openWindows;
return $msg;
Als erstes müsste Ihr alle Fensterkontakte die überprüft werden sollen, einer Gruppe zuordnen. Und die GruppenID in der Funktion’s Node, in die $category variable eintragen. Anschliessend werden euch alle Offenen Fenster ausgegeben die Ihr euch dann zb. Per Push senden könnt.
$category = 5; 
 
ALL IN ONE

$category = 3;
$devices = $hg->getDevicesInCategory($category);
$count =0;
foreach ($devices as $peerID) {
    try {
        
        if ($hg->getValue($peerID, 1, 'STATE')) {
                $openWindows[] =$hg->getName($peerID);
        }
        continue;
    } catch(Exception $e) {
        //
    }
}
$msgOpenWindows['date'] = $date = date('d.m.Y', time());
$msgOpenWindows['payload'] = count($openWindows);
$msgOpenWindows['devices'] = $openWindows;
$msg['date'] = $date = date('d.m.Y', time());
$msg['payload'] = json_encode ($openWindows);
$msg['devices'] = $openWindows;
output(1, $msgOpenWindows);
output(0, $msg);
Hier ist noch eine ALL IN ONE Lösung wo in Ausgang 0, alle Fensterbezeichnungen als Json Array Ausgegben werden. Und in Ausgang 1 die Zahl der Offenen Fenster.
 
 
Hier noch der Flow als Json:
OpenWindows.json (20,9 KB)
Allinone.json (2,5 KB)
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



 da könnte ich wirklich ein grösseres Beispiel machen das Passt sogar in eine Idee die ich schon habe da Packe ich das mit dazu das dauert aber noch ein etwas  ;).
 da könnte ich wirklich ein grösseres Beispiel machen das Passt sogar in eine Idee die ich schon habe da Packe ich das mit dazu das dauert aber noch ein etwas  ;).
