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

    • 15. 05. Wartungsarbeiten am ioBroker Forum

    • Monatsrückblick - April 2025

    • Minor js-controller 7.0.7 Update in latest repo

    SONOFF NSPanel mit Lovelace UI

    This topic has been deleted. Only users with topic management privileges can see it.
    • W
      Wuschl @Armilar last edited by Wuschl

      @armilar
      Ja das ist der Alias in der Config

      export const config: Config = {
          panelRecvTopic: 'mqtt.0.tele.NS-Panel-Garage_0E3BFC.RESULT',       // anpassen
          panelSendTopic: 'mqtt.0.cmnd.NS-Panel-Garage_0E3BFC.CustomSend',   // anpassen
          firstScreensaverEntity: { ScreensaverEntity: 'accuweather.0.Hourly.h0.PrecipitationProbability', ScreensaverEntityIcon: 'weather-pouring', ScreensaverEntityText: 'Regen', ScreensaverEntityUnitText: '%', ScreensaverEntityIconColor: {'val_min': 0, 'val_max': 100} },
          secondScreensaverEntity: { ScreensaverEntity: 'accuweather.0.Current.WindSpeed', ScreensaverEntityIcon: 'weather-windy', ScreensaverEntityText: "Wind", ScreensaverEntityUnitText: 'km/h', ScreensaverEntityIconColor: {'val_min': 0, 'val_max': 120} },
          thirdScreensaverEntity: { ScreensaverEntity: "shelly.1.SHSW-1#E098068D8BFC#1.ext.temperatureC1", ScreensaverEntityIcon: "pool-thermometer", ScreensaverEntityText: "Pool", ScreensaverEntityUnitText: "°C", ScreensaverEntityIconColor: {'val_min': 0, 'val_max': 40} },
          fourthScreensaverEntity: { ScreensaverEntity: 'accuweather.0.Current.RelativeHumidity', ScreensaverEntityIcon: 'water-percent', ScreensaverEntityText: 'Luft', ScreensaverEntityUnitText: '%', ScreensaverEntityIconColor: {'val_min': 0, 'val_max': 100, 'val_best': 65} },
          alternativeScreensaverLayout: false,
          autoWeatherColorScreensaverLayout: true,
          mrIcon1ScreensaverEntity: { ScreensaverEntity: 'mqtt.0.stat.NS-Panel-Garage_0E3BFC.POWER1', ScreensaverEntityIcon: 'lightbulb', ScreensaverEntityOnColor: On, ScreensaverEntityOffColor: HMIOff  },
          mrIcon2ScreensaverEntity: { ScreensaverEntity: 'mqtt.0.stat.NS-Panel-Garage_0E3BFC.POWER2', ScreensaverEntityIcon: 'lightbulb', ScreensaverEntityOnColor: On, ScreensaverEntityOffColor: HMIOff  },
          timeoutScreensaver: 20,
          dimmode: 20,
          active: 100, //Standard-Brightness TFT
          screenSaverDoubleClick: true,
          locale: 'de-DE',                                // en-US, de-DE, nl-NL, da-DK, es-ES, fr-FR, it-IT, ru-RU, etc.
          timeFormat: '%H:%M',                            // currently not used 
          dateFormat: '%A, %d. %B %Y',                    // currently not used 
          weatherEntity: 'alias.0.Wetter.Gerät_1',                // Dieser Alias muss erstellt werden, damit die 4 kleineren Icons (Wetter oder DP) angezeigt werden können --> oder autoCreateAlias auf true
          defaultOffColor: Off,
          defaultOnColor: On,
          defaultColor: Off,
          defaultBackgroundColor: Black,    //New Parameter
          temperatureUnit: '°C',
      

      Bei einem Doppelklick springt das Display in die Card, erst wenn der Screensaver wieder kommt, dann stimmt die Temperatur. bei einem Klick passiert nichts.

      Oh, zu spät gelesen😊

      R 1 Reply Last reply Reply Quote 0
      • R
        raspido @Wuschl last edited by

        Hey Leute,

        ich hoffe, wenn es zu Problemen kommt, kann man sich auch hier melden, oder gibt es dafür ein eigenen Bereich?

        ich habe es schon vor einer weile versucht und nun gerade nochmals erneut von vorne. Ich habe alles eins nach dem anderen so ausgeführt, wie in der Anleitung beschrieben, nur erhalte ich bei den Scripten eine Riesenfehlermeldung und der Kreis dreht sich auf dem Bildschirm von Sonoff immer weiter mit dem Hinweis "Wating for content ... Thes is taking than usual, please check your backend configuration"

        Und die Fehlermeldung im ioBroker, die kommt wenn ich versuche das Script zu starten sieht wie folgt aus:

        javascript.0 (658) script.js.common.NSPanels.Buero: TypeScript compilation failed: await createAliasAsync(config.weatherEntity + '.ICON', 'accuweather.0.Current.WeatherIcon', true, <iobJS.StateCommon>{ type: 'number', role: 'value', name: 'ICON' }); ^ ERROR: Cannot find name 'createAliasAsync'. await createAliasAsync(config.weatherEntity + '.TEMP', 'accuweather.0.Current.Temperature', true, <iobJS.StateCommon>{ type: 'number', role: 'value.temperature', name: 'TEMP' }); ^ ERROR: Cannot find name 'createAliasAsync'. await createAliasAsync(config.weatherEntity + '.TEMP_MIN', 'accuweather.0.Daily.Day1.Temperature.Minimum', true, <iobJS.StateCommon>{ type: 'number', role: 'value.temperature.forecast.0', name: 'TEMP_MIN' }); ^ ERROR: Cannot find name 'createAliasAsync'. await createAliasAsync(config.weatherEntity + '.TEMP_MAX', 'accuweather.0.Daily.Day1.Temperature.Maximum', true, <iobJS.StateCommon>{ type: 'number', role: 'value.temperature.max.forecast.0', name: 'TEMP_MAX' }); ^ ERROR: Cannot find name 'createAliasAsync'. await createAliasAsync(AliasPath + 'Dimmode.brightnessDay.ACTUAL', NSPanel_Path + 'NSPanel_Dimmode_brightnessDay', true, <iobJS.StateCommon>{ type: 'number', role: 'value', name: 'ACTUAL' }); ^ ERROR: Cannot find name 'createAliasAsync'. await createAliasAsync(AliasPath + 'Dimmode.brightnessDay.SET', NSPanel_Path + 'NSPanel_Dimmode_brightnessDay', true, <iobJS.StateCommon>{ type: 'number', role: 'level', name: 'SET' }); ^ ERROR: Cannot find name 'createAliasAsync'. await createAliasAsync(AliasPath + 'Dimmode.hourDay.ACTUAL', NSPanel_Path + 'NSPanel_Dimmode_hourDay', true, <iobJS.StateCommon>{ type: 'number', role: 'value', name: 'ACTUAL' }); ^ ERROR: Cannot find name 'createAliasAsync'. await createAliasAsync(AliasPath + 'Dimmode.hourDay.SET', NSPanel_Path + 'NSPanel_Dimmode_hourDay', true, <iobJS.StateCommon>{ type: 'number', role: 'level', name: 'SET' }); ^ ERROR: Cannot find name 'createAliasAsync'. await createAliasAsync(AliasPath + 'Dimmode.brightnessNight.ACTUAL', NSPanel_Path + 'NSPanel_Dimmode_brightnessNight', true, <iobJS.StateCommon>{ type: 'number', role: 'value', name: 'ACTUAL' }); ^ ERROR: Cannot find name 'createAliasAsync'. await createAliasAsync(AliasPath + 'Dimmode.brightnessNight.SET', NSPanel_Path + 'NSPanel_Dimmode_brightnessNight', true, <iobJS.StateCommon>{ type: 'number', role: 'level', name: 'SET' }); ^ ERROR: Cannot find name 'createAliasAsync'. await createAliasAsync(AliasPath + 'Dimmode.hourNight.ACTUAL', NSPanel_Path + 'NSPanel_Dimmode_hourNight', true, <iobJS.StateCommon>{ type: 'number', role: 'value', name: 'ACTUAL' }); ^ ERROR: Cannot find name 'createAliasAsync'. await createAliasAsync(AliasPath + 'Dimmode.hourNight.SET', NSPanel_Path + 'NSPanel_Dimmode_hourNight', true, <iobJS.StateCommon>{ type: 'number', role: 'level', name: 'SET' }); ^ ERROR: Cannot find name 'createAliasAsync'. await createAliasAsync(AliasPath + 'autoUpdate.ACTUAL', NSPanel_Path + 'NSPanel_autoUpdate', true, <iobJS.StateCommon>{ type: 'boolean', role: 'switch', name: 'ACTUAL' }); ^ ERROR: Cannot find name 'createAliasAsync'. await createAliasAsync(AliasPath + 'autoUpdate.SET', NSPanel_Path + 'NSPanel_autoUpdate', true, <iobJS.StateCommon>{ type: 'boolean', role: 'switch', name: 'SET' }); ^ ERROR: Cannot find name 'createAliasAsync'. await createAliasAsync(AliasPath + 'ipAddress.ACTUAL', NSPanel_Path + 'NSPanel_ipAddress', true, <iobJS.StateCommon>{ type: 'string', role: 'state', name: 'ACTUAL' }); ^ ERROR: Cannot find name 'createAliasAsync'. await createAliasAsync(AliasPath + 'Display.BerryDriver.ACTUAL', NSPanel_Path + 'Berry_Driver.currentVersion', true, <iobJS.StateCommon>{ type: 'string', role: 'state', name: 'ACTUAL' }); ^ ERROR: Cannot find name 'createAliasAsync'. await createAliasAsync(AliasPath + 'Tasmota.Uptime.ACTUAL', NSPanel_Path + 'Tasmota.Uptime', true, <iobJS.StateCommon>{ type: 'string', role: 'state', name: 'ACTUAL' }); ^ ERROR: Cannot find name 'createAliasAsync'. await createAliasAsync(AliasPath + 'Tasmota.Version.ACTUAL', NSPanel_Path + 'Tasmota.Version', true, <iobJS.StateCommon>{ type: 'string', role: 'state', name: 'ACTUAL' }); ^ ERROR: Cannot find name 'createAliasAsync'. await createAliasAsync(AliasPath + 'Tasmota.Hardware.ACTUAL', NSPanel_Path + 'Tasmota.Hardware', true, <iobJS.StateCommon>{ type: 'string', role: 'state', name: 'ACTUAL' }); ^ ERROR: Cannot find name 'createAliasAsync'. await createAliasAsync(AliasPath + 'Tasmota.Wifi.AP.ACTUAL', NSPanel_Path + 'Tasmota.Wifi.AP', true, <iobJS.StateCommon>{ type: 'number', role: 'state', name: 'ACTUAL' }); ^ ERROR: Cannot find name 'createAliasAsync'. await createAliasAsync(AliasPath + 'Tasmota.Wifi.SSId.ACTUAL', NSPanel_Path + 'Tasmota.Wifi.SSId', true, <iobJS.StateCommon>{ type: 'string', role: 'state', name: 'ACTUAL' }); ^ ERROR: Cannot find name 'createAliasAsync'. await createAliasAsync(AliasPath + 'Tasmota.Wifi.BSSId.ACTUAL', NSPanel_Path + 'Tasmota.Wifi.BSSId', true, <iobJS.StateCommon>{ type: 'string', role: 'state', name: 'ACTUAL' }); ^ ERROR: Cannot find name 'createAliasAsync'. await createAliasAsync(AliasPath + 'Tasmota.Wifi.Channel.ACTUAL', NSPanel_Path + 'Tasmota.Wifi.Channel', true, <iobJS.StateCommon>{ type: 'number', role: 'state', name: 'ACTUAL' }); ^ ERROR: Cannot find name 'createAliasAsync'. await createAliasAsync(AliasPath + 'Tasmota.Wifi.Mode.ACTUAL', NSPanel_Path + 'Tasmota.Wifi.Mode', true, <iobJS.StateCommon>{ type: 'string', role: 'state', name: 'ACTUAL' }); ^ ERROR: Cannot find name 'createAliasAsync'. await createAliasAsync(AliasPath + 'Tasmota.Wifi.RSSI.ACTUAL', NSPanel_Path + 'Tasmota.Wifi.RSSI', true, <iobJS.StateCommon>{ type: 'number', role: 'state', name: 'ACTUAL' }); ^ ERROR: Cannot find name 'createAliasAsync'. await createAliasAsync(AliasPath + 'Tasmota.Wifi.Signal.ACTUAL', NSPanel_Path + 'Tasmota.Wifi.Signal', true, <iobJS.StateCommon>{ type: 'number', role: 'state', name: 'ACTUAL' }); ^ ERROR: Cannot find name 'createAliasAsync'. await createAliasAsync(AliasPath + 'Display.TFTVersion.ACTUAL', NSPanel_Path + 'Display_Firmware.currentVersion', true, <iobJS.StateCommon>{ type: 'string', role: 'state', name: 'ACTUAL' }); ^ ERROR: Cannot find name 'createAliasAsync'. await createAliasAsync(AliasPath + 'Display.Model.ACTUAL', NSPanel_Path + 'NSPanel_Version', true, <iobJS.StateCommon>{ type: 'string', role: 'state', name: 'ACTUAL' }); ^ ERROR: Cannot find name 'createAliasAsync'. await createAliasAsync(id + '.ACTUAL', dpPath + '.Player.volume', true, <iobJS.StateCommon>{ type: 'number', role: 'value.volume', name: 'ACTUAL' }); ^ ERROR: Cannot find name 'createAliasAsync'. await createAliasAsync(id + '.ALBUM', dpPath + '.Player.currentAlbum', true, <iobJS.StateCommon>{ type: 'string', role: 'media.album', name: 'ALBUM' }); ^ ERROR: Cannot find name 'createAliasAsync'. await createAliasAsync(id + '.ARTIST', dpPath + '.Player.currentArtist', true, <iobJS.StateCommon>{ type: 'string', role: 'media.artist', name: 'ARTIST' }); ^ ERROR: Cannot find name 'createAliasAsync'. await createAliasAsync(id + '.TITLE', dpPath + '.Player.currentTitle', true, <iobJS.StateCommon>{ type: 'string', role: 'media.title', name: 'TITLE' }); ^ ERROR: Cannot find name 'createAliasAsync'. await createAliasAsync(id + '.NEXT', dpPath + '.Player.controlNext', true, <iobJS.StateCommon>{ type: 'boolean', role: 'button.next', name: 'NEXT' }); ^ ERROR: Cannot find name 'createAliasAsync'. await createAliasAsync(id + '.PREV', dpPath + '.Player.controlPrevious', true, <iobJS.StateCommon>{ type: 'boolean', role: 'button.prev', name: 'PREV' }); ^ ERROR: Cannot find name 'createAliasAsync'. await createAliasAsync(id + '.PLAY', dpPath + '.Player.controlPlay', true, <iobJS.StateCommon>{ type: 'boolean', role: 'button.play', name: 'PLAY' }); ^ ERROR: Cannot find name 'createAliasAsync'. await createAliasAsync(id + '.PAUSE', dpPath + '.Player.controlPause', true, <iobJS.StateCommon>{ type: 'boolean', role: 'button.pause', name: 'PAUSE' }); ^ ERROR: Cannot find name 'createAliasAsync'. await createAliasAsync(id + '.STOP', dpPath + '.Commands.deviceStop', true, <iobJS.StateCommon>{ type: 'boolean', role: 'button.stop', name: 'STOP' }); ^ ERROR: Cannot find name 'createAliasAsync'. await createAliasAsync(id + '.STATE', dpPath + '.Player.currentState', true, <iobJS.StateCommon>{ type: 'boolean', role: 'media.state', name: 'STATE' }); ^ ERROR: Cannot find name 'createAliasAsync'. await createAliasAsync(id + '.VOLUME', dpPath + '.Player.volume', true, <iobJS.StateCommon>{ type: 'number', role: 'level.volume', name: 'VOLUME' }); ^ ERROR: Cannot find name 'createAliasAsync'. await createAliasAsync(id + '.ACTUAL', dpPath + 'player.volume', true, <iobJS.StateCommon>{ type: 'number', role: 'value.volume', name: 'ACTUAL' }); ^ ERROR: Cannot find name 'createAliasAsync'. await createAliasAsync(id + '.ALBUM', dpPath + 'player.album', true, <iobJS.StateCommon>{ type: 'string', role: 'media.album', name: 'ALBUM' }); ^ ERROR: Cannot find name 'createAliasAsync'. await createAliasAsync(id + '.ARTIST', dpPath + 'player.artistName', true, <iobJS.StateCommon>{ type: 'string', role: 'media.artist', name: 'ARTIST' }); ^ ERROR: Cannot find name 'createAliasAsync'. await createAliasAsync(id + '.TITLE', dpPath + 'player.trackName', true, <iobJS.StateCommon>{ type: 'string', role: 'media.title', name: 'TITLE' }); ^ ERROR: Cannot find name 'createAliasAsync'. await createAliasAsync(id + '.CONTEXT_DESCRIPTION', dpPath + 'player.contextDescription', true, <iobJS.StateCommon>{ type: 'string', role: 'media.station', name: 'CONTEXT_DESCRIPTION' }); ^ ERROR: Cannot find name 'createAliasAsync'. await createAliasAsync(id + '.NEXT', dpPath + 'player.skipPlus', true, <iobJS.StateCommon>{ type: 'boolean', role: 'button.next', name: 'NEXT' }); ^ ERROR: Cannot find name 'createAliasAsync'. await createAliasAsync(id + '.PREV', dpPath + 'player.skipMinus', true, <iobJS.StateCommon>{ type: 'boolean', role: 'button.prev', name: 'PREV' }); ^ ERROR: Cannot find name 'createAliasAsync'. await createAliasAsync(id + '.PLAY', dpPath + 'player.play', true, <iobJS.StateCommon>{ type: 'boolean', role: 'button.play', name: 'PLAY' }); ^ ERROR: Cannot find name 'createAliasAsync'. await createAliasAsync(id + '.PAUSE', dpPath + 'player.pause', true, <iobJS.StateCommon>{ type: 'boolean', role: 'button.pause', name: 'PAUSE' }); ^ ERROR: Cannot find name 'createAliasAsync'. await createAliasAsync(id + '.STOP', dpPath + 'player.pause', true, <iobJS.StateCommon>{ type: 'boolean', role: 'button.stop', name: 'STOP' }); ^ ERROR: Cannot find name 'createAliasAsync'. await createAliasAsync(id + '.STATE', dpPath + 'player.isPlaying', true, <iobJS.StateCommon>{ type: 'boolean', role: 'media.state', name: 'STATE' }); ^ ERROR: Cannot find name 'createAliasAsync'. await createAliasAsync(id + '.VOLUME', dpPath + 'player.volume', true, <iobJS.StateCommon>{ type: 'number', role: 'level.volume', name: 'VOLUME' }); ^ ERROR: Cannot find name 'createAliasAsync'. await createAliasAsync(id + '.ACTUAL', dpPath + '.volume', true, <iobJS.StateCommon>{ type: 'number', role: 'value.volume', name: 'ACTUAL' }); ^ ERROR: Cannot find name 'createAliasAsync'. await createAliasAsync(id + '.ALBUM', dpPath + '.current_album', true, <iobJS.StateCommon>{ type: 'string', role: 'media.album', name: 'ALBUM' }); ^ ERROR: Cannot find name 'createAliasAsync'. await createAliasAsync(id + '.ARTIST', dpPath + '.current_artist', true, <iobJS.StateCommon>{ type: 'string', role: 'media.artist', name: 'ARTIST' }); ^ ERROR: Cannot find name 'createAliasAsync'. await createAliasAsync(id + '.TITLE', dpPath + '.current_title', true, <iobJS.StateCommon>{ type: 'string', role: 'media.title', name: 'TITLE' }); ^ ERROR: Cannot find name 'createAliasAsync'. await createAliasAsync(id + '.CONTEXT_DESCRIPTION', dpPath + '.current_station', true, <iobJS.StateCommon>{ type: 'string', role: 'media.station', name: 'CONTEXT_DESCRIPTION' }); ^ ERROR: Cannot find name 'createAliasAsync'. await createAliasAsync(id + '.NEXT', dpPath + '.next', true, <iobJS.StateCommon>{ type: 'boolean', role: 'button.next', name: 'NEXT' }); ^ ERROR: Cannot find name 'createAliasAsync'. await createAliasAsync(id + '.PREV', dpPath + '.prev', true, <iobJS.StateCommon>{ type: 'boolean', role: 'button.prev', name: 'PREV' }); ^ ERROR: Cannot find name 'createAliasAsync'. await createAliasAsync(id + '.PLAY', dpPath + '.play', true, <iobJS.StateCommon>{ type: 'boolean', role: 'button.play', name: 'PLAY' }); ^ ERROR: Cannot find name 'createAliasAsync'. await createAliasAsync(id + '.PAUSE', dpPath + '.pause', true, <iobJS.StateCommon>{ type: 'boolean', role: 'button.pause', name: 'PAUSE' }); ^ ERROR: Cannot find name 'createAliasAsync'. await createAliasAsync(id + '.STOP', dpPath + '.stop', true, <iobJS.StateCommon>{ type: 'boolean', role: 'button.stop', name: 'STOP' }); ^ ERROR: Cannot find name 'createAliasAsync'. await createAliasAsync(id + '.STATE', dpPath + '.state_simple', true, <iobJS.StateCommon>{ type: 'boolean', role: 'media.state', name: 'STATE' }); ^ ERROR: Cannot find name 'createAliasAsync'. await createAliasAsync(id + '.VOLUME', dpPath + '.volume', true, <iobJS.StateCommon>{ type: 'number', role: 'level.volume', name: 'VOLUME' }); ^ ERROR: Cannot find name 'createAliasAsync'. await createAliasAsync(AliasPath + 'Sensor.ANALOG.Temperature.ACTUAL', NSPanel_Path + 'Sensor.ANALOG.Temperature', true, <iobJS.StateCommon>{ type: 'number', 'unit': '°C' }); ^ ERROR: Cannot find name 'createAliasAsync'. await createAliasAsync(AliasPath + 'Sensor.ESP32.Temperature.ACTUAL', NSPanel_Path + 'Sensor.ESP32.Temperature', true, <iobJS.StateCommon>{ type: 'number', 'unit': '°C' }); ^ ERROR: Cannot find name 'createAliasAsync'.
        

        Also ich bin noch dabei, den Bildschirm überhaupt in Betrieb zu nehmen, noch ohne große Anpassungen an meinde Wünsche. Und die weiteren Datenpunkt in "0_userdata" werden auch nicht erzeugt. zumindest ist da bislang nichts passiert.

        Ich hoffe man kann mir irgendwie helfen. Den so wie es aktuell ist, ist es nicht sonderlich nutzvoll um das Display für ein Sinnvollen Einsatz einzuplanen.

        Michael

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

          @raspido

          Sieht auf den ersten Blick ja einfach aus...

          Installiere mal den JS-Adapter v6.1.3 oder v6.1.4. Falls der jetzt imer noch Beta sein sollte (Kein Problem - funktioniert super), dann Repository in den ioBroker-Einstellungen (oben) für die Installation kurz auf "beta" oder "latest" umstellen, dann installieren und wieder zurück auf "stable".

          850ab532-2ab6-4177-a193-398fb1a4b7ba-image.png

          Wenn ich das richtig interpretiere mit deinen Fehlern, sollten danach alle weg sein.

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

            @kentrath

            habe es in die DEV eingefügt. Kommt mit der nächsten Version:

            f984a76c-1bbf-42c4-a3b6-4432e0b411f0-image.png

            1 Reply Last reply Reply Quote 2
            • JLeg
              JLeg @Vumer last edited by

              @vumer sagte in SONOFF NSPanel mit Lovelace UI:

              @armilar sagte in SONOFF NSPanel mit Lovelace UI:

              Teufel/Raumfeld-Datenpunkte wären übrigens aus mal sehr interessant zu sehen...

              Gibt es nur für Node-RED

              89ec8089-37ab-41b7-aca4-8197914843ee-grafik.png
              Kein Entwickler hat diese geile Geräte 😉

              Woha, ein Raumfelder! 🙂 Ich hab bislang immer bissel damit gehadert, dass ich Raumfeld nicht in den iobroker kriege - Node red hatte ich gar nicht auf dem Schirm…
              Wie läuft das dann - Node red bzw. die Flows erzeugen/lesen dann Datenpunkte, über die man dann RF steuern kann?
              Und würdest du mir deine RF-Flows exportieren können? ☺️

              1 Reply Last reply Reply Quote 0
              • Vumer
                Vumer last edited by

                @jleg
                https://forum.iobroker.net/topic/1980/wunsch-teufel-raumfeld/24?_=1670964257775


                [
                {
                "id": "ad9e544aea47e011",
                "type": "tab",
                "label": "CINEBAR LUX",
                "disabled": false,
                "info": ""
                },
                {
                "id": "8e4d1dc256dcd38e",
                "type": "debug",
                "z": "ad9e544aea47e011",
                "name": "",
                "active": true,
                "tosidebar": true,
                "console": false,
                "tostatus": true,
                "complete": "true",
                "targetType": "full",
                "statusVal": "payload",
                "statusType": "auto",
                "x": 730,
                "y": 40,
                "wires": [],
                "inputLabels": [
                "twst"
                ]
                },
                {
                "id": "c053333814d4da50",
                "type": "raumfeld-room-is-playing-changed",
                "z": "ad9e544aea47e011",
                "raumkernel": "5e9dadeb.7e5a5c",
                "roomNames": "Wohnzimmer",
                "name": "Playing",
                "x": 590,
                "y": 40,
                "wires": [
                [
                "8e4d1dc256dcd38e",
                "53efe580aaba2db5"
                ]
                ]
                },
                {
                "id": "c11452a6d9f0a147",
                "type": "debug",
                "z": "ad9e544aea47e011",
                "name": "",
                "active": true,
                "tosidebar": true,
                "console": false,
                "tostatus": true,
                "complete": "true",
                "targetType": "full",
                "statusVal": "payload",
                "statusType": "auto",
                "x": 730,
                "y": 100,
                "wires": []
                },
                {
                "id": "117b2c1e821867cb",
                "type": "raumfeld-room-mute-changed",
                "z": "ad9e544aea47e011",
                "raumkernel": "5e9dadeb.7e5a5c",
                "roomNames": "Wohnzimmer",
                "name": "Mute",
                "x": 590,
                "y": 100,
                "wires": [
                [
                "c11452a6d9f0a147",
                "5ec0d36f64633e28"
                ]
                ]
                },
                {
                "id": "391c055551cad852",
                "type": "raumfeld-room-title-changed",
                "z": "ad9e544aea47e011",
                "raumkernel": "5e9dadeb.7e5a5c",
                "roomNames": "Wohnzimmer",
                "name": "Title",
                "x": 70,
                "y": 40,
                "wires": [
                [
                "d90542ca664e772c",
                "b2272f68dc2f73e7"
                ]
                ]
                },
                {
                "id": "26d2c6a02cc6582a",
                "type": "raumfeld-room-volume-changed",
                "z": "ad9e544aea47e011",
                "raumkernel": "5e9dadeb.7e5a5c",
                "roomNames": "Wohnzimmer",
                "mute": true,
                "name": "Volume",
                "x": 70,
                "y": 100,
                "wires": [
                [
                "26095746aad8ad53",
                "dc6694042bb53cf7"
                ]
                ]
                },
                {
                "id": "26095746aad8ad53",
                "type": "debug",
                "z": "ad9e544aea47e011",
                "name": "",
                "active": true,
                "tosidebar": true,
                "console": false,
                "tostatus": true,
                "complete": "true",
                "targetType": "full",
                "statusVal": "payload",
                "statusType": "msg",
                "x": 210,
                "y": 100,
                "wires": []
                },
                {
                "id": "d90542ca664e772c",
                "type": "debug",
                "z": "ad9e544aea47e011",
                "name": "",
                "active": true,
                "tosidebar": true,
                "console": false,
                "tostatus": true,
                "complete": "true",
                "targetType": "full",
                "statusVal": "payload",
                "statusType": "auto",
                "x": 210,
                "y": 40,
                "wires": []
                },
                {
                "id": "96caf5ee83780a27",
                "type": "inject",
                "z": "ad9e544aea47e011",
                "name": "V Up",
                "props": [
                {
                "p": "payload"
                },
                {
                "p": "topic",
                "vt": "str"
                }
                ],
                "repeat": "",
                "crontab": "",
                "once": false,
                "onceDelay": 0.1,
                "topic": "",
                "payload": "1",
                "payloadType": "str",
                "x": 410,
                "y": 240,
                "wires": [
                [
                "638d2ef9e79d6ab8"
                ]
                ]
                },
                {
                "id": "6a253345239dcb12",
                "type": "inject",
                "z": "ad9e544aea47e011",
                "name": "V Down",
                "props": [
                {
                "p": "payload"
                },
                {
                "p": "topic",
                "vt": "str"
                }
                ],
                "repeat": "",
                "crontab": "",
                "once": false,
                "onceDelay": 0.1,
                "topic": "",
                "payload": "1",
                "payloadType": "str",
                "x": 90,
                "y": 240,
                "wires": [
                [
                "28d6075c1eeee840"
                ]
                ]
                },
                {
                "id": "638d2ef9e79d6ab8",
                "type": "raumfeld-room-set-volume",
                "z": "ad9e544aea47e011",
                "raumkernel": "5e9dadeb.7e5a5c",
                "roomName": "Wohnzimmer",
                "volume": "1",
                "relative": true,
                "unmute": true,
                "name": "V Up",
                "scope": "ROOM",
                "x": 570,
                "y": 300,
                "wires": []
                },
                {
                "id": "28d6075c1eeee840",
                "type": "raumfeld-room-set-volume",
                "z": "ad9e544aea47e011",
                "raumkernel": "5e9dadeb.7e5a5c",
                "roomName": "Wohnzimmer",
                "volume": "-1",
                "relative": true,
                "unmute": true,
                "name": "V Down",
                "scope": "ROOM",
                "x": 240,
                "y": 300,
                "wires": []
                },
                {
                "id": "b293a99e1946dd8b",
                "type": "raumfeld-room-action",
                "z": "ad9e544aea47e011",
                "raumkernel": "5e9dadeb.7e5a5c",
                "roomName": "Wohnzimmer",
                "action": "play",
                "name": "Play",
                "x": 250,
                "y": 560,
                "wires": [],
                "icon": "font-awesome/fa-play"
                },
                {
                "id": "7845ec3d2e4fe026",
                "type": "raumfeld-room-set-mute",
                "z": "ad9e544aea47e011",
                "raumkernel": "5e9dadeb.7e5a5c",
                "roomName": "Wohnzimmer",
                "mute": "true",
                "name": "Mute",
                "x": 570,
                "y": 380,
                "wires": []
                },
                {
                "id": "2c9bafd7969e7b1a",
                "type": "inject",
                "z": "ad9e544aea47e011",
                "name": "Stop",
                "props": [
                {
                "p": "payload"
                },
                {
                "p": "topic",
                "vt": "str"
                }
                ],
                "repeat": "",
                "crontab": "",
                "once": false,
                "onceDelay": 0.1,
                "topic": "",
                "payload": "1",
                "payloadType": "str",
                "x": 770,
                "y": 500,
                "wires": [
                [
                "0a3b4436dbfb2afd"
                ]
                ]
                },
                {
                "id": "6998ce79a8a88519",
                "type": "inject",
                "z": "ad9e544aea47e011",
                "name": "Radio GT",
                "props": [
                {
                "p": "payload"
                },
                {
                "p": "topic",
                "vt": "str"
                }
                ],
                "repeat": "",
                "crontab": "",
                "once": false,
                "onceDelay": 0.1,
                "topic": "",
                "payload": "1",
                "payloadType": "num",
                "x": 400,
                "y": 720,
                "wires": [
                [
                "edebc89dc635b06a"
                ]
                ]
                },
                {
                "id": "1f7201a8a8eb51dd",
                "type": "inject",
                "z": "ad9e544aea47e011",
                "name": "Pause",
                "props": [
                {
                "p": "payload"
                },
                {
                "p": "topic",
                "vt": "str"
                }
                ],
                "repeat": "",
                "crontab": "",
                "once": false,
                "onceDelay": 0.1,
                "topic": "",
                "payload": "1",
                "payloadType": "str",
                "x": 450,
                "y": 500,
                "wires": [
                [
                "40385ed7115ba36d"
                ]
                ]
                },
                {
                "id": "45c3239af23404fc",
                "type": "raumfeld-room-set-mute",
                "z": "ad9e544aea47e011",
                "raumkernel": "5e9dadeb.7e5a5c",
                "roomName": "Wohnzimmer",
                "mute": "false",
                "name": "Mute Aus",
                "x": 240,
                "y": 380,
                "wires": []
                },
                {
                "id": "4a1f8688904f3878",
                "type": "inject",
                "z": "ad9e544aea47e011",
                "name": "Play",
                "props": [
                {
                "p": "payload"
                },
                {
                "p": "topic",
                "vt": "str"
                }
                ],
                "repeat": "",
                "crontab": "",
                "once": false,
                "onceDelay": 0.1,
                "topic": "",
                "payload": "1",
                "payloadType": "str",
                "x": 90,
                "y": 500,
                "wires": [
                [
                "b293a99e1946dd8b"
                ]
                ]
                },
                {
                "id": "ed99afc236af40b0",
                "type": "inject",
                "z": "ad9e544aea47e011",
                "name": "Previous",
                "props": [
                {
                "p": "payload"
                },
                {
                "p": "topic",
                "vt": "str"
                }
                ],
                "repeat": "",
                "crontab": "",
                "once": false,
                "onceDelay": 0.1,
                "topic": "",
                "payload": "1",
                "payloadType": "str",
                "x": 100,
                "y": 600,
                "wires": [
                [
                "bce70de5b07e2959"
                ]
                ]
                },
                {
                "id": "3f6ba3037a57a6ee",
                "type": "inject",
                "z": "ad9e544aea47e011",
                "name": "Next",
                "props": [
                {
                "p": "payload"
                },
                {
                "p": "topic",
                "vt": "str"
                }
                ],
                "repeat": "",
                "crontab": "",
                "once": false,
                "onceDelay": 0.1,
                "topic": "",
                "payload": "1",
                "payloadType": "str",
                "x": 450,
                "y": 620,
                "wires": [
                [
                "c1766f42e54e596b"
                ]
                ]
                },
                {
                "id": "bce70de5b07e2959",
                "type": "raumfeld-room-action",
                "z": "ad9e544aea47e011",
                "raumkernel": "5e9dadeb.7e5a5c",
                "roomName": "Wohnzimmer",
                "action": "prev",
                "name": "Previous",
                "x": 260,
                "y": 660,
                "wires": []
                },
                {
                "id": "c1766f42e54e596b",
                "type": "raumfeld-room-action",
                "z": "ad9e544aea47e011",
                "raumkernel": "5e9dadeb.7e5a5c",
                "roomName": "Wohnzimmer",
                "action": "next",
                "name": "Next",
                "x": 590,
                "y": 660,
                "wires": []
                },
                {
                "id": "0a3b4436dbfb2afd",
                "type": "raumfeld-room-action",
                "z": "ad9e544aea47e011",
                "raumkernel": "5e9dadeb.7e5a5c",
                "roomName": "Wohnzimmer",
                "action": "stop",
                "name": "Stop",
                "x": 910,
                "y": 560,
                "wires": []
                },
                {
                "id": "40385ed7115ba36d",
                "type": "raumfeld-room-action",
                "z": "ad9e544aea47e011",
                "raumkernel": "5e9dadeb.7e5a5c",
                "roomName": "Wohnzimmer",
                "action": "pause",
                "name": "Pause",
                "x": 590,
                "y": 560,
                "wires": []
                },
                {
                "id": "edebc89dc635b06a",
                "type": "raumfeld-room-load-favorite",
                "z": "ad9e544aea47e011",
                "raumkernel": "5e9dadeb.7e5a5c",
                "roomNames": "Wohnzimmer",
                "groupIfPlaying": false,
                "favorite": "Radio Gütersloh",
                "volumes": "20",
                "overrideVolume": false,
                "name": "Radio GT",
                "x": 580,
                "y": 760,
                "wires": []
                },
                {
                "id": "b2272f68dc2f73e7",
                "type": "ioBroker out",
                "z": "ad9e544aea47e011",
                "name": "Info Title",
                "topic": "0_userdata.0.Teufel_Multi_NR.LUX.Info_Title",
                "ack": "true",
                "autoCreate": "false",
                "stateName": "",
                "role": "",
                "payloadType": "",
                "readonly": "",
                "stateUnit": "",
                "stateMin": "",
                "stateMax": "",
                "x": 400,
                "y": 40,
                "wires": []
                },
                {
                "id": "ea5fb28eb9c71d0a",
                "type": "ioBroker in",
                "z": "ad9e544aea47e011",
                "name": "Pause",
                "topic": "0_userdata.0.Teufel_Multi_NR.LUX.Pause",
                "payloadType": "value",
                "onlyack": "",
                "func": "all",
                "gap": "",
                "fireOnStart": "false",
                "x": 450,
                "y": 560,
                "wires": [
                [
                "40385ed7115ba36d"
                ]
                ]
                },
                {
                "id": "426d7382f4770b99",
                "type": "ioBroker in",
                "z": "ad9e544aea47e011",
                "name": "Play",
                "topic": "0_userdata.0.Teufel_Multi_NR.LUX.Play",
                "payloadType": "value",
                "onlyack": "",
                "func": "all",
                "gap": "",
                "fireOnStart": "false",
                "x": 90,
                "y": 560,
                "wires": [
                [
                "b293a99e1946dd8b"
                ]
                ]
                },
                {
                "id": "1e1f9d1ed976317d",
                "type": "ioBroker in",
                "z": "ad9e544aea47e011",
                "name": "Next",
                "topic": "0_userdata.0.Teufel_Multi_NR.LUX.Next",
                "payloadType": "value",
                "onlyack": "",
                "func": "all",
                "gap": "",
                "fireOnStart": "false",
                "x": 450,
                "y": 660,
                "wires": [
                [
                "c1766f42e54e596b"
                ]
                ]
                },
                {
                "id": "5fc4bcfd66b05d8c",
                "type": "ioBroker in",
                "z": "ad9e544aea47e011",
                "name": "Previous",
                "topic": "0_userdata.0.Teufel_Multi_NR.LUX.Previous",
                "payloadType": "value",
                "onlyack": "",
                "func": "all",
                "gap": "",
                "fireOnStart": "false",
                "x": 80,
                "y": 660,
                "wires": [
                [
                "bce70de5b07e2959"
                ]
                ]
                },
                {
                "id": "7c91a1b85034c5ce",
                "type": "ioBroker in",
                "z": "ad9e544aea47e011",
                "name": "Stop",
                "topic": "0_userdata.0.Teufel_Multi_NR.LUX.Stop",
                "payloadType": "value",
                "onlyack": "",
                "func": "all",
                "gap": "",
                "fireOnStart": "false",
                "x": 770,
                "y": 560,
                "wires": [
                [
                "0a3b4436dbfb2afd"
                ]
                ]
                },
                {
                "id": "d30c6a0bbbaf1488",
                "type": "ioBroker in",
                "z": "ad9e544aea47e011",
                "name": "V+",
                "topic": "0_userdata.0.Teufel_Multi_NR.LUX.Volume_Up",
                "payloadType": "value",
                "onlyack": "",
                "func": "all",
                "gap": "",
                "fireOnStart": "false",
                "x": 410,
                "y": 300,
                "wires": [
                [
                "638d2ef9e79d6ab8"
                ]
                ]
                },
                {
                "id": "2572214b2f1ce11e",
                "type": "ioBroker in",
                "z": "ad9e544aea47e011",
                "name": "V -",
                "topic": "0_userdata.0.Teufel_Multi_NR.LUX.Volume_Down",
                "payloadType": "value",
                "onlyack": "",
                "func": "all",
                "gap": "",
                "fireOnStart": "false",
                "x": 90,
                "y": 300,
                "wires": [
                [
                "28d6075c1eeee840"
                ]
                ]
                },
                {
                "id": "53efe580aaba2db5",
                "type": "ioBroker out",
                "z": "ad9e544aea47e011",
                "name": "Info Play",
                "topic": "0_userdata.0.Teufel_Multi_NR.LUX.Info_Play",
                "ack": "false",
                "autoCreate": "false",
                "stateName": "",
                "role": "",
                "payloadType": "",
                "readonly": "",
                "stateUnit": "",
                "stateMin": "",
                "stateMax": "",
                "x": 900,
                "y": 40,
                "wires": []
                },
                {
                "id": "5ec0d36f64633e28",
                "type": "ioBroker out",
                "z": "ad9e544aea47e011",
                "name": "Mute",
                "topic": "0_userdata.0.Teufel_Multi_NR.LUX.Info_Mute",
                "ack": "false",
                "autoCreate": "false",
                "stateName": "",
                "role": "",
                "payloadType": "",
                "readonly": "",
                "stateUnit": "",
                "stateMin": "",
                "stateMax": "",
                "x": 890,
                "y": 100,
                "wires": []
                },
                {
                "id": "dc6694042bb53cf7",
                "type": "ioBroker out",
                "z": "ad9e544aea47e011",
                "name": "Volume",
                "topic": "0_userdata.0.Teufel_Multi_NR.LUX.Info_Volume",
                "ack": "true",
                "autoCreate": "false",
                "stateName": "",
                "role": "",
                "payloadType": "",
                "readonly": "",
                "stateUnit": "",
                "stateMin": "",
                "stateMax": "",
                "x": 380,
                "y": 100,
                "wires": []
                },
                {
                "id": "33525004db1753e8",
                "type": "inject",
                "z": "ad9e544aea47e011",
                "name": "WDR2",
                "props": [
                {
                "p": "payload"
                },
                {
                "p": "topic",
                "vt": "str"
                }
                ],
                "repeat": "",
                "crontab": "",
                "once": false,
                "onceDelay": 0.1,
                "topic": "",
                "payload": "1",
                "payloadType": "str",
                "x": 90,
                "y": 720,
                "wires": [
                [
                "96eb628fc6c4d4af"
                ]
                ]
                },
                {
                "id": "5d9df75b32205dfd",
                "type": "ioBroker in",
                "z": "ad9e544aea47e011",
                "name": "WDR2",
                "topic": "0_userdata.0.Teufel_Multi_NR.LUX.Favoriten.WDR2",
                "payloadType": "value",
                "onlyack": "",
                "func": "all",
                "gap": "",
                "fireOnStart": "false",
                "x": 90,
                "y": 760,
                "wires": [
                [
                "96eb628fc6c4d4af"
                ]
                ]
                },
                {
                "id": "96eb628fc6c4d4af",
                "type": "raumfeld-room-load-favorite",
                "z": "ad9e544aea47e011",
                "raumkernel": "5e9dadeb.7e5a5c",
                "roomNames": "Wohnzimmer",
                "groupIfPlaying": false,
                "favorite": "WDR 2 Ostwestfalen-Lippe",
                "volumes": "20",
                "overrideVolume": false,
                "name": "WDR2",
                "x": 250,
                "y": 760,
                "wires": []
                },
                {
                "id": "378122b4c9e8f77a",
                "type": "ioBroker in",
                "z": "ad9e544aea47e011",
                "name": "Radio GT",
                "topic": "0_userdata.0.Teufel_Multi_NR.LUX.Favoriten.Radio_Guetersloh",
                "payloadType": "value",
                "onlyack": "",
                "func": "all",
                "gap": "",
                "fireOnStart": "false",
                "x": 400,
                "y": 760,
                "wires": [
                [
                "edebc89dc635b06a"
                ]
                ]
                },
                {
                "id": "963894a232a6f332",
                "type": "raumfeld-room-set-volume",
                "z": "ad9e544aea47e011",
                "raumkernel": "5e9dadeb.7e5a5c",
                "roomName": "Wohnzimmer",
                "volume": "",
                "relative": false,
                "unmute": false,
                "name": "vol",
                "scope": "ROOM",
                "x": 250,
                "y": 440,
                "wires": []
                },
                {
                "id": "b3b01ebe107f6d90",
                "type": "ioBroker in",
                "z": "ad9e544aea47e011",
                "name": "Volume 0-100",
                "topic": "0_userdata.0.Teufel_Multi_NR.LUX.Volume",
                "payloadType": "value",
                "onlyack": "",
                "func": "all",
                "gap": "",
                "fireOnStart": "false",
                "x": 90,
                "y": 440,
                "wires": [
                [
                "963894a232a6f332"
                ]
                ]
                },
                {
                "id": "a203f4dd77ad29ba",
                "type": "raumfeld-room-title-changed",
                "z": "ad9e544aea47e011",
                "raumkernel": "5e9dadeb.7e5a5c",
                "roomNames": "",
                "name": "Titl all",
                "x": 90,
                "y": 180,
                "wires": [
                [
                "24e5b0149efd9092"
                ]
                ]
                },
                {
                "id": "24e5b0149efd9092",
                "type": "debug",
                "z": "ad9e544aea47e011",
                "name": "Info Titel",
                "active": true,
                "tosidebar": true,
                "console": false,
                "tostatus": true,
                "complete": "true",
                "targetType": "full",
                "statusVal": "payload",
                "statusType": "auto",
                "x": 240,
                "y": 180,
                "wires": []
                },
                {
                "id": "6ccc24b91e56817f",
                "type": "ioBroker in",
                "z": "ad9e544aea47e011",
                "name": "MuteOff",
                "topic": "0_userdata.0.Teufel_Multi_NR.LUX.MuteOff",
                "payloadType": "value",
                "onlyack": "",
                "func": "all",
                "gap": "",
                "fireOnStart": "false",
                "outFormat": "MQTT",
                "x": 90,
                "y": 340,
                "wires": [
                [
                "45c3239af23404fc"
                ]
                ]
                },
                {
                "id": "40662300b0186a0b",
                "type": "ioBroker in",
                "z": "ad9e544aea47e011",
                "name": "Mute",
                "topic": "0_userdata.0.Teufel_Multi_NR.LUX.MuteOn",
                "payloadType": "value",
                "onlyack": "",
                "func": "all",
                "gap": "",
                "fireOnStart": "false",
                "outFormat": "MQTT",
                "x": 410,
                "y": 340,
                "wires": [
                [
                "7845ec3d2e4fe026"
                ]
                ]
                },
                {
                "id": "c1d25828670d210e",
                "type": "inject",
                "z": "ad9e544aea47e011",
                "name": "MuteOff",
                "props": [
                {
                "p": "payload"
                },
                {
                "p": "topic",
                "vt": "str"
                }
                ],
                "repeat": "",
                "crontab": "",
                "once": false,
                "onceDelay": 0.1,
                "topic": "",
                "payload": "",
                "payloadType": "date",
                "x": 90,
                "y": 380,
                "wires": [
                [
                "45c3239af23404fc"
                ]
                ]
                },
                {
                "id": "14b84750d0e9a3fc",
                "type": "inject",
                "z": "ad9e544aea47e011",
                "name": "Mute",
                "props": [
                {
                "p": "payload"
                },
                {
                "p": "topic",
                "vt": "str"
                }
                ],
                "repeat": "",
                "crontab": "",
                "once": false,
                "onceDelay": 0.1,
                "topic": "",
                "payload": "",
                "payloadType": "date",
                "x": 410,
                "y": 380,
                "wires": [
                [
                "7845ec3d2e4fe026"
                ]
                ]
                },
                {
                "id": "5e9dadeb.7e5a5c",
                "type": "raumfeld-raumkernel",
                "raumfeldHost": "192.168.0.54"
                }
                ]

                JLeg 1 Reply Last reply Reply Quote 0
                • JLeg
                  JLeg @Vumer last edited by

                  @vumer 👍 danke!

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

                    caa009f4-0c61-4cf5-a169-70d3933b8940-image.png

                    Da die neue TFT mit den Änderungen für die cardChart und neue cardMedia noch nicht fertig ist, habe ich mich entschlossen noch ein kurzes Update mit ein paar Features als v3.6.0.4 auszukoppeln.

                    Es reicht, wenn der untere Teil des TS-Scriptes ersetzt wird! Also ab:

                    // ________ Ab hier keine Konfiguration mehr _________
                    

                    dde0a7fb-25ab-4b53-bec2-ac271d09fbc1-image.png

                    Neu sind die Sensorwerte in der cardGrid

                    Beispiel PageItems:

                    let SensorGrid: PageGrid =
                    {
                        "type": "cardGrid",
                        "heading": "Sensor Werte",
                        "useColor": true,
                        "subPage": false,
                        "parent": undefined,
                        "items": [
                            <PageItem>{ id: "alias.0.NSPanel_1.TestTemperatur", name: "Außentemp. °C", offColor: MSRed, onColor: MSGreen, useValue: true },
                            <PageItem>{ id: "alias.0.NSPanel_1.TestFeuchtigkeit", name: "Luftfeuchte %", offColor: MSYellow, onColor: MSYellow , useValue: true },
                            <PageItem>{ id: "alias.0.NSPanel_1.Taupunkt", name: "Taupunkt °C", offColor: MSRed, onColor: MSGreen, useValue: true },
                            <PageItem>{ id: "alias.0.NSPanel_1.UV_Index", name: "UV Index", offColor: White , onColor: White, useValue: true },
                            <PageItem>{ id: "alias.0.NSPanel_1.Windstaerke", name: "Windstärke bft", offColor: White , onColor: White, useValue: true },
                            <PageItem>{ id: "alias.0.NSPanel_1.Luftdruck", name: "Luftdruck hPa", offColor: White , onColor: White, useValue: true }
                        ]
                    };
                    

                    Und noch ein paar kleinere Features und Fixes (siehe Changelog)

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

                    Ohne Beispiel-Seiten:
                    https://github.com/joBr99/nspanel-lovelace-ui/blob/main/ioBroker/NsPanelTs_without_Examples.ts

                    S 1 Reply Last reply Reply Quote 3
                    • K
                      Kentrath last edited by

                      @armilar sagte in SONOFF NSPanel mit Lovelace UI:

                      useValue: true

                      Klappt super, allerdings überschneiden sich die Kacheln. Kann ich die Schriftgröße der Werte etwas verringern, damit es "saubere" Übergänge gibt?

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

                        @kentrath

                        Auf die HMI (Nextion TFT) habe ich leider keinen Einfluss. Evtl. kann @joBR99 das beantworten?

                        Kannst du ein aktuelles Bild von den Überschneidungen posten?

                        1 Reply Last reply Reply Quote 0
                        • K
                          Kentrath last edited by

                          PXL_20221214_110623986.jpg

                          Eine Alternative wäre natürlich die 2. Nachkommastelle weg zu runden 🤔

                          Armilar J 2 Replies Last reply Reply Quote 1
                          • Armilar
                            Armilar Most Active Forum Testing @Kentrath last edited by Armilar

                            @kentrath

                            😉

                            Hätte ich jetzt auch gesagt... 😊

                            Es sei denn du kannst die 2 Nachkommastelle auch wirklich fühlen...

                            1 Reply Last reply Reply Quote 1
                            • ravenst0ne
                              ravenst0ne last edited by

                              Ich würde gerne die Helligkeit der Hintergrundbeleuchtung an den Schaltzustand des Lichts (z.B. im Flur), oder auch an einen Rollo (z.B. im Schlafzimmmer) etc. koppeln.
                              Wie ich sehe, gibt es dafür schon Datenpunkte, welche man auch über das Panel einstellen kann (mittlerweile über automatisch erstellte Aliase), allerdings ist immer ein Neustart des Skripts notwendig um die Änderungen zu übernehmen, da die Werte nur in der init eingelesen werden und auch Jobs für Tages- bzw. Nachtzeit erstellt werden. Fände es hier passender einen Datenpunkt für die Helligkeit zu haben und "von außen" entsprechend zu steuern.

                              Wäre das eine relativ einfache Anpassung die man noch in das Skript bringen könnte?

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

                                @ravenst0ne

                                Du meinst die Config-Zeile:

                                active: 100,                        // Standard-Brightness TFT
                                

                                Die ist nicht von außen veränderbar, sondern nur der Dimmode des Screensavers (mittels Datenpunkt auf 100% und zurück in die Dimmode-Einstellung).

                                Wäre aber auch kein Problem, Standard-Brightness und Screensaver-Standard-Brightness über Datenpunkte steuerbar zu machen.

                                Berücksichtige ich für die kommende Version...

                                EDIT:
                                Ebenso die aktuelle Screensaver-Dimmode-Brightness. Wäre dann künftig bei "null" im Eingestellten Auto-Dimmode und bei Werten von 0-100 entsprechend der individuellen Helligkeit.

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

                                  @armilar Ging mir tatsächlich nur um den Dimmmode des Screensavers, hab ich wohl falsch erklärt... Danke dir schonmal! 🙂

                                  Armilar 1 Reply Last reply Reply Quote 0
                                  • S
                                    scribere8146 @Armilar last edited by

                                    @armilar Danke für den Datenpunkt ActivePage....

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

                                      @ravenst0ne

                                      😉 Ich mache trotzdem beide... und sehr gerne...

                                      Die Config teils verschlanken und in Datenpunkte verlagern kann nicht schaden...

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

                                        @scribere8146

                                        Viel Spaß damit 😊

                                        1 Reply Last reply Reply Quote 0
                                        • J
                                          joBr99 @Kentrath last edited by joBr99

                                          @kentrath said in SONOFF NSPanel mit Lovelace UI:

                                          Eine Alternative wäre natürlich die 2. Nachkommastelle weg zu runden

                                          @Armilar

                                          a274b15b-1b48-4a8b-ba41-b9e726c95906-image.png

                                          In das Feld passen maximal 4 Zeichen, bei dem HomeAssistant Backend hab ich das Porblem so gelöst:

                                                          icon_id = entity.state[:4] # substring der ersten 4 zeichen
                                                          if icon_id[-1] == ".":
                                                              icon_id = icon_id[:-1]  # wenn das letze zeichen ein . ist, möchte man das auch eher nicht haben, das schneid ich dann zusätzlich noch weg
                                          
                                          Armilar 1 Reply Last reply Reply Quote 1
                                          • Armilar
                                            Armilar Most Active Forum Testing @joBr99 last edited by Armilar

                                            @jobr99

                                            In das Feld passen maximal 4 Zeichen, bei dem HomeAssistant Backend hab ich das Porblem so gelöst:

                                            Kann im ioBroker ganz elegant über den Alias gemacht werden:

                                            6f650cab-fa08-4ccc-bf08-ad0ca53318bb-image.png

                                            oder

                                            d6bedd9c-a313-4602-b8c4-9abb7f747187-image.png

                                            geht beides auf eine Nachkommastelle

                                            oder mit Math.round(val) auf keine Nachkommastelle

                                            K 1 Reply Last reply Reply Quote 1
                                            • First post
                                              Last post

                                            Support us

                                            ioBroker
                                            Community Adapters
                                            Donate

                                            962
                                            Online

                                            31.6k
                                            Users

                                            79.5k
                                            Topics

                                            1.3m
                                            Posts

                                            lovelace ui nspanel sonoff
                                            260
                                            7128
                                            4354997
                                            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