Skip to content
  • Home
  • Aktuell
  • Tags
  • 0 Ungelesen 0
  • Kategorien
  • Unreplied
  • Beliebt
  • GitHub
  • Docu
  • Hilfe
Skins
  • Light
  • Brite
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Standard: (Kein Skin)
  • Kein Skin
Einklappen
ioBroker Logo

Community Forum

donate donate
  1. ioBroker Community Home
  2. Deutsch
  3. ioBroker Allgemein
  4. IOBroker mit Smartvisu

NEWS

  • UPDATE 31.10.: Amazon Alexa - ioBroker Skill läuft aus ?
    apollon77A
    apollon77
    48
    3
    8.8k

  • Monatsrückblick – September 2025
    BluefoxB
    Bluefox
    13
    1
    2.2k

  • Neues Video "KI im Smart Home" - ioBroker plus n8n
    BluefoxB
    Bluefox
    16
    1
    3.3k

IOBroker mit Smartvisu

Geplant Angeheftet Gesperrt Verschoben ioBroker Allgemein
34 Beiträge 5 Kommentatoren 2.7k Aufrufe 5 Watching
  • Älteste zuerst
  • Neuste zuerst
  • Meiste Stimmen
Antworten
  • In einem neuen Thema antworten
Anmelden zum Antworten
Dieses Thema wurde gelöscht. Nur Nutzer mit entsprechenden Rechten können es sehen.
  • apollon77A apollon77

    Mal die Runde gefragt: ich hatte mal angefangen mit einem smartvisu Adapter der quasi ein php installiert und nen Webserver in nodejs der dann das ausführt und eine smartvisu Version mitbringt. Dann würde das generell direkt in iobroker laufen.

    Wäre das was was interessant wäre oder ist’s einfacher das so „getrennt“ laufen zu haben wir ihr jetzt? Sagt mal was dazu bitte.

    MiGollerM Offline
    MiGollerM Offline
    MiGoller
    Developer
    schrieb am zuletzt editiert von
    #22

    @apollon77 Hey, ich glaube, für die meisten wäre es einfacher, das als alternative VIS praktisch "im" ioBroker laufen zu lassen.

    Mein Docker-basiertes Setup mit einem Docker-Compose-Stack, ein nginx Container und ein smartVISU FPM Container, hat @Patzii nicht so trivial unter UNRAID ans Laufen bekommen. Da habe ich ein Image gebaut, dass einen PHP-Webserver auf Basis von nginx samt smartVISU mitbringt.

    Persönlich splitte ich diese Dinge gern auf, damit ich nach Möglichkeit immer offizielle Images für Container nutzen kann. Wenn jemand aber eh den ioBroker auf Docker fährt, dann sollte es kein Problem sein, einen weiteren Container für die smartVISU oder einen Stack zu zünden.

    @apollon77 , ich würde aber auch bei einem smartVISU Adapter unterstützen. Schaue mir parallel des Repo https://github.com/Apollon77/ioBroker.smartvisu an.

    ioBroker auf Intel Atom x5-Z8350 mit KNX, Gardena, Roomba, MQTT, Sonoff, Life360

    MiGollerM 1 Antwort Letzte Antwort
    0
    • MiGollerM MiGoller

      @apollon77 Hey, ich glaube, für die meisten wäre es einfacher, das als alternative VIS praktisch "im" ioBroker laufen zu lassen.

      Mein Docker-basiertes Setup mit einem Docker-Compose-Stack, ein nginx Container und ein smartVISU FPM Container, hat @Patzii nicht so trivial unter UNRAID ans Laufen bekommen. Da habe ich ein Image gebaut, dass einen PHP-Webserver auf Basis von nginx samt smartVISU mitbringt.

      Persönlich splitte ich diese Dinge gern auf, damit ich nach Möglichkeit immer offizielle Images für Container nutzen kann. Wenn jemand aber eh den ioBroker auf Docker fährt, dann sollte es kein Problem sein, einen weiteren Container für die smartVISU oder einen Stack zu zünden.

      @apollon77 , ich würde aber auch bei einem smartVISU Adapter unterstützen. Schaue mir parallel des Repo https://github.com/Apollon77/ioBroker.smartvisu an.

      MiGollerM Offline
      MiGollerM Offline
      MiGoller
      Developer
      schrieb am zuletzt editiert von
      #23

      @apollon77 Ich hätte das prinzipiell in diesem Stil getan, allerdings war die Performance in der Vergangenheit nicht so dolle, aber das müsste ich noch einmal ausprobieren.

      var express = require('express');
      var php = require("node-php"); 
      var path = require("path"); 
      
      var app = express();
      
      app.use("/", php.cgi("public")); 
      
      app.listen(80);
      
      console.log("Server listening!");
      

      Der PHP-Content wäre dann im Verzeichnis ./public, in unserem Kontext also der smartVISU Code.

      Statt node-php nutzt Du sphp, aber das sollte praktisch egal sein. Sind beides CGI-Implementierungen, und dabei ist sphp die jüngere von beiden. Ist das wirklich schon 9 Jahre her, dass ich das mit node-php ausprobiert habe??? Ich werde alt.

      ioBroker auf Intel Atom x5-Z8350 mit KNX, Gardena, Roomba, MQTT, Sonoff, Life360

      apollon77A 1 Antwort Letzte Antwort
      0
      • MiGollerM MiGoller

        @migoller So, habe die smarftVISU v3.3.0 in meinem Docker-Image... und rennt mit dem inkludierten Standardtreiber, ohne dass ich Fehler im ioBroker Protokoll finden kann, dass Typen nicht passen würden.

        Ich habe auch einen KNX-Bus und hatte in den Versionen bis v3.2.x das Problem, das @Patzii beschrieben hatte. Jetzt nicht mehr. Da kann ich wohl meinen Workaround, den alternativen Treiber ioBroker_v2 wieder einstampfen.

        @Patzii: Ich baue nachher noch ein nginx-Image für Dich, dass Du auch aktualisieren kannst.

        MiGollerM Offline
        MiGollerM Offline
        MiGoller
        Developer
        schrieb am zuletzt editiert von
        #24

        @Patzii , das nginx-Image habe ich soeben aktualisiert. Du solltest es in UNRAID jetzt aktualisieren können.

        ioBroker auf Intel Atom x5-Z8350 mit KNX, Gardena, Roomba, MQTT, Sonoff, Life360

        1 Antwort Letzte Antwort
        0
        • MiGollerM MiGoller

          @apollon77 Ich hätte das prinzipiell in diesem Stil getan, allerdings war die Performance in der Vergangenheit nicht so dolle, aber das müsste ich noch einmal ausprobieren.

          var express = require('express');
          var php = require("node-php"); 
          var path = require("path"); 
          
          var app = express();
          
          app.use("/", php.cgi("public")); 
          
          app.listen(80);
          
          console.log("Server listening!");
          

          Der PHP-Content wäre dann im Verzeichnis ./public, in unserem Kontext also der smartVISU Code.

          Statt node-php nutzt Du sphp, aber das sollte praktisch egal sein. Sind beides CGI-Implementierungen, und dabei ist sphp die jüngere von beiden. Ist das wirklich schon 9 Jahre her, dass ich das mit node-php ausprobiert habe??? Ich werde alt.

          apollon77A Offline
          apollon77A Offline
          apollon77
          schrieb am zuletzt editiert von
          #25

          @migoller Ja schau gern rein, am Ende war das mal ein Versuch der glaube auch schon 2 Jahre her ist :-) aber sphp tut .. wie performant ist die Frage. Eine alternative wäre einen phpfpm service zu starten und die php executions darüber laufen zu lassen ... das müsste man aber mal testen

          Beitrag hat geholfen? Votet rechts unten im Beitrag :-) https://paypal.me/Apollon77 / https://github.com/sponsors/Apollon77

          • Debug-Log für Instanz einschalten? Admin -> Instanzen -> Expertenmodus -> Instanz aufklappen - Loglevel ändern
          • Logfiles auf Platte /opt/iobroker/log/… nutzen, Admin schneidet Zeilen ab
          P 1 Antwort Letzte Antwort
          0
          • apollon77A apollon77

            @migoller Ja schau gern rein, am Ende war das mal ein Versuch der glaube auch schon 2 Jahre her ist :-) aber sphp tut .. wie performant ist die Frage. Eine alternative wäre einen phpfpm service zu starten und die php executions darüber laufen zu lassen ... das müsste man aber mal testen

            P Offline
            P Offline
            Patzii
            schrieb am zuletzt editiert von
            #26

            @apollon77

            mit der neuen Version ist leider noch das selbe Problem das ich nur einschalten kann und nicht Aus

            der False wert wird gesetzt aber nicht bestätigt!

            Habs noch eine Idee für mich?

            apollon77A 1 Antwort Letzte Antwort
            0
            • P Patzii

              @apollon77

              mit der neuen Version ist leider noch das selbe Problem das ich nur einschalten kann und nicht Aus

              der False wert wird gesetzt aber nicht bestätigt!

              Habs noch eine Idee für mich?

              apollon77A Offline
              apollon77A Offline
              apollon77
              schrieb am zuletzt editiert von
              #27

              @patzii sagte in IOBroker mit Smartvisu:

              der False wert wird gesetzt aber nicht bestätigt!

              in weldhe Nomenklatur bist Du jetzt? bestätigt aka "ack flag" oder was genau? Mehr details

              Beitrag hat geholfen? Votet rechts unten im Beitrag :-) https://paypal.me/Apollon77 / https://github.com/sponsors/Apollon77

              • Debug-Log für Instanz einschalten? Admin -> Instanzen -> Expertenmodus -> Instanz aufklappen - Loglevel ändern
              • Logfiles auf Platte /opt/iobroker/log/… nutzen, Admin schneidet Zeilen ab
              P 1 Antwort Letzte Antwort
              0
              • apollon77A apollon77

                @patzii sagte in IOBroker mit Smartvisu:

                der False wert wird gesetzt aber nicht bestätigt!

                in weldhe Nomenklatur bist Du jetzt? bestätigt aka "ack flag" oder was genau? Mehr details

                P Offline
                P Offline
                Patzii
                schrieb am zuletzt editiert von Patzii
                #28

                @apollon77

                Hab jetzt die 3.3.0 mit den originalen IOBroker treiber

                Wo sehe ich deine frage wie kann ich das nachsehen ?

                Was mir noch auffällt der status wird nicht ausgelesen vom IOBroker!

                das hier von der smartvisu
                45c8a6ef-6700-402f-8a97-911bded8ffb0-image.png

                das hier ist das log vom IOBroker
                e5321c71-effd-43bd-adf1-aaa49bd1e2ac-image.png

                apollon77A MiGollerM 3 Antworten Letzte Antwort
                0
                • P Patzii

                  @apollon77

                  Hab jetzt die 3.3.0 mit den originalen IOBroker treiber

                  Wo sehe ich deine frage wie kann ich das nachsehen ?

                  Was mir noch auffällt der status wird nicht ausgelesen vom IOBroker!

                  das hier von der smartvisu
                  45c8a6ef-6700-402f-8a97-911bded8ffb0-image.png

                  das hier ist das log vom IOBroker
                  e5321c71-effd-43bd-adf1-aaa49bd1e2ac-image.png

                  apollon77A Offline
                  apollon77A Offline
                  apollon77
                  schrieb am zuletzt editiert von
                  #29

                  @patzii Naja wie oben gesagt wenn der Falsche typ reinkommt dann ist eine zeichenkette mit Inhalt "false" ist ein wahrer Wert, der ist nicht false ... also es muss das richtige gesendet werden ... also es klingt schon richtig was da im neuen treiber gemacht wurde (nicht performant aber ggf ok).

                  Beitrag hat geholfen? Votet rechts unten im Beitrag :-) https://paypal.me/Apollon77 / https://github.com/sponsors/Apollon77

                  • Debug-Log für Instanz einschalten? Admin -> Instanzen -> Expertenmodus -> Instanz aufklappen - Loglevel ändern
                  • Logfiles auf Platte /opt/iobroker/log/… nutzen, Admin schneidet Zeilen ab
                  1 Antwort Letzte Antwort
                  0
                  • P Patzii

                    @apollon77

                    Hab jetzt die 3.3.0 mit den originalen IOBroker treiber

                    Wo sehe ich deine frage wie kann ich das nachsehen ?

                    Was mir noch auffällt der status wird nicht ausgelesen vom IOBroker!

                    das hier von der smartvisu
                    45c8a6ef-6700-402f-8a97-911bded8ffb0-image.png

                    das hier ist das log vom IOBroker
                    e5321c71-effd-43bd-adf1-aaa49bd1e2ac-image.png

                    MiGollerM Offline
                    MiGollerM Offline
                    MiGoller
                    Developer
                    schrieb am zuletzt editiert von
                    #30

                    @patzii Hey, ich schaue heute Abend in meiner smartVISU Konfiguration nach bzw. baue das mit einem basic.flip nach. Ich nutze den "alten" KNX-Adapter, vielleicht ist der toleranter, auch wenn das Protokoll etwas anderes sagt. ;-) Laut Debug-Skript kommen bei mir aber auch echte Boolean-Werte an und keine Strings.

                    Versuche mal bitte, statt 'true', 'false' keine Zeichenfolgen mit ' anzugeben, sondern direkt die Boolean-Werte in der Definition des Flips: true, false, also ohne ' .

                    ioBroker auf Intel Atom x5-Z8350 mit KNX, Gardena, Roomba, MQTT, Sonoff, Life360

                    U 1 Antwort Letzte Antwort
                    1
                    • MiGollerM MiGoller

                      @patzii Hey, ich schaue heute Abend in meiner smartVISU Konfiguration nach bzw. baue das mit einem basic.flip nach. Ich nutze den "alten" KNX-Adapter, vielleicht ist der toleranter, auch wenn das Protokoll etwas anderes sagt. ;-) Laut Debug-Skript kommen bei mir aber auch echte Boolean-Werte an und keine Strings.

                      Versuche mal bitte, statt 'true', 'false' keine Zeichenfolgen mit ' anzugeben, sondern direkt die Boolean-Werte in der Definition des Flips: true, false, also ohne ' .

                      U Offline
                      U Offline
                      uweabc
                      schrieb am zuletzt editiert von uweabc
                      #31

                      Bei basic.flip true,false einfach weglassen.
                      Ob man nun true, false oder 1,0 oder 'true','false' in den Widgets (z.B. basic.checkbox) verwendet sollte kein Unterschied machen, da die Typenkonvertierung in smartVISU 3.3.0 dies wieder korrigiert. Also wenn ioBroker ein boolean liefert so schreibt smartVISU 3.3.0 auch ein boolean wieder zurück.

                      Ich habe dazu eine Objekt definiert:

                      {
                        "common": {
                          "name": "boolean Test",
                          "type": "boolean",
                          "def": false,
                          "role": "state"
                        },
                        "native": {},
                        "type": "state",
                        "_id": "0_userdata.0.boolean_value",
                        "acl": {
                          "object": 1636,
                          "state": 1636,
                          "owner": "system.user.admin",
                          "ownerGroup": "system.group.administrator"
                        },
                        "from": "system.adapter.admin.0",
                        "user": "system.user.admin",
                        "ts": 1671443159460
                      }
                      

                      In einer smartVISU Testseite die zu testenden Widgets definiert:

                        <div class="block">
                          <div class="set-2" data-role="collapsible-set" data-theme="c" data-content-theme="a" data-mini="true">
                            <div data-role="collapsible" data-collapsed="false">
                              <h3>boolean value test</h3>
                                basic.checkbox {{ basic.checkbox('', '0_userdata.0.boolean_value', 'boolean', true, false) }}<br>
                      	  basic.stateswitch {{ basic.stateswitch('', '0_userdata.0.boolean_value', 'icon', [true,false], ['jquery_plus.svg', 'jquery_minus.svg']) }}<br>
                      	  basic.flip {{ basic.flip('flip', '0_userdata.0.boolean_value') }}<br>
                      	  {{ basic.print('', '0_userdata.0.boolean_value', '%s' , 'VAR==1?"true":"false"') }}<br>
                            </div>
                          </div>
                        </div>
                      

                      Und dies getestet:
                      ioBroker_smartVisu_boolean.gif

                      Dies sieht man in Log (ioBroker):

                      socketio.0 2022-12-21 19:19:49.419	silly	States user redis pmessage 0_userdata.0.boolean_value/0_userdata.0.boolean_value:{"val":true,"ack":false,"ts":1671646789416,"q":0,"from":"system.adapter.socketio.0","user":"system.user.admin","lc":1671646789416}
                      socketio.0 2022-12-21 19:19:47.064	silly	States user redis pmessage 0_userdata.0.boolean_value/0_userdata.0.boolean_value:{"val":false,"ack":false,"ts":1671646787061,"q":0,"from":"system.adapter.socketio.0","user":"system.user.admin","lc":1671646787061}
                      socketio.0 2022-12-21 19:19:44.001	silly	States user redis pmessage 0_userdata.0.boolean_value/0_userdata.0.boolean_value:{"val":true,"ack":false,"ts":1671646783998,"q":0,"from":"system.adapter.socketio.0","user":"system.user.admin","lc":1671646783998}
                      socketio.0 2022-12-21 19:19:41.201	silly	States user redis pmessage 0_userdata.0.boolean_value/0_userdata.0.boolean_value:{"val":false,"ack":false,"ts":1671646781198,"q":0,"from":"system.adapter.socketio.0","user":"system.user.admin","lc":1671646781198}```
                      MiGollerM 1 Antwort Letzte Antwort
                      3
                      • U uweabc

                        Bei basic.flip true,false einfach weglassen.
                        Ob man nun true, false oder 1,0 oder 'true','false' in den Widgets (z.B. basic.checkbox) verwendet sollte kein Unterschied machen, da die Typenkonvertierung in smartVISU 3.3.0 dies wieder korrigiert. Also wenn ioBroker ein boolean liefert so schreibt smartVISU 3.3.0 auch ein boolean wieder zurück.

                        Ich habe dazu eine Objekt definiert:

                        {
                          "common": {
                            "name": "boolean Test",
                            "type": "boolean",
                            "def": false,
                            "role": "state"
                          },
                          "native": {},
                          "type": "state",
                          "_id": "0_userdata.0.boolean_value",
                          "acl": {
                            "object": 1636,
                            "state": 1636,
                            "owner": "system.user.admin",
                            "ownerGroup": "system.group.administrator"
                          },
                          "from": "system.adapter.admin.0",
                          "user": "system.user.admin",
                          "ts": 1671443159460
                        }
                        

                        In einer smartVISU Testseite die zu testenden Widgets definiert:

                          <div class="block">
                            <div class="set-2" data-role="collapsible-set" data-theme="c" data-content-theme="a" data-mini="true">
                              <div data-role="collapsible" data-collapsed="false">
                                <h3>boolean value test</h3>
                                  basic.checkbox {{ basic.checkbox('', '0_userdata.0.boolean_value', 'boolean', true, false) }}<br>
                        	  basic.stateswitch {{ basic.stateswitch('', '0_userdata.0.boolean_value', 'icon', [true,false], ['jquery_plus.svg', 'jquery_minus.svg']) }}<br>
                        	  basic.flip {{ basic.flip('flip', '0_userdata.0.boolean_value') }}<br>
                        	  {{ basic.print('', '0_userdata.0.boolean_value', '%s' , 'VAR==1?"true":"false"') }}<br>
                              </div>
                            </div>
                          </div>
                        

                        Und dies getestet:
                        ioBroker_smartVisu_boolean.gif

                        Dies sieht man in Log (ioBroker):

                        socketio.0 2022-12-21 19:19:49.419	silly	States user redis pmessage 0_userdata.0.boolean_value/0_userdata.0.boolean_value:{"val":true,"ack":false,"ts":1671646789416,"q":0,"from":"system.adapter.socketio.0","user":"system.user.admin","lc":1671646789416}
                        socketio.0 2022-12-21 19:19:47.064	silly	States user redis pmessage 0_userdata.0.boolean_value/0_userdata.0.boolean_value:{"val":false,"ack":false,"ts":1671646787061,"q":0,"from":"system.adapter.socketio.0","user":"system.user.admin","lc":1671646787061}
                        socketio.0 2022-12-21 19:19:44.001	silly	States user redis pmessage 0_userdata.0.boolean_value/0_userdata.0.boolean_value:{"val":true,"ack":false,"ts":1671646783998,"q":0,"from":"system.adapter.socketio.0","user":"system.user.admin","lc":1671646783998}
                        socketio.0 2022-12-21 19:19:41.201	silly	States user redis pmessage 0_userdata.0.boolean_value/0_userdata.0.boolean_value:{"val":false,"ack":false,"ts":1671646781198,"q":0,"from":"system.adapter.socketio.0","user":"system.user.admin","lc":1671646781198}```
                        MiGollerM Offline
                        MiGollerM Offline
                        MiGoller
                        Developer
                        schrieb am zuletzt editiert von
                        #32

                        @uweabc Sehr schön gemacht und dargestellt. Lässt sich gut reproduzieren. Vielen Dank. Im Ergebnis sieht es bei mir gleich aus.

                        ioBroker auf Intel Atom x5-Z8350 mit KNX, Gardena, Roomba, MQTT, Sonoff, Life360

                        1 Antwort Letzte Antwort
                        0
                        • P Patzii

                          @apollon77

                          Hab jetzt die 3.3.0 mit den originalen IOBroker treiber

                          Wo sehe ich deine frage wie kann ich das nachsehen ?

                          Was mir noch auffällt der status wird nicht ausgelesen vom IOBroker!

                          das hier von der smartvisu
                          45c8a6ef-6700-402f-8a97-911bded8ffb0-image.png

                          das hier ist das log vom IOBroker
                          e5321c71-effd-43bd-adf1-aaa49bd1e2ac-image.png

                          MiGollerM Offline
                          MiGollerM Offline
                          MiGoller
                          Developer
                          schrieb am zuletzt editiert von
                          #33

                          @patzii Hey, kannst Du das bitte mal mit einem benutzerdefinierten Datenpunkt wie z.B. 0_userdata.0.boolean_value im Post https://forum.iobroker.net/topic/60969/iobroker-mit-smartvisu/31 von @uweabc testen? Ich möchte ausschließen, dass es am OpenKNX Adapter liegt, oder dass auf den von Dir genannten Datenpunkt noch ein Skript aktiv ist, etc.

                          ioBroker auf Intel Atom x5-Z8350 mit KNX, Gardena, Roomba, MQTT, Sonoff, Life360

                          P 1 Antwort Letzte Antwort
                          0
                          • MiGollerM MiGoller

                            @patzii Hey, kannst Du das bitte mal mit einem benutzerdefinierten Datenpunkt wie z.B. 0_userdata.0.boolean_value im Post https://forum.iobroker.net/topic/60969/iobroker-mit-smartvisu/31 von @uweabc testen? Ich möchte ausschließen, dass es am OpenKNX Adapter liegt, oder dass auf den von Dir genannten Datenpunkt noch ein Skript aktiv ist, etc.

                            P Offline
                            P Offline
                            Patzii
                            schrieb am zuletzt editiert von
                            #34

                            @migoller @apollon77 @uweabc

                            Sry für die späte antwort bin aber erst heute zum Testen gekommen!

                            Aber vielen vielen dank es war wirklich das ' vor und nach dem True und False jetzt Funktioniert es perfekt.

                            Danke nochmal

                            LG und Frohe Weihnachten

                            Patrick

                            1 Antwort Letzte Antwort
                            0
                            Antworten
                            • In einem neuen Thema antworten
                            Anmelden zum Antworten
                            • Älteste zuerst
                            • Neuste zuerst
                            • Meiste Stimmen


                            Support us

                            ioBroker
                            Community Adapters
                            Donate
                            FAQ Cloud / IOT
                            HowTo: Node.js-Update
                            HowTo: Backup/Restore
                            Downloads
                            BLOG

                            825

                            Online

                            32.4k

                            Benutzer

                            81.5k

                            Themen

                            1.3m

                            Beiträge
                            Community
                            Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen | Einwilligungseinstellungen
                            ioBroker Community 2014-2025
                            logo
                            • Anmelden

                            • Du hast noch kein Konto? Registrieren

                            • Anmelden oder registrieren, um zu suchen
                            • Erster Beitrag
                              Letzter Beitrag
                            0
                            • Home
                            • Aktuell
                            • Tags
                            • Ungelesen 0
                            • Kategorien
                            • Unreplied
                            • Beliebt
                            • GitHub
                            • Docu
                            • Hilfe