Aktor Gruppe ..

Interessant. Viele Wege führen nach Rom. :loveips:

Ich finde das es wartbar ist … aber nicht wenn die Infos wieder beschrieben werden müssen wenn man Geräte verschiebt oder austauscht…

Oder wie geht man den Infos um bzw. was müsste ich machen um ei Gerät zu tauschen oder zu verschieben …

Gruß

Gesendet von meinem SM-G930F mit Tapatalk

Denkfehler!
Lizenz betrachtet Variablen. Also hier egal.
Aber IPS kann ‚nur‘ 50000 Objekte.
Limitationen — IP-Symcon :: Automatisierungssoftware
Michael

Ok … hast du einen Tipp wie ich denn meine Anwendung mit der Info verwalten kann.

Möchte aber die Freiheit des verschieben und den schnellen Austausch behalten.

Gruß

Gesendet von meinem SM-G930F mit Tapatalk

Mein Tip steht oben.
Aber diese Freiheit hast du dann so nicht (mehr).
Michael

Hi,

danke. Was gibt es denn noch für Ideen Gruppierungen aufzubauen?

Oder sollte ich meine grundlegend überdenken?

Gruß

Ich halte solche Gruppeninformationen in einem zentralen Array, das ich in die betroffenen Skripte inkludiere.
Bei Bedarf kann ich es im Editor beliebig ändern.

Habe anfangs auch old fashioned mit Ini-Dateien experimentiert, um die Informationen auch ohne Konsole ändern zu können. Aber mit Erscheinen der WebKonsole ist das Argument hinfällig geworden.

Ich kann dir da nicht ganz folgen, kannst du einen kleinen Auszug hier zeigen …
Was verstehst du unter inkludieren und die Änderung im WebFront?

Gruß

wo kann ich alle Objekte als Zahlen im IPS sehen ?

echo count(IPS_GetObjectList());
Michael

danke, so einfach habe ich mir das nicht vorgestellt …

Nur dann mal so am Rande, dann sind es bei mir gerade 6883 …
Da habe ich ja noch Luft :slight_smile:

Kein Problem. Ich habe ein Skript (’_raumList.ips.php’) mit meinen ‚Gruppendefinitionen‘, in denen alle Zusammenhänge beschrieben sind. Der Aufbau ist Stück für Stück gewachsen :):



define('ID_GARTENHAUS_TUER_STATE', 15036);
define('ID_GARTENHAUS_TUER_UNREACH', 58895);

define('ID_BAD_FENSTER_STATE', 59638);
define('ID_BAD_FENSTER_UNREACH', 59098);
define('ID_BAD_FENSTER_AUTOMATIC', 34183);
define('ID_BAD_HEIZUNG_ISTTEMPERATUR', 45568);
define('ID_BAD_HEIZUNG_SOLLTEMPERATUR', 16206);
define('ID_BAD_HEIZUNG_VALVE_STATE_HH', 39353);
define('ID_BAD_HEIZUNG_VALVE_STATE', 55547);
define('ID_BAD_ROLLLADEN_LEVEL', 54584);
define('ID_BAD_LUFTFEUCHTIGKEIT_REL', 16706);
define('ID_BAD_LUFTFEUCHTIGKEIT_ABS', 13804);
define('ID_BAD_HEIZUNG_BOOST', 29505);
define('ID_BAD_TEMP_MANUELL', 55778);
define('ID_BAD_HEIZUNG_FB_PWM_SOLLTEMPERATUR', 20970);
define('ID_BAD_HEIZUNG_FB_PWM', 53107);
......

$raumList = [
    'Gartenhaus'   => [
        'Name'               => 'Gartenhaus',
        'TTSVerschluss_Tuer' => 'Die Tür',
        'TTSRaum'            => 'vom Gartenhaus',
        'IDFenster'          => [
            'Gartenhaus' => [
                'IDState'   => ID_GARTENHAUS_TUER_STATE,
                'IDUnreach' => ID_GARTENHAUS_TUER_UNREACH,
                'istTuer'   => true]],
        'Tuerschloss'        => [
            'Type'           => 'KeyMatic',
            'IDKeyMatic_CH0' => ID_INST_GARTENHAUS_VERSCHLUSS_TUERSCHLOSS_CH0,
            'IDKeyMatic_CH1' => ID_INST_GARTENHAUS_VERSCHLUSS_TUERSCHLOSS_CH1]],
    'Bad'          => [
        'Name'                               => 'Bad',
        'IDAnwesenheit'                      => ID_BAD_ANWESENHEIT,
        'IDIstTemperatur'                    => ID_BAD_HEIZUNG_ISTTEMPERATUR,
        'IDSollTemperatur'                   => ID_BAD_HEIZUNG_SOLLTEMPERATUR,
        'TTSVerschluss'                      => 'Das Fenster',
        'TTSVerschluss_Tuer'                 => '',
        'TTSRaum'                            => 'im Badezimmer',
        'Oeffnungsdauer'                     => 15,
        'IDFenster'                          => [
            'Bad' => [
                'IDState'       => ID_BAD_FENSTER_STATE,
                'IDUnreach'     => ID_BAD_FENSTER_UNREACH,
                'istTuer'       => false,
                'IDAutomatic'   => ID_BAD_FENSTER_AUTOMATIC,
                'Rollladen_key' => 'Bad']],
        'IDRollladen'                        => ['Bad' => ['IDLevel' => ID_BAD_ROLLLADEN_LEVEL]],
        'KuehlungSchwellwertInnentemperatur' => 21.5,
        'LuftgueteSchwellwert'               => 900,
        'ID_Luftguete'                       => ID_BAD_LUFTGUETE_AVG,
        'ID_Luftfeuchtigkeit rel'            => ID_BAD_LUFTFEUCHTIGKEIT_REL,
        'ID_Luftfeuchtigkeit abs'            => ID_BAD_LUFTFEUCHTIGKEIT_ABS,
        'ID_Heizung_Boost'                   => ID_BAD_HEIZUNG_BOOST,
        'ID_Heizung_State'                   => []],
    'WC'           => [
        'Name'                               => 'Gäste WC',
        'IDAnwesenheit'                      => ID_FLUR_ANWESENHEIT,
....

Diese Datei inkludiere ich in den Skripten, in denen ich die Zusammenhänge brauche:


require_once '_raumList.ips.php';

Mit der WebKonsole kann ich bei Bedarf von jedem Endgerät (PC, Tablet, Mobile) aus die Zuordnungen ändern.

wie muss ich mir das vorstellen mit dem Ändern in der Console ?

Das Include File ist ja ein normales Skript. Damit lässt es sich im Skripteditor bearbeiten.

Das, was du jetzt im Objektbaum änderst bzw. verschiebst, änderst du dann im Include File.

Moin,

im Prinzip bin ich bei den HM Heizungsgruppen genau wie Burkhard vorgegangen. Dort ist es sogar so, dass ich nur die INT-Bezeichnungen hinterlegen musste.


define ("KVA_HANS_INT", "INT0000019");
define ("KVA_KUECHE_INT", "INT0000017");
...

Über Namen bzw. die Object Idents suche ich dann per Skript das jeweilige HT und WT aus. wobei zur Steuerung das WT genügt.

Beim Licht habe ich mich für den Einsatz von Links entschlossen, die je Raum für Ein und Aus hinterlegt sind. So kann ich noch differenzieren was alles in einem Raum eingeschaltet werden soll und was alles ausgeschaltet werden soll, da dies ja nicht identisch sein muss.

Generell ist es so, dass für die Steuerungen von Heizung, Licht, RGB-Controllern, Pushover Nachrichten und Dimmern zentrale Programme existieren, die zum Teil dann mit IPS_RunScriptEx aufgerufen werden. Die Ids dieser zentralen Programme sind dann wiederum in der include-Datei wie die Heizungsgruppen hinterlegt.

// Zentrale Steuerungsprogramme
define ("KST_HEIZUNG", 19811 /*[Zeit-Scripte\Heizung\Heizungssteuerung]*/);
define ("KST_LICHT", 57806 /*[Zeit-Scripte\Licht\Licht Links\Lichtsteuerung]*/);
define ("KST_RGBW", 10134 /*[Zeit-Scripte\Licht\RGBW Controller\RGBW Runscript Steuerung]*/);
define ("KST_DIMMER", 16232 /*[Zeit-Scripte\Licht\Dimmer weiss\Dimmer Runscript Steuerung]*/);
define ("KST_PUSHOVER", 12342 /*[Zeit-Scripte\Pushover\Pushoversteuerung]*/);

In der include-Datei liegen übrigens auch noch die Befehle, die per cmd ausgeführt werden sollen, so dass bei einer Änderung nur in dieser Datei Änderungen vorzunehmen sind.

define ("KCD_START_PMS", "IPS_ExecuteEx('C:/Program Files (x86)/Plex/Plex Media Server/Plex Media Server.exe', '', true, false, -1);");
define ("KCD_START_PHT", "IPS_ExecuteEx('C:/Program Files (x86)/Plex Home Theater/Plex Home Theater.exe', '', true, false, -1);");

define ("KCD_STOP_IPSSERVER", "passthru('C:/Windows/System32/net stop IPSServer');");

// Nircmd Befehle
define ("KCD_WAKE_MONITOR", "IPS_ExecuteEx('C:/IP-symcon/media/nircmd.exe', 'sendmouse 1 5', false, false, 1);");

Dies gilt dann auch für Standard Helligkeiten, Farbeinstellungen, IP-Adressen usw

/ Farbwerte des Color Picker CP
define ("KVA_FARBE_CP_BLAU", 255); // 0000FF
define ("KVA_FARBE_CP_GELB", 16776960); // FFFF00
define ("KVA_FARBE_CP_GRUEN", 65280); // 00FF00
define ("KVA_FARBE_CP_ROT", 16711680); // FF0000
define ("KVA_FARBE_CP_WEISS", 16777215); //FFFFFF
define ("KVA_FARBE_CP_DUNKLESORANGE", 16747520); //FF8C00

// Standard Farben und Helligkeit der RGBW Controller
define ("KVA_FARBE_ESSEN_LED_DECKE", 16);
define ("KVA_HELLIGKEIT_ESSEN_LED_DECKE", 0.3);
define ("KVA_HELLIGKEIT_ESSEN_LED_DECKE_TV", 0.1);
define ("KVA_FARBE_ESSEN_LED_VITRINE", 9);
define ("KVA_HELLIGKEIT_ESSEN_LED_VITRINE", 0.4);
define ("KVA_HELLIGKEIT_ESSEN_LED_VITRINE_TV", 0.15);

// Standard Helligkeit der Dimmer weiß
define ("KVA_HELLIGKEIT_BAD_SCHRANK", 0.55);
define ("KVA_HELLIGKEIT_SCHLAFEN_DECKE", 0.5);
define ("KVA_HELLIGKEIT_WOHNEN_BAR", 0.5);
define ("KVA_HELLIGKEIT_WOHNEN_SCHRANK", 0.5);

/*
Minimale Dimmer Einschaltdauer + Standardhelligkeit
Der minimale Helligkeitswert von 10 % ist der Wert, der auch bei
Direktverknüpfungen mit Tastern das Minimum darstellt.
*/
define ("KVA_DIMMER_ON_TIME_MINIMUM", 0.1);
define ("KVA_DIMMER_LEVEL_STANDARD", 0.8);
define ("KVA_DIMMER_LEVEL_MAX", 0.9);
define ("KVA_DIMMER_LEVEL_MIN", 0.1);

Man sieht, dass es hier bestimmt nicht nur eine Lösung für alles gibt, sondern dass man die jeweilige Hardware mit im Blick haben sollte. Vielleicht ist ja für jemanden eine Anregung dabei :slight_smile:

Gruß
Hans

Hi,

ok habe verstanden.Dann sind aber wieder die IDs in den Scripten fest zugeordnet oder ?

Gruß

Moin,

die Ids interessieren z. B. bei der Heizung nicht, da diese über die Struktur der Räume ermittelt werden. Die ID für die Heizungsgruppe INT… z. B. aus WT, HT und Kontakten ändert sich ja nicht, wenn ein Gerät getauscht werden müsste. Dies gilt auch für die Lichtsteuerung.

Anders formuliert: die IDs sind prinzipiell irrelevant da sie dynamisch in den zentralen Programmen ermittelt werden :wink: Dies setzt natürlich eine stringente Struktur für alle Räume voraus.

Gruß
Hans

Nein, die IDs sind nur in dem Array zugeordnet, also zentral an einer Stelle.

Und noch der HInweis, dass man immer ein Problem mit den Ids bekommt, wenn es Variablen sind die geloggt werden. Spätestens im Archiv fällt dann Arbeit an, wenn z. B. ein WT getauscht werden musste :wink:

ich hab mich heute sehr nett mit bumas unterhalten. Ich werde mal versuchen meine Anwendung so umzubauen und prüfen in wie weit für mich das praktikabel ist.

Danke erstmal an bumas.

Aber ich würde trotzdem gerne noch weitere Vorschläge von euch hören wie ihr eure Gruppen zusammen stellt.

Gruß
MacToolz