Homeserver Logik

Der Logikeditor wurde erst 2002 Teil des Homeservers. Mit ihm kann man sehr einfache aber auch sehr komplexe Logiken abbilden. Auf der Website habe ich schon vor einiger Zeit Logikblätter zur Verfügung gestellt um zum Beispiel zu zeigen, wie man eine Gartenbewässerung komfortabel etabliert. 

In diesen untergeordneten Artikel nehme ich Euch mit zu den Logikfunktionen, erkläre Euch zuerst die Oberfläche und anschließend die grundlegenden Funktionen und darüber hinaus noch einige Features, die andere Logikeditoren nicht haben.


Das obere Bild zeigt, wie umfangreich eine Logik im Homeserver verarbeitet werden kann. Ich habe hier ein "leichteres" Beispiel als Bild genommen, da ich ehrlich gesagt direkt mit einem SONOS Baustein begonnen hatte, um Sonos Lautsprecher mit dem Quadclient zu bedienen. 

 

Doch wollen wir nicht wie ich mit so was Komplizierten beginnen, sondern machen uns erst einmal mit dem Logikeditor vertraut. Weiter mit der unteren Bildergallerie



Wenn man den Experten öffnet, kann man in der linken Seitenleiste den "Reiter" KNX Steuerung anklicken. Das DropDown Menü klappt auf und dort findet man nun den Grafischen Logikeditor, denn man nun ebenfalls anklicken kann. Nun öffnet sich der Logikeditor und zeigt einem zuerst eine Oberfläche, mit 2 Auswahlfeldern auf der linken Seite und einem größeren Bereich auf der Rechten Seite, dem eigentlichen Arbeitsbereich des Logikeditors.

Beginnen möchte ich allerdings mit der Menüleiste im oberen Bereich. Die Elemente hier sind 

  • Datei
  • Ansicht
  • Überwachen 
  • Hilfe

Ferner hat man die Punkte

  • Schließen
  • Neu
  • Hilfe


Wenn man Datei anklickt, kann man einen Vorlagen Ordner öffnen, oder den Logikeditor schließen. Was Schließen bedeutet brauch ich wohl nicht länger zu erörtern. Allerdings möchte ich zuerst auf den Vorlagen Ordner kurz und später ausführlich eingehen, da ich hier chronologisch erkläre.

 

Der Vorlagenordner hat eine pfiffige Funktion. Nehmen wir mal an, Ihr legt jetzt eine Logik an, die eine Heizungssteuerung beispielsweise etabliert. Diese würde zum Beispiel einen Raum oder eine Etage abbilden; je nach Größe. Es wäre nun ja ärgerlich, wenn man diese Logik für den nächsten Raum, oder nächste Etage nochmals komplett einstellen müsse.

Hier kann man sich des Vorlagenordners bedienen. Man kann einfach eine Logik in diesen Vorlagenordner kopieren.

 

Wie dies geht, zeige ich weiter in diesen Artikel. 



Ansichten. Hier kann man die Ansichten ändern. Die beiden linken Felder, Datenstruktur und Elemente lassen sich individuell aus und einblenden.

 

Ebenso lassen sich hier auch die Datenstruktur als auch Elemente durchsuchen. Das macht zum Beispiel Sinn, wenn man genau wissen will, wo man welchen Logikbaustein eingesetzt hat, oder wenn man auf der Suche nach einem bestimmten Kommunikationsobjekt ist.

Weiterhin befindet sich in der Menüleiste der Reiter Überwachen. Es lässt sich jede Logik überwachen und durchspielen. Das geht auch auf entfernten Servern. 

 

Der letzte Punkt ist die Hilfe. Die ist sehr umfangreich und lohnt sich auch mal einfach zu durchforsten. Hier wird sehr gut erklärt, wie der Logikeditor aber auch andere Funktionen des Homeserver funktionieren. Mit der Hilfe hab ich mir selbst den Homeserver beigebracht.



Wie schon vorhin erwähnt befindet sich in der linken Seite des Arbeitsbildschirm das Feld Arbeitsblätter. Hier legen wir uns jetzt ein neues Arbeitsblatt an. Das kann man entweder in der oberen Taskleiste mit dem Feld NEU oder mit einem direkten rechten Mausklick im Feld Arbeitsblätter.

Ratsam ist es, meist den rechten Mausklick zu benutzen um zum Beispiel einen Ordner zuerst anzulegen, den man mit den Logikfunktionen benennt, den er beherbergt. 

 

Weiter mit dem unteren Bild.


Nach Klick auf das Feld NEU könnt Ihr das Arbeitsblatt benennen (später auch umbenennen), die Größe festlegen, das Arbeitsblatt vorerst deaktivieren / aktivieren und es auch ignorieren. Diese Funktionen sind mit dem Stand 4.12 neu. 

Hier ist es gewünscht, das man zuerst Arbeitsblätter in einem bestehenden und funktionierenden System deaktiviert um einen sicheren Neustart zu gewährleisten, wenn eine Logik erst getestet werden muss. Nach Klick auf OK folgt:


Wenn das Testblatt angelegt ist, sieht ihr in dem Logikblatt selbst zuerst eine Eingangsbox, die Grün ist und eine Ausgangsbox die Rot ist. 

 

Ich erwähnte vorhin schon den Rechtsklick, der in vielen Belangen sehr wichtig ist und Euch Zeit und umständliches Arbeiten erspart. Ihr könnt wie auf dem Bild mit einem linken Mausklick auf die Eingangsbox, die sich dann kurz Blau verfärbt wie im Bild angezeigt. Damit markiert Ihr die Box, um sie zum Beispiel auf dem Logikblatt dorthin zu schieben, wo Ihr sie benötigt. 

 

Wiederum lassen sich mehrere Eingangs und Ausgangsboxen mit gedrückter Maustaste markieren, oder mit der Steuerungstaste einzeln markieren, um so sämtliche markierte Boxen zu verschieben, aber auch zu kopieren, auszuschneiden und einzusetzen. Zurück zu der Kopfzeile des Logikblatt's. Hier seht Ihr ein Pluszeichen. Dieses könnt Ihr ebenso benutzen um Boxen anzulegen, aber auch Textfelder und Logikbausteine.

 

Die Textfunktion nutze ich ziemlich oft. Hier könnt Ihr Kommentare einfügen, diese auch ausblenden, doch sind sie von unschätzbaren Wert, wenn Ihr mal vergessen solltet, was Ihr da zusammengebastelt habt. Aber auch für nachfolgende User könnt Ihr so eine kurze Doku hinterlassen, was hier geschieht. 

Das gleiche betrifft ebenso die Eingangs.- Ausgangsboxen, aber auch eingefügte Logikbausteine.

 

Nehmt doch mal das untere Elemente Feld auf der linken Seite und zieht Euch ganz unten aus der Liste einen Binärauslöser auf das Blatt; wenn es geht etwas mittig zwischen Eingangs und Ausgangsbox.

 

Mit einem Rechtklick auf die Eingangsbox erscheint das Eigenschaftenmenü, in dem Ihr wieder die Eigenschaften anklickt. Nun könnt Ihr den Namen der Eingangsbox ändern, um zum Beispiel zu sagen, das diese Eingangsbox nur Interne Kommunikationsobjekte benutzt. Für den Anfang sollte das reichen. Mit der Ausgangsbox verfährt Ihr genauso und benennt diese um.

 

Zu guter Letzt macht Ihr das auch noch mit dem Binärauslöser. Wenn Ihr jetzt das Eigenschaftenfeld öffnet seht Ihr ausserdem, das sich der Telegrammintervall einstellen lässt. Das macht zum Beispiel Sinn, wenn von einem Kommunikationsobjekt sehr schnell ständig ändernde Werte eintreffen, wie zum Beispiel einem Helligkeitssensor.

 

Näher gehe ich hier auf die Sache nicht ein. Dies dient rein der Information. Ihr habt dann folgende Schritte durchgeführt wie in der Bildergallerie.


Wenn Ihr nun im Eingangsbaustein auf das Pluszeichen klickt, könnt Ihr nun ein Kommunikationsobjekt hier Einfügen oder sogar anlegen. 

 

Ich verweise hier auf den Artikel Kommunikationsobjekte, den ich hier verlinke, um die Arbeit hiermit näher zu erörtern. Dieser ist weiter unten in diesem Textfeld verlinkt.

 

Klickt mal auf das Feld und die Kommunikationsobjekte öffnen sich. Ich wähle hier aus dem Ordner TESTBLATTORDNER, den ich zuvor angelegt habe das Eingangskommunikationsobjekt E01 Testschalter 1 BIT aus den internen Kommunikationsobjekten.

 

Nach Übernehmen links oben in der Menüleiste gelangt man automatisch wieder zurück zum Logikblatt und findet nun in der Eingangsbox das Kommunikationsobjekt.

 

Ich möchte hier wiederum kurz die Eigenschaften aufzeigen, die Ihr mit der rechten Maustaste bekommt, wenn Ihr das Kommunikationsobjekt anklickt. Im folgenden kurz KO genannt. 

Ihr könnt hier wiederum das KO umbenennen, aber auch hoch und runter schieben. 

 

Habt Ihr zum Beispiel umfangreichere Logikbausteine, und möchtet die KO's sauber verbinden, könnt Ihr diese so anordnen. Hierauf gehe ich gleich noch näher ein. Ihr könnt also die KO's hoch und runter sortieren.

 

Nun könnt Ihr mit gedrückter linker Maustaste auf das KO dieses mit dem linken Eingäng des Binärauslösers verbinden.

 

Dies sieht dann wie folgt auf dem unteren Bild aus.

 

 


Ihr habt nun eine Verbindung vom KO auf den Binärauslöser-Logikbaustein. Dieser vergleicht diesen eingehenden Wert. Ist der 1, geht es dann auf den ersten Ausgang. Dieser ist bezeichnet als A1 (E1<>0). Ist der Eingangswert 0, legt der Binärauslöser das Signal auf den zweiten Ausgang A2.

 

Doch zurück zum Eingangssignal, das von der Eingangsbox zum Logikbaustein verbunden wird. Wenn Ihr mit einem Rechtsklick der Maus direkt im Logikbaustein auf den Eingang klickt (dort wo die 0 momentan steht), lässt sich die Verbindung negieren. Ihr habt zum Beispiel die Anforderung, das Ihr ein Signal habt, das bei Einschalten eine 1 hat, so könnt ihr dieses aber auch in eine 0 "umwandeln", also negieren um bei bestimmten Situationen den korrekten Eingangswert für einen Logikbaustein zu haben. 

Ebenso lässt sich mit dem eben aufgeführten Rechtsklick auf den Eingang des Logikbausteins direkt ein Wert belegen. Dies kann zum Beispiel erforderlich sein, wenn Ihr mal zuerst testen möchtet, ohne Kommunikationsobjekte anzulegen oder diese nur einmal vorkommen. Dann wird jedes Mal bei Start des Homeservers der Wert direkt gesetzt. 

 

Bei manchen Szenarien, wie zum Beispiel dem Störmeldungsbaustein am Anfang des Artikels, könnt Ihr die Benennung der Eingänge für die Melder direkt hier hinterlegen. 

 

Weiter geht es nun mit dem Ausgangsbaustein. Mit einem Klick auf das Plus Zeichen könnt Ihr nun auswählen, was anschließend geschehen soll. Das sieht wie folgt aus:


Anstatt auf das Feld mit Plus zu klicken könnt Ihr auch direkt mit gedrückter Maustaste aus dem Ausgang des Logikbausteins zur Ausgangsbox auf das Plus ziehen.

 

Ihr erhaltet nun diese Pop Up Box. Dort könnt Ihr, wenn Ihr das wollt eine Bezeichnung vergeben. Das macht durchaus Sinn, denn so verliert Ihr die Übersicht nicht.

 

Nun könnt Ihr folgend zuerst das Kommunikationsobjekt auswählen, das dann eine Handlung machen soll. Ihr könnt auch direkt die Gruppenadresse eingeben, wenn ihr die zur Hand habt, oder aus dem Kopf wisst. Trotz alldem könnt Ihr auch das Kästchen mit den 3 Punkten anklicken und so selbst wählen.

 

Im folgenden Beispiel nehmen wir aus dem Artikel mit den Internen Kommunikationsobjekten die Werte für A1, A2 und A3. Der Artikel ist weiter oben verlinkt.

Klickt hierzu auf das Plus Feld in der Ausgangsbox, und sucht dann die Werte aus dem Artikel heraus, die für A1, A2 und A3 hinterlegt sind.

 

Wenn Ihr den Wert für A1 gefunden habt, übernimmt diesen und klickt im anschließenden Pop Up Feld auf OK.

 

Diese letzten Schritte wiederholt Ihr auch für die Werte A2 und A3. Wenn Ihr das gemacht habt, seht Ihr die Werte untereinander in der Ausgangsbox. Wiederum könnt Ihr mit einem Rechtsklick die KO's ändern oder nach oben oder unten verschieben.

 

Versucht doch nun mal den Ausgang A1 auf die jeweiligen Werte der Ausgangsbox mit gedrückter Maustaste zu verbinden. Dann müsste es folgend aussehen:


In diesen Fall würde die Logik folgendes machen. Bei Eingang einer 1 des KO's der Eingangsbox würde der Binärauslöser das vergleichen, und so bei einem Wert ungleich Null auf dem Ausgang schalten:

 

Das erste KO der Ausgangsbox (A01) würde auf 1 geschaltet.

 

Das zweite KO würde gar nicht geschaltet / eingestellt, weil der 1 Bit Wert vom Binärauslöser ja keine Wertvorgabe hat. 

 

Das dritte KO würde genauso keinen Wert erhalten der der Art des KO's entspricht. 

 

Wenn wir wollen, das ausser dem Ersten Objekt A01 in der Ausgangsbox die weiteren KO's (A02 und A03) vorgegebene Werte ausführen, müssen wir Ihnen die Werte sagen. 

 

Löst hierzu die Verbindungen zu A02 und A03 mit einem rechten Mausklick jeweils auf die Werte der Ausgangsbox.

Im Anschluss legt Ihr nun zwei zusätzliche Ausgangsboxen mit einem Rechtsklick an.

 

Nun zieht einmal vom Logikbaustein aus der Ausgangsbox A1 zu der zweiten, neu angelegten Ausgangsbox eine Verbindung zu dem Pluszeichen der zweiten Ausgangsbox.

 

Ihr bekommt nun direkt wieder die Popup Box angezeigt (Ausgang / Befehle). Nun klickt Ihr mal auf das Plus Zeichen auf der Rechten Hälfte. Es erscheint eine weitere Box mit der Bezeichnung Bearbeiten / Hinzufügen.

 

Hier könnt Ihr nun jede Menge Befehle ausführen. Hierbei möchte ich zuerst das Thema der Werte der Kommunikationsobjekte behandeln. 

 

Weitere auszuführende Befehle folgen weiter nach dem folgenden Beispiel.


Im oberen Bereich des Befehlsmenüs könnt Ihr den Befehlstyp auswählen. Hier bleiben wir zuerst auf Schalten / Abfragen.

 

Ihr wählt zuerst das KO A02 aus, mit dem Feld mit den 3 Punkten und übernimmt es.

 

Im weiteren Dropdownmenü wählt Ihr "Setzen auf Konstante"

 

Anschließend könnt Ihr den Wert im weiteren Feld definieren. Wir wählen hier mal den Wert 20, da das KO A02 8 Bit (0-100%) auf 20% eingestellt werden soll.

 

Macht das auch mal mit dem dritten KO dem benannten A03. Hier handelt es sich ja um einen RTR Wert. 

Ihr könnt hier den RTR Wert auf 3 oder ähnlich setzen. 

 

So könnt Ihr mit einem einfachen Auslöser / Ereignis bestimmte Werte setzen. Macht Euch mal mit dem Eigenschaftenfeld der Ausgangsbox vertraut. Ihr könnt hier auch anders vorgehen. Wir haben ja hier 3 Ausgangsboxen angelegt. Das Ganze geht auch noch komprimierter. Ihr könnt im Eigenschaftenfeld der Ausgangsbox mehrere Befehle hintereinander anlegen. 

 

So könnt Ihr mit einem KO zum Beispiel mehrere Schalthandlungen / Werte setzen, ohne immer eine zusätzliche Ausgangsbox zu generieren. 

 

Dies zeigt die übernächste Gallerie.


Es lassen sich noch ganz andere Dinge anstellen. Man kann die Schalthandlungen auch sortieren.

 

Im vorausgegangenen Befehlsfeld lassen sich auch die Werte toggeln, schrittweise + / - als auch Listen ansteuern. Was es mit den Listen etc. zu tuen hat, das könnt Ihr wiederum bei dem Link mit den Kommunikationsobjekten nachlesen.

 

Man kann aber auch Konstanten addieren, nehmen wir mal an Ihr setzt zuerst Konstante 10, dann könnt ihr bei der nächsten Runde dieses mit 10 auf 20 setzen.

 

Ebenso lassen sich Werte abfragen. Nehmen wir mal an, Ihr mach hier ne Logik, die sämtliche Fenster abfragt. So könnt Ihr hier den Öffnungszustand etc. des KO's abfragen.

Die Ausgangsbox ist aber nicht auf die KO's begrenzt. Es lassen sich hier noch ganz andere Dinge durchführen mit dem Befehlsmenü:

  • Daten per Email versenden
  • Kamerabild archivieren
  • Daten per FTP versenden
  • Zeit/Datum senden
  • Sequenz abrufen 
  • Szene abrufen
  • Visu Alarm auslösen
  • Alarm auslösen (email,sms, Anruf, Push)
  • IP / KNX Telegramme senden 
  • Website auswerten
  • Dimmen
  • SNMP Trap senden
  • Wake on LAN
  • KNX Scannen
  • Gerät neu starten

Ihr seht...das Teil is ein Monster. Vor allem ist es übersichtlich. Nun habt Ihr gelernt, wie man Logikblätter anlegt, Ein und Ausgangsboxen setzt, Logikbausteine einsetzt, sie mit Werten belegt und verbindet.

 

Es gibt viele Logikbausteine die Ihr einsetzen könnt. Von einfachen mathematischen Berechnungen bis hin zu komplexen Bewässerungssteuerungen ist alles möglich.

 

Doch wie verhält es sich, wenn man jetzt die tollste Logik gebaut hat und man diese Logik nochmals einsetzen will? 

Hier kann man zum Einen die ganze Logik markieren und dann per Rechtsklick der Maus kopieren, ausschneiden und einfügen. 

 

Es lässt sich das Ganze aber auch komplett exportieren, nehmen wir mal an, Ihr wollt einem Freund die Logik zukommen lassen. Dann kopiert Ihr mit dem Rechtsklick die ganze Logik in eine "globale Bibliothek". Ihr könnt die zu wählenden Kommunikationsobjekte sowohl intern als auch extern nochmals benennen. Beim Import wird dann zum Beispiel gefragt, wie das KO heißt / wo es auf dem anderen System zu finden ist.


Konnektoren

Jetzt baut Ihr Euch die riesigste Logik die sich ein Mensch vorstellen kann, und Euch geht der Platz aus...was nun?

 

Nun, hier kommen wir nun zum letzten Punkt für heute. Ihr könnt sogenannte Konnektoren benutzen. Ihr könnt eine Logik über mehrere Logikblätter anlegen.

 

 

Hierzu lege ich zuerst der übersichthalber einen Testordner mit einem Rechtsklick in dem Arbeitsblätter Ordner an, und dort wiederum mit einem Rechtsklick je ein neues Arbeitsblatt. Insgesamt brauchen wir 2 Arbeitsblätter.

 

Das sieht dann wie folgt aus:



Ich möchte nun gerne folgendes realisieren. Eine kleine Meldeanlage und das ein wenig übersichtlich.

 

Nehmt Hierzu aus der Elemente Liste und weitere Bausteine (weiter unten) den Störmeldungslogikbaustein. Ihr könnt auch nach ihm mit der Suche suchen. Dann schiebt ihr ihn 4 Mal aufs erste Logikblatt.

Jetzt legt Ihr Euch einen Testordner bei den Internen Kommunikationsobjekten mit Rechtsklick auf der Hauptstruktur an, wenn ihr das noch nicht gemacht habt. Wiederum legt Ihr einen Eingangsordner an und fügt hier 4 Testobjekte ein (1Bit) die Ihr S01 S02 S03 und S04 nennt. Diese sollten später die Störmeldungen simulieren. Wenn Ihr damit fertig seid, übernimmt ihr diese auf dem ersten Logikblatt im Eingangsbaustein mit dem Plus Zeichen.

 


Verbindet nun die Meldeobjekte vom Eingangsbaustein mit je einem Störmeldungsbaustein auf den ersten Eingang Störmeldung. (Ich benenne hier die Bausteine mit Rechtsklick auch noch um). 

Klickt nun auf das Pluszeichen der Ausgangsbox und legt im Testordner der KO's im ersten Ausgangsordner die Störmeldung an. Anschließend übernimmt Ihr diese und verbindet sämtliche akustische Alarmausgänge zu diesen Ausgangsobjekt.


Legt jetzt mal aus Spaß in der Eingangsbox mit dem Pluszeichen ein weiteres Eingangsobjekt ein, das Ihr Quittung nennt: Q01 Quittung sämtlicher Bausteine. Dies verknüpft Ihr wieder mit jedem Eingang jedes Logikbausteins unter Quittung.

Wenn Ihr verknüpft habt seht Ihr, das sich die Linien überschneiden und es sehr schnell unübersichtlich wird. In dem Fall noch verschmerzbar, aber wenn Ihr jetzt nachgelagerte Logikbausteine wie eine Alarmzentrale habt, verliert Ihr garantiert den Überblick.


Jetzt macht Ihr aber mal folgendes: Legt Euch eine neue Ausgangsbox mit einem Rechtsklick auf diesen ersten Blatt an! 

 

Im Anschluss klickt Ihr mit der Rechten Maustaste auf diese Ausgangsbox (und zwar nicht auf das Pluszeichen!) und ein Kontextfeld erscheint. Ihr könnt hier die Box umbenennen aber auch einen Konnektor hinzufügen. Ich möchte, das Ihr beides macht.

Die Box benennt Ihr um als "Konnektor zu Blatt 2" und wie gesagt fügt einen Konnektor hinzu.

 

Das sieht dann wie folgt aus in der Bildergallerie:


Ihr könnt nun die akustischen Ausgänge der Logikbausteine mit dem Konnektor in der Ausgangsbox verbinden. Wechselt nun zu Arbeitsblatt 2.

Wiederholt den obigen Schritt direkt mit der dort vorhandenen leeren Eingangsbox, benennt Sie um als Konnektor Blatt 1 und fügt einen Konnektor hinzu.


Bei dem nun erscheinenden Kontextfeld werdet Ihr gefragt, welchen Konnektor Ihr benutzen wollt. Das geht Logikblattübergreifend. Wählt hier Eueren zuerst angelegten Ausgangskonnektor hier aus. Dieser kommt dann zum Eingangsbaustein.

Zieht Euch mal aus Jux und Dollerei den Alarmbaustein aus der Elemente Liste aufs zweite Blatt. Nun könnt Ihr zum Beispiel die Alarmmeldung sämtlicher Melder auf einen Eingang legen. 


Wozu das Alles?

Ihr fragt Euch bestimmt, warum ich diesen "Affentanz" veranstalte?

 

Nun, das hat mehrere Gründe. Ein Grund ist zum Beispiel, das man bei sehr großen Logiken die Übersicht verliert. Wenn ich zum Beispiel eine komplette Alarmanlage oder eine Bewässerungssteuerung einrichte. 

 

Hat man zum Beispiel bei der Alarmanlage Sensoren an den Fenstern, kann das mal gleich 20-30 Kommunikationsobjekte ergeben. Die Sauber einzubinden, mit Reset etc. wird für ein Logikblatt unmöglich. Folglicherweise muss man dann mehrere nehmen. 

 

Die weitere Problematik besteht, wenn man mal was umbauen muss; sprich wenn man eine bestehende Logik erweitert oder gar Bestandteile einer Logik in eine andere übernehmen will, die mit der Funktion gar nichts zu tuen hat.

Ferner ist beim Homeserver 4 nun die Funktion der Blattsperre hinzugekommen. Wenn ich zum Beispiel beim alten Server (Softwarestand) einen Fehler drin hatte, musste ich erst sehr umfangreich das ganze durchtesten.

 

Bei einem bestehenden System, wo mitunter auch noch viele anderen Dinge noch neu installiert werden oder umgebaut werden, hat man hier halt nicht so den Arbeitsfortschritt...mitunter sogar Ausfall.

 

Also, nutzt die Konnektoren. Zumal Ihr dann bei anderen Logikblättern für andere Logiken diese einsetzen könnt, um Werte übergreifend nutzen zu können.

 

Ich hoffe, dieser Ausblick hat Euch Spaß gemacht. In Zukunft zeig ich mal ein paar Fallbeispiele, wo ich sowohl kleine als auch größere Logik zeige.