Buttons aus Variablen

Einen wunderschönen guten Abend,

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

Bekomme ich das irgendwie hin?

Danke schon mal für eure Hilfe

Viele Grüße

Flo

Hi Flo!

Klar geht das. Wird z.B. bei IPSCam so gemacht :wink:

Einfach Seitenteiler verwenden und dann mit IPS_SetHidden jeweils das anzeigen/ausblenden, was du sehen willst :slight_smile:

Grüße,
Chris

Klar geht das.

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.

Gracias! Ich werd’s morgen mal testen :slight_smile:

Ich glaub ich bin zu doof dafür…

HIer mal wie es aussehen soll, wenn ich Bad EG auswählen würde

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?

Hier mal mein Objektbaum

Vielen Dank im voraus für eure Ratschläge

ein verzweifelter Flo

Na schau mal:

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.

Viel Glück
bb

Hi BB,

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?

zu allem obigen „JA“

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.

gruß
bb

Das geht natürlich auch. Ich habe es ohne Versteckspiel (hidden) gemacht aber IPS bietet ja vielerlei Möglichkeiten.

Hab deinen Vorschlag gelesen, aber ehrlich gesagt nix damit anfangen können .- hast du da womöglich eine ultimativ einfachere Variante gefunden ?

interessiert
bb

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.

Jop so ist es. Und der Plan ist es ja mein Webfront ähnlich dem vom BB nach zu bauen.

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.

Wenn man weiß wie ja [emoji4] Ich hab halt gar keinen Programmierhintergrund und tu mir mit solchen Dingen oft schwer.

Wenn ich aber weiß wo ich ansetzen muss, begreif ich es recht fix. Schau’n wa mal [emoji3]

Daher hab ich Dir ja meine Lösung detailliert geschrieben. Null Programmierarbeit erforderlich. Nur Mausklicks.

OK :confused:, 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.

greez
bb

Der Plan war eigentlich B. Ich muss mal sehen, wie ich zurecht komme. Ich werde mich mal an beide Varianten ran machen.

Na dann wolln wir mal.

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.

Das sieht dann so aus.

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

hoffe du kommst damit klar
bb

Wow…vielen Dank Bernhard. Ich werds morgen gleich mal versuchen!