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.
  • ArmilarA Armilar

    @gregors

    Sieht aus wie das...

    https://forum.iobroker.net/post/938204

    GregorSG Offline
    GregorSG Offline
    GregorS
    wrote on last edited by GregorS
    #6354

    @armilar

    Das war das richtige Script.
    Allerdings bekomme ich da immer eine Fehlermeldung, die ich nicht deuten kann:

    javascript.0	19:06:04.619	error	script.js.NSPanel_LChart_Temp: Invalid call
    

    Fehler im Log:

    javascript.0
    	2024-09-11 18:58:18.097	error	at processImmediate (node:internal/timers:476:21)
    javascript.0
    	2024-09-11 18:58:18.096	error	at Immediate._onImmediate (file:///opt/iobroker/node_modules/@iobroker/db-states-redis/src/lib/states/statesInRedisClient.ts:383:37)
    javascript.0
    	2024-09-11 18:58:18.096	error	at change (/opt/iobroker/node_modules/@iobroker/js-controller-adapter/src/lib/adapter/adapter.ts:10886:45)
    javascript.0
    	2024-09-11 18:58:18.096	error	at Object.cb (/opt/iobroker/node_modules/iobroker.javascript/lib/sandbox.js:3097:38)
    javascript.0
    	2024-09-11 18:58:18.096	error	at Object.<anonymous> (script.js.NSPanel_LChart_AZ:62:54)
    javascript.0
    	2024-09-11 18:58:18.096	error	Error in callback: TypeError: Cannot read properties of undefined (reading 'ts')
    javascript.0
    	2024-09-11 18:58:18.053	error	script.js.NSPanel_LChart_Temp: Invalid call
    influxdb.0
    	2024-09-11 18:58:18.052	error	queries: Error: 1 Error happened while processing 1 queries
    influxdb.0
    	2024-09-11 18:58:18.052	warn	Error in query "from(bucket: "iobroker")|> range(start: -24h)|> filter(fn: (r) => r["_measurement"] == "hm-rpc.1.000A9BE990C516.1.ACTUAL_TEMPERATURE")|> 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")": HttpError: failed to initialize execute state: could not find bucket "iobroker"
    

    InfluxDB läuft in einem lxc-Container.
    Verbindungstest ist erfolgreich.

    Brauche ich die DB überhaupt, ich wollte mit der History.0 arbeiten.

    Hier mein angepasstes Script:

    const Debug = false;
    const NSPanel_Path = '0_userdata.0.NSPanel.';
    const Path = NSPanel_Path + 'History_Chart.Temp.';
    
    let   PathSensor = '';
    
    let SensorName = ['Temperatur AZ',
                      'Temperatur WZ',
                      'Temperatur Bad'];
    
    
    const Sensor = [].concat('hm-rpc.1.000A9BE990C516.1.ACTUAL_TEMPERATURE')  // Temperatur Arbeitszimmer
                     .concat('hm-rpc.1.000A9BE990CFC3.1.ACTUAL_TEMPERATURE')  // Temperatur Wohnzimmer
                     .concat('hm-rpc.1.000A9BE990C35D.1.ACTUAL_TEMPERATURE')  // Temperatur Badezimmer
    
       
    
    let   triggeredSensor = 0;
    
    const numberOfHoursAgo = 24;
    const xAxisTicksEveryM = 60;
    const xAxisLabelEveryM = 240;
    
    const InfluxInstance = 'influxdb.0';
    // const InfluxInstance = 'influxdb.0';
    
    // Ab hier keine Ändeungen
    let coordinates = ''; 
    
    on({ id: Sensor, change: 'any' }, async function (obj) {
    
        if (Debug) console.log(obj.id);
    
        if (Debug) console.log(Sensor.indexOf(obj.id));
    
        if (Debug) console.log(SensorName[Sensor.indexOf(obj.id)])
    
         PathSensor = Path + SensorName[Sensor.indexOf(obj.id)]
    
         if (existsObject(PathSensor) == false) {
    
            createState(PathSensor, 0, {
    
                name: 'SensorGrid',
    
                desc: 'Sensor Values [~<time>:<value>]*',
    
                type: 'string',
    
                role: 'value',
    
            });
    
        }
    
     
    
        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('');
    
     
    
        if (Debug) console.log('Query: ' + query);
    
     
    
        sendTo(InfluxInstance, 'query', query, function (result) {
    
            if (result.error) {
    
                console.error(result.error);
    
            } else {
    
                // 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);
    
                }
    
            }
    
        });
    
     
    
        let timeOut = setTimeout (
    
            function () {
    
                let ticksAndLabelsList = []
    
                let date = new Date();
    
                date.setMinutes(0, 0, 0);
    
                let ts = Math.round(date.getTime() / 1000);
    
                let 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
    
                    {
    
                        let currentDate = new Date(x * 1000);
    
                        // Hours part from the timestamp
    
                        let hours = '0' + String(currentDate.getHours());
    
                        // Minutes part from the timestamp
    
                        let minutes = '0' + String(currentDate.getMinutes());
    
                        let 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);
    
                setState(PathSensor, ticksAndLabelsList.join('+') + '~' + coordinates, true);
    
            }, 
    
        1500
    
        ) ;
    
    });
    

    INTEL NUC i7, Sonoff, hmIP, AVM, Jeelink, T-Link, Alexa, Saia-Burgess, uvm.

    1 Reply Last reply
    0
    • ArmilarA Offline
      ArmilarA Offline
      Armilar
      Most Active Forum Testing
      wrote on last edited by Armilar
      #6355

      @gregors

      Wenn ich das richtig gesehen habe, hattest du eine Instanz: influxdb.1

      Zumindest findet er das Bucket nicht.

      Also Check auf:

      • Instanznummer ggfs. auf 1
      • im Query Bucket-Name (könnte bei dir ja abweichend von "iobroker" sein)

      Aber für history.0 haben wir andere Scripte im Wiki:

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

      Ob du nu Influxdb2 oder History nutzen willst, sollte deine Entscheidung sein. Da History nichts anderes als Text auf die Platte (Filezugriffe sind in der Regel langsam) schreiben ist, dürfte Influx wohl um einiges performanter arbeiten.

      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.

      GregorSG 1 Reply Last reply
      1
      • ArmilarA Armilar

        @gregors

        Wenn ich das richtig gesehen habe, hattest du eine Instanz: influxdb.1

        Zumindest findet er das Bucket nicht.

        Also Check auf:

        • Instanznummer ggfs. auf 1
        • im Query Bucket-Name (könnte bei dir ja abweichend von "iobroker" sein)

        Aber für history.0 haben wir andere Scripte im Wiki:

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

        Ob du nu Influxdb2 oder History nutzen willst, sollte deine Entscheidung sein. Da History nichts anderes als Text auf die Platte (Filezugriffe sind in der Regel langsam) schreiben ist, dürfte Influx wohl um einiges performanter arbeiten.

        GregorSG Offline
        GregorSG Offline
        GregorS
        wrote on last edited by
        #6356

        @armilar

        Ich habe nur eine influxdb.0
        Das History-Script nutze ich.
        Es geht eigendlich um das Script um die Werte der Sensoren zu speichern.

        INTEL NUC i7, Sonoff, hmIP, AVM, Jeelink, T-Link, Alexa, Saia-Burgess, uvm.

        T 1 Reply Last reply
        0
        • GregorSG GregorS

          @armilar

          Ich habe nur eine influxdb.0
          Das History-Script nutze ich.
          Es geht eigendlich um das Script um die Werte der Sensoren zu speichern.

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

          @gregors
          Wenn Du history nutzt, warum speicherst Du das dann in Influx??

          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

          GregorSG 1 Reply Last reply
          1
          • T TT-Tom

            @gregors
            Wenn Du history nutzt, warum speicherst Du das dann in Influx??

            GregorSG Offline
            GregorSG Offline
            GregorS
            wrote on last edited by
            #6358

            @tt-tom
            Habe das Script so übernommen.
            Da ich in JS nicht fit bin, wusste ich nicht, was ich brauche und was nicht.
            Wenn ich da was lösche funktioniert es nicht mehr, bzw ich bekomme Fehler

            INTEL NUC i7, Sonoff, hmIP, AVM, Jeelink, T-Link, Alexa, Saia-Burgess, uvm.

            ArmilarA 1 Reply Last reply
            0
            • GregorSG GregorS

              @tt-tom
              Habe das Script so übernommen.
              Da ich in JS nicht fit bin, wusste ich nicht, was ich brauche und was nicht.
              Wenn ich da was lösche funktioniert es nicht mehr, bzw ich bekomme Fehler

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

              @gregors

              Wie werden denn nun die die Sensordaten gespeichert? Mit history.0 oder mit influx.0?

              Fakt ist, wenn keine Daten in einem der beiden abgespeichert werden, dann wird es wohl schwer diese Daten in einem Graphen anzuzeigen.

              Wenn in History, dann müssen sie auch mit dem History-Script ausgelesen werden und wenn InfluxDB2 dann natürlich mit dem Influx-Script.

              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.

              GregorSG 1 Reply Last reply
              1
              • ArmilarA Armilar

                @gregors

                Wie werden denn nun die die Sensordaten gespeichert? Mit history.0 oder mit influx.0?

                Fakt ist, wenn keine Daten in einem der beiden abgespeichert werden, dann wird es wohl schwer diese Daten in einem Graphen anzuzeigen.

                Wenn in History, dann müssen sie auch mit dem History-Script ausgelesen werden und wenn InfluxDB2 dann natürlich mit dem Influx-Script.

                GregorSG Offline
                GregorSG Offline
                GregorS
                wrote on last edited by
                #6360

                @armilar
                Ich würde gerne history.0 nutzen.
                Es werden auch in History_Chart.Temp. ... Daten gespeichert, aber für alle 3 Temperaturfühler sind die Daten
                immer gleich aber unplausibel. Der Timestamp dagegen ist plausibel.
                Wie müsste ich dein Script ändern, damit die Daten in History.0 nutzen kann?
                Für das NSPanel habe ich das History-Script verwendet. Zeigt halt nur keine Daten an.

                const Debug = false;
                const NSPanel_Path = '0_userdata.0.NSPanel.';
                const Path = NSPanel_Path + 'History_Chart.Temp.';
                
                let   PathSensor = '';
                
                let SensorName = ['Temperatur AZ',
                                  'Temperatur WZ',
                                  'Temperatur Bad'];
                
                const Sensor = [].concat('hm-rpc.1.000A9BE990C516.1.ACTUAL_TEMPERATURE')  // Temperatur Arbeitszimmer
                
                                 .concat('hm-rpc.1.000A9BE990CFC3.1.ACTUAL_TEMPERATURE')  // Temperatur Wohnzimmer
                
                                 .concat('hm-rpc.1.000A9BE990C35D.1.ACTUAL_TEMPERATURE')  // Temperatur Badezimmer
                
                let   triggeredSensor = 0;
                const numberOfHoursAgo = 24;
                const xAxisTicksEveryM = 60;
                const xAxisLabelEveryM = 240;
                
                // Bis hierher funktioniert es noch !!! 
                
                const InfluxInstance = 'influxdb.0';
                // const InfluxInstance = 'influxdb.0';
                
                // Ab hier keine Ändeungen
                
                let coordinates = ''; 
                on({ id: Sensor, change: 'any' }, async function (obj) {
                    if (Debug) console.log(obj.id);
                    if (Debug) console.log(Sensor.indexOf(obj.id));
                    if (Debug) console.log(SensorName[Sensor.indexOf(obj.id)])
                     PathSensor = Path + SensorName[Sensor.indexOf(obj.id)]
                     if (existsObject(PathSensor) == false) {
                        createState(PathSensor, 0, {
                            name: 'SensorGrid',
                            desc: 'Sensor Values [~<time>:<value>]*',
                            type: 'string',
                            role: 'value',
                        });
                    }
                    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('');
                    if (Debug) console.log('Query: ' + query);
                    sendTo(InfluxInstance, 'query', query, function (result) {
                        if (result.error) {
                            console.error(result.error);
                        } else {
                            // 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);
                            }
                        }
                    });
                    let timeOut = setTimeout (
                        function () {
                            let ticksAndLabelsList = []
                            let date = new Date();
                            date.setMinutes(0, 0, 0);
                            let ts = Math.round(date.getTime() / 1000);
                            let 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
                                {
                                    let currentDate = new Date(x * 1000);
                                    // Hours part from the timestamp
                                    let hours = '0' + String(currentDate.getHours());
                                    // Minutes part from the timestamp
                                    let minutes = '0' + String(currentDate.getMinutes());
                                    let 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);
                            setState(PathSensor, ticksAndLabelsList.join('+') + '~' + coordinates, true);
                        }, 
                    1500
                    ) ;
                });
                

                INTEL NUC i7, Sonoff, hmIP, AVM, Jeelink, T-Link, Alexa, Saia-Burgess, uvm.

                1 Reply Last reply
                0
                • ArmilarA Offline
                  ArmilarA Offline
                  Armilar
                  Most Active Forum Testing
                  wrote on last edited by
                  #6361

                  @gregors sagte in SONOFF NSPanel mit Lovelace UI:

                  habe das eben nochmal überflogen...

                  Es geht eigendlich um das Script um die Werte der Sensoren zu speichern.

                  Sensorwerte werden nicht über das Skript gespeichert, sondern über Einstellungen im jeweiligen Datenpunkt im ioBroker.

                  Siehe Beispiel eines Sensors unter Objekte... Es gibt am Ende der Zeile ein Zahnrad:
                  619d861d-f728-479a-96c7-7287efcc5d6b-image.png

                  Wenn der entsprechende Adapter (InfluxDB oder History) installiert ist, dann kannst du da die Aufzeichnung durch aktivieren starten.

                  aa6722e0-1e6c-4bd5-9073-de1c14a419f5-image.png

                  Die Skripte im Wiki dienen nur zur Aufbereitung der jeweiligen (und bereits vorhandenen) Sensordaten der Datenbank für das NSPanel. Danach kann ein Info-ALIAS über den Ergebnis-String im 0_userdata.0. gelegt werden und einer CardLChart zugeordnet werden.

                  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.

                  GregorSG 2 Replies Last reply
                  2
                  • ArmilarA Armilar

                    @gregors sagte in SONOFF NSPanel mit Lovelace UI:

                    habe das eben nochmal überflogen...

                    Es geht eigendlich um das Script um die Werte der Sensoren zu speichern.

                    Sensorwerte werden nicht über das Skript gespeichert, sondern über Einstellungen im jeweiligen Datenpunkt im ioBroker.

                    Siehe Beispiel eines Sensors unter Objekte... Es gibt am Ende der Zeile ein Zahnrad:
                    619d861d-f728-479a-96c7-7287efcc5d6b-image.png

                    Wenn der entsprechende Adapter (InfluxDB oder History) installiert ist, dann kannst du da die Aufzeichnung durch aktivieren starten.

                    aa6722e0-1e6c-4bd5-9073-de1c14a419f5-image.png

                    Die Skripte im Wiki dienen nur zur Aufbereitung der jeweiligen (und bereits vorhandenen) Sensordaten der Datenbank für das NSPanel. Danach kann ein Info-ALIAS über den Ergebnis-String im 0_userdata.0. gelegt werden und einer CardLChart zugeordnet werden.

                    GregorSG Offline
                    GregorSG Offline
                    GregorS
                    wrote on last edited by
                    #6362

                    @armilar
                    Ich glaube, ich habe es jetzt.
                    Werde es heute abend mal umsetzen.

                    INTEL NUC i7, Sonoff, hmIP, AVM, Jeelink, T-Link, Alexa, Saia-Burgess, uvm.

                    1 Reply Last reply
                    2
                    • ArmilarA Armilar

                      SONOFF NSPanel Touch Display Switch

                      mit Lovelace UI und TASMOTA Firmware

                      60848839-53b0-4e2b-a370-28e02960bfcd-image.png

                      Das Thema https://forum.iobroker.net/topic/50888/sonoff-nspanel/1542 wird hier jetzt fortgesetzt...

                      An alle begeisterten NSPanel'er

                      Dieser Thread soll sich jetzt ausschließlich mit den Fragen und Themen rund um das SONOFF NSPanel mit Lovelace UI beschäftigen.

                      Wie alles begann:

                      • 22.10.2021
                        Blakadder's Dokumentation der Dekodierung des NSPanel-Kommunikationsprotokolls und Einrichtung der Steuerung des Nextion-Bildschirms mit benutzerdefinierter Firmware.
                        https://blakadder.com/nspanel-hacking/
                      • 01.01.2022
                        Erste Gehversuche mit Blockly-Scripts auf der Original-Firmware nach einer ersten coolen Anleitung für den ioBroker von @haus-automatisierung.
                      • ...
                        Funkstille auf allen Kanälen, da das Panel in der Originalsoftware einfach zu wenig Funktionalität hat. Ein Vergleich mit "Jugend forscht" wäre maßlos übertrieben...
                      • 15.01.2022
                        @jobr99 Erstes POC von Lovelace Konzept mit ESPhome Komponente, da Nextion Upload Protcol unter tasmota nicht umsetzbar ist (berry tcpclient crashed ESP, HTTP Libary ist auf viel zu kleine Dateien limitiert)
                      • 17.01.2022
                        peepshow-21 Erste implementierung von Nextion Upload Protocol 1.1 mit Workaround für HTTP Libary über Java Converter um tft files für tasmota vorzubereiten
                      • 20.01.2022
                        s-hadinger fixt bug in berry tcpclient
                      • 31.01.2022
                        Erste Version für HomeAssistant mit Nodered und Tasmota
                      • 08.02.2022
                        @joBr99 Erste Implementierung von Nextion Upload Protokoll 1.2 in Berry basiertend auf HTTP Range Header Requests und lokalem Buffer (funktioniert nur mit -nspanel tasmota build uns PSRAM Support)
                      • 12.02.2022
                        peepshow-21 Implementierung von Nextion Upload Protocol 1.2 mit vollständigem Download und "streaming" zum Nextion Screen während dem Download
                      • 05.03.2022
                        @joBr99 Portierung von Node-Red Flow zu AppDaemon, da AppDaemon sich besser eignet zur Implementierung vom Backend
                      • 13.03.2022
                        @joBr99 Erste Version von Lovelace Berry Driver basierend auf Upload Protocol Implementierung von peepshow-21, da diese etwas stabiler läuft mit zusätzlichem Error Handling
                      • 30.03.2022
                        @joBr99 kommt mit der Info um die Ecke, dass es ein erstes Script v1.9.0 für den ioBroker von @Britzelpuf gibt. Zu diesem Zeitpunkt gab es bereits den Screensaver die Seitennavigation und die Möglichkeit eine Lampe, einen Dimmer eine Taste und eine Info, sowie die popUps für Licht (Brightness) und Shutter (Position) und einen Thermostaten zur Steuerung einzubinden.
                      • 10.04.2022
                        @joBr99 Firmware got bigger and bigger with >15 Minutes Flashing Time for the tft file
                        Increased Flashing Speed of Berry Driver from 115200 to 921600 and added skipping to the End with HTTP Range Headers, resulted in faster display flashing
                      • 11.04.2022
                        @Armilar macht seine ersten Änderungen auf github und hört seit dem nicht mehr auf, weitere Funktionen in das TSScript hinzuzufügen... 😉
                        @joBr99 entwickelt die HMI und neue Funktionen für Home Assistant schneller als der Wind - und macht das Panel zur echten Bereicherung für jedes Smart Home 😊 👏

                      heute

                      • Eine der besten Community's die ich jemals erlebt habe. Hilfsbereit und kompetent wird jeder mit Hilfestellungen und Problemlösungen in kürzester Zeit versorgt.

                      Es macht großen Spaß zusammen mit euch...

                      VG
                      Armilar


                      Beispiele:

                      09ae2c13-c606-4ef5-88dc-26fccd14dd85-image.png

                      cf500331-70d8-4150-ac59-aabff1a27f7f-image.png

                      a5dbb6f4-403b-4081-b2e9-a17cbc3af26c-image.png

                      b41e2fed-abaa-4993-ae6f-2344f4e3afc8-image.png

                      048fc1af-d72e-45fe-9102-688d40b2df18-image.png

                      08edcab4-03b7-4c0f-923e-0f5b1c639cca-image.png

                      ad94cddf-a0d0-40a7-971c-16504e8949fd-image.png

                      263b23cc-d003-4af6-98b6-ed994c244890-image.png

                      07373515-a92e-4cc9-b717-716e4fd4413f-image.png

                      7c4a1f2f-26d7-4aeb-987d-3e30a671378d-image.png


                      Features:

                      • cardEntities für die Unterstützung diverser Steuerelemente (siehe Beispiele)
                      • cardGrid (3x2-Raster) für die Unterstützung diverser Steuerelemente (siehe Beispiele)
                      • cardGrid2 (4x2) für die Unterstützung diverser Steuerelemente (siehe Beispiele)
                      • cardGrid3 (2x2) für die Unterstützung diverser Steuerelemente (siehe Beispiele)
                      • cardPower zur Visualisierung der Energieverteilung
                      • cardAlarm als Seite für Alarmanlagen
                      • cardMedia - der Media-Player (Diverse Adapter)
                      • cardThermo - Seite für Thermostat oder Klimaanlage
                      • cardQR - Seite mit QRCode zur Anzeige von WLAN-Informationen
                      • cardChart - Balkendiagramme
                      • Detailseiten für Leuchtmittel (Helligkeit, Temperatur und Farbe)
                      • Detailseite für Jalousien/Rollos (Position und Tilt)
                      • Detailseite für Ventilatoren
                      • Detailseite für Timer
                      • Auswahl Detailseite für Werteliste
                      • Bildschirmschonerseite mit Uhrzeit, Datum und Wetterinformationen oder/und Infos
                      • Multilingual (unterstützt über 40 Sprachen)
                      • Unbegrenzte Anzahl an Seiten und Unterseiten
                      • Abfallkalender
                      • Favoritenseiten
                      • etc.

                        ich glaube da ist eine verbesserte "cardMedia" in der Entwicklung - sieht cool aus...
                        72571469-4a78-4caf-ba0e-7a67865bb13c-image.png

                      NsPanel Lovelace UI ist eine Firmware für den Nextion-Bildschirm innerhalb des NSPanel.

                      Die allgemeine Idee ist, dass das Nextion-Display einen Seitenzähler durchläuft und der ESP32 dem Display sagt, was zu tun ist. Alles ist dynamisch durch Alias-Erstellung konfigurierbar, es ist nicht erforderlich, Nextion Editor zu programmieren. Neben der Seiten-Definition sind im ioBroker keine Programmierkenntnisse erforderlich. Es ist im ioBroker ebenfalls kein Lovelace-Adapter erforderlich.

                      Das Panel arbeitet mit Tasmota und MQTT. Um das Panel zu steuern und mit Inhalten von ioBroker zu aktualisieren, gibt es ein vordefiniertes TypeScript (TS) für den JavaScript-Adapter.


                      Aktuelle Wiki (Anleitung) für den ioBroker

                      https://github.com/joBr99/nspanel-lovelace-ui/wiki by @Kuckuckmann

                      NsPanelTs.ts (TypeScript) für ioBroker v4.9.3.X

                      zur Steuerung des SONOFF NSPanel mit dem ioBroker by @Armilar und @TT-Tom
                      https://github.com/joBr99/nspanel-lovelace-ui/tree/main/ioBroker
                      abgestimmt auf:

                      • TFT 58 / v4.9.3 ( by @joBr99 / Armilar > 4.4.0)
                      • BerryDriver 9 ( by peepshow-21 (based on code by blakadder and s-hadinger))
                      • Tasmota 15.1.0 ( by Theo Arends ) --> Theo-Arends-Sonoff-MQTT-OTA

                      Projekt:

                      by @joBr99

                      • main (Home Assistant - Version und Nextion HMI): https://github.com/joBr99/nspanel-lovelace-ui by @joBr99
                      • ioBroker: https://github.com/joBr99/nspanel-lovelace-ui/tree/main/ioBroker by @Armilar (HA - Adaption)

                      Icon-Mapper:

                      • icon_mapping.ts:
                        https://github.com/joBr99/nspanel-lovelace-ui/blob/main/ioBroker/icon_mapping.ts
                        (TypeScript muss in global liegen)

                      Icons:

                      unter: https://docs.nspanel.pky.eu/icon-cheatsheet.html

                      Video-Tutorial:

                      https://www.youtube.com/watch?v=ZPLJk2ZLo_8 by @haus-automatisierung

                      ? Offline
                      ? Offline
                      A Former User
                      wrote on last edited by
                      #6363

                      @armilar

                      Hi, bin gerade dabei, meine restlichen 8 Panels zu flashen und Programmieren..
                      (flashen hat nach eurer Anleitung einwandfrei geklappt)

                      Ist es moeglich, ein Display zu sperren, und per Skript frei zu schalten?
                      Oder ist es moeglich, bestimmte Seiten (z.bsp. bei Anwesenheit) frei zu schalten?

                      Ich habe im Treppenhaus 2 Panels, die ich gerne, je nach Anwesenheit, einschraenken moechte.. dachte, ich kann ja ein fuer ein Panel mehrere Scripte anlegen, und je nach bedarf, das eine deaktivieren und das andere dann aktivieren.. aber vielleicht gibts ja was schoeneres.. bin nicht so der Freund von de/aktiviert geschalteten Scripten..

                      T ArmilarA 3 Replies Last reply
                      0
                      • ? A Former User

                        @armilar

                        Hi, bin gerade dabei, meine restlichen 8 Panels zu flashen und Programmieren..
                        (flashen hat nach eurer Anleitung einwandfrei geklappt)

                        Ist es moeglich, ein Display zu sperren, und per Skript frei zu schalten?
                        Oder ist es moeglich, bestimmte Seiten (z.bsp. bei Anwesenheit) frei zu schalten?

                        Ich habe im Treppenhaus 2 Panels, die ich gerne, je nach Anwesenheit, einschraenken moechte.. dachte, ich kann ja ein fuer ein Panel mehrere Scripte anlegen, und je nach bedarf, das eine deaktivieren und das andere dann aktivieren.. aber vielleicht gibts ja was schoeneres.. bin nicht so der Freund von de/aktiviert geschalteten Scripten..

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

                        @ilovegym

                        was mir spontan einfällt ist die Unlockpage und dahinter die geblockten Seiten, so wie beim Servicemenü.
                        Seiten so ausblenden, nach einem Kriterium 🤔

                        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
                        • ? A Former User

                          @armilar

                          Hi, bin gerade dabei, meine restlichen 8 Panels zu flashen und Programmieren..
                          (flashen hat nach eurer Anleitung einwandfrei geklappt)

                          Ist es moeglich, ein Display zu sperren, und per Skript frei zu schalten?
                          Oder ist es moeglich, bestimmte Seiten (z.bsp. bei Anwesenheit) frei zu schalten?

                          Ich habe im Treppenhaus 2 Panels, die ich gerne, je nach Anwesenheit, einschraenken moechte.. dachte, ich kann ja ein fuer ein Panel mehrere Scripte anlegen, und je nach bedarf, das eine deaktivieren und das andere dann aktivieren.. aber vielleicht gibts ja was schoeneres.. bin nicht so der Freund von de/aktiviert geschalteten Scripten..

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

                          @ilovegym
                          @TT-Tom

                          Interessantes Thema.

                          Stimme @TT-Tom zu. CardUnlock wäre eine Option, jedoch wäre die immer vorgeschaltet.


                          Ein anderer Ansatz wäre die Pages mit zwei unterschiedlichen PageArray's durch eine Weiche laufen zu lassen, hätte jedoch ebenso den negativen Nachgeschmack, dass die Config nur beim Start aufgerufen wird und das Skript in einem Trigger durch sich selbst durchgestartet werden müsste. Ich befürchte aber, dass das nicht wirklich sauber funktionieren würde...


                          Ein weiterer Ansatz wäre die Seitenvariablen mit einem weiteren "optionalen" Parameter

                          'lock' : true,
                          

                          zu versehen.

                          Über einen Trigger mittels Datenpunkt könnte dann eine globale Variable, z.B. vPresence umgeschaltet werden.

                          Wenn vPresence == false dann werte lock in der Seitenvariable aus. Bei 'lock' : true, die Seite nicht instanzieren.

                          Und als "optionaler Parameter", damit es kein Breaking Change wird. Der Aufwand wäre noch überschaubar...

                          Die Auswertung von vPresence und lock müsste dann in der function GeneratePage(page: PageType): void { stattfinden.


                          Edit: Sorry für die nachträglichen Änderungen, aber so könnte es funktionieren...

                          Falls gewünscht, gerne einen Feature Request einstellen. Ggfs gibt es ja noch weitere Optionen... Ließe sich auch auf einzelne Steuerelemente übertragen...

                          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.

                          K 1 Reply Last reply
                          1
                          • ? A Former User

                            @armilar

                            Hi, bin gerade dabei, meine restlichen 8 Panels zu flashen und Programmieren..
                            (flashen hat nach eurer Anleitung einwandfrei geklappt)

                            Ist es moeglich, ein Display zu sperren, und per Skript frei zu schalten?
                            Oder ist es moeglich, bestimmte Seiten (z.bsp. bei Anwesenheit) frei zu schalten?

                            Ich habe im Treppenhaus 2 Panels, die ich gerne, je nach Anwesenheit, einschraenken moechte.. dachte, ich kann ja ein fuer ein Panel mehrere Scripte anlegen, und je nach bedarf, das eine deaktivieren und das andere dann aktivieren.. aber vielleicht gibts ja was schoeneres.. bin nicht so der Freund von de/aktiviert geschalteten Scripten..

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

                            @ilovegym sagte in SONOFF NSPanel mit Lovelace UI:

                            Zum Thema:

                            Ist es moeglich, ein Display zu sperren

                            Das ist Kinderleicht 😉 , jedoch auch nicht ohne Erweiterung 😊

                            Abfrage eines Datenpunktes (z.B. Presence) und nur bei true die Screensaver-Klicks verarbeiten...

                            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
                            • ArmilarA Armilar

                              @ilovegym
                              @TT-Tom

                              Interessantes Thema.

                              Stimme @TT-Tom zu. CardUnlock wäre eine Option, jedoch wäre die immer vorgeschaltet.


                              Ein anderer Ansatz wäre die Pages mit zwei unterschiedlichen PageArray's durch eine Weiche laufen zu lassen, hätte jedoch ebenso den negativen Nachgeschmack, dass die Config nur beim Start aufgerufen wird und das Skript in einem Trigger durch sich selbst durchgestartet werden müsste. Ich befürchte aber, dass das nicht wirklich sauber funktionieren würde...


                              Ein weiterer Ansatz wäre die Seitenvariablen mit einem weiteren "optionalen" Parameter

                              'lock' : true,
                              

                              zu versehen.

                              Über einen Trigger mittels Datenpunkt könnte dann eine globale Variable, z.B. vPresence umgeschaltet werden.

                              Wenn vPresence == false dann werte lock in der Seitenvariable aus. Bei 'lock' : true, die Seite nicht instanzieren.

                              Und als "optionaler Parameter", damit es kein Breaking Change wird. Der Aufwand wäre noch überschaubar...

                              Die Auswertung von vPresence und lock müsste dann in der function GeneratePage(page: PageType): void { stattfinden.


                              Edit: Sorry für die nachträglichen Änderungen, aber so könnte es funktionieren...

                              Falls gewünscht, gerne einen Feature Request einstellen. Ggfs gibt es ja noch weitere Optionen... Ließe sich auch auf einzelne Steuerelemente übertragen...

                              K Offline
                              K Offline
                              Kuckuckmann
                              wrote on last edited by
                              #6367

                              @armilar @TT-Tom

                              Ich bin für die Seitenvariable 🙂

                              NSPanel Dokumentation im GitHub Wiki:

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

                              ? 1 Reply Last reply
                              2
                              • K Kuckuckmann

                                @armilar @TT-Tom

                                Ich bin für die Seitenvariable 🙂

                                ? Offline
                                ? Offline
                                A Former User
                                wrote on last edited by
                                #6368

                                @kuckuckmann @Armilar @TT-Tom

                                vielen Dank fuer die Ideen, ich hab mal ein Feature Request angelegt.

                                Hoffe, ich hab mich da verständlich ausgedrückt.. 🙂
                                Ich werde mir erstmal fuer die beiden Panels jeweils 2 Scripte anlegen ( Home / Away ).
                                Alarmpage kommt, wenn gar keiner da ist, aber es gibt auch den Fall, dass ein Bereich von mehreren Benutzern betreten wird, die bestimmte Grundfunktionen (leider mehr als 2, sonst hätte ich das auf die Taster gelegt) benoetigen..

                                Bei dem ändern der Variablen der Seiten muss ja auch dann das Script neu gestartet werden oder zumindest die geänderte Seitenkonfig ins Panel hochgeladen werden.. richtig?

                                ArmilarA 2 Replies Last reply
                                1
                                • M Offline
                                  M Offline
                                  maik5066
                                  wrote on last edited by
                                  #6369

                                  Hallo Kollegen,

                                  ich würde gern eine cardEntities Seite direkt auf dem Screensaver anzeigen bzw. mit dem Screensaver austauschen, ist das möglich ? Viele Grüße

                                  ArmilarA 1 Reply Last reply
                                  0
                                  • ? A Former User

                                    @kuckuckmann @Armilar @TT-Tom

                                    vielen Dank fuer die Ideen, ich hab mal ein Feature Request angelegt.

                                    Hoffe, ich hab mich da verständlich ausgedrückt.. 🙂
                                    Ich werde mir erstmal fuer die beiden Panels jeweils 2 Scripte anlegen ( Home / Away ).
                                    Alarmpage kommt, wenn gar keiner da ist, aber es gibt auch den Fall, dass ein Bereich von mehreren Benutzern betreten wird, die bestimmte Grundfunktionen (leider mehr als 2, sonst hätte ich das auf die Taster gelegt) benoetigen..

                                    Bei dem ändern der Variablen der Seiten muss ja auch dann das Script neu gestartet werden oder zumindest die geänderte Seitenkonfig ins Panel hochgeladen werden.. richtig?

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

                                    @ilovegym sagte in SONOFF NSPanel mit Lovelace UI:

                                    Bei dem ändern der Variablen der Seiten muss ja auch dann das Script neu gestartet werden oder zumindest die geänderte Seitenkonfig ins Panel hochgeladen werden.. richtig?

                                    Eigentlich nein. Daher eine globale boolsche Variable, die über einen Trigger ihren Zustand ändert. Wenn der Parameter in den Seitenvariablen gesetzt ist, läuft alles andere zur Laufzeit und ein Neustart des Skriptes ist obsolet. Du könntest so oft switchen wie du möchtest und hättest zur Laufzeit bereits die Änderungen.

                                    Werde die Tage mal einen Test starten...

                                    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
                                    • M maik5066

                                      Hallo Kollegen,

                                      ich würde gern eine cardEntities Seite direkt auf dem Screensaver anzeigen bzw. mit dem Screensaver austauschen, ist das möglich ? Viele Grüße

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

                                      @maik5066

                                      Nein, das ist nicht möglich, zumindest nicht im NSPanel-Skript. Das wäre eine gravierende Änderung im Bereich der TFT-HMI über einen Feature Request (mit dem Label HMI), da es alle SmartHome-Systeme (auch HA, etc.) betreffen würde. Der Screensaver lässt sich auch nicht abschalten oder deaktivieren.

                                      Alternative könnte so aussehen:
                                      In den Datenpunkten des NSPanels (unter 0_userdata.0...) siehst du, wenn der Screensaver aufgeschaltet wird. Jetzt könntest du mit Hilfe eines Triggers in einem anderen Skript auf eine Seite deiner Wahl schalten.

                                      Da du das aber mit einer cardEntities machen möchtest, wäre noch eine Änderung im Skript zu machen, da die aktuell nicht AOD-fähig (Always On Display) ist. Auch würde die ihren Dimm-Mode nicht ändern können, da es die Funktionalitäten des Screensavers nicht hat...

                                      Im NSPanel-Adapter, der ja aktuell noch in der Entwicklung ist, wäre AOD bei einer cardEntities allerdings schon möglich...

                                      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
                                      • ? A Former User

                                        @kuckuckmann @Armilar @TT-Tom

                                        vielen Dank fuer die Ideen, ich hab mal ein Feature Request angelegt.

                                        Hoffe, ich hab mich da verständlich ausgedrückt.. 🙂
                                        Ich werde mir erstmal fuer die beiden Panels jeweils 2 Scripte anlegen ( Home / Away ).
                                        Alarmpage kommt, wenn gar keiner da ist, aber es gibt auch den Fall, dass ein Bereich von mehreren Benutzern betreten wird, die bestimmte Grundfunktionen (leider mehr als 2, sonst hätte ich das auf die Taster gelegt) benoetigen..

                                        Bei dem ändern der Variablen der Seiten muss ja auch dann das Script neu gestartet werden oder zumindest die geänderte Seitenkonfig ins Panel hochgeladen werden.. richtig?

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

                                        @ilovegym sagte in SONOFF NSPanel mit Lovelace UI:

                                        Ich werde mir erstmal fuer die beiden Panels jeweils 2 Scripte anlegen ( Home / Away ).

                                        Brauchste nicht... Lösung ist fast fertig und bereits im Test... Stelle die DEV-Version für euch am WE noch mit ein paar Config-Infos zum Testen bereit...

                                        Lässt sich zur Laufzeit über Datenpunkt true/false ein und ausschalten

                                        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
                                        • K Offline
                                          K Offline
                                          Kerschte_de
                                          wrote on last edited by
                                          #6373

                                          Liebe Spezialisten für das NS-Panel,
                                          ich habe vor ein paar Tagen eure Hilfe erfolgreich in Anspruch genommen. Seitdem versuche ich, erstmal Ordnung auf meinen Geräten hinzubekommen. Dabei habe ich mich beim Thema MQTT verrannt und ich bekomme es nicht mehr in meinen Kopf. Deshalb wollte ich bei euch anfragen, ob ihr mich noch einmal unterstützen könntet?
                                          Ziel ist es, MQTT sauber zum Laufen zu bringen (Senden/Empfangen), um dann alle notwendigen Informationen über MQTT zum einen für das Panel einzusammeln, aber auch diese Informationen zu publishen.

                                          Folgender Geräte-Überblick:

                                          b6c239b5-c2f9-4302-9512-d6c10c19dd72-image.png

                                          Raspberry1 mit ioBroker1:

                                          • verschiedene Geräte-Adapter (bspw. Shelly, hue)
                                          • Festplatte mit influx.db
                                          • MQTT-Client Adapter

                                          Raspberry2 mit ioBroker2:

                                          • Zigbee-Stick an USB
                                          • Zigbee-Adapter
                                          • MQTT-Broker/Client Adapter als Client konfiguriert (nur mit diesem führte Einbindung NSPanel über Scripte zum Erfolg)

                                          RaspberryZero2W:

                                          • MQTT Dienst Mosquitto --> das ist mein aktiver MQTT-Server

                                          Win-Notebook:

                                          • Windows-Installation vom MQTT-Explorer für einfache checks bei Senden und Empfangen von Nachrichten

                                          Mein Ziel:
                                          Ich möchte Daten zwischen beiden ioBroker Instanzen (laufen als 2 autake Instanzen, kein Master/Slave) frei austauschen können.
                                          Alle Instanzen sind mit dem MQTT-Server (Mosquitto auf dem RaspZero) verbunden, die beiden ioBroker-Adapter sind grün. Setze ich vom MQTT-Explorer eine Nachricht ab, kommt diese in beiden ioBroker-MQTT-Pfaden an. Ich kann auch manuell in genau diesem Test-Topic per manueller Werteingabe erfolgreich zurücksenden.
                                          Woran ich aber nun seit vielen vielen Stunden scheitere ist, wie kann ich denn Werte bestehender Datenpunkte vom ioBroker2 (Adapter MQTT-Server/Client, als Client eingerichtet) in die MQTT-Topics aufnehmen, so dass diese gesendet werden?

                                          Auf dem ioBroker1 (älterer Adapter MQTT-Client) kann ich gewünschte Datenpunkte als Topic über die "benutzerdefinierten Einstellunge" einfach mit aufnehmen und so für eine Versendung aktivieren:
                                          7c159a8f-57ae-4b17-9f4f-19d591a2e7f6-image.png

                                          Auf dem ioBroker2 (Adapter MQTT-Broker/Client) gibt es diesen Eintrag nicht. Wie man in der Bezeichnung auf der dunklen Instanz erkennt, ist dieser Eintrag auch MQTT-Client-Adapter spezifisch. beim Broker/Client-Adapter fehlt er komplett:
                                          ef3365d6-d49b-4327-82a4-c39b98d6e12d-image.png

                                          Genau zu diesem Punkt rätsle ich eine Ewigkeit herum, wie ich ein Publishing von Datenpunkten mit jeder Aktualisierung hinbekomme. Ich ging die ganze Zeit davon aus, dass es an den Einstellungen liegen muss, habe aber inzwischen alle Möglichkeiten durch. Auch wiederholte Deinstall und Reinstall führten nicht zum Erfolg. Beschreibungen zur MQTT-Welt geht nicht auf dieses Adapter-spezifische Thema ein, nirgendwo. Handelt es sich um einen Bedienungs- oder Verständnisfehler bei mir? Ich bin quasi mit meinem Latein mittels Selbstrecherche am Ende. Kann mich bitte jemand unterstützen?
                                          Vorab bereits ein dickes Danke an alle die, die bis hierher gelesen haben.

                                          Kersten

                                          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

                                          353

                                          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