Aufruf sitemap in sitemap

GUI Relevanten, PaperUI, BasicUI, HabPanel ...

Moderatoren: seppy, udo1toni

Antworten
Mattes
Beiträge: 23
Registriert: 23. Mär 2020 13:37
Answers: 0

Aufruf sitemap in sitemap

Beitrag von Mattes »

Hallo mal wieder,

ich kämpfe gerade mit einigen sitemaps - die sitemaps funktionieren generell, ich vermisse aber die Funktion von einer sitemap in eine andere sitemap zu "springen"
Ideal also ein button wo ich die url der jeweilgen sitemap hinterlegen kann, also von einer sitemap zu anderen "navigieren".
Jemand eine Idee wie das zu realisieren ist?

Danke euch schon mal...
Gruss Mattes

Benutzeravatar
udo1toni
Beiträge: 14004
Registriert: 11. Apr 2018 18:05
Answers: 222
Wohnort: Darmstadt

Re: Aufruf sitemap in sitemap

Beitrag von udo1toni »

Das ist ein gerne genommenes Missverständnis.

Die Sitemaps sind nicht dazu gedacht, zueinander verlinkt zu werden.
Stattdessen legst Du eine Sitemap an, in der alles abgebildet ist.
Weitere Sitemaps sind allenfalls interessant, wenn z.B. unterschiedliche Personen unterschiedliche Bereiche des Smarthomes im Zugriff haben sollen.
Ich habe z.B. eine eigene Sitemap für meine Eltern angelegt, in der nur die Geräte ihres Gebäudeteils abgebildet sind. In "meiner" Sitemap gibt es dafür einen eigenen Bereich.

Eventuell kennst Du auch noch nicht alle Funktionen, die in einer Sitemap zur Verfügung stehen. Man kann eine Sitemap nämlich beliebig tief verschachteln:

Code: Alles auswählen

sitemap my label="Meine Sitemap" {
    Frame label="Rahmen 1" {
		Text label="Unterseitenlink 1" {
			Frame label="U1 Rahmen 1" {
				Switch item=switch1
				Switch item=switch2
				Switch item=switch3
				Switch item=switch4
			}
			Frame label="U1 Rahmen 2" {
				Switch item=switch5
				Switch item=switch6
				Switch item=switch7
				Switch item=switch8
			}
		}
		Text label="Unterseitenlink 2" {
			Frame label="U2 Rahmen 1" {
				Switch item=switch1
				Switch item=switch2
			}
			Frame label="U2 Rahmen 2" {
				Switch item=switch3
				Switch item=switch4
			}
		}
    }
	Frame label="Rahmen 2" {
		Switch item=switch23
		Switch item=switch79
	}
    Frame label="Rahmen 3" {
		Text label="Unterseitenlink 3" {
			Frame label="U3 Rahmen 1" {
				Switch item=switch1
				Switch item=switch2
				Switch item=switch3
				Switch item=switch4
			}
			Frame label="U3 Rahmen 2" {
				Switch item=switch5
				Switch item=switch6
				Switch item=switch7
				Switch item=switch8
			}
		}
		Text label="Unterseitenlink 4" {
			Frame label="U4 Rahmen 1" {
				Switch item=switch1
				Switch item=switch2
			}
			Frame label="U5 Rahmen 2" {
				Switch item=switch3
				Switch item=switch4
			}
		}
    }
}
Dies ist nur ein einfaches Beispiel. Wenn Du die Sitemap öffnest, siehst Du drei Rahmen, im ersten Rahmen gibt es zwei Widgets mit der Beschriftung Unterseitenlink 1 und Unterseitenlink 2, im zweiten Rahmen sind zwei Switch Widgets, im dritten Rahmen befinden sich zwei weitere Unterseitenlinks.
Die Links sind daran erkennbar, dass auf der rechten Seite ein Pfeil nach rechts erscheint.
Klickst Du auf einen der Unterseitenlinks, so öffnet sich eine neue Seite, jeweils mit zwei Rahmen, die wiederum verschiedene Inhalte haben (wobei im Beispiel natürlich identische Inhalte erscheinen, weil ich zu faul war die Nummerierung zu ändern).

Regeln dazu: 1. In einer Ebene eines Blocks dürfen entweder ausschließlich Frame Widgets gesetzt sein oder ausschließlich Nicht-Frame Widgets.
2. Ein Frame kann keinen Frame enthalten.
Wohl aber kann ein Frame ein (oder mehrere) Text Widgets enthalten, welche wiederum einen oder mehrere Frames enthalten können.
Ein Text Widget muss nicht zwingend Frames enthalten, Du kannst auch ohne Frames arbeiten:

Code: Alles auswählen

sitemap my label="Meine Sitemap" {
	Text label="Unterseitenlink 1" {
		Switch item=switch1
		Switch item=switch2
		Switch item=switch3
		Switch item=switch4
		Switch item=switch5
	}
	Text label="Unterseitenlink 2" {
		Switch item=switch1
		Switch item=switch2
		Switch item=switch3
    }
	Switch item=switch23
	Switch item=switch79
	Text label="Unterseitenlink 3" {
		Switch item=switch1
		Switch item=switch2
		Switch item=switch4
		Switch item=switch5
		Switch item=switch8
	}
	Text label="Unterseitenlink 4" {
		Frame label="U4 Rahmen 1" {
			Switch item=switch1
			Switch item=switch2
		}
		Frame label="U5 Rahmen 2" {
			Switch item=switch3
			Switch item=switch4
		}
	}
}
Und gemischt darf es natürlich auch sein, solange Regel 1 und Regel 2 eingehalten werden.

Du kannst auch eine faule Abkürzung verwenden und das Group Widget nutzen:

Code: Alles auswählen

Group item=meinGroupItem
Das Group Widget baut dann für die Unter-Items automatisch Ansichten (beliebig tief verschachtelt, wenn es im Group Item weitere Group Items gibt). Allerdings hast Du keinerlei Kontrolle über die Abbildung, also welche Widgettypen verwendet werden. Deshalb ist das Group Widget BÄH und hässlich.
openHAB4.1.2 stable in einem Debian-Container (bookworm) (Proxmox 8.2.2, LXC), mit openHABian eingerichtet

Mattes
Beiträge: 23
Registriert: 23. Mär 2020 13:37
Answers: 0

Re: Aufruf sitemap in sitemap

Beitrag von Mattes »

Hi Udo,

danke mal wieder für deine ausführliche Antwort... schade, dass das nicht so einfach geht.
Vielleicht auch eine zu blöde Frage (aber die soll es ja angeblich nicht geben :lol: ) wenn jetzt kein Sprung von einer sitemap direkt auf eine andere machbar ist - wie springe ich dann zurück? hab die sitemap als Vollbild im browswe, also keine Navigations-Button vom browser.

Eine Seite in der basic-ui zu erstellen mit Aufruf der sitemaps funktioniert.. wie springe ich dann auf die Seite zurück von der der Sprung erfolgte??
Vielleicht etwas übsersehen - oder (noch) nicht entdeckt?

Benutzeravatar
udo1toni
Beiträge: 14004
Registriert: 11. Apr 2018 18:05
Answers: 222
Wohnort: Darmstadt

Re: Aufruf sitemap in sitemap

Beitrag von udo1toni »

Hoffentlich nur nicht entdeckt...

Wenn Du auf der Hauptseite bist, gibt es links oben ein Häuschen.
Wenn Du auf einer Unterseite bist, verwandelt sich dieses in einen Pfeil nach links.
openHAB4.1.2 stable in einem Debian-Container (bookworm) (Proxmox 8.2.2, LXC), mit openHABian eingerichtet

Antworten