Tile-Visu: Fragen zum Shutter

Servus,

wie finde ich denn raus was die Sonne hier bedeutet?
Macht nix wenn man drauf tippt, hat nix zum einstellen wenn man auf Edit der Kachel geht.

Bildschirmfoto 2023-07-28 um 21.10.27

Ideen hab ich für die Shutter-Kachel natürlich schon.

Sonne
ein/aus schalten Beschattungsmodus (man kann zB bei KNX ja die Beschattung oft sperren oder inaktiv schalten je Rollo, wäre hilfreich das zu sehen. Und schalten zu können dort.

Lock
Das Gleiche für Sperre. zB weil die Terrassentür offen ist

Wind-Symbol
Wenn Windalarm für den Rollo anliegt.

Regen-Symbol
Wenn Regenalarm für den Raff oder zB das Dachfenster anliegt.

Apropos „Dachfenster“ die kann man oft auch elektrisch fahren.
Gibts da auch eine Kachel für?

Sonst finde ich die Kachel schon sehr nett mit der Animation des Rauf runter.

Danke und Gruss
Seppm

2 „Gefällt mir“

Die Sonne zeigt nur den Sonnenstand anhand des Location controls.

paresy

OK,
verstehe den Sinn nicht. Was hilft die Info bei einem Shutter ohne zu wissen in welche Himmelsrichtung der ist?
Und jetzt ist 21:38 die Sonne ist noch genau wie vorher.
Was bewirkt da das Location controls?
Ist das Standort in den Kern Instanzen? Da ist der Ort richtig eingetragen.

Nehmt ihr die anderen Anregungen mit oder sind die hier falsch?

Danke und Gruss
Seppm

Die Sonne ist hauptsächlich dazugekommen um für die Einstellung von Lamellen zu definieren wo „außen“ ist, damit die Drehung der Lamellen passend eingestellt werden kann. Aber auch wenn du keine Lamellen hast, siehst du dort den Sonnenstand, basierend auf der Altitude-Variablen des Location Control, bzw. je nach Stand der Variablen „Ist es Tag“ den Mondstand. Dabei sind 90° Altitude ganz oben und 0° (oder weniger) ganz unten

1 „Gefällt mir“

Das hatte ich schon so verstanden mit Altitude

Aber
das ist jetzt eben der Höhenwinkel des Standort, das ist doch Location Control oder?

und in der Visu sieht es Tag/Nacht immer gleich aus mit der Sonne.

Was ist da falsch bei mir?

Danke und Gruss Seppm

Hey,

Ich vermisse dir Prozentuale Rückmeldung zum anfahren einer genauen Position. In der alten App sah man beim Slider direkt wieviel Prozent angefahren werden.

Bei unseren Rolläden machen da schon ein paar Prozent einen Unterschied, und jeder hat schon seine Lieblingspositionen :wink:

Würde jetzt aber ungern nur den Slider wählen, da die neue Visuelle Rückmeldung viel schöner ist.

Eine Möglichkeit den Status von Sonne / Mond selbst zu setzen würde ich klasse finden. Ich werte das über meine Wetterstation und verschiedene Verzögerungen selbst aus. Da darauf die Steuerung als auch die Displays reagieren, hätte ich hier keine Abweichung.

Gruß Tobi

1 „Gefällt mir“

Habe ich mir notiert. Wir schauen mal, wo wir den Wert unterbringen können.

2 „Gefällt mir“

Ich hab die Abhängigkeit und den Nutzen des Sonne/Mond Symbols noch nicht verstanden.
Was ist der Nutzen und wie kann man es beeinflussen?

Danke und Gruss Seppm

Aktuell zeigt es nur an ob gerade Tag ist, oder Nacht (sofern du den Standort im Location Control gesetzt hast).
Michael

Danke Dir. Ja, Standort ist gesetzt.
Hab nur gedacht es gäbe einen tieferen Sinn dahinter, also etwas das sich auf den einzelnen Rollo bezieht und nicht aufs ganze Objekt.

Symbole die ich dort ggf. praktisch fände, wären

  • Beschattung aktiv/inaktiv
  • Sperre/nicht gesperrt
    Ggf. auch dass man diese Zustände dort auch schalten kann.
    Das pressiert jetzt aber auch nicht, denn dass man Kacheln aufbohren möchte, ist ja schon an einigen Stellen hinterlegt.

Cheers Seppm

1 „Gefällt mir“

Der Hauptsinn der Sonne/Mond ist, dass du für die Drehung der Lamellen auch siehst, wo außen ist. Ansonsten wäre der Drehwinkel nicht wirklich definiert. Der Rest ist „Spielerei“. Ob Sonne oder Mond richtet sich nach der Tages-Variable des Location Control und die Höhe nach dem Azimuth bzw. wird beim Mond in der Visualisierung berechnet.

1 „Gefällt mir“

Hat man eine Chance die Lammelleneinstellung auch als Statusvariable zu bekommen, wenn man das Shutter control mit eigenen Steuerbefehlen betreibt? Wär praktischer für Wochenpläne etc.
Die Variable hab ich angelegt und ~Lamella Profil zugewiesen. Die Steuerung per „Request Action“ und über die Visu inkl. Rückmeldung funktioniert.

Screenshot

Hab zum Testen eine neue Instanz angelegt. Position kommt mit, sobald ich Winkel mit dem zugehörigen Profil erstelle wird diese nicht als Statusvariable angezeigt.

edit:
jetzt hab ich versucht das Profil nochmal zuzuweisen, seitdem verliert die Kachel-Visu jedes mal die Verbindung zum Server, weil er abschmiert :thinking:

Eigentlich sollte auch mit dem ~Lamella-Profil RequestAction wie gewohnt funktionieren. Was klappt denn da nicht?

Hängen die Abstürze wirklich mit dem Lamella-Profil zusammen? Funktioniert wieder alles, wenn du das Profil rausnimmst? Eigentlich wäre mir Lamella nicht als Problemfall bekannt…

Danke, Entschuldige bitte meine späte Reaktion, hab die Antwort leider nicht mitbekommen. Also die Abstürze hab ich wieder weg nachdem ich eine Sicherung eingelesen habe.
Request Action funktioniert wie gewünscht. Ich steuere den Winkel über die Position und einen Zeitfaktor. Funktioniert für meine Zwecke ganz gut.

Mir ging es darum, dass ich die Lamellenvariable nicht als Statusvariable habe, damit ich mit den Ablaufplänen alleine arbeiten kann. (siehe Bild)

An dieser Stelle: Die Ablaufpläne sind ein sehr cooles Werkzeug + die Kachelvisu ist genau was ich gesucht habe für meine Zwecke. :+1:

Ablaufplan

Ein Script „Sichtschutz“ fährt derzeit auf die gewünschte Position / Winkel

Ich komme aus der HW-Ecke von daher ist meine Programmierung ev. nicht ganz ausgereift.
Auch hab ich keine bessere Lösung für mich gefunden. Alles mit Onlinehilfe / Forum Testen und learning bei doing

Bei jedem Raffstore ist folgende Aktion für die Lamellen hinterlegt.
<?php
//Winkel fahren über Zeitwert
$action_id = IPS_GetParent($_IPS['SELF']); // Lese Srcipt ID aus
$parent_id = IPS_GetParent($action_id); // Lese Parent ID aus // übergeordnete ID bestimmen für SC_Move 

$var_posSC = IPS_GetVariableIDByName("Position",$parent_id);

includeScriptSH_ANGLE(13209,$action_id,$parent_id,$var_posSC);

//Funktion zum Einfügen des Skriptinhalts
function includeScriptSH_ANGLE($scriptID,$action_id,$parent_id,$var_posSC) {
    $s = IPS_GetScript($scriptID);
    include($s['ScriptFile']);
}

//echo $action_id.$parent_id.$var_posSC;
Code includeScriptSH_ANGLE / 13209
<?php

//$action_id = IPS_GetParent($_IPS['SELF']); // Lese Srcipt ID aus
//$parent_id = IPS_GetParent($action_id); // Lese Parent ID aus // übergeordnete ID bestimmen für SC_Move 

$id_vom_aktor_ab = IPS_GetChildrenIDs(IPS_GetObjectIDByName("RAFF_CMD_AB",$parent_id))[0]; //Ausgänge Ansteuerung
$id_vom_aktor_auf = IPS_GetChildrenIDs(IPS_GetObjectIDByName("RAFF_CMD_AUF",$parent_id))[0]; //Ausgänge Ansteuerung

$value_ab = GetValueBoolean($id_vom_aktor_ab);
$value_auf = GetValueBoolean($id_vom_aktor_auf);


$value_old = GetValueInteger($action_id);
//$var_posSC = IPS_GetVariableIDByName("Position",$parent_id);

$timems_Stepmin = 450; // minimale Zeit
$regelfact = 42; // Multiplikator für Zeitfahrt

if ($_IPS['SENDER'] == "Action"){

SetValue($_IPS['VARIABLE'], $_IPS['VALUE']);

}

$value_new = $_IPS['VALUE'];

$diff = $value_new - $value_old; //unterschied Sps & symcon werte
$diffunsigned = abs($diff); //Positiven wert für Berechnungen(Zeit)

While (($value_ab == True) or ($value_auf == True)){
;
}

If (($diffunsigned >= 5) and ($diff < 0) and ($value_ab == False) and ($value_auf == False)){   // Wenn fahrbefehl negativ und über Wert
 

    $timems_Step = $diffunsigned * $regelfact; // Berechnung Zeitdauer Fahrt (ms)
    
    If ($timems_Step<=$timems_Stepmin){
        $timems_Step=$timems_Stepmin;
    } //minimale Fahrzeit zuweisen

    SC_MoveUp($parent_id, $timems_Step);  // Winkelfahrt Öffnen
    IPS_Sleep(1000);
    SC_Stop($parent_id);
}

If (($diffunsigned >= 5) and ($diff > 0)and ($value_ab == False) and ($value_auf == False)){ // Wenn fahrbefehl negativ und über Wert

    $timems_Step = $diffunsigned * $regelfact; // Berechnung Zeitdauer Fahrt (ms)
    
    If ($timems_Step<=$timems_Stepmin){
        $timems_Step=$timems_Stepmin;
    } //minimale Fahrzeit zuweisen

    SC_MoveDown($parent_id, $timems_Step); // Winkelfahrt Schließen
    IPS_Sleep(1000);
    SC_Stop($parent_id);
}
Die Werte für die tatsächliche Position schreibe ich über die Visualisierung. Per Modbus bekomme ich integer Werte (%) für Position und Winkel - Code hier im Forum gefunden(bumaas)
<?php
//FUNKTION: position SPS überschreiben SCON Position (ohne Bewegungsbefehl) 

// das Skript dient zur übernahme der realen Werte der Raffstore positionen
// es wird gestriggert, wenn die Variable(n) des Modbus Gateways aktualisiert wird.
// es wird dann der Wert in die Visu geschrieben

declare(strict_types=1);

//Zugriff über RPC. Siehe https://www.symcon.de/service/dokumentation/entwicklerbereich/datenaustausch/
//'USER' und 'PASSWORD' sind zu setzen, wenn der Fernzugriff aktiviert ist
const USER = '';      //Lizenz-Benutzernamen
const PASSWORD = '';  //Fernzugriff Kennwort

//$action_id = IPS_GetParent($_IPS['SELF']); // Lese Srcipt ID aus
//$parent_id = IPS_GetParent($action_id); // Lese Parent ID aus // übergeordnete ID bestimmen für SC_Move 

// Symcon Wert %
$var_posSC = IPS_GetVariableIDByName("Position",$parent_id);
$var_angSC = IPS_GetVariableIDByName("Winkel",$parent_id);

$val_posSC = GetValueInteger($var_posSC);
$val_angSC = GetValueInteger($var_angSC);

// SPS Wert %
$val_posSPS = GetValueInteger($posID); //Wert aus ID von Modbus Integer% aus SPS
$val_angSPS2 = GetValueInteger($angID); //Wert aus ID von Modbus Integer% aus SPS
$val_angSPS = $val_angSPS2/2+50; // Umrechnung um den Bereich 0-50% zu unterdrücken (Drehwinkel negativ nicht möglich)


//$value= GetValueInteger($action_id)

//unterschied SPS & SCon werte

    If (((abs($val_posSC - $val_posSPS))>=5)or(abs(($val_posSPS - $val_posSC))>=5) or ((abs($val_angSC - $val_angSPS))>=5)or(abs(($val_angSPS - $val_angSC))>=5)){
        
        //SC_Move($parent_id, $val_posSPS)
                
        if (USER !== ''){
            $rpc = new JSONRPC('http://' . USER . ':' . urlencode(PASSWORD) . '@127.0.0.1:3777/api/');
        }
        else {
            $rpc = new JSONRPC('http://127.0.0.1:3777/api/');
        }
              
        $rpc->SetValue($var_posSC, $val_posSPS);
        $rpc->SetValue($var_angSC, $val_angSPS);
        
//        echo $var_posSC . "Var" . $var_angSC . " /SPS: " . $val_posSPS . " /SC:" . $val_posSC;
    }
    else{
    //echo "Werte sind ~ ident /SPS:" . $val_posSPS . " /SC:" . $val_posSC 
    }
//}

Dann wähl als Ziel nicht die Instanz, sondern die Variable und als Aktion schalte auf Wert.
Michael

Danke, genau das funktioniert

Bild

Hallo zusammen,
bei mir verändert sich in der Kachel nie die Sonne. Standort ist hinterlegt.
Braucht die Variable „es ist Tag“ ein bestimmtes Profil?

Danke Gruß Tom

Aktuell (da Winter) steht die Sonne tendenziell immer tief. Welchselt die Sonne denn auch zum Mond?

paresy

Nein, es wird immer nur die Sonne angezeigt.
Tom

Bei mir immer die Sonne. Hab ich schon vor Monaten angemerkt, die Erklärung hab ich nicht verstanden.
Für mich ist die Sonne völlig nutzlos.

Was soll sie denn tun? Und von was ist es abhängig?

Cheers Sepp