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.
  • D Doggie

    Nachtrag: Er läuft wieder, aber nur nach power-on-reset und iob fix.

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

    @doggie zeige mal bitte ein Bild von dem Alias Ordner wo der Gaszähler jetzt liegt

    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

    D 1 Reply Last reply
    0
    • T TT-Tom

      @doggie zeige mal bitte ein Bild von dem Alias Ordner wo der Gaszähler jetzt liegt

      D Offline
      D Offline
      Doggie
      wrote on last edited by
      #5024

      @tt-tom Gerne:
      e80b189f-772c-43d3-9b66-205a7ddfc6a6-image.png

      Wenn ich mit dem Cursor über den Stift streiche, erscheint dort : "Ordner bearbeiten" bei anderen Geräten erscheint "Zustände bearbeiten" und ich kann ein Alias anlegen.
      Bei anderen Geräten ist alles gut:
      f6875d00-8300-405b-9a2a-c15164f0d6b6-image.png
      Schon merkwürdig.

      T 1 Reply Last reply
      0
      • D Doggie

        @tt-tom Gerne:
        e80b189f-772c-43d3-9b66-205a7ddfc6a6-image.png

        Wenn ich mit dem Cursor über den Stift streiche, erscheint dort : "Ordner bearbeiten" bei anderen Geräten erscheint "Zustände bearbeiten" und ich kann ein Alias anlegen.
        Bei anderen Geräten ist alles gut:
        f6875d00-8300-405b-9a2a-c15164f0d6b6-image.png
        Schon merkwürdig.

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

        @doggie wenn ich das richtig sehe hast du dein Datenpunkt unter nspanel.1.gaszähler angelegt. findest du diesen unter Objekte im Alias nicht?

        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

        D 1 Reply Last reply
        0
        • T TT-Tom

          @doggie wenn ich das richtig sehe hast du dein Datenpunkt unter nspanel.1.gaszähler angelegt. findest du diesen unter Objekte im Alias nicht?

          D Offline
          D Offline
          Doggie
          wrote on last edited by
          #5026

          @tt-tom Ich habe noch weiter probiert:
          5bbfc4a1-a4ea-4b07-9631-ba0de65127c2-image.png
          Obwohl ich unter Gaszähler ein Gerät angelegt habe, erscheint es unter Geräte nicht.

          Unter Objekten erscheint garnichts:
          3165769b-c0fc-4aa4-96e1-c91117f4d304-image.png

          Ich habe nochmal mit dem Alias-Manager "herumprobiert". Dort erscheinen einige Aliase, obwohl ich sie unter Geräten gelöscht habe. Nur, ein System kann ich nicht erkennen.
          Ob es einen Fehler im ioBroker gibt?

          Der gleiche Zustand wie oben im Alias-Manager:
          3bc76492-5692-4beb-bf0d-22778ceb811f-image.png

          Verstehen tu ich das nicht.

          ArmilarA 1 Reply Last reply
          0
          • Rene55R Rene55

            @tt-tom Auch hier gibt es was zu sehen: Der Graph entwickelt sich langsam (aber stetig).

            NSPanel_TemperaturGraph.jpg

            Danke auch hierfür und für die kräftige Hilfestellung.
            Kleiner Wunsch von mir: const BucketName: string = 'storage_short'; statt fest verdrahtetem "iobroker' noch mit einbauen.

            theknutT Offline
            theknutT Offline
            theknut
            wrote on last edited by
            #5027

            @rene55 das war auch einer meiner Änderungen, ich mach jetzt den PR

            ☕ @ https://ko-fi.com/theknut

            1 Reply Last reply
            0
            • D Doggie

              @tt-tom Ich habe noch weiter probiert:
              5bbfc4a1-a4ea-4b07-9631-ba0de65127c2-image.png
              Obwohl ich unter Gaszähler ein Gerät angelegt habe, erscheint es unter Geräte nicht.

              Unter Objekten erscheint garnichts:
              3165769b-c0fc-4aa4-96e1-c91117f4d304-image.png

              Ich habe nochmal mit dem Alias-Manager "herumprobiert". Dort erscheinen einige Aliase, obwohl ich sie unter Geräten gelöscht habe. Nur, ein System kann ich nicht erkennen.
              Ob es einen Fehler im ioBroker gibt?

              Der gleiche Zustand wie oben im Alias-Manager:
              3bc76492-5692-4beb-bf0d-22778ceb811f-image.png

              Verstehen tu ich das nicht.

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

              @doggie

              Ich habe den Eindruck du hast den Zweck des Alias nicht wirklich verstanden...

              Du suchst nach der Erstellung des Alias nach dem Datenpunkt des Gaszählers? ... Es ist genau anders herum.

              1. Zunächst brauchst du den Datenpunkt aus einem Adapter, der dir den Wert des Gaszählers anzeigt, den du im Panel darstellen willst.
              2. Jetzt öffnest du den Gerätemanger, vergibst einen Namen und wählst den Gerätetypen Info aus
              3. In dem Fenster, in dem der .ACTUAL erscheint ordnest du den Datenpunkt aus Punkt 1) zu.

              speichern. Das wars...

              In der Seitenvariable für den Gaszähler trägst du den eben erstellen Alias (ohne das .ACTUAL) ein.

              fertig...

              Da wird nichts im NSPanel-Verzeichnis wie aus Geisterhand erscheinen... Punkt 1 - 3 und fertig ist das Ding

              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 D 2 Replies Last reply
              0
              • theknutT Offline
                theknutT Offline
                theknut
                wrote on last edited by theknut
                #5029

                öhm sorry Leute, scheinbar kann jeder das Wiki editieren, ich dachte der macht dann einen PR drauß, aber er hat es einfach gespeichert....
                Bitte noch mal drüber schauen, aber bei mir läuft das schon seit ein paar Tagen problemlos: https://github.com/joBr99/nspanel-lovelace-ui/wiki/ioBroker-Card-Definitionen-(Seiten)#typescript-für-influx2

                Hier das aktualisierte Skript:

                • jetzt mit async/await
                • kann mehrere States überwachen
                • generiert sofort die States
                  • man muss nicht erst warten, bis ein neuer Wert kommt
                  • das ist gerade fürs Testen bisschen nervig
                • Bucket ist konfigurierbar
                const Debug = false;
                
                const NSPanel_Path = '0_userdata.0.NSPanel.1.';
                const Path = NSPanel_Path + 'Influx2NSPanel.cardLChart.';
                const InfluxInstance = 'influxdb.1';
                const influxDbBucket = 'iobroker';
                const numberOfHoursAgo = 24;
                const xAxisTicksEveryM = 60;
                const xAxisLabelEveryM = 240;
                
                // this records holds all sensors and their corresponding states which act as the data source for the charts
                // add all sensors which are to be displayed in this script, there is no need to use multiple scripts
                const sensors : Record<string, string> = {};
                /*         ↓ Id of the sensor                 ↓ Id of the data source for the charts */
                sensors['deconz.0.Sensors.65.temperature'] = Path + 'buero_temperature';
                sensors['deconz.0.Sensors.65.humidity'] = Path + 'buero_luftfeuchte';
                
                // create data source for NsPanel on script startup
                Object.keys(sensors).forEach(async x => {
                    await generateDateAsync(x, sensors[x]);
                });
                
                // then listen to the sensors and update the data source states accordingly
                on({ id: Object.keys(sensors), change: 'any' }, async function (obj) {
                    if (!obj.id) {
                        return;
                    }
                
                    await generateDateAsync(obj.id, sensors[obj.id]);
                });
                
                async function generateDateAsync(sensorId: string, dataPointId: string) {
                    const query =[
                        'from(bucket: "' + influxDbBucket + '")',
                        '|> range(start: -' + numberOfHoursAgo + 'h)',
                        '|> filter(fn: (r) => r["_measurement"] == "' + sensorId + '")',
                        '|> filter(fn: (r) => r["_field"] == "value")',
                        '|> drop(columns: ["from", "ack", "q"])',
                        '|> aggregateWindow(every: 1h, fn: last, createEmpty: false)',
                        '|> map(fn: (r) => ({ r with _rtime: int(v: r._time) - int(v: r._start)}))',
                        '|> yield(name: "_result")'].join('');
                
                    if (Debug) console.log('Query: ' + query);
                
                    const result : any = await sendToAsync(InfluxInstance, 'query', query);
                    if (result.error) {
                        console.error(result.error);
                        return;
                    }
                    
                    if (Debug) console.log(result);
                    const numResults = result.result.length;
                    let coordinates : string = '';
                    for (let r = 0; r < numResults; r++) 
                    {
                        const list : string[] = []
                        const numValues = result.result[r].length;
                
                        for (let i = 0; i < numValues; i++) 
                        {
                            const time = Math.round(result.result[r][i]._rtime/1000/1000/1000/60);
                            const value = Math.round(result.result[r][i]._value * 10);
                            list.push(time + ":" + value);
                        }
                
                        coordinates = list.join("~");
                
                        if (Debug) console.log(coordinates);
                    }
                
                    const ticksAndLabelsList : string[] = []
                    const date = new Date();
                    date.setMinutes(0, 0, 0);
                    const ts = Math.round(date.getTime() / 1000);
                    const tsYesterday = ts - (numberOfHoursAgo * 3600);
                    if (Debug) console.log('Iterate from ' + tsYesterday + ' to ' + ts + ' stepsize=' + (xAxisTicksEveryM * 60));
                    for (let x = tsYesterday, i = 0; x < ts; x += (xAxisTicksEveryM * 60), i += xAxisTicksEveryM)
                    {
                        if ((i % xAxisLabelEveryM))
                            ticksAndLabelsList.push('' + i);
                        else
                        {
                            const currentDate = new Date(x * 1000);
                            // Hours part from the timestamp
                            const hours = "0" + String(currentDate.getHours());
                            // Minutes part from the timestamp
                            const minutes = "0" + String(currentDate.getMinutes());
                            const formattedTime = hours.slice(-2) + ':' + minutes.slice(-2);
                
                            ticksAndLabelsList.push(String(i) + "^" + formattedTime);
                        }
                    }
                    if (Debug) console.log('Ticks & Label: ' + ticksAndLabelsList);
                    if (Debug) console.log('Coordinates: ' + coordinates);
                    await setOrCreate(dataPointId, ticksAndLabelsList.join("+") + '~' + coordinates, true);
                }
                
                async function setOrCreate(id : string, value : any, ack : boolean) {
                    if (!(await existsStateAsync(id))) {
                         await createStateAsync(id, value, {
                            name: id.split('.').reverse()[0],
                            desc: 'Sensor Values [~<time>:<value>]*',
                            type: 'string',
                            role: 'value',
                        });
                    } else {
                        await setStateAsync(id, value, ack);
                    }
                }
                

                ☕ @ https://ko-fi.com/theknut

                Rene55R 1 Reply Last reply
                1
                • ArmilarA Armilar

                  @doggie

                  Ich habe den Eindruck du hast den Zweck des Alias nicht wirklich verstanden...

                  Du suchst nach der Erstellung des Alias nach dem Datenpunkt des Gaszählers? ... Es ist genau anders herum.

                  1. Zunächst brauchst du den Datenpunkt aus einem Adapter, der dir den Wert des Gaszählers anzeigt, den du im Panel darstellen willst.
                  2. Jetzt öffnest du den Gerätemanger, vergibst einen Namen und wählst den Gerätetypen Info aus
                  3. In dem Fenster, in dem der .ACTUAL erscheint ordnest du den Datenpunkt aus Punkt 1) zu.

                  speichern. Das wars...

                  In der Seitenvariable für den Gaszähler trägst du den eben erstellen Alias (ohne das .ACTUAL) ein.

                  fertig...

                  Da wird nichts im NSPanel-Verzeichnis wie aus Geisterhand erscheinen... Punkt 1 - 3 und fertig ist das Ding

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

                  @armilar eigentlich hat er es richtig angefangen, aber irgendwie ist es in den Alias nicht aufgetaucht. Ich traue diesem Adapter eh nicht mehr.

                  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
                  0
                  • Florian KlanteF Offline
                    Florian KlanteF Offline
                    Florian Klante
                    wrote on last edited by
                    #5031

                    Guten morgen zusammen.
                    Vorab ein herzliches Dankeschön für die Arbeit die hier geleistet wird.
                    Ich bin neu in der Thematik NSpanel mit Lovelace UI und dank der Community hier schon verdammt weit gekommen. Allerdings habe ich ein paar Herausforderungen bei denen ihr bestimmt helfen könnt. Ich hoffe das es an dieser Stelle richtig ist, ansonsten lasst es mich wissen - danke 😉
                    Ich habe im Forum schon gesucht aber nichts gefunden, evtl. liegt es an meiner Handhabung...

                    Button1/2:
                    Ich habe die Rule2 definiert und auch im TS Script die entsprechenden Anpassungen für Toggle vorgenommen.
                    Wenn ich jetzt die Button betätige, dann wird auch entsprechend geschaltet, aber ich muss danach immer erst auf eine andere Page wechseln um erneut ein Toggle auszuführen.
                    Also konkretes Bsp.:
                    NSpanel ist im Screensaver. Drücke ich Button1 wird Licht eingeschaltet.
                    Drücke ich Button1 erneut, bleibt das Licht eingeschaltet.
                    Wecke ich das NSpanel auf und meine Startseite wird angezeigt, kann ich über Button1 das Licht wieder ausschalten.
                    Drücke ich im Startbildschirm wieder Button1, wird das LIcht nicht eingeschaltet.
                    Wechsel ich auf eine andere Seite oder aber es geht in den Screensaver, kann ich über Button1 das Licht wieder einschalten.

                    Jemand eine Idee?

                    theknutT 1 Reply Last reply
                    0
                    • Florian KlanteF Florian Klante

                      Guten morgen zusammen.
                      Vorab ein herzliches Dankeschön für die Arbeit die hier geleistet wird.
                      Ich bin neu in der Thematik NSpanel mit Lovelace UI und dank der Community hier schon verdammt weit gekommen. Allerdings habe ich ein paar Herausforderungen bei denen ihr bestimmt helfen könnt. Ich hoffe das es an dieser Stelle richtig ist, ansonsten lasst es mich wissen - danke 😉
                      Ich habe im Forum schon gesucht aber nichts gefunden, evtl. liegt es an meiner Handhabung...

                      Button1/2:
                      Ich habe die Rule2 definiert und auch im TS Script die entsprechenden Anpassungen für Toggle vorgenommen.
                      Wenn ich jetzt die Button betätige, dann wird auch entsprechend geschaltet, aber ich muss danach immer erst auf eine andere Page wechseln um erneut ein Toggle auszuführen.
                      Also konkretes Bsp.:
                      NSpanel ist im Screensaver. Drücke ich Button1 wird Licht eingeschaltet.
                      Drücke ich Button1 erneut, bleibt das Licht eingeschaltet.
                      Wecke ich das NSpanel auf und meine Startseite wird angezeigt, kann ich über Button1 das Licht wieder ausschalten.
                      Drücke ich im Startbildschirm wieder Button1, wird das LIcht nicht eingeschaltet.
                      Wechsel ich auf eine andere Seite oder aber es geht in den Screensaver, kann ich über Button1 das Licht wieder einschalten.

                      Jemand eine Idee?

                      theknutT Offline
                      theknutT Offline
                      theknut
                      wrote on last edited by theknut
                      #5032

                      @florian-klante poste mal wie du button1 und button2 in der Config konfiguriert hast und bist du dir sicher, dass deine zu schaltenden States wirklich boolean sind? Wichtig ist, dass die States, falls es Aliase sind, eine richtige Convert-Funktion haben um bspw. aus "true" ein true machen zu können.

                      So habe ich es bei mir:

                      button1: {
                              mode: "toggle",
                              page: null,
                              entity: "alias.0.Rooms.Wohnzimmer.Stehlampe.SET",
                              setValue: null
                          },
                          button2: {
                              mode: "toggle",
                              page: null,
                              entity: "alias.0.Rooms.Wohnzimmer.HueGradientLightStrips.ON",
                              setValue: null
                          }
                      

                      de824b9e-c916-41bb-8b6d-3acb952c96f2-image.png

                      ☕ @ https://ko-fi.com/theknut

                      Florian KlanteF 1 Reply Last reply
                      0
                      • theknutT theknut

                        öhm sorry Leute, scheinbar kann jeder das Wiki editieren, ich dachte der macht dann einen PR drauß, aber er hat es einfach gespeichert....
                        Bitte noch mal drüber schauen, aber bei mir läuft das schon seit ein paar Tagen problemlos: https://github.com/joBr99/nspanel-lovelace-ui/wiki/ioBroker-Card-Definitionen-(Seiten)#typescript-für-influx2

                        Hier das aktualisierte Skript:

                        • jetzt mit async/await
                        • kann mehrere States überwachen
                        • generiert sofort die States
                          • man muss nicht erst warten, bis ein neuer Wert kommt
                          • das ist gerade fürs Testen bisschen nervig
                        • Bucket ist konfigurierbar
                        const Debug = false;
                        
                        const NSPanel_Path = '0_userdata.0.NSPanel.1.';
                        const Path = NSPanel_Path + 'Influx2NSPanel.cardLChart.';
                        const InfluxInstance = 'influxdb.1';
                        const influxDbBucket = 'iobroker';
                        const numberOfHoursAgo = 24;
                        const xAxisTicksEveryM = 60;
                        const xAxisLabelEveryM = 240;
                        
                        // this records holds all sensors and their corresponding states which act as the data source for the charts
                        // add all sensors which are to be displayed in this script, there is no need to use multiple scripts
                        const sensors : Record<string, string> = {};
                        /*         ↓ Id of the sensor                 ↓ Id of the data source for the charts */
                        sensors['deconz.0.Sensors.65.temperature'] = Path + 'buero_temperature';
                        sensors['deconz.0.Sensors.65.humidity'] = Path + 'buero_luftfeuchte';
                        
                        // create data source for NsPanel on script startup
                        Object.keys(sensors).forEach(async x => {
                            await generateDateAsync(x, sensors[x]);
                        });
                        
                        // then listen to the sensors and update the data source states accordingly
                        on({ id: Object.keys(sensors), change: 'any' }, async function (obj) {
                            if (!obj.id) {
                                return;
                            }
                        
                            await generateDateAsync(obj.id, sensors[obj.id]);
                        });
                        
                        async function generateDateAsync(sensorId: string, dataPointId: string) {
                            const query =[
                                'from(bucket: "' + influxDbBucket + '")',
                                '|> range(start: -' + numberOfHoursAgo + 'h)',
                                '|> filter(fn: (r) => r["_measurement"] == "' + sensorId + '")',
                                '|> filter(fn: (r) => r["_field"] == "value")',
                                '|> drop(columns: ["from", "ack", "q"])',
                                '|> aggregateWindow(every: 1h, fn: last, createEmpty: false)',
                                '|> map(fn: (r) => ({ r with _rtime: int(v: r._time) - int(v: r._start)}))',
                                '|> yield(name: "_result")'].join('');
                        
                            if (Debug) console.log('Query: ' + query);
                        
                            const result : any = await sendToAsync(InfluxInstance, 'query', query);
                            if (result.error) {
                                console.error(result.error);
                                return;
                            }
                            
                            if (Debug) console.log(result);
                            const numResults = result.result.length;
                            let coordinates : string = '';
                            for (let r = 0; r < numResults; r++) 
                            {
                                const list : string[] = []
                                const numValues = result.result[r].length;
                        
                                for (let i = 0; i < numValues; i++) 
                                {
                                    const time = Math.round(result.result[r][i]._rtime/1000/1000/1000/60);
                                    const value = Math.round(result.result[r][i]._value * 10);
                                    list.push(time + ":" + value);
                                }
                        
                                coordinates = list.join("~");
                        
                                if (Debug) console.log(coordinates);
                            }
                        
                            const ticksAndLabelsList : string[] = []
                            const date = new Date();
                            date.setMinutes(0, 0, 0);
                            const ts = Math.round(date.getTime() / 1000);
                            const tsYesterday = ts - (numberOfHoursAgo * 3600);
                            if (Debug) console.log('Iterate from ' + tsYesterday + ' to ' + ts + ' stepsize=' + (xAxisTicksEveryM * 60));
                            for (let x = tsYesterday, i = 0; x < ts; x += (xAxisTicksEveryM * 60), i += xAxisTicksEveryM)
                            {
                                if ((i % xAxisLabelEveryM))
                                    ticksAndLabelsList.push('' + i);
                                else
                                {
                                    const currentDate = new Date(x * 1000);
                                    // Hours part from the timestamp
                                    const hours = "0" + String(currentDate.getHours());
                                    // Minutes part from the timestamp
                                    const minutes = "0" + String(currentDate.getMinutes());
                                    const formattedTime = hours.slice(-2) + ':' + minutes.slice(-2);
                        
                                    ticksAndLabelsList.push(String(i) + "^" + formattedTime);
                                }
                            }
                            if (Debug) console.log('Ticks & Label: ' + ticksAndLabelsList);
                            if (Debug) console.log('Coordinates: ' + coordinates);
                            await setOrCreate(dataPointId, ticksAndLabelsList.join("+") + '~' + coordinates, true);
                        }
                        
                        async function setOrCreate(id : string, value : any, ack : boolean) {
                            if (!(await existsStateAsync(id))) {
                                 await createStateAsync(id, value, {
                                    name: id.split('.').reverse()[0],
                                    desc: 'Sensor Values [~<time>:<value>]*',
                                    type: 'string',
                                    role: 'value',
                                });
                            } else {
                                await setStateAsync(id, value, ack);
                            }
                        }
                        
                        Rene55R Offline
                        Rene55R Offline
                        Rene55
                        wrote on last edited by
                        #5033

                        @theknut Danke für das Script. Jetzt habe ich das Problem, wo der Alias ins Spiel kommen soll. Es ist ja eigentlich gut beschrieben:

                        
                        /*         ↓ Id of the sensor                 ↓ Id of the data source for the charts */
                        sensors['deconz.0.Sensors.65.temperature'] = Path + 'buero_temperature';
                        

                        Damit konnte ich soweit umgehen. Aktuell Fragezeichen??

                        Host: Fujitsu Intel(R) Pentium(R) CPU G4560T, 32 GB RAM, Proxmox 8.x + lxc Ubuntu 22.04
                        ioBroker (8 GB RAM) Node.js: 20.19.1, NPM: 10.8.2, js-Controller: 7.0.6, Admin: 7.6.3
                        Wetterstation: Froggit WH3000SE V1.6.6

                        T 1 Reply Last reply
                        0
                        • theknutT theknut

                          @florian-klante poste mal wie du button1 und button2 in der Config konfiguriert hast und bist du dir sicher, dass deine zu schaltenden States wirklich boolean sind? Wichtig ist, dass die States, falls es Aliase sind, eine richtige Convert-Funktion haben um bspw. aus "true" ein true machen zu können.

                          So habe ich es bei mir:

                          button1: {
                                  mode: "toggle",
                                  page: null,
                                  entity: "alias.0.Rooms.Wohnzimmer.Stehlampe.SET",
                                  setValue: null
                              },
                              button2: {
                                  mode: "toggle",
                                  page: null,
                                  entity: "alias.0.Rooms.Wohnzimmer.HueGradientLightStrips.ON",
                                  setValue: null
                              }
                          

                          de824b9e-c916-41bb-8b6d-3acb952c96f2-image.png

                          Florian KlanteF Offline
                          Florian KlanteF Offline
                          Florian Klante
                          wrote on last edited by Florian Klante
                          #5034

                          @theknut ich habe es eigentlich so wie du auch.
                          Ich nutze für die Aliase den "Geräte verwalten" Adapter, daher bin ich etwas verwirrt über deinen Screenshot mit den Funktionen für Read/Write.
                          Boolean sollte der Shelly Switch sein.
                          f29219cf-1423-4950-bcdc-afc3a0c52a4f-image.png

                              button2: {
                                  mode: 'toggle',
                                  page: null,
                                  entity: 'alias.0.Licht.Aussenbeleuchtung.SET',
                                  setValue: null
                              },
                          

                          Es funktioniert ja auch der Toggle, ich muss halt nur immer erst einen anderen Befehl ausführen. Danach schaltet er dann auch den anderen Zustand auf dem Button wieder.
                          Kann es sein das bei der Rule2 was falsch ist? Ich habe da den Standard genommen.

                          {"Rule2":{"State":"ON","Once":"OFF","StopOnError":"OFF","Length":189,"Free":322,"Rules":"on Button1#state do Publish SmartHome/%topic%/tele/RESULT {"CustomRecv":"event,button1"} endon on Button2#state do Publish SmartHome/%topic%/tele/RESULT {"CustomRecv":"event,button2"} endon"}}

                          T 1 Reply Last reply
                          0
                          • Florian KlanteF Florian Klante

                            @theknut ich habe es eigentlich so wie du auch.
                            Ich nutze für die Aliase den "Geräte verwalten" Adapter, daher bin ich etwas verwirrt über deinen Screenshot mit den Funktionen für Read/Write.
                            Boolean sollte der Shelly Switch sein.
                            f29219cf-1423-4950-bcdc-afc3a0c52a4f-image.png

                                button2: {
                                    mode: 'toggle',
                                    page: null,
                                    entity: 'alias.0.Licht.Aussenbeleuchtung.SET',
                                    setValue: null
                                },
                            

                            Es funktioniert ja auch der Toggle, ich muss halt nur immer erst einen anderen Befehl ausführen. Danach schaltet er dann auch den anderen Zustand auf dem Button wieder.
                            Kann es sein das bei der Rule2 was falsch ist? Ich habe da den Standard genommen.

                            {"Rule2":{"State":"ON","Once":"OFF","StopOnError":"OFF","Length":189,"Free":322,"Rules":"on Button1#state do Publish SmartHome/%topic%/tele/RESULT {"CustomRecv":"event,button1"} endon on Button2#state do Publish SmartHome/%topic%/tele/RESULT {"CustomRecv":"event,button2"} endon"}}

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

                            @florian-klante
                            zeig mal bitte die Seite MQTT Einstellungen aus dem verwendeten MQTT Adapter.

                            Weather-Warnings Espresense NSPanel-Lovelace-ui Tagesschau

                            Spenden

                            Florian KlanteF 1 Reply Last reply
                            1
                            • T ticaki

                              @florian-klante
                              zeig mal bitte die Seite MQTT Einstellungen aus dem verwendeten MQTT Adapter.

                              Florian KlanteF Offline
                              Florian KlanteF Offline
                              Florian Klante
                              wrote on last edited by
                              #5036

                              @ticaki meinst du diese?
                              bc01905a-7c9a-410f-8aa7-37287028adb4-image.png

                              T 1 Reply Last reply
                              0
                              • Florian KlanteF Florian Klante

                                @ticaki meinst du diese?
                                bc01905a-7c9a-410f-8aa7-37287028adb4-image.png

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

                                @florian-klante
                                so siehts in der anleitung aus 😉

                                270724871-f2c4e065-8c46-44d5-9aa7-a79096a3fc15.png

                                Ist zwar nicht logisch, weil ich verstehe das so das er nur bei Änderungen dinge verschickt, aber scheinbar aktualisiert er states dann nur bei veränderungen. Zumindest ist dein Fehler 100% ein raus filtern wegen wiederholter gleicher nachricht.

                                Weather-Warnings Espresense NSPanel-Lovelace-ui Tagesschau

                                Spenden

                                Florian KlanteF 1 Reply Last reply
                                1
                                • T ticaki

                                  @florian-klante
                                  so siehts in der anleitung aus 😉

                                  270724871-f2c4e065-8c46-44d5-9aa7-a79096a3fc15.png

                                  Ist zwar nicht logisch, weil ich verstehe das so das er nur bei Änderungen dinge verschickt, aber scheinbar aktualisiert er states dann nur bei veränderungen. Zumindest ist dein Fehler 100% ein raus filtern wegen wiederholter gleicher nachricht.

                                  Florian KlanteF Offline
                                  Florian KlanteF Offline
                                  Florian Klante
                                  wrote on last edited by
                                  #5038

                                  @ticaki aus welcher Anleitung hast du das?

                                  T 1 Reply Last reply
                                  0
                                  • Florian KlanteF Florian Klante

                                    @ticaki aus welcher Anleitung hast du das?

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

                                    @florian-klante
                                    https://github.com/joBr99/nspanel-lovelace-ui/wiki/iobroker---Basisinstallation#6-mqtt-iobroker-config

                                    Weather-Warnings Espresense NSPanel-Lovelace-ui Tagesschau

                                    Spenden

                                    Florian KlanteF 2 Replies Last reply
                                    1
                                    • T ticaki

                                      @florian-klante
                                      https://github.com/joBr99/nspanel-lovelace-ui/wiki/iobroker---Basisinstallation#6-mqtt-iobroker-config

                                      Florian KlanteF Offline
                                      Florian KlanteF Offline
                                      Florian Klante
                                      wrote on last edited by
                                      #5040

                                      @ticaki großartig, jetzt funktioniert es.
                                      Kaum macht man es richtig...
                                      herzlichen Dank!

                                      1 Reply Last reply
                                      1
                                      • T ticaki

                                        @florian-klante
                                        https://github.com/joBr99/nspanel-lovelace-ui/wiki/iobroker---Basisinstallation#6-mqtt-iobroker-config

                                        Florian KlanteF Offline
                                        Florian KlanteF Offline
                                        Florian Klante
                                        wrote on last edited by
                                        #5041

                                        @ticaki somit ist dann auch mein zweites Problem behoben.
                                        Die Pages konnte ich nicht sauber blättern.

                                        ArmilarA 1 Reply Last reply
                                        1
                                        • Florian KlanteF Florian Klante

                                          @ticaki somit ist dann auch mein zweites Problem behoben.
                                          Die Pages konnte ich nicht sauber blättern.

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

                                          @florian-klante

                                          Ja, die Einstellungen des MQTT-Adapters sind da ebenfalls dran beteiligt. Konnte auch nie nachvollziehen, warum die Einstellung:
                                          f44ea5a3-8992-438a-a7ae-1a6f32d59e4b-image.png so kontrovers benannt wurde...

                                          Daher in der Wiki auch explizit nochmal erwähnt 😉

                                          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
                                          0
                                          Reply
                                          • Reply as topic
                                          Log in to reply
                                          • Oldest to Newest
                                          • Newest to Oldest
                                          • Most Votes


                                          Support us

                                          ioBroker
                                          Community Adapters
                                          Donate

                                          312

                                          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