Alexa "Alle Lichter schalten" über vherschiedene Geräte (Hue, HMIP,...)

Guten Morgen zusammen,

vermutlich übersehe ich gerade etwas oder blicke es nicht.

Ich möchte einen Alexa Befehl über IPS ausführen der alle Lichter ein-/ausschaltet, wenn möglich auch alle dimmt.
Nun habe ich aber Geräte über HMIP und Hue in IPS eingebunden, vermutlich kommen demnächst noch weitere
Module/Gerätetypen hinzu (leider).

Wie müsste ich dies anstellen, wie müsste ein Ereignis aussehen das dies schaltet?

Hallo Sunzi,

ich würde alle Lichter in IPS-Alexa anlegen und diese dann in der Alexa-App in eine Gruppe fassen. Diese Gruppe schaltet dan auf Befehl alle enthaltenene Lichter ein oder aus (so hab ich es bei mir gemacht).

Es gibt sogar standardmäßig eine Funktion, die man aktivieren kann in der Alexa-App. Nennt sich „Alexa, gute Nacht“ und schaltet alle gelisteten Lampen aus.

Viele Grüße

Burkhard

Ja die Option gäbe es sicherlich auch, als reiner Sprachbefehl auch ok.
Aber zusätzlich über ein Webfront lässt es sich dann nicht schalten, als Sekundärlösung.

Alexa ist hier das Ziel aber es sollte auch „mal“ über das Webfront schaltbar sein (wenn Alexa einem nicht versteht, Krank, heißer,…).

Hallo
Schau mal nach diesem Script:
https://www.symcon.de/forum/threads/21170-Alle-Lichter-ausschalten-oder-alle-Instanzen-schalten-abh-vom-Variablenprofil?p=191835#post191835

Das wäre mein zweiter Ansatz gewesen :o

Mittels Script alle Lichter schalten und dann kann man das Script in dem Alexa Modul unter „Expertenoptionen“ als Szene einbauen. Somit kann man es per IPS b edienen oder als Sprachbefehl ausführen.

Viele Grüße

Burkhard

Script uns ich, ohje.
Lerne zwar immer wieder neu dazu aber damit stehe ich, noch, auf Kriegsfuß.

Hab das Skript auf mich angepasst, glaube ich mal.
Wie bekomme ich die Hue da rein?
Was muss ich wo angeben?
Und woher weiß das Script ob das meine HMIP ist?

<?
    /* ----------------------------------------------------------------------
                                Alle Lichter aus / anschalten

        Dieses Script ermittelt alle Lichter anhand eines Profils und schaltet
        diese ein bzw. aus.
        
        Wird das Skript normal aufgerufen, schaltet es aus. Über runScriptEX kann
        aber auch der Wert mitgegeen werden:
        IPS_RunScriptEx(<SCRIPTID>, Array("VALUE"=>true, "FORCE"=>true);
        
        $c_profiles: string,  Variablenprofil das geprüft werden soll
        $c_force: true/false, Wenn TRUE wird auf jeden Fall geschalten, egal
                     ob der aktuelle Wert in IPS bereits den Zielwert hat.
                     Bei Systemen ohne Rückkanal notwendig.
        $c_delay: integer, Millisekunden Pause bis zum nächsten Schaltvorgang
        
      ----------------------------------------------------------------------*/

      $c_profiles[] = "Licht";
      $c_profiles[] = "Lichter";
      
      $c_force = false; // S.o.
      $c_delay =  250;

    

    /* End of configuration ------------------------------------------------*/
    DEFINE("HOME_MATIC","{EE4A81C6-5C90-4DB7-AD2F-F6BBD521412E}");

    // status Lesen -
    $stat = @$_IPS['VALUE'];
    settype($stat, "boolean");

    $force = (isset($_IPS['FORCE']))? $_IPS['FORCE'] : $c_force;
    settype($force, "boolean");
    
    
    // Alle Lichter ausschalten (mit Profil Licht!)
    $a_var = IPS_GetVariableList();
   foreach($a_var as $varid){
      $var_info = IPS_GetVariable($varid);
        $var_prof = (!empty($var_info["VariableCustomProfile"]))?
                    $var_info["VariableCustomProfile"] :
                    $var_info["VariableProfile"];
        $var_data = getValue($varid);

        if(in_array($var_prof,$c_profiles) && (($var_data != $stat) || $force) ){
           // Übergeordnete Instanz ermitteln.
           $instid = IPS_GetParent($varid);
            $inst_info = IPS_GetInstance($instid);
            switch($inst_info["ModuleInfo"]["ModuleID"]){
                case HOME_MATIC:
                            HM_WriteValueBoolean($instid, "STATE", $stat);
                              break;
            } // Switch

            IPS_Sleep($c_delay);
        } // if

    }


?>

Zusätzlich habe ich noch einen Schalter in die Webfront integriert um Ohne Alexa schalten zu können.

ips2.JPG

Eventuell ist das etwas einfacher zu verstehen:
Etagenlicht
Michael

Danke, aber hätte keinen Plan wie ich es anpassen?

Lerne quasi noch IPS und die Script’s sind noch Böhmische Dörfer, kleine bekomme ich ja schon hin, aber sowas noch lange nicht.

Als minimalste Loesung hab ich mir das hier ausgedacht.
Als Aktionsscript fuers Webfront:

	// Alle Lichter aus/einschalten (mit Profil Licht!)
	// Benötigt: IP-Symcon >= 5.0
	$soll_status = $_IPS['VALUE'];
	SetValue($_IPS['VARIABLE'], $soll_status);
	$such_profil = "Licht";
    $all_var = IPS_GetVariableList();
   	foreach($all_var as $varid)
		{
		$var_info = IPS_GetVariable($varid);
		$var_prof = $var_info["VariableCustomProfile"];
		if($var_prof == $such_profil)
			{
			RequestAction($varid, $soll_status);
			}
		}

Anpassen musst du es gar nicht, das ist ja der Sinn von dem Script.
Nur lesen was im Script steht, was du in IPS wie anlegen musst.
Michael