Skip to content
  • Recent
  • Tags
  • 0 Unread 0
  • Categories
  • Unreplied
  • Popular
  • 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

  • Default (No Skin)
  • No Skin
Collapse
Logo
  1. ioBroker Community Home
  2. Deutsch
  3. Hardware
  4. SONOFF NSPanel mit Lovelace UI

NEWS

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

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

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

SONOFF NSPanel mit Lovelace UI

SONOFF NSPanel mit Lovelace UI

Scheduled Pinned Locked Moved Hardware
lovelace uinspanelsonoff
7.7k Posts 271 Posters 6.7m Views 253 Watching
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • T TT-Tom

    @ticaki

    ich habe ein Blockly mal erstellt und Trigger auf ACTUAL mit einem Selektor.

    c5e613b2-ba1f-4b6e-bd6f-48d10cec4ee6-image.png

    <xml xmlns="https://developers.google.com/blockly/xml">
     <variables>
       <variable id="`3q~tn|]r(LvC{19,zEY">Status_offeneFenster</variable>
       <variable id="1#Xk,SKr8Zq2_0q?X|J9">offeneFenster</variable>
       <variable id="9/yJg%I-v6N#IQN8st6m">i</variable>
     </variables>
     <block type="on_ext" id="U::/4wmI3}Z@$SKGvvg=" x="88" y="63">
       <mutation xmlns="http://www.w3.org/1999/xhtml" items="1"></mutation>
       <field name="CONDITION">ne</field>
       <field name="ACK_CONDITION"></field>
       <value name="OID0">
         <shadow type="field_oid" id="7Ap7C6jIj.Mb{_iqs{{c">
           <field name="oid">default</field>
         </shadow>
         <block type="selector" id="96E5N_xE!C=N626d0a_!">
           <field name="TEXT">alias.0.Fenster.*.ACTUAL</field>
         </block>
       </value>
       <statement name="STATEMENT">
         <block type="variables_set" id="o,82sN(nBal}d`S@FhlR">
           <field name="VAR" id="`3q~tn|]r(LvC{19,zEY">Status_offeneFenster</field>
           <value name="VALUE">
             <block type="logic_boolean" id="];3BCyF%j]5d6+iW7SW4">
               <field name="BOOL">FALSE</field>
             </block>
           </value>
           <next>
             <block type="variables_set" id="^tJ|0)6.8hOKTt~3bSY9">
               <field name="VAR" id="1#Xk,SKr8Zq2_0q?X|J9">offeneFenster</field>
               <value name="VALUE">
                 <block type="math_number" id=")NrEP9EVPkpU]lvaOIow">
                   <field name="NUM">0</field>
                 </block>
               </value>
               <next>
                 <block type="controls_forEach" id="zvEO{_Dt/YKLr5SA*4qm">
                   <field name="VAR" id="9/yJg%I-v6N#IQN8st6m">i</field>
                   <value name="LIST">
                     <block type="selector" id="`nXP$958BtmgM?C9iXJ,">
                       <field name="TEXT">alias.0.Fenster.*.ACTUAL</field>
                     </block>
                   </value>
                   <statement name="DO">
                     <block type="controls_if" id="|Tcfi[X*+Z+I^XU`W}c!">
                       <value name="IF0">
                         <block type="get_value_var" id="B+{iQL0J8Uf/auyLg4;o">
                           <field name="ATTR">val</field>
                           <value name="OID">
                             <shadow type="text" id="nv_xNDwj^vZd(VS@iL;U">
                               <field name="TEXT">i</field>
                             </shadow>
                             <block type="variables_get" id="-R.oMz[v.gJ{a/*nGZsC">
                               <field name="VAR" id="9/yJg%I-v6N#IQN8st6m">i</field>
                             </block>
                           </value>
                         </block>
                       </value>
                       <statement name="DO0">
                         <block type="math_change" id="%GBC0#O-FVUS`64Eg8Li">
                           <field name="VAR" id="1#Xk,SKr8Zq2_0q?X|J9">offeneFenster</field>
                           <value name="DELTA">
                             <shadow type="math_number" id="O`wb$_E?4FjD*66Z.#Gz">
                               <field name="NUM">1</field>
                             </shadow>
                             <block type="math_number" id="Z0%Qp}aXwh|l3tUTm:KU">
                               <field name="NUM">1</field>
                             </block>
                           </value>
                           <next>
                             <block type="variables_set" id="-%h(cYD!_^|7$j1?7-a;">
                               <field name="VAR" id="`3q~tn|]r(LvC{19,zEY">Status_offeneFenster</field>
                               <value name="VALUE">
                                 <block type="logic_boolean" id="JyKdvLU=OeWD@`O7AQVi">
                                   <field name="BOOL">TRUE</field>
                                 </block>
                               </value>
                             </block>
                           </next>
                         </block>
                       </statement>
                     </block>
                   </statement>
                   <next>
                     <block type="update" id="VyzVl0%MBx@R,H+HEEGI">
                       <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation>
                       <field name="OID">0_userdata.0.NSPanel.Allgemein.Fenster.Anzahl_offene</field>
                       <field name="WITH_DELAY">FALSE</field>
                       <value name="VALUE">
                         <block type="convert_tostring" id="p[AN%(l=kC~8Cq!%kyQy">
                           <value name="VALUE">
                             <block type="variables_get" id="d`73i^f,-$v2QCbRQy$g">
                               <field name="VAR" id="1#Xk,SKr8Zq2_0q?X|J9">offeneFenster</field>
                             </block>
                           </value>
                         </block>
                       </value>
                       <next>
                         <block type="update" id="v2F]Z/TZY!PunG*kfkwO">
                           <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation>
                           <field name="OID">0_userdata.0.NSPanel.Allgemein.Fenster.Status_offene</field>
                           <field name="WITH_DELAY">FALSE</field>
                           <value name="VALUE">
                             <block type="variables_get" id=",$^vy#7#dLe!?DtT8N|U">
                               <field name="VAR" id="`3q~tn|]r(LvC{19,zEY">Status_offeneFenster</field>
                             </block>
                           </value>
                           <next>
                             <block type="debug" id="M({M!_ScK2[_^j=8BB,k">
                               <field name="Severity">log</field>
                               <value name="TEXT">
                                 <shadow type="text" id="mzN-~@]E)uw@:W_};^IK">
                                   <field name="TEXT">test</field>
                                 </shadow>
                                 <block type="text_join" id="fj*OT/+j;9m96a+a?y|Z">
                                   <mutation items="3"></mutation>
                                   <value name="ADD0">
                                     <block type="variables_get" id="])A_QS+y+K{m/p[dOVM$">
                                       <field name="VAR" id="1#Xk,SKr8Zq2_0q?X|J9">offeneFenster</field>
                                     </block>
                                   </value>
                                   <value name="ADD1">
                                     <block type="text" id="XEdD(OQYXlXrVeP1Bw|k">
                                       <field name="TEXT"> Fenster offen </field>
                                     </block>
                                   </value>
                                   <value name="ADD2">
                                     <block type="on_source" id="]/!CU#MQ~Ci#!Y]o1~BA" disabled="true">
                                       <field name="ATTR">id</field>
                                     </block>
                                   </value>
                                 </block>
                               </value>
                             </block>
                           </next>
                         </block>
                       </next>
                     </block>
                   </next>
                 </block>
               </next>
             </block>
           </next>
         </block>
       </statement>
     </block>
    </xml>
    

    die Ordnerstruktur sieht bei mir so aus
    22e26016-ea88-49aa-ad62-bb0ab0feaa39-image.png

    T Do not disturb
    T Do not disturb
    ticaki
    wrote on last edited by ticaki
    #4704

    @tt-tom

    Das Skript sucht per Selektor die Fenster und baut dann das hier, incl Stockwerk und Räumen.
    Die nimmt es aus der enum id für den raum "enum.rooms.Haus.second_floor" ist das Stockwerk. "enum.rooms.Haus.second_floor.Bad" ist der Raum.
    Den Namen nimmt es auf adapter.0.diesemDatenpunkt. Den Sensoren müssen Räumen und Funktionen zugewiesen sein:Bildschirmfoto 2023-12-30 um 18.24.32.png

    Bildschirmfoto 2023-12-30 um 18.22.17.png

    Weather-Warnings Espresense NSPanel-Lovelace-ui Tagesschau

    Spenden

    1 Reply Last reply
    1
    • T Offline
      T Offline
      TT-Tom
      wrote on last edited by
      #4705

      @ticaki

      für die User ist es immer gut, wenn das Script alle Arbeit abnimmt und die Config sich in Grenzen hält. Persönlich bin ich eher der Bastler und teste hier intensiv. Schön das du unsere Crew hier so gut unterstützt. Danke nochmal.

      Gruß Tom
      https://github.com/tt-tom17
      Wenn meine Hilfe erfolgreich war, benutze bitte das Voting unten rechts im Beitrag

      NSPanel Script Wiki
      https://github.com/joBr99/nspanel-lovelace-ui/wiki

      NSPanel Adapter Wiki
      https://github.com/ticaki/ioBroker.nspanel-lovelace-ui/wiki

      ArmilarA 1 Reply Last reply
      1
      • T TT-Tom

        @ticaki

        für die User ist es immer gut, wenn das Script alle Arbeit abnimmt und die Config sich in Grenzen hält. Persönlich bin ich eher der Bastler und teste hier intensiv. Schön das du unsere Crew hier so gut unterstützt. Danke nochmal.

        ArmilarA Offline
        ArmilarA Offline
        Armilar
        Most Active Forum Testing
        wrote on last edited by
        #4706

        Update - v4.3.3.28

        3af08d6c-ab02-41a4-af1b-f98d6231d5af-image.png

        • Durch Änderung des Payload, sollte das Problem mit zu langen Alias Verzeichnissen und daraus resultierenden langen Zeichenketten behoben sein. Es ist trotzdem sinnvoll die Verzeichnisse kurz zuhalten, statt Erdgeschoss -> EG oder Schlafzimmer -> SZ nutzen.
        • Fix: Die Icons des Fenster-Alias sind von der Logik gedreht
        • Es wird beim Port-Check berücksichtigt, wenn ein MQTT-Client installiert ist
        • Fix: Der Fallback, wenn ein Name nicht im Alias vorhanden ist, wurde erweitert

        Wie kann ich das Update durchführen?

        Wenn aktuelle Version ab v4.3.3.10, dann unteren Teil des NSPanelTs.ts ab:

        // ________________ DE: Ab hier keine Konfiguration mehr _______________
        
        

        austauschen

        https://github.com/joBr99/nspanel-lovelace-ui/blob/main/ioBroker/NsPanelTs.ts

        Wenn aktuelle Version bis v4.3.3.9, dann Updateaneitung befolgen:
        https://github.com/joBr99/nspanel-lovelace-ui/wiki/NSPanel-Starthilfe-FAQ#hilfe-bei-update--upgrade

        🎆 🍾 Wir wünschen euch allen einen guten Rutsch ins neue Jahr 2024 🍾 🎆

        VG
        @Armilar, @TT-Tom & @Kuckuckmann 😊

        Installationsanleitung, Tipps, Alias-Definitionen, FAQ für das Sonoff NSPanel mit lovelace UI unter ioBroker
        https://github.com/joBr99/nspanel-lovelace-ui/wiki

        Benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat.

        D 1 Reply Last reply
        4
        • O Offline
          O Offline
          OlliGut
          wrote on last edited by OlliGut
          #4707

          Hallo zusammen,
          ich würde gerne meine Bose Soundtouch mit dem NSPanel steuern. Ich habe auf dem IOBroker den Soundtouch Adapter installiert und eine Instanz angelegt. Da es die vorkonfigurierten MediaCards nur für Sonos, Alexa etc gibt. wollte ich einfach eine Standard-MediaCard nutzen.

          let Bose = <PageMedia>
          {
              "type": "cardMedia",
              "heading": "Bose",
              "useColor": true,
              "items": [<PageItem>{   
                          id: AliasPath + 'Media.Bose', 
                          adapterPlayerInstance: "bosesoundtouch.0.",
                          mediaDevice: "192.168.178.32",
                          speakerList: ["Wohnzimmer"],
                          colorMediaIcon: colorSpotify,
                          colorMediaArtist: Yellow,
                          colorMediaTitle: Yellow,
                          autoCreateALias : true
                       }]
          };
          

          Aber schon ein erster Versuch schlägt fehl: "Cannot read properties of undefined (reading 'id')"
          Was eigentlich logisch ist, weil es den Pfad unter Alias auch nicht gibt; allerdings wird er auch nicht angelegt, obwohl ich das Autoanlegen aktiviert habe.
          Hat vielleicht jemand so einen Adapter bereits gebaut und könnte mir etwas helfen, oder wie sollte ich vorgehen, wenn ich das selber machen müsste?
          Für einen Tipp bedanke ich mich im Voraus und wünsche allen schonmal einen guten Rutsch.
          Gruß Olli

          T 1 Reply Last reply
          0
          • ArmilarA Armilar

            Update - v4.3.3.28

            3af08d6c-ab02-41a4-af1b-f98d6231d5af-image.png

            • Durch Änderung des Payload, sollte das Problem mit zu langen Alias Verzeichnissen und daraus resultierenden langen Zeichenketten behoben sein. Es ist trotzdem sinnvoll die Verzeichnisse kurz zuhalten, statt Erdgeschoss -> EG oder Schlafzimmer -> SZ nutzen.
            • Fix: Die Icons des Fenster-Alias sind von der Logik gedreht
            • Es wird beim Port-Check berücksichtigt, wenn ein MQTT-Client installiert ist
            • Fix: Der Fallback, wenn ein Name nicht im Alias vorhanden ist, wurde erweitert

            Wie kann ich das Update durchführen?

            Wenn aktuelle Version ab v4.3.3.10, dann unteren Teil des NSPanelTs.ts ab:

            // ________________ DE: Ab hier keine Konfiguration mehr _______________
            
            

            austauschen

            https://github.com/joBr99/nspanel-lovelace-ui/blob/main/ioBroker/NsPanelTs.ts

            Wenn aktuelle Version bis v4.3.3.9, dann Updateaneitung befolgen:
            https://github.com/joBr99/nspanel-lovelace-ui/wiki/NSPanel-Starthilfe-FAQ#hilfe-bei-update--upgrade

            🎆 🍾 Wir wünschen euch allen einen guten Rutsch ins neue Jahr 2024 🍾 🎆

            VG
            @Armilar, @TT-Tom & @Kuckuckmann 😊

            D Offline
            D Offline
            DerT
            Forum Testing
            wrote on last edited by
            #4708

            Hallo Zusammen,

            ich hab das ganze mal Testweise bei mir aufgebaut und eine Frage zu den Hardware Buttons.

            Irgendwie steig ich beim Beispiel nicht ganz durch..

            //-------EN: Start Settings for Hardware Button, if used in software (Rule2) --------------------------------------
                // DE: Konfiguration des linken Schalters des NSPanels
                // EN: Configuration of the left switch of the NSPanel
                button1: {
                    // DE: Mögliche Werte wenn Rule2 definiert: 'page', 'toggle', 'set' - Wenn nicht definiert --> mode: null
                    // EN: Possible values if Rule2 defined: 'page', 'toggle', 'set' - If not defined --> mode: null
                    mode: 'page',
                    // DE: Zielpage - Verwendet wenn mode = page
                    // EN: Target page - Used if mode = page
                    page: null,
                    // DE: Zielentity - Verwendet wenn mode = set oder toggle
                    // EN: Target entity - Used if mode = set or toggle
                    entity: null,
                    // DE: Zielwert - Verwendet wenn mode = set
                    // EN: Target value - Used if mode = set
                    setValue: null
                },
            
                // DE: Konfiguration des rechten Schalters des NSPanels
                // EN: Configuration of the right switch of the NSPanel
                button2: {
                    mode: null,
                    page: null,
                    entity: null,
                    setValue: null
                },
            //--------- DE: Ende - Einstellungen für Hardware Button, wenn Sie softwareseitig genutzt werden (Rule2) -------------
            
            

            Gibt es dazu noch irgendwo was im Wiki das ich nicht gefunden habe? Die Regel habe ich eingestellt.
            Konkret habe ich zwei Szenarien die ich gerne mal testen würde.

            1. Mit den Buttons durch die Menüs navigieren
            2. Temperatur an einem Thermostat reduzieren bzw. erhöhen.
            T 1 Reply Last reply
            0
            • D DerT

              Hallo Zusammen,

              ich hab das ganze mal Testweise bei mir aufgebaut und eine Frage zu den Hardware Buttons.

              Irgendwie steig ich beim Beispiel nicht ganz durch..

              //-------EN: Start Settings for Hardware Button, if used in software (Rule2) --------------------------------------
                  // DE: Konfiguration des linken Schalters des NSPanels
                  // EN: Configuration of the left switch of the NSPanel
                  button1: {
                      // DE: Mögliche Werte wenn Rule2 definiert: 'page', 'toggle', 'set' - Wenn nicht definiert --> mode: null
                      // EN: Possible values if Rule2 defined: 'page', 'toggle', 'set' - If not defined --> mode: null
                      mode: 'page',
                      // DE: Zielpage - Verwendet wenn mode = page
                      // EN: Target page - Used if mode = page
                      page: null,
                      // DE: Zielentity - Verwendet wenn mode = set oder toggle
                      // EN: Target entity - Used if mode = set or toggle
                      entity: null,
                      // DE: Zielwert - Verwendet wenn mode = set
                      // EN: Target value - Used if mode = set
                      setValue: null
                  },
              
                  // DE: Konfiguration des rechten Schalters des NSPanels
                  // EN: Configuration of the right switch of the NSPanel
                  button2: {
                      mode: null,
                      page: null,
                      entity: null,
                      setValue: null
                  },
              //--------- DE: Ende - Einstellungen für Hardware Button, wenn Sie softwareseitig genutzt werden (Rule2) -------------
              
              

              Gibt es dazu noch irgendwo was im Wiki das ich nicht gefunden habe? Die Regel habe ich eingestellt.
              Konkret habe ich zwei Szenarien die ich gerne mal testen würde.

              1. Mit den Buttons durch die Menüs navigieren
              2. Temperatur an einem Thermostat reduzieren bzw. erhöhen.
              T Offline
              T Offline
              TT-Tom
              wrote on last edited by TT-Tom
              #4709

              @dert sagte in SONOFF NSPanel mit Lovelace UI:

              Mit den Buttons durch die Menüs navigieren

              du kannst mit der Rule1 den Tasten ein Befehl zuweisen. Zum Beispiel Home, das hat die selbe Funktion, wenn im Display auf das Haus drückst.
              Siehe Beispiel im Wiki.

              Temperatur an einem Thermostat reduzieren bzw. erhöhen.

              Du kannst nur auf einen festen Wert setzen.

                  button1: {
                      mode: 'set',
                      page: null,
                      entity: 'alias.0.NSPanel.Thermostat.SET',
                      setValue: 25
                  },
              

              Kannst aber auch gerne ein Issues aufmachen. Thema: Button1 mode: Set -> setValue up/down. Dann schauen wir uns das im neuen Jahr mal an.

              Schönen Rutsch in neue Jahr

              Gruß Tom
              https://github.com/tt-tom17
              Wenn meine Hilfe erfolgreich war, benutze bitte das Voting unten rechts im Beitrag

              NSPanel Script Wiki
              https://github.com/joBr99/nspanel-lovelace-ui/wiki

              NSPanel Adapter Wiki
              https://github.com/ticaki/ioBroker.nspanel-lovelace-ui/wiki

              ArmilarA 1 Reply Last reply
              1
              • T TT-Tom

                @dert sagte in SONOFF NSPanel mit Lovelace UI:

                Mit den Buttons durch die Menüs navigieren

                du kannst mit der Rule1 den Tasten ein Befehl zuweisen. Zum Beispiel Home, das hat die selbe Funktion, wenn im Display auf das Haus drückst.
                Siehe Beispiel im Wiki.

                Temperatur an einem Thermostat reduzieren bzw. erhöhen.

                Du kannst nur auf einen festen Wert setzen.

                    button1: {
                        mode: 'set',
                        page: null,
                        entity: 'alias.0.NSPanel.Thermostat.SET',
                        setValue: 25
                    },
                

                Kannst aber auch gerne ein Issues aufmachen. Thema: Button1 mode: Set -> setValue up/down. Dann schauen wir uns das im neuen Jahr mal an.

                Schönen Rutsch in neue Jahr

                ArmilarA Offline
                ArmilarA Offline
                Armilar
                Most Active Forum Testing
                wrote on last edited by Armilar
                #4710

                @DerT

                Kann auch ein true liefern (links down/rechts up)... ist bloß eine Frage, wie man den Wert später auswertet...

                Selbst wenn der Wert nur 1 wäre, könnte ein Blockly den Setpoint-Datenpunkt inkrementieren oder dekrementieren.

                Das Navigationsbeispiel ist hier:

                https://github.com/joBr99/nspanel-lovelace-ui/wiki/ioBroker-Navigation#navigation-mit-den-hardware-buttons

                bzw.:
                https://github.com/joBr99/nspanel-lovelace-ui/wiki/ioBroker---FAQ-&-Anleitungen#13d-mit-den-hardwarebuttons-vor-und-zurück-navigieren

                Ich bin dann mal feiern 😉

                Installationsanleitung, Tipps, Alias-Definitionen, FAQ für das Sonoff NSPanel mit lovelace UI unter ioBroker
                https://github.com/joBr99/nspanel-lovelace-ui/wiki

                Benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat.

                1 Reply Last reply
                1
                • jayjojaysonJ Offline
                  jayjojaysonJ Offline
                  jayjojayson
                  wrote on last edited by
                  #4711

                  Hallo, erstmal ein gesundes und glückliches neues Jahr für alle.

                  Ich nutze das neue Script nun auch schon ein bisschen und funktioniert auch alles soweit super, aber ich bekomme einen Fehler einfach nicht weg und weiß nicht woran das liegen kann. Hat einer von euch vielleicht eine Idee?

                  	javascript.0 (5055) script.js.NSPanels.Panel2: error at function HandleScreensaverUpdate: parseFormat is not a function
                  

                  Eigentlich habe ich nichts geändert, bis auf den ScreensaverEntity 4, hier will ich meinen aktuellen Solarertrag anzeigen.

                  Etwas weiter unten in den Einstellungen kann man die beiden virtuellen button im Screen konfigurieren
                  mrIcon1ScreensaverEntity und mrIcon2ScreensaverEntity. Wenn ich dort Datenpunkte hinterlege, zeigt er mir auch gleich Fehler an. Muss man irgendwo Relay.1 und Relay.2 extra setzen?

                  //---- Anfang     Screensaver Einstellungen / Screensaver settings ---------------------
                      leftScreensaverEntity:
                          [
                               // Examples for Advanced-Screensaver: https://github.com/joBr99/nspanel-lovelace-ui/wiki/ioBroker-Config-Screensaver#entity-status-icons-ab-v400 
                  
                          ],
                  
                      bottomScreensaverEntity :  
                          [
                              // bottomScreensaverEntity 1
                              {
                                  ScreensaverEntity: 'accuweather.0.Daily.Day1.Sunrise',
                                  ScreensaverEntityFactor: 1,
                                  ScreensaverEntityDecimalPlaces: 0,
                                  ScreensaverEntityDateFormat: { hour: '2-digit', minute: '2-digit' }, // Description at Wiki-Pages
                                  ScreensaverEntityIconOn: 'weather-sunset-up',
                                  ScreensaverEntityIconOff: null,
                                  ScreensaverEntityText: 'Sonne',
                                  ScreensaverEntityUnitText: '%',
                                  ScreensaverEntityIconColor: MSYellow //{'val_min': 0, 'val_max': 100}
                              },
                              // bottomScreensaverEntity 2
                              {
                                  ScreensaverEntity: 'accuweather.0.Current.WindSpeed',
                                  ScreensaverEntityFactor: (1000/3600),
                                  ScreensaverEntityDecimalPlaces: 1,
                                  ScreensaverEntityIconOn: 'weather-windy',
                                  ScreensaverEntityIconOff: null,
                                  ScreensaverEntityText: "Wind",
                                  ScreensaverEntityUnitText: 'm/s',
                                  ScreensaverEntityIconColor: { 'val_min': 0, 'val_max': 120 }
                              },
                              // bottomScreensaverEntity 3
                              {
                                  ScreensaverEntity: 'accuweather.0.Current.WindGust',
                                  ScreensaverEntityFactor: (1000/3600),
                                  ScreensaverEntityDecimalPlaces: 1,
                                  ScreensaverEntityIconOn: 'weather-tornado',
                                  ScreensaverEntityIconOff: null,
                                  ScreensaverEntityText: 'Böen',
                                  ScreensaverEntityUnitText: 'm/s',
                                  ScreensaverEntityIconColor: { 'val_min': 0, 'val_max': 120 }
                              },
                              // bottomScreensaverEntity 4
                              {
                                  ScreensaverEntity: 'growatt.0.782463.devices.ACJ0B1802L.deviceData.eToday',
                                  ScreensaverEntityFactor: 1,
                                  ScreensaverEntityDecimalPlaces: 0,
                                  ScreensaverEntityIconOn: 'solar-power',
                                  ScreensaverEntityIconOff: null,
                                  ScreensaverEntityText: 'Strom',
                                  ScreensaverEntityUnitText: 'kWh',
                                  ScreensaverEntityIconColor: White
                              },
                              // bottomScreensaverEntity 5 (for Alternative and Advanced Screensaver)
                              {
                                  ScreensaverEntity: 'accuweather.0.Current.RelativeHumidity',
                                  ScreensaverEntityFactor: 1,
                                  ScreensaverEntityDecimalPlaces: 1,
                                  ScreensaverEntityIconOn: 'water-percent',
                                  ScreensaverEntityIconOff: null,
                                  ScreensaverEntityText: 'Feuchte',
                                  ScreensaverEntityUnitText: '%',
                                  ScreensaverEntityIconColor: {'val_min': 0, 'val_max': 100, 'val_best': 65}
                              },
                              // bottomScreensaverEntity 6 (for Advanced Screensaver)
                              {
                               ScreensaverEntity: NSPanel_Path + 'Relay.1',
                               ScreensaverEntityIconOn: 'coach-lamp-variant',
                               ScreensaverEntityText: 'Street',
                               ScreensaverEntityOnColor: Yellow,
                               ScreensaverEntityOffColor: White,
                               ScreensaverEntityOnText: 'Is ON',
                               ScreensaverEntityOffText: 'Not ON'
                           },
                   	        // Examples for Advanced-Screensaver: https://github.com/joBr99/nspanel-lovelace-ui/wiki/ioBroker-Config-Screensaver#entity-status-icons-ab-v400 
                          ],
                  
                      indicatorScreensaverEntity:
                          [
                  		// Examples for Advanced-Screensaver: https://github.com/joBr99/nspanel-lovelace-ui/wiki/ioBroker-Config-Screensaver#entity-status-icons-ab-v400 
                          ],
                  
                          // Status Icon 
                      mrIcon1ScreensaverEntity: 
                          { 
                              ScreensaverEntity: NSPanel_Path + 'Relay.1', 
                              ScreensaverEntityIconOn: 'lightbulb',
                              ScreensaverEntityIconOff: null, 
                              ScreensaverEntityValue: null,
                              ScreensaverEntityValueDecimalPlace : 0,
                              ScreensaverEntityValueUnit: null,
                              ScreensaverEntityOnColor: On, 
                              ScreensaverEntityOffColor: HMIOff 
                          },
                      mrIcon2ScreensaverEntity: 
                          { 
                              ScreensaverEntity: NSPanel_Path + 'Relay.2', 
                              ScreensaverEntityIconOn: 'lightbulb',
                              ScreensaverEntityIconOff: null, 
                              ScreensaverEntityValue: null,
                              ScreensaverEntityValueDecimalPlace : 0,
                              ScreensaverEntityValueUnit: null, 
                              ScreensaverEntityOnColor: On, 
                              ScreensaverEntityOffColor: HMIOff 
                          },
                  // ------ Ende der Screensaver Einstellungen --------------------
                  
                  T 1 Reply Last reply
                  0
                  • jayjojaysonJ jayjojayson

                    Hallo, erstmal ein gesundes und glückliches neues Jahr für alle.

                    Ich nutze das neue Script nun auch schon ein bisschen und funktioniert auch alles soweit super, aber ich bekomme einen Fehler einfach nicht weg und weiß nicht woran das liegen kann. Hat einer von euch vielleicht eine Idee?

                    	javascript.0 (5055) script.js.NSPanels.Panel2: error at function HandleScreensaverUpdate: parseFormat is not a function
                    

                    Eigentlich habe ich nichts geändert, bis auf den ScreensaverEntity 4, hier will ich meinen aktuellen Solarertrag anzeigen.

                    Etwas weiter unten in den Einstellungen kann man die beiden virtuellen button im Screen konfigurieren
                    mrIcon1ScreensaverEntity und mrIcon2ScreensaverEntity. Wenn ich dort Datenpunkte hinterlege, zeigt er mir auch gleich Fehler an. Muss man irgendwo Relay.1 und Relay.2 extra setzen?

                    //---- Anfang     Screensaver Einstellungen / Screensaver settings ---------------------
                        leftScreensaverEntity:
                            [
                                 // Examples for Advanced-Screensaver: https://github.com/joBr99/nspanel-lovelace-ui/wiki/ioBroker-Config-Screensaver#entity-status-icons-ab-v400 
                    
                            ],
                    
                        bottomScreensaverEntity :  
                            [
                                // bottomScreensaverEntity 1
                                {
                                    ScreensaverEntity: 'accuweather.0.Daily.Day1.Sunrise',
                                    ScreensaverEntityFactor: 1,
                                    ScreensaverEntityDecimalPlaces: 0,
                                    ScreensaverEntityDateFormat: { hour: '2-digit', minute: '2-digit' }, // Description at Wiki-Pages
                                    ScreensaverEntityIconOn: 'weather-sunset-up',
                                    ScreensaverEntityIconOff: null,
                                    ScreensaverEntityText: 'Sonne',
                                    ScreensaverEntityUnitText: '%',
                                    ScreensaverEntityIconColor: MSYellow //{'val_min': 0, 'val_max': 100}
                                },
                                // bottomScreensaverEntity 2
                                {
                                    ScreensaverEntity: 'accuweather.0.Current.WindSpeed',
                                    ScreensaverEntityFactor: (1000/3600),
                                    ScreensaverEntityDecimalPlaces: 1,
                                    ScreensaverEntityIconOn: 'weather-windy',
                                    ScreensaverEntityIconOff: null,
                                    ScreensaverEntityText: "Wind",
                                    ScreensaverEntityUnitText: 'm/s',
                                    ScreensaverEntityIconColor: { 'val_min': 0, 'val_max': 120 }
                                },
                                // bottomScreensaverEntity 3
                                {
                                    ScreensaverEntity: 'accuweather.0.Current.WindGust',
                                    ScreensaverEntityFactor: (1000/3600),
                                    ScreensaverEntityDecimalPlaces: 1,
                                    ScreensaverEntityIconOn: 'weather-tornado',
                                    ScreensaverEntityIconOff: null,
                                    ScreensaverEntityText: 'Böen',
                                    ScreensaverEntityUnitText: 'm/s',
                                    ScreensaverEntityIconColor: { 'val_min': 0, 'val_max': 120 }
                                },
                                // bottomScreensaverEntity 4
                                {
                                    ScreensaverEntity: 'growatt.0.782463.devices.ACJ0B1802L.deviceData.eToday',
                                    ScreensaverEntityFactor: 1,
                                    ScreensaverEntityDecimalPlaces: 0,
                                    ScreensaverEntityIconOn: 'solar-power',
                                    ScreensaverEntityIconOff: null,
                                    ScreensaverEntityText: 'Strom',
                                    ScreensaverEntityUnitText: 'kWh',
                                    ScreensaverEntityIconColor: White
                                },
                                // bottomScreensaverEntity 5 (for Alternative and Advanced Screensaver)
                                {
                                    ScreensaverEntity: 'accuweather.0.Current.RelativeHumidity',
                                    ScreensaverEntityFactor: 1,
                                    ScreensaverEntityDecimalPlaces: 1,
                                    ScreensaverEntityIconOn: 'water-percent',
                                    ScreensaverEntityIconOff: null,
                                    ScreensaverEntityText: 'Feuchte',
                                    ScreensaverEntityUnitText: '%',
                                    ScreensaverEntityIconColor: {'val_min': 0, 'val_max': 100, 'val_best': 65}
                                },
                                // bottomScreensaverEntity 6 (for Advanced Screensaver)
                                {
                                 ScreensaverEntity: NSPanel_Path + 'Relay.1',
                                 ScreensaverEntityIconOn: 'coach-lamp-variant',
                                 ScreensaverEntityText: 'Street',
                                 ScreensaverEntityOnColor: Yellow,
                                 ScreensaverEntityOffColor: White,
                                 ScreensaverEntityOnText: 'Is ON',
                                 ScreensaverEntityOffText: 'Not ON'
                             },
                     	        // Examples for Advanced-Screensaver: https://github.com/joBr99/nspanel-lovelace-ui/wiki/ioBroker-Config-Screensaver#entity-status-icons-ab-v400 
                            ],
                    
                        indicatorScreensaverEntity:
                            [
                    		// Examples for Advanced-Screensaver: https://github.com/joBr99/nspanel-lovelace-ui/wiki/ioBroker-Config-Screensaver#entity-status-icons-ab-v400 
                            ],
                    
                            // Status Icon 
                        mrIcon1ScreensaverEntity: 
                            { 
                                ScreensaverEntity: NSPanel_Path + 'Relay.1', 
                                ScreensaverEntityIconOn: 'lightbulb',
                                ScreensaverEntityIconOff: null, 
                                ScreensaverEntityValue: null,
                                ScreensaverEntityValueDecimalPlace : 0,
                                ScreensaverEntityValueUnit: null,
                                ScreensaverEntityOnColor: On, 
                                ScreensaverEntityOffColor: HMIOff 
                            },
                        mrIcon2ScreensaverEntity: 
                            { 
                                ScreensaverEntity: NSPanel_Path + 'Relay.2', 
                                ScreensaverEntityIconOn: 'lightbulb',
                                ScreensaverEntityIconOff: null, 
                                ScreensaverEntityValue: null,
                                ScreensaverEntityValueDecimalPlace : 0,
                                ScreensaverEntityValueUnit: null, 
                                ScreensaverEntityOnColor: On, 
                                ScreensaverEntityOffColor: HMIOff 
                            },
                    // ------ Ende der Screensaver Einstellungen --------------------
                    
                    T Offline
                    T Offline
                    TT-Tom
                    wrote on last edited by TT-Tom
                    #4712

                    @jayjojayson
                    Ein gesundes neues Jahr.
                    Das sieht danach aus, das da in der JavaScript Instanz das npm Modul fehlt. Vergleich bitte mal mit der Anweisung im Wiki.

                    Gruß Tom
                    https://github.com/tt-tom17
                    Wenn meine Hilfe erfolgreich war, benutze bitte das Voting unten rechts im Beitrag

                    NSPanel Script Wiki
                    https://github.com/joBr99/nspanel-lovelace-ui/wiki

                    NSPanel Adapter Wiki
                    https://github.com/ticaki/ioBroker.nspanel-lovelace-ui/wiki

                    1 Reply Last reply
                    1
                    • jayjojaysonJ Offline
                      jayjojaysonJ Offline
                      jayjojayson
                      wrote on last edited by
                      #4713

                      @tt-tom Ich habe jetzt noch /opt/iobroker/SkripteJS nachgetragen. Die restlichen Punkte waren schon gesetzt.
                      Jetzt bekomme ich noch viel mehr Fehler angezeigt und der Screensaver wird gar nicht mehr angezeigt. Die erstellten Seiten aber schon.

                      Screenshot 2024-01-01 135305.png

                      Thomas BraunT T 2 Replies Last reply
                      0
                      • jayjojaysonJ jayjojayson

                        @tt-tom Ich habe jetzt noch /opt/iobroker/SkripteJS nachgetragen. Die restlichen Punkte waren schon gesetzt.
                        Jetzt bekomme ich noch viel mehr Fehler angezeigt und der Screensaver wird gar nicht mehr angezeigt. Die erstellten Seiten aber schon.

                        Screenshot 2024-01-01 135305.png

                        Thomas BraunT Online
                        Thomas BraunT Online
                        Thomas Braun
                        Most Active
                        wrote on last edited by
                        #4714

                        @jayjojayson Spiegel würde ich immer nach /home/iobroker/skripte oder sowas. Jedenfalls nicht in /opt/

                        Linux-Werkzeugkasten:
                        https://forum.iobroker.net/topic/42952/der-kleine-iobroker-linux-werkzeugkasten
                        NodeJS Fixer Skript:
                        https://forum.iobroker.net/topic/68035/iob-node-fix-skript
                        iob_diag: curl -sLf -o diag.sh https://iobroker.net/diag.sh && bash diag.sh

                        jayjojaysonJ 1 Reply Last reply
                        0
                        • Thomas BraunT Thomas Braun

                          @jayjojayson Spiegel würde ich immer nach /home/iobroker/skripte oder sowas. Jedenfalls nicht in /opt/

                          jayjojaysonJ Offline
                          jayjojaysonJ Offline
                          jayjojayson
                          wrote on last edited by
                          #4715

                          @thomas-braun sagte in SONOFF NSPanel mit Lovelace UI:

                          /home/iobroker/skripte

                          Muss man denn überhaupt spiegeln?

                          Thomas BraunT 1 Reply Last reply
                          0
                          • jayjojaysonJ jayjojayson

                            @thomas-braun sagte in SONOFF NSPanel mit Lovelace UI:

                            /home/iobroker/skripte

                            Muss man denn überhaupt spiegeln?

                            Thomas BraunT Online
                            Thomas BraunT Online
                            Thomas Braun
                            Most Active
                            wrote on last edited by
                            #4716

                            @jayjojayson

                            Nein.

                            Linux-Werkzeugkasten:
                            https://forum.iobroker.net/topic/42952/der-kleine-iobroker-linux-werkzeugkasten
                            NodeJS Fixer Skript:
                            https://forum.iobroker.net/topic/68035/iob-node-fix-skript
                            iob_diag: curl -sLf -o diag.sh https://iobroker.net/diag.sh && bash diag.sh

                            1 Reply Last reply
                            1
                            • T Do not disturb
                              T Do not disturb
                              ticaki
                              wrote on last edited by ticaki
                              #4717

                              Zu fehlenden NPM-modulen mir hat er auch vorgestern dayjs angemeckert - nach 1 Stunde vergeblichen Fehler beheben, hab ich den Rechner neu gestartet und tadaging wieder.

                              @Kuckuckmann

                              Das oben genannte Skript - da drücke ich noch noch vor der Readme und den ganze Konfigurationschecks 😄

                              Aber das hier ist einfacher:

                              Mein NSPanel werden wenn ich fertig bin, alle durch BWM aktiviert, daher möchte ich eine Möglichkeit mir wichtiges als Text anzeigen zu lassen und nicht in jedem Skript eine Logik zu haben die das ganze verwaltet.

                              Verwaltung von Nachrichten für Nspanel Screensaver.

                              Da schreibt man Nachrichten in die erstellten States und die Verwaltung kümmert sich darum die gegebenenfalls zu rotieren und nach einer vorgegebenen Zeit zu entfernen oder erst nach einer weiteren Nachricht.

                              Anleitung: https://github.com/ticaki/iobroker-skript-sammlung/blob/main/ScreensaverMessage.md
                              Skript: https://github.com/ticaki/iobroker-skript-sammlung/blob/main/ScreensaverMessage.ts

                              @TT-Tom @Armilar
                              Gibts einen Möglichkeit vom Nspanel über das Menü, den Screensaver zu aktivieren? Oder einen Datenpunkt in dem Datenbaum der das aktiviert?

                              Wenn ihr mal lust habt könnte ihr da vielleicht buzzer möglich machen?
                              https://github.com/joBr99/nspanel-lovelace-ui/blob/b1b679701ebeb785abe853fc32fac480c1df2603/docs/notifications.md#notification-on-screensaver

                              Weather-Warnings Espresense NSPanel-Lovelace-ui Tagesschau

                              Spenden

                              ArmilarA 1 Reply Last reply
                              0
                              • jayjojaysonJ jayjojayson

                                @tt-tom Ich habe jetzt noch /opt/iobroker/SkripteJS nachgetragen. Die restlichen Punkte waren schon gesetzt.
                                Jetzt bekomme ich noch viel mehr Fehler angezeigt und der Screensaver wird gar nicht mehr angezeigt. Die erstellten Seiten aber schon.

                                Screenshot 2024-01-01 135305.png

                                T Offline
                                T Offline
                                TT-Tom
                                wrote on last edited by
                                #4718

                                @jayjojayson

                                bitte trage die Module in die obere Zeile. "zusätzliche Module" Siehe die das Wiki nochmal an.

                                Gruß Tom
                                https://github.com/tt-tom17
                                Wenn meine Hilfe erfolgreich war, benutze bitte das Voting unten rechts im Beitrag

                                NSPanel Script Wiki
                                https://github.com/joBr99/nspanel-lovelace-ui/wiki

                                NSPanel Adapter Wiki
                                https://github.com/ticaki/ioBroker.nspanel-lovelace-ui/wiki

                                jayjojaysonJ 1 Reply Last reply
                                1
                                • T TT-Tom

                                  @jayjojayson

                                  bitte trage die Module in die obere Zeile. "zusätzliche Module" Siehe die das Wiki nochmal an.

                                  jayjojaysonJ Offline
                                  jayjojaysonJ Offline
                                  jayjojayson
                                  wrote on last edited by jayjojayson
                                  #4719

                                  @tt-tom oh man, manchmal kann es so einfach sein. Ich Trottel habe da so oft drauf geschaut und nicht gesehen, dass die Module in der falschen Zeile stehen. Jetzt klappt es, vielen Dank.

                                  Bekomme jetzt nur noch diese Fehler einmalig bei Start angezeigt. Der will noch das ich irgendwas update.
                                  Screenshot 2024-01-01 144500.png

                                  T 1 Reply Last reply
                                  0
                                  • jayjojaysonJ jayjojayson

                                    @tt-tom oh man, manchmal kann es so einfach sein. Ich Trottel habe da so oft drauf geschaut und nicht gesehen, dass die Module in der falschen Zeile stehen. Jetzt klappt es, vielen Dank.

                                    Bekomme jetzt nur noch diese Fehler einmalig bei Start angezeigt. Der will noch das ich irgendwas update.
                                    Screenshot 2024-01-01 144500.png

                                    T Do not disturb
                                    T Do not disturb
                                    ticaki
                                    wrote on last edited by ticaki
                                    #4720

                                    @jayjojayson

                                    Die roten Meldungen kannst du ignorieren, die Gelben hingegen nicht. 🙂

                                    Weather-Warnings Espresense NSPanel-Lovelace-ui Tagesschau

                                    Spenden

                                    jayjojaysonJ 1 Reply Last reply
                                    0
                                    • T ticaki

                                      @jayjojayson

                                      Die roten Meldungen kannst du ignorieren, die Gelben hingegen nicht. 🙂

                                      jayjojaysonJ Offline
                                      jayjojaysonJ Offline
                                      jayjojayson
                                      wrote on last edited by
                                      #4721

                                      @ticaki echt, hätte genau anders herum gedacht. Die Meldungen kommen aber auch nur bei Start des Scripts. Danach nicht mehr.

                                      T 1 Reply Last reply
                                      0
                                      • jayjojaysonJ jayjojayson

                                        @ticaki echt, hätte genau anders herum gedacht. Die Meldungen kommen aber auch nur bei Start des Scripts. Danach nicht mehr.

                                        T Do not disturb
                                        T Do not disturb
                                        ticaki
                                        wrote on last edited by ticaki
                                        #4722

                                        @jayjojayson

                                        Alle Meldungen von npm werden als Fehler dargestellt, das ist aber eine Warnung das Module die zwingend erforderlich sind nicht mehr gewartet werden.

                                        so sieht das auf der Console aus:

                                        npm WARN deprecated har-validator@5.1.5: this library is no longer supported
                                        npm WARN deprecated uuid@3.4.0: Please upgrade  to version 7 or higher.  Older versions may use Math.random() in certain circumstances, which is known to be problematic.  See https://v8.dev/blog/math-random for details.
                                        npm WARN deprecated request@2.88.2: request has been deprecated, see https://github.com/request/request/issues/3142
                                        

                                        Solange du kein request in deinen Skripten benutzt kann dir das wurscht sein 🙂

                                        em, hab aber nicht nachgesehen ob dieses Skript request benutzt. Nope benutz axios alle gut.

                                        mikeal created this issue in request/request

                                        open Request’s Past, Present and Future #3142

                                        Weather-Warnings Espresense NSPanel-Lovelace-ui Tagesschau

                                        Spenden

                                        1 Reply Last reply
                                        1
                                        • T ticaki

                                          Zu fehlenden NPM-modulen mir hat er auch vorgestern dayjs angemeckert - nach 1 Stunde vergeblichen Fehler beheben, hab ich den Rechner neu gestartet und tadaging wieder.

                                          @Kuckuckmann

                                          Das oben genannte Skript - da drücke ich noch noch vor der Readme und den ganze Konfigurationschecks 😄

                                          Aber das hier ist einfacher:

                                          Mein NSPanel werden wenn ich fertig bin, alle durch BWM aktiviert, daher möchte ich eine Möglichkeit mir wichtiges als Text anzeigen zu lassen und nicht in jedem Skript eine Logik zu haben die das ganze verwaltet.

                                          Verwaltung von Nachrichten für Nspanel Screensaver.

                                          Da schreibt man Nachrichten in die erstellten States und die Verwaltung kümmert sich darum die gegebenenfalls zu rotieren und nach einer vorgegebenen Zeit zu entfernen oder erst nach einer weiteren Nachricht.

                                          Anleitung: https://github.com/ticaki/iobroker-skript-sammlung/blob/main/ScreensaverMessage.md
                                          Skript: https://github.com/ticaki/iobroker-skript-sammlung/blob/main/ScreensaverMessage.ts

                                          @TT-Tom @Armilar
                                          Gibts einen Möglichkeit vom Nspanel über das Menü, den Screensaver zu aktivieren? Oder einen Datenpunkt in dem Datenbaum der das aktiviert?

                                          Wenn ihr mal lust habt könnte ihr da vielleicht buzzer möglich machen?
                                          https://github.com/joBr99/nspanel-lovelace-ui/blob/b1b679701ebeb785abe853fc32fac480c1df2603/docs/notifications.md#notification-on-screensaver

                                          ArmilarA Offline
                                          ArmilarA Offline
                                          Armilar
                                          Most Active Forum Testing
                                          wrote on last edited by
                                          #4723

                                          @ticaki sagte in SONOFF NSPanel mit Lovelace UI:

                                          Wenn ihr mal lust habt könnte ihr da vielleicht buzzer möglich machen?

                                          Meinst du das?
                                          https://github.com/joBr99/nspanel-lovelace-ui/wiki/NSPanel-Tasmota-FAQ#113----rule3---esp-buzzer

                                          Installationsanleitung, Tipps, Alias-Definitionen, FAQ für das Sonoff NSPanel mit lovelace UI unter ioBroker
                                          https://github.com/joBr99/nspanel-lovelace-ui/wiki

                                          Benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat.

                                          T 1 Reply Last reply
                                          0
                                          Reply
                                          • Reply as topic
                                          Log in to reply
                                          • Oldest to Newest
                                          • Newest to Oldest
                                          • Most Votes


                                          Support us

                                          ioBroker
                                          Community Adapters
                                          Donate

                                          517

                                          Online

                                          32.4k

                                          Users

                                          81.3k

                                          Topics

                                          1.3m

                                          Posts
                                          Community
                                          Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen
                                          ioBroker Community 2014-2025
                                          logo
                                          • Login

                                          • Don't have an account? Register

                                          • Login or register to search.
                                          • First post
                                            Last post
                                          0
                                          • Recent
                                          • Tags
                                          • Unread 0
                                          • Categories
                                          • Unreplied
                                          • Popular
                                          • GitHub
                                          • Docu
                                          • Hilfe