Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Hardware
    4. SONOFF NSPanel mit Lovelace UI

    NEWS

    • ioBroker goes Matter ... Matter Adapter in Stable

    • 15. 05. Wartungsarbeiten am ioBroker Forum

    • Monatsrückblick - April 2025

    SONOFF NSPanel mit Lovelace UI

    This topic has been deleted. Only users with topic management privileges can see it.
    • ravenst0ne
      ravenst0ne last edited by

      Mal aus Interesse, auf welchem Gerät/Speicher legt ihr denn eure Influx Datenbank ab? SD Karte vom Pi soll ja nicht so gut sein...

      M 1 Reply Last reply Reply Quote 0
      • Armilar
        Armilar Most Active Forum Testing @Winnipuuh last edited by Armilar

        @winnipuuh @niiccooo1

        Vielleicht kann jemand den code umschreiben für die Influx1.8 🙂

        Es ist ja eigentlich nur ein anderes Query (SQL statt FLUX) bei der Influx 1.8 oder beim SQL. Versucht es mal (ungetestet) mit austauschen:

        let query = ['SELECT mean("value") ',
                          'FROM "' + obj.id + '" ', 
                          'WHERE time >= now() - ' + numberOfHoursAgo + 'h and time <= now() ',
                          'GROUP BY time(' + numberOfHoursAgo + 'h) ',
                          'ORDER BY time DESC'].join('');
        

        Falls die Sortierung falsch herum ist, dann noch mal das DESC rausnehmen. Und falls da dann auch wirklich Daten herauskommen, dann gerne bescheid geben. 😊

        EDIT:

        let query =[
                'from(bucket: "iobroker")',
                '|> range(start: -' + numberOfHoursAgo + 'h)',
                '|> filter(fn: (r) => r["_measurement"] == "' + obj.id + '")',
                '|> 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('');
        

        dafür herausnehmen.

        Die Abfragen liefern immer den Stand der letzten 24 Stunden. Kann natürlich auch verändert werden:

        const numberOfHoursAgo = 24;   // letzen n Stunden
        const xAxisTicksEveryM = 60;   // die X-Achsen-Striche (in diesem Fall jede Stunde)
        const xAxisLabelEveryM = 240;  // die Zeitangaben (in diesem Fall alle 4 Stunden)
        

        Man könnte im SQL-Statement ggfs. auch noch die Group by Zeiten reduzieren.

        W 1 Reply Last reply Reply Quote 0
        • M
          mading @ravenst0ne last edited by

          @ravenst0ne SD Karte geht irgendwann kaputt. iob ist auf einem pi4 mit ssd - grafana und influx auf einem pi3 mit sd. wenn die hops geht, habe ich ein Backup bzw, sind die historischen Daten ohnehin für mich nicht so wichtig (alles älter als 6-12M)

          Armilar 1 Reply Last reply Reply Quote 0
          • Armilar
            Armilar Most Active Forum Testing @mading last edited by Armilar

            @mading @ravenst0ne

            Für einen Raspi mit SD-Karte sollte man ja neben den ioBroker-Updates ebenfalls Sicherungen z.B. mit dem Backitup-Adapter für Influx, etc. anlegen. Die Haltbarkeit einer SD-Karte ist immer ein Spiel mit dem Feuer... Mir ist dieser Tage, ebenfalls wieder eine SD-Karte (nicht ioBroker und auch keine Datenbank) unreparierbar abgeraucht. Besser auf andere Medien gehen oder langfristig auf eine stabilere Hardware setzen...

            @ravenst0ne

            Mal aus Interesse, auf welchem Gerät/Speicher legt ihr denn eure Influx Datenbank ab? SD Karte vom Pi soll ja nicht so gut sein...

            zu deiner Frage: Ich habe ein QNAP NAS mit einer VM für den ioBroker und einer separaten VM für InfluxDB2 und Grafana im Einsatz.

            1 Reply Last reply Reply Quote 0
            • W
              Winnipuuh @Armilar last edited by

              @armilar
              Die Datenquery funktioniert allerdings habe ich noch das Problem das der Info Alias die Daten nicht annimt:
              e4d044a5-1911-4ee7-9363-b60ef42384d6-grafik.png

              LG
              Winnipuuh

              Armilar 1 Reply Last reply Reply Quote 0
              • Armilar
                Armilar Most Active Forum Testing @Winnipuuh last edited by Armilar

                @winnipuuh

                Was steht denn im erzeugten Datenpunkt drin? Sollte ja eigentlich ein etwas längerer String (wie gestern als Beispiel abgebildet) sein. Der Info-Alias kann doch einen String verarbeiten!

                a636b8b4-6346-42f4-9cbe-258cf8f1725e-image.png

                Bei mir steht unter der Zeile ein "any" = kann alles aufnehmen und role=state . Das wäre auch perfekt!

                Oder hat der Alias noch keine Daten bekommen?

                Sieht dann im alias.0. auch super aus:

                4725a4c1-a800-449d-af10-a8393d4744f4-image.png

                W 1 Reply Last reply Reply Quote 0
                • W
                  Winnipuuh @Armilar last edited by Winnipuuh

                  @armilar
                  Das steht bei mir auch 🙂
                  849d90ef-0df8-4fbe-ad43-0812e3c2f582-grafik.png
                  14acbaab-a7c2-4da2-8b09-93d93119bf1c-grafik.png

                  Armilar 1 Reply Last reply Reply Quote 0
                  • Armilar
                    Armilar Most Active Forum Testing @Winnipuuh last edited by Armilar

                    @winnipuuh

                    Dann zeige mal den Inhalt des Datenpunktes

                    EDIT: War parallel 😉

                    Sieht doch eigentlich ganz gut aus. Was macht das Panel draus?

                    P.S.: Falls das Balkendiagramme (cardChart) werden sollen, brauchst du aber ein anderes Script. Die arbeitet nicht mit Koordinaten.

                    Falls es Linien-Diagramme (cardLChart) werden sollen, dann ist das Script (wie gestern gepostet) korrekt.

                    W 2 Replies Last reply Reply Quote 0
                    • W
                      Winnipuuh @Armilar last edited by

                      @armilar
                      So sieht mein Log der querry aus:
                      0f3be9a7-12bb-49c6-bd8b-f81d0623d7bc-grafik.png

                      Der Datenpunkt hat folgenden Inhalt:

                      0^11:00+60+120+180+240^15:00+300+360+420+480^19:00+540+600+660+720^23:00+780+840+900+960^03:00+1020+1080+1140+1200^07:00+1260+1320+1380~NaN:NaN~NaN:NaN
                      
                      Armilar 1 Reply Last reply Reply Quote 0
                      • W
                        Winnipuuh @Armilar last edited by

                        @armilar said in SONOFF NSPanel mit Lovelace UI:

                        t doch eigentlich ganz gut aus. Was macht das Panel draus?

                        Hab CardLChart drin 🙂

                        let CardChartExample = <PageChart>
                        {
                            'type': 'cardLChart',
                            'heading': 'Strom Verbrauch',
                            'useColor': true,
                            'items': [<PageItem>{ 
                                        id: 'alias.0.NSPanel.1.CardChart.Verbrauch', 
                                        yAxis: 'Leistung [kW]', 
                                        yAxisTicks: [100,110,120,130,140,150,160,170,180,190,200,210,220,230,240,250],
                                        onColor: Yellow
                                     }]
                        };
                        
                        
                        1 Reply Last reply Reply Quote 0
                        • Armilar
                          Armilar Most Active Forum Testing @Winnipuuh last edited by Armilar

                          @winnipuuh

                          Der erste Teil ist die X-Achse:
                          0^11:00+60+120+180+240^15:00+300+360+420+480^19:00+540+600+660+720^23:00+780+840+900+960^03:00+1020+1080+1140+1200^07:00+1260+1320+1380

                          im Zweite Teil sollten die Koordinaten stehen
                          ~NaN:NaN~NaN:NaN

                          ~X1:Y1~X2:Y2
                          Da sind aber keine Daten (NaN) drin...

                          Für eine saubere Darstellung müsstest du dann die yAxisTicks aktuell zwischen 100 =10,0 und 250=25,0 noch anpassen.
                          Aber zunächst sollte da kein NaN drin stehen.

                          Gab es im gewählten Zeitraum (letzte 24h) keine Daten?

                          W 1 Reply Last reply Reply Quote 0
                          • W
                            Winnipuuh @Armilar last edited by

                            @armilar
                            Doch Daten werden vom Sensor alle 6 sec. aktualisiert. Das sind Verbrauchsdaten vom EVU. 😞

                            Armilar 1 Reply Last reply Reply Quote 0
                            • Armilar
                              Armilar Most Active Forum Testing @Winnipuuh last edited by

                              @winnipuuh

                              Hast du Grafana oder etwas, das dir ein SQL-Statement für diesen Datenpunkt zusammenbauen kann?

                              W 1 Reply Last reply Reply Quote 0
                              • W
                                Winnipuuh @Armilar last edited by Winnipuuh

                                @armilar
                                Ja
                                b05b340b-c4b6-4154-9cec-5a96f8c27584-grafik.png

                                SELECT mean("value") FROM "0_userdata.0.Strom_Berechnung.Strom" WHERE $timeFilter GROUP BY time($__interval) fill(null)
                                
                                Armilar 1 Reply Last reply Reply Quote 0
                                • Armilar
                                  Armilar Most Active Forum Testing @Winnipuuh last edited by Armilar

                                  @winnipuuh

                                  https://docs.influxdata.com/influxdb/v1.8/query_language/explore-data/

                                  Zur Beschreibung sehe ich im SQL-Statement keine Fehler. Ist

                                  const InfluxInstance = 'influxdb.0';
                                  

                                  die richtige Instanz?

                                  Das einzige was ich da als Unterschied sehe ist die Sortierung.

                                  Die kannst du ja mal rausnehmen:

                                  let query = ['SELECT mean("value") ',
                                                    'FROM "' + obj.id + '" ', 
                                                    'WHERE time >= now() - ' + numberOfHoursAgo + 'h and time <= now() ',
                                                    'GROUP BY time(' + numberOfHoursAgo + 'h)'].join('');
                                  

                                  Ansonsten kann ich bei Influx 1.8 leider nicht unterstützen. Da bräuchtest du jemanden, der ebenfalls eine alte Influx hat.

                                  EDIT:
                                  Doch, mir ist da etwas aufgefallen:
                                  Du verwendest die falschen Datenpunkte

                                  3cd85703-5937-4407-bad6-68d2bdaeb7ac-image.png

                                  hier gehst du in die Abfrage mit mqtt.0.openWB.evu.W

                                  und im Grafana greifst du auf 0_userdata.0.Strom_Berechnung.Strom zu.

                                  Wenn das so wäre, dann ist das ein böser Fehler 😉 , falls mqtt.0.openWB.evu.W nicht in der Influx enthalten wäre.

                                  EDIT 2: Ändere den Datenpunkt im JS-Script mal von mqtt.0.openWB.evu.W auf 0_userdata.0.Strom_Berechnung.Strom

                                  W 1 Reply Last reply Reply Quote 0
                                  • W
                                    Winnipuuh @Armilar last edited by

                                    @armilar
                                    Das habe ich gerade geändert daran liegt es nicht. Dachte das ich zuwenige Daten in der mqtt habe daher hab ich es getauscht 🙂 sorry für die Verwirrung

                                    Die Instanz ist richtig:
                                    7a9ab881-617b-4679-8772-861e3864fa19-grafik.png
                                    Hab die query getauscht leider hat das auch nichr funktioniert 😞
                                    20ee9291-474a-46b9-93a5-fa392b12cf3e-grafik.png

                                    LG
                                    Winnipuuh

                                    Armilar 1 Reply Last reply Reply Quote 0
                                    • Armilar
                                      Armilar Most Active Forum Testing @Winnipuuh last edited by Armilar

                                      @winnipuuh

                                      130ee080-5c5e-45e5-ba40-a83505d532f6-image.png

                                      Das Statement findet 2 Werte aber kommt mit einem Fehler zurück...

                                      Eventuell findet jemand anderes mit einer Influx 1.8 den Fehler... Kann da nicht weiter unterstützen.

                                      W B 2 Replies Last reply Reply Quote 0
                                      • W
                                        Winnipuuh @Armilar last edited by

                                        @armilar Kein Problem trotzdem Danke für deine Unterstützung ist echt ein Tolles Projekt

                                        1 Reply Last reply Reply Quote 0
                                        • B
                                          bean @Armilar last edited by

                                          @armilar Bin auch auf der Suche nach dem korrekten Statement für die Influx-Abfrage, deshalb noch kurz eine Bitte zur Unterstützung:

                                          Wie sieht denn ein Beispiel-Result der Flux-Abfrage unter Influx 2.6 aus?

                                          Mit dem Ergebnis meiner Abfrage

                                          {'result':[[{'mean':14.65,'ts':1675166400000},{'mean':14.024999999999999,'ts':1675162800000},{'mean':13.4,'ts':1675159200000},{'mean':13.3,'ts':1675155600000},{'mean':13.350000000000001,'ts':1675152000000},{'mean':13.55,'ts':1675148400000},{'mean':13.7,'ts':1675144800000},{'mean':13.850000000000001,'ts':1675141200000},{'mean':14,'ts':1675137600000},{'mean':14.2,'ts':1675134000000},{'mean':14.350000000000001,'ts':1675130400000},{'mean':14.5,'ts':1675126800000},{'mean':14.5,'ts':1675123200000},{'mean':14.6,'ts':1675119600000},{'mean':14.850000000000001,'ts':1675116000000},{'mean':15,'ts':1675112400000},{'mean':15.25,'ts':1675108800000},{'mean':15.55,'ts':1675105200000},{'mean':15.8,'ts':1675101600000},{'mean':16.375,'ts':1675098000000},{'mean':16.7,'ts':1675094400000},{'mean':16.099999999999998,'ts':1675090800000},{'mean':14.9,'ts':1675087200000},{'mean':13.944444444444443,'ts':1675083600000},{'mean':13.6,'ts':1675080000000}]],'ts':1675167842420,'error':null}
                                          

                                          fängt der Rest des Scripts dann nichts an, weshalb auch immer nur NaN kommt

                                          Armilar 1 Reply Last reply Reply Quote 0
                                          • Armilar
                                            Armilar Most Active Forum Testing @bean last edited by Armilar

                                            @bean

                                            Beispiel Result aus Influx 2.6:

                                            {'result':[[{'result':'_result','table':0,'_field':'value','_measurement':'deconz.0.Sensors.41.temperature','_rtime':2670089205459,'_start':'2023-01-30T13:15:29.910794541Z','_stop':'2023-01-31T13:15:29.910794541Z','_time':'2023-01-30T14:00:00Z','_value':21.63,'ts':1675087200000},{'result':'_result','table':0,'_field':'value','_measurement':'deconz.0.Sensors.41.temperature','_rtime':6270089205459,'_start':'2023-01-30T13:15:29.910794541Z','_stop':'2023-01-31T13:15:29.910794541Z','_time':'2023-01-30T15:00:00Z','_value':21.39,'ts':1675090800000},{'result':'_result','table':0,'_field':'value','_measurement':'deconz.0.Sensors.41.temperature','_rtime':9870089205459,'_start':'2023-01-30T13:15:29.910794541Z','_stop':'2023-01-31T13:15:29.910794541Z','_time':'2023-01-30T16:00:00Z','_value':21.33,'ts':1675094400000},{'result':'_result','table':0,'_field':'value','_measurement':'deconz.0.Sensors.41.temperature','_rtime':13470089205459,'_start':'2023-01-30T13:15:29.910794541Z','_stop':'2023-01-31T13:15:29.910794541Z','_time':'2023-01-30T17:00:00Z','_value':21.28,'ts':1675098000000},{'result':'_result','table':0,'_field':'value','_measurement':'deconz.0.Sensors.41.temperature','_rtime':17070089205459,'_start':'2023-01-30T13:15:29.910794541Z','_stop':'2023-01-31T13:15:29.910794541Z','_time':'2023-01-30T18:00:00Z','_value':21.4,'ts':1675101600000},{'result':'_result','table':0,'_field':'value','_measurement':'deconz.0.Sensors.41.temperature','_rtime':20670089205459,'_start':'2023-01-30T13:15:29.910794541Z','_stop':'2023-01-31T13:15:29.910794541Z','_time':'2023-01-30T19:00:00Z','_value':21.58,'ts':1675105200000},{'result':'_result','table':0,'_field':'value','_measurement':'deconz.0.Sensors.41.temperature','_rtime':24270089205459,'_start':'2023-01-30T13:15:29.910794541Z','_stop':'2023-01-31T13:15:29.910794541Z','_time':'2023-01-30T20:00:00Z','_value':21.36,'ts':1675108800000},{'result':'_result','table':0,'_field':'value','_measurement':'deconz.0.Sensors.41.temperature','_rtime':27870089205459,'_start':'2023-01-30T13:15:29.910794541Z','_stop':'2023-01-31T13:15:29.910794541Z','_time':'2023-01-30T21:00:00Z','_value':21.39,'ts':1675112400000},{'result':'_result','table':0,'_field':'value','_measurement':'deconz.0.Sensors.41.temperature','_rtime':31470089205459,'_start':'2023-01-30T13:15:29.910794541Z','_stop':'2023-01-31T13:15:29.910794541Z','_time':'2023-01-30T22:00:00Z','_value':21.4,'ts':1675116000000},{'result':'_result','table':0,'_field':'value','_measurement':'deconz.0.Sensors.41.temperature','_rtime':35070089205459,'_start':'2023-01-30T13:15:29.910794541Z','_stop':'2023-01-31T13:15:29.910794541Z','_time':'2023-01-30T23:00:00Z','_value':21.63,'ts':1675119600000},{'result':'_result','table':0,'_field':'value','_measurement':'deconz.0.Sensors.41.temperature','_rtime':38670089205459,'_start':'2023-01-30T13:15:29.910794541Z','_stop':'2023-01-31T13:15:29.910794541Z','_time':'2023-01-31T00:00:00Z','_value':21.11,'ts':1675123200000},{'result':'_result','table':0,'_field':'value','_measurement':'deconz.0.Sensors.41.temperature','_rtime':45870089205459,'_start':'2023-01-30T13:15:29.910794541Z','_stop':'2023-01-31T13:15:29.910794541Z','_time':'2023-01-31T02:00:00Z','_value':20.5,'ts':1675130400000},{'result':'_result','table':0,'_field':'value','_measurement':'deconz.0.Sensors.41.temperature','_rtime':49470089205459,'_start':'2023-01-30T13:15:29.910794541Z','_stop':'2023-01-31T13:15:29.910794541Z','_time':'2023-01-31T03:00:00Z','_value':20.29,'ts':1675134000000},{'result':'_result','table':0,'_field':'value','_measurement':'deconz.0.Sensors.41.temperature','_rtime':53070089205459,'_start':'2023-01-30T13:15:29.910794541Z','_stop':'2023-01-31T13:15:29.910794541Z','_time':'2023-01-31T04:00:00Z','_value':20.15,'ts':1675137600000},{'result':'_result','table':0,'_field':'value','_measurement':'deconz.0.Sensors.41.temperature','_rtime':56670089205459,'_start':'2023-01-30T13:15:29.910794541Z','_stop':'2023-01-31T13:15:29.910794541Z','_time':'2023-01-31T05:00:00Z','_value':19.91,'ts':1675141200000},{'result':'_result','table':0,'_field':'value','_measurement':'deconz.0.Sensors.41.temperature','_rtime':60270089205459,'_start':'2023-01-30T13:15:29.910794541Z','_stop':'2023-01-31T13:15:29.910794541Z','_time':'2023-01-31T06:00:00Z','_value':19.72,'ts':1675144800000},{'result':'_result','table':0,'_field':'value','_measurement':'deconz.0.Sensors.41.temperature','_rtime':63870089205459,'_start':'2023-01-30T13:15:29.910794541Z','_stop':'2023-01-31T13:15:29.910794541Z','_time':'2023-01-31T07:00:00Z','_value':20.5,'ts':1675148400000},{'result':'_result','table':0,'_field':'value','_measurement':'deconz.0.Sensors.41.temperature','_rtime':67470089205459,'_start':'2023-01-30T13:15:29.910794541Z','_stop':'2023-01-31T13:15:29.910794541Z','_time':'2023-01-31T08:00:00Z','_value':20.6,'ts':1675152000000},{'result':'_result','table':0,'_field':'value','_measurement':'deconz.0.Sensors.41.temperature','_rtime':71070089205459,'_start':'2023-01-30T13:15:29.910794541Z','_stop':'2023-01-31T13:15:29.910794541Z','_time':'2023-01-31T09:00:00Z','_value':20.69,'ts':1675155600000},{'result':'_result','table':0,'_field':'value','_measurement':'deconz.0.Sensors.41.temperature','_rtime':74670089205459,'_start':'2023-01-30T13:15:29.910794541Z','_stop':'2023-01-31T13:15:29.910794541Z','_time':'2023-01-31T10:00:00Z','_value':20.85,'ts':1675159200000},{'result':'_result','table':0,'_field':'value','_measurement':'deconz.0.Sensors.41.temperature','_rtime':78270089205459,'_start':'2023-01-30T13:15:29.910794541Z','_stop':'2023-01-31T13:15:29.910794541Z','_time':'2023-01-31T11:00:00Z','_value':20.88,'ts':1675162800000},{'result':'_result','table':0,'_field':'value','_measurement':'deconz.0.Sensors.41.temperature','_rtime':81870089205459,'_start':'2023-01-30T13:15:29.910794541Z','_stop':'2023-01-31T13:15:29.910794541Z','_time':'2023-01-31T12:00:00Z','_value':20.78,'ts':1675166400000},{'result':'_result','table':0,'_field':'value','_measurement':'deconz.0.Sensors.41.temperature','_rtime':85470089205459,'_start':'2023-01-30T13:15:29.910794541Z','_stop':'2023-01-31T13:15:29.910794541Z','_time':'2023-01-31T13:00:00Z','_value':19.88,'ts':1675170000000},{'result':'_result','table':0,'_field':'value','_measurement':'deconz.0.Sensors.41.temperature','_rtime':86400000000000,'_start':'2023-01-30T13:15:29.910794541Z','_stop':'2023-01-31T13:15:29.910794541Z','_time':'2023-01-31T13:15:29.910794541Z','_value':19.72,'ts':1675170929910}]],'ts':1675170914591,'error':null}
                                            

                                            im else Zweig

                                            // show result
                                                        if (Debug) console.log(result);
                                                        let numResults = result.result.length;
                                                        for (let r = 0; r < numResults; r++) 
                                                        {
                                                            let list = []
                                                            let numValues = result.result[r].length;
                                            
                                                            for (let i = 0; i < numValues; i++) 
                                                            {
                                                                let time = Math.round(result.result[r][i]._rtime/1000/1000/1000/60);
                                                                let value = Math.round(result.result[r][i]._value * 10);
                                                                list.push(time + ":" + value);
                                                            }
                                            
                                                            coordinates = list.join("~");
                                            
                                                            if (Debug) console.log(coordinates);
                                                        }
                                            

                                            müssten demnach auch die Felder angepasst werden

                                            • _rtime kommt als ts
                                            • _value kommt als mean

                                            JSON aus Influx 2.6

                                            {
                                               "result":[
                                                  [
                                                     {
                                                        "result":"_result",
                                                        "table":0,
                                                        "_field":"value",
                                                        "_measurement":"deconz.0.Sensors.41.temperature",
                                                        "_rtime":1305864430179,
                                                        "_start":"2023-01-30T13:38:14.135569821Z",
                                                        "_stop":"2023-01-31T13:38:14.135569821Z",
                                                        "_time":"2023-01-30T14:00:00Z",
                                                        "_value":21.63,
                                                        "ts":1675087200000
                                                     },
                                            

                                            JSON aus Influx 1.8

                                            {
                                               "result":[
                                                  [
                                                     {
                                                        "mean":14.65,
                                                        "ts":1675166400000
                                                     },
                                            

                                            Was passiert denn, wenn du statt "history.0" im folgenden Script "influx.0" nimmst?

                                            https://github.com/joBr99/nspanel-lovelace-ui/wiki/ioBroker-Card-Definitionen-(Seiten)#javascript-für-history-adapter

                                            B 1 Reply Last reply Reply Quote 0
                                            • First post
                                              Last post

                                            Support us

                                            ioBroker
                                            Community Adapters
                                            Donate

                                            953
                                            Online

                                            31.6k
                                            Users

                                            79.5k
                                            Topics

                                            1.3m
                                            Posts

                                            lovelace ui nspanel sonoff
                                            260
                                            7128
                                            4380068
                                            Loading More Posts
                                            • Oldest to Newest
                                            • Newest to Oldest
                                            • Most Votes
                                            Reply
                                            • Reply as topic
                                            Log in to reply
                                            Community
                                            Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen
                                            The ioBroker Community 2014-2023
                                            logo