ich weiß noch nicht einmal, ob ich den richtigen Titel gewählt habe…Ich würde gerne in meinem Webfront mit Seitenteilern arbeiten. Dabei soll die linke Seite die „Auswahlseite“ sein (und auch bleiben) und auf der rechten Seite, sollen die Aktionen stattfinden.
Ich hab das ganze mal „versucht“ hier bildlich darzustellen
WebFront:
TabPane: Seitenteiler
SplitPane: Bad EG
Kategorie; linke Seite zeigt auf 23456
SplitPane (zum teilen)
Kategorie; rechte Seite zeigt auf 34567
SplitPane: Bad OG
Kategorie; linke Seite
SplitPane (zum teilen)
Kategorie; rechte Seite
…
Objektbaum:
12345 Kategorie; Bad EG
23456 Kategorie; linke Seite
34567 Kategorie; rechte Seite
…
Objektbaum: Die linke Seite kannst Du nun für jeden Raum einmal anlegen oder gesamt einmal. Alles mit Links erstellen.
Ich hab keine Ahnung, was ich jetzt mit was verlinken muss…Mir ist klar, dass ich wohl aus dieser "lüftungsstatus Variable keinen Button erzeugen kann. Also muss ich hier wohl eigene Buttons inkl. Script anlegen.
Aber wie kombiniere ich das dann so, dass die linke Seite immer fix bleibt während sich die rechte ändert?
Erstmal legst du für jeden Raum eine Dummy Instanz an. Dort wirfts dann alle Links rein die für diesen Raum angezeigt werden sollen.
ALLE Instanzen legst dann in die Kategorie welche rechts angezeigt wird.
Nun werden erstmal rechts alle Räume untereinander angezeigt.
Mit den Buttons kannst dann ein Scripte triggeren welches je nach Button die erwünschten Instanzen einblendet und die unerwünschten ausblendet. Der Befehl dazu lautet IPS_SetHidden()
Wenn du auch noch am Variablenprofil der Buttons rumspielst kannst du auch noch hinkriegen das du visuell zwischen Ausgewählt/NichtAusgewählt unterscheiden kannst.
Aussehen kann dies dann so:
Hier wird genau so wie von dir gewünscht mit den Buttons der rechten Seite der Content der Linken Seite bestimmt.
Danke Dir. Ich fass dann mal kurz zusammen, ob ich auch alles richtig verstanden habe:
Dummy Instanzen mit jedem Raum anlegen (hab ich)
Alles was angezeigt werden soll in diese Instanzen verlinken ( da ich alles anzeigen möchte, habe ich die komplette Kategorie verlinkt.)
Alle Instanzen in Kategorie legen - bedeutet ich muss für die rechte Seite eine komplett eigene Kategorie anlegen (?)
Ich bastle mir Buttons mit dem ich dann auf der linken Seite den entsprechenden Raum auswähle - Benötige ich hierfür eine Integer? Kannst Du mir zeigen, wie Dein Script hierfür aussieht?
IPS_SetHidden - Ich drücke bspw. auf den Button „Bad EG“ aus der Instanz auf der linken Seite. Es werden dann alle anderen Daten der restlichen Räume ausgeblendet und nur diejenigen für das Bad eingeblendet. Bedeutet, ich muss dann für jeden Button ein eigenes Script basteln, korrekt?
Da ist wohl eher „Boolean“ die richtige Wahl. Script kann ich dir gerne geben, ggfl. ist es aber schwer lesbar da ich meine ganzen ID hardgecodet habe. Ist nicht generisch aufgebaut und daher nicht Plug&Play überall verwendbar.
Es geht alles mit einem einzigen Script, man muß nur im Script abfragen welcher Butten es nun ausgelöst hat und dann entsprechend reagieren.
Nee, bei Deinem Beispiel ist es nachvollziehbar. Tolle Lösung übrigens. Du hast ja links Auswahlbuttons für die Darstellung rechts. Bei Ihm war doch die Auswahl oben und im linken Bildbereich waren ja nur Statusvariablen.
So ich mich richtig erinnere.
Genau, und daher ja mein Vorschlag, der anders als bei bb funktioniert aber gleich ausschaut. [emoji3]
Wenn Du links Statusvariablen hast, ist das anders als bei Bernhard. Bei ihm sind das ja quasi Seitenumschalter.
Aber egal. War ja nur ein Vorschlag. Du hast ja nun Stoff zum üben und man kann das in verschiedenen Richtungen umsetzen. Wenn man mal das Prinzip verstanden hat, macht es sogar Spaß. So etwas einzurichten erfordert weder ein Skript noch viel Arbeit. Das ist in 5-10min erledigt.
OK , nicht das wir aneinander vorbeireden, was willst du jetzt nochmal genau:
A) oben eine Auswahleiste welche NUR die rechte Bildschirmhälfte umschaltet, die linke aber immer gleichläßt
oder
B) links eine Auswahlliste welche den Inhalt der rechten Bildschirmhälfte definiert ?
Für A) gehts so wie von Boui geschrieben komplett ohne scripten
Für B) ist meine Variante, da muß man ein bisl basteln.
Wie gesagt, für die linke Spalte ein Dummy Modul, in dieses Dummy Modul eine Variable mit deinen Raumnamen. (bei mir sinds halt Geräte)
Das werden die Buttons zur Raumauswahl. Ich hatte die damals als Integer definiert, da ich auch mit speziellen Variablenprofilen arbeite um anhand der Buttonfarbe die Auswahl sichtbar zu machen.
Das ist der rot eingekringelte Bereich.
In den Variablen trägts du als eigen Aktion ein Script ein. das bewirkt, das immer wenn der Button angeklickt wird dieses Script gestartet wird. Bei mir zeigen alle auf das „anzeigen“ Script
Um den Aufwand zu verringern wird erst im Script überprüft von welcher Variable der Aufruf kam und dann entsprechend reagiert.
Für die rechte Spalte pro Raum ein DummyModul in welches du die Links zu den für diesen Raum anzuzeigende Variblen legst. Anfangs sind alle Module sichtbar, es ergibt sich im WF also eine ziemlich lange Seite.
Hier ein Auszug aus dem „anzeigen“ Script. Ich habs der Übersicht halber auf 3 „Geräte“ gekürzt. Zur Veranschaulichung des Prinzips sollte das reichen.
# alle Buttons auf inaktiv (graues Variablenprofil) setzen
IPS_SetVariableCustomProfile(40936 /*[Webfront\Desktop\Energie\Einzel_Plugwise\Geräte_Auswahl\Anzeigeauswahl*aktiv\Aquarium]*/, "my_Toggle_Off");
IPS_SetVariableCustomProfile(57973 /*[Webfront\Desktop\Energie\Einzel_Plugwise\Geräte_Auswahl\Anzeigeauswahl*aktiv\Computer]*/, "my_Toggle_Off");
IPS_SetVariableCustomProfile(52222 /*[Webfront\Desktop\Energie\Einzel_Plugwise\Geräte_Auswahl\Anzeigeauswahl*aktiv\Heizraum]*/, "my_Toggle_Off");
# alle Räume ausblenden
IPS_SetHidden(17926 /*[Webfront\Desktop\Energie\Einzel_Plugwise\Geräte_Daten\Rechts\Dampfgarer-historisch]*/, true);
IPS_SetHidden(24436 /*[Webfront\Desktop\Energie\Einzel_Plugwise\Geräte_Daten\Rechts\Kühlschrank Keller -historisch]*/, true);
IPS_SetHidden(37134 /*[Webfront\Desktop\Energie\Einzel_Plugwise\Geräte_Daten\Rechts\Gefrierschrank-historisch]*/, true);
# je nach aufrufender variable den passenden raum anzeigen und den Button uf das aktive Variablenprofil umkonfigurieren.
Switch ($IPS_VARIABLE) {
Case "16075": IPS_SetHidden(17926 /*[Webfront\Desktop\Energie\Einzel_Plugwise\Geräte_Daten\Rechts\Dampfgarer-historisch]*/, false);
IPS_SetVariableCustomProfile(16075 /*[Webfront\Desktop\Energie\Einzel_Plugwise\Geräte_Auswahl\Anzeigeauswahl*******************aktiv\Dampfgarer]*/, "my_Toggle_On");
Break;
Case "18112": IPS_SetHidden(24436 /*[Webfront\Desktop\Energie\Einzel_Plugwise\Geräte_Daten\Rechts\Kühlschrank Keller -historisch]*/, false);
IPS_SetVariableCustomProfile(18112 /*[Webfront\Desktop\Energie\Einzel_Plugwise\Geräte_Auswahl\Anzeigeauswahl*******************aktiv\Kühlschrank Keller]*/, "my_Toggle_On");
Break;
Case "56304": IPS_SetHidden(37134 /*[Webfront\Desktop\Energie\Einzel_Plugwise\Geräte_Daten\Rechts\Gefrierschrank-historisch]*/, false);
IPS_SetVariableCustomProfile(56304 /*[Webfront\Desktop\Energie\Einzel_Plugwise\Geräte_Auswahl\Anzeigeauswahl*******************aktiv\Gefrierschrank]*/, "my_Toggle_On");
Break;
}
Hier die Variablenprofile für gedrücktne und inaktiven Button