Skip to content
  • Home
  • Aktuell
  • Tags
  • 0 Ungelesen 0
  • Kategorien
  • Unreplied
  • Beliebt
  • 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

  • Standard: (Kein Skin)
  • Kein Skin
Einklappen
ioBroker Logo

Community Forum

donate donate
  1. ioBroker Community Home
  2. Deutsch
  3. Skripten / Logik
  4. Min/Max "Dimmer-Range" in "0-100% Dim-Level" umrechnen

NEWS

  • Neuer Blogbeitrag: Monatsrückblick - Dezember 2025 🎄
    BluefoxB
    Bluefox
    11
    1
    331

  • Weihnachtsangebot 2025! 🎄
    BluefoxB
    Bluefox
    24
    1
    1.5k

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

Min/Max "Dimmer-Range" in "0-100% Dim-Level" umrechnen

Geplant Angeheftet Gesperrt Verschoben Skripten / Logik
javascripttemplate
37 Beiträge 4 Kommentatoren 3.3k Aufrufe 1 Watching
  • Älteste zuerst
  • Neuste zuerst
  • Meiste Stimmen
Antworten
  • In einem neuen Thema antworten
Anmelden zum Antworten
Dieses Thema wurde gelöscht. Nur Nutzer mit entsprechenden Rechten können es sehen.
  • paul53P paul53

    @Michael-Dolp sagte:

    Es sollte aber bei Alias 0 das Device ebenfalls auf 0 setzen.

    Quasi so:
    "write": "val = 23 ? 0 : Math.round(0.76 * val + 23)",
    "read": "val < 23 ? 0 : val > 100 ? 100 : Math.round((val - 23) / 0.76)"

    Ich denke so:

        "write": "val <= 0 ? 0 : Math.round(0.77 * val + 23)",
        "read": "val < 23 ? 0 : Math.round((val - 23) / 0.77)"
    

    Der Wert des Original-Datenpunktes wird nicht > 100. Oder ?

    Michael DolpM Offline
    Michael DolpM Offline
    Michael Dolp
    schrieb am zuletzt editiert von
    #23

    @paul53 said in Min/Max "Dimmer-Range" in "0-100% Dim-Level" umrechnen:

                                                                                                                                    "write": "val <= 0 ? 0 : Math.round(0.77 * val + 23)",                                                                                                                                                                                "read": "val < 23 ? 0 : Math.round((val - 23) / 0.77)"                                            
    

    Danke, jetzt läuft es so wie es soll und bei Device 100% schreibt er das Alias ebenfalls auf 100% und nicht höher.

    ( Hat leider etwas gedauert, weil mein Filesystem des Virtuellen IOBrokers Systems kaput ging und ich den IOBroker inzwischen in einem Docker neu aufgesetzt habe. )

    Das ist jetzt also der ideale Code um mit einem Alias eine "individuelle Dimm-Range" auf die Volle 0-100% Range umzurechnen:

    {
      "from": "system.adapter.alias.0",
      "user": "system.user.admin",
      "ts": 1605979923610,
      "common": {
        "name": "OG_Galerie_Bürobeleuchtung",
        "unit": "%",
        "role": "level.dimmer",
        "type": "number",
        "def": 0,
        "min": 0,
        "max": 100,
        "alias": {
          "id": "hm-rpc.0.NEQ0044188.1.LEVEL",
          "write": "val <= 0 ? 0 : Math.round(0.77 * val + 23)",
          "read": "val < 23 ? 0 : Math.round((val - 23) / 0.77)"
        }
      },
      "native": {},
      "acl": {
        "object": 1636,
        "owner": "system.user.admin",
        "ownerGroup": "system.group.administrator",
        "state": 1636
      },
      "_id": "alias.0.OG.Galerie.Bürobeleuchtung",
      "type": "state"
    }
    

    Berechnung des Faktors hier "0.77":
    ( Dim.Max - Dim.Min ) / 100 > (100 - 23) / 100 = 0.77
    ( Wert 23 = Dim.Min )
    ( Wert 100 = Dim.Max )

    Beispiel Range 15-80%: ( 80 - 15 ) / 100 = 0.65 also:

    "write": "val <= 0 ? 0 : Math.round(0.65 * val + 15)",
    "read": "val < 15 ? 0 : Math.round((val - 15) / 0.65)"
    

    im Iot übernimmt er damit auch problemlos das Alias als "Dimmer"

    Danke nochmal!

    "So lange es nicht Heizen muss, geht es am besten mit Shelly`s"
    1x IOBroker on QNAP Ts253A - ( Docker/buanet )
    1x FHEM on QNAP ( VM 1 Core / 2GB RAM )
    1x Raspberymatic / ELV-Charly ( RPI 3 )
    1x Raspbee ( RPI 2 )
    1x Repetier Server - 6 Drucker ( RPI 4 )

    1 Antwort Letzte Antwort
    0
    • paul53P paul53

      @Michael-Dolp sagte:

      Es sollte aber bei Alias 0 das Device ebenfalls auf 0 setzen.

      Quasi so:
      "write": "val = 23 ? 0 : Math.round(0.76 * val + 23)",
      "read": "val < 23 ? 0 : val > 100 ? 100 : Math.round((val - 23) / 0.76)"

      Ich denke so:

          "write": "val <= 0 ? 0 : Math.round(0.77 * val + 23)",
          "read": "val < 23 ? 0 : Math.round((val - 23) / 0.77)"
      

      Der Wert des Original-Datenpunktes wird nicht > 100. Oder ?

      Michael DolpM Offline
      Michael DolpM Offline
      Michael Dolp
      schrieb am zuletzt editiert von
      #24

      @paul53
      Hallo Paul,

      da ich leider einige Steckdosen mit ESPEasy geflasht habe und diese nicht umflashen möchte muss ich nun ebenfalls ein Alias anlegen, weches mir den GPIO12 auf 0 / 1 setzt und selbst mit false / true funktionieren soll. Ist jetzt zwar etwas Offtopic, aber trifft die gleiche Vorgehensweise. Mit der Add Device "Auto-Funktion" kriegt er es nicht hin.

      alt text

      Meine bisherigen Ansätze sind maximal bis zu einer Endlosschleife gekommen und IOBRoker hat neu initialisiert.

      Also so etwas in der Richtung:

      "common": {
        "name": "SET",
        "role": "switch.light",
        "type": "string",
          "write": "val = true ? 1 : 0",
          "read": "val = 1 ? true : false"
        "alias": {
          "id": "mqtt.0.LSC_Plug_4.Set.GPIO.12"
        }
      

      Leider geht das so nicht ganz - kannst Du mir vielleicht weiter helfen?

      Danke - Gruß

      Michael

      "So lange es nicht Heizen muss, geht es am besten mit Shelly`s"
      1x IOBroker on QNAP Ts253A - ( Docker/buanet )
      1x FHEM on QNAP ( VM 1 Core / 2GB RAM )
      1x Raspberymatic / ELV-Charly ( RPI 3 )
      1x Raspbee ( RPI 2 )
      1x Repetier Server - 6 Drucker ( RPI 4 )

      paul53P 1 Antwort Letzte Antwort
      0
      • Michael DolpM Michael Dolp

        @paul53
        Hallo Paul,

        da ich leider einige Steckdosen mit ESPEasy geflasht habe und diese nicht umflashen möchte muss ich nun ebenfalls ein Alias anlegen, weches mir den GPIO12 auf 0 / 1 setzt und selbst mit false / true funktionieren soll. Ist jetzt zwar etwas Offtopic, aber trifft die gleiche Vorgehensweise. Mit der Add Device "Auto-Funktion" kriegt er es nicht hin.

        alt text

        Meine bisherigen Ansätze sind maximal bis zu einer Endlosschleife gekommen und IOBRoker hat neu initialisiert.

        Also so etwas in der Richtung:

        "common": {
          "name": "SET",
          "role": "switch.light",
          "type": "string",
            "write": "val = true ? 1 : 0",
            "read": "val = 1 ? true : false"
          "alias": {
            "id": "mqtt.0.LSC_Plug_4.Set.GPIO.12"
          }
        

        Leider geht das so nicht ganz - kannst Du mir vielleicht weiter helfen?

        Danke - Gruß

        Michael

        paul53P Offline
        paul53P Offline
        paul53
        schrieb am zuletzt editiert von paul53
        #25

        @Michael-Dolp sagte:

        Also so etwas in der Richtung:

        "type" muss "boolean" sein. Bitte ändern:

        "common": {
          "name": "Schreibtischleuchte Kinderzimmer",
          "role": "switch.light",
          "type": "boolean",
          "write": true,
          "read": true,
          "alias": {
            "id": "mqtt.0.LSC_Plug_4.Set.GPIO.12",
            "write": "val ? 1 : 0"
          }
        

        Die Umwandlung 0 --> false und 1 --> true erfolgt automatisch.

        Bitte verzichtet auf Chat-Nachrichten, denn die Handhabung ist grauenhaft !
        Produktiv: RPi 2 mit S.USV, HM-MOD-RPI und SLC-USB-Stick mit root fs

        Michael DolpM R 2 Antworten Letzte Antwort
        0
        • paul53P paul53

          @Michael-Dolp sagte:

          Also so etwas in der Richtung:

          "type" muss "boolean" sein. Bitte ändern:

          "common": {
            "name": "Schreibtischleuchte Kinderzimmer",
            "role": "switch.light",
            "type": "boolean",
            "write": true,
            "read": true,
            "alias": {
              "id": "mqtt.0.LSC_Plug_4.Set.GPIO.12",
              "write": "val ? 1 : 0"
            }
          

          Die Umwandlung 0 --> false und 1 --> true erfolgt automatisch.

          Michael DolpM Offline
          Michael DolpM Offline
          Michael Dolp
          schrieb am zuletzt editiert von
          #26

          @paul53
          Vielen Dank funktioniert auch perfekt - da muss ich noch einiges lernen, um das Schema zu begreifen, aber das ist es sicher Wert, denn bisher bin ich bis auf ein paar kleine Dinge vom IOBroker begeistert!

          "So lange es nicht Heizen muss, geht es am besten mit Shelly`s"
          1x IOBroker on QNAP Ts253A - ( Docker/buanet )
          1x FHEM on QNAP ( VM 1 Core / 2GB RAM )
          1x Raspberymatic / ELV-Charly ( RPI 3 )
          1x Raspbee ( RPI 2 )
          1x Repetier Server - 6 Drucker ( RPI 4 )

          1 Antwort Letzte Antwort
          0
          • paul53P paul53

            @Michael-Dolp sagte:

            Also so etwas in der Richtung:

            "type" muss "boolean" sein. Bitte ändern:

            "common": {
              "name": "Schreibtischleuchte Kinderzimmer",
              "role": "switch.light",
              "type": "boolean",
              "write": true,
              "read": true,
              "alias": {
                "id": "mqtt.0.LSC_Plug_4.Set.GPIO.12",
                "write": "val ? 1 : 0"
              }
            

            Die Umwandlung 0 --> false und 1 --> true erfolgt automatisch.

            R Offline
            R Offline
            Radler1
            schrieb am zuletzt editiert von
            #27

            @paul53

            Hallo Paul,
            kannst du dir auch meine Konfiguration mal anschauen, auch ich habe das Problem dass ich die gelieferten Werte vom ESP Easy 0 und 1 sind und nicht false oder true.
            Der type „boolean“ ist eingestellt aber in blockly werden die Werte nicht als false oder true erkannt. Du hast ja oben beschrieben dass die Werte automatisch umgeschrieben werden, ändert sich auch die Bezeichnung in false und true oder bleiben sie bei 0 und 1.
            Vielen Dank
            Radler1
            Folie1.PNG Folie2.PNG Folie3.PNG

            paul53P 2 Antworten Letzte Antwort
            0
            • R Radler1

              @paul53

              Hallo Paul,
              kannst du dir auch meine Konfiguration mal anschauen, auch ich habe das Problem dass ich die gelieferten Werte vom ESP Easy 0 und 1 sind und nicht false oder true.
              Der type „boolean“ ist eingestellt aber in blockly werden die Werte nicht als false oder true erkannt. Du hast ja oben beschrieben dass die Werte automatisch umgeschrieben werden, ändert sich auch die Bezeichnung in false und true oder bleiben sie bei 0 und 1.
              Vielen Dank
              Radler1
              Folie1.PNG Folie2.PNG Folie3.PNG

              paul53P Offline
              paul53P Offline
              paul53
              schrieb am zuletzt editiert von
              #28

              @radler1 sagte: die gelieferten Werte vom ESP Easy 0 und 1 sind und nicht false oder true.

              Dann ist der Datenpunkt-Typ "boolean" falsch und muss in "number" geändert werden, damit der Alias-Datenpunkt vom Typ "boolean" automatisch wandelt.

              Bitte verzichtet auf Chat-Nachrichten, denn die Handhabung ist grauenhaft !
              Produktiv: RPi 2 mit S.USV, HM-MOD-RPI und SLC-USB-Stick mit root fs

              R 1 Antwort Letzte Antwort
              0
              • paul53P paul53

                @radler1 sagte: die gelieferten Werte vom ESP Easy 0 und 1 sind und nicht false oder true.

                Dann ist der Datenpunkt-Typ "boolean" falsch und muss in "number" geändert werden, damit der Alias-Datenpunkt vom Typ "boolean" automatisch wandelt.

                R Offline
                R Offline
                Radler1
                schrieb am zuletzt editiert von
                #29

                @paul53
                Hallo paul53,
                vielen Dank für die schnelle Hilfe, ich habe "boolean" in "number" geändert, aber trozdem wird der Wert nicht richtig erkannt.
                Fällt Dir noch was ein?

                1 Antwort Letzte Antwort
                0
                • R Radler1

                  @paul53

                  Hallo Paul,
                  kannst du dir auch meine Konfiguration mal anschauen, auch ich habe das Problem dass ich die gelieferten Werte vom ESP Easy 0 und 1 sind und nicht false oder true.
                  Der type „boolean“ ist eingestellt aber in blockly werden die Werte nicht als false oder true erkannt. Du hast ja oben beschrieben dass die Werte automatisch umgeschrieben werden, ändert sich auch die Bezeichnung in false und true oder bleiben sie bei 0 und 1.
                  Vielen Dank
                  Radler1
                  Folie1.PNG Folie2.PNG Folie3.PNG

                  paul53P Offline
                  paul53P Offline
                  paul53
                  schrieb am zuletzt editiert von
                  #30

                  @radler1 sagte: aber in blockly werden die Werte nicht als false oder true erkannt.

                  Greift Blockly auf den MQTT-Datenpunkt zu oder auf den Alias? Beim MQTT-Datenpunkten müssen Zahlen 0 und 1 verwendet werden (auch beim Vergleich).

                  Bitte verzichtet auf Chat-Nachrichten, denn die Handhabung ist grauenhaft !
                  Produktiv: RPi 2 mit S.USV, HM-MOD-RPI und SLC-USB-Stick mit root fs

                  R 1 Antwort Letzte Antwort
                  0
                  • paul53P paul53

                    @radler1 sagte: aber in blockly werden die Werte nicht als false oder true erkannt.

                    Greift Blockly auf den MQTT-Datenpunkt zu oder auf den Alias? Beim MQTT-Datenpunkten müssen Zahlen 0 und 1 verwendet werden (auch beim Vergleich).

                    R Offline
                    R Offline
                    Radler1
                    schrieb am zuletzt editiert von
                    #31

                    @paul53,
                    er greift auf den MQTT Datenpunkt zurück.

                    Beim MQTT-Datenpunkten müssen Zahlen 0 und 1 verwendet werden (auch beim Vergleich).
                    Diesen Satz habe ich nicht verstanden, was soll ich da machen?

                    Präsentation3.jpg

                    paul53P 1 Antwort Letzte Antwort
                    0
                    • R Radler1

                      @paul53,
                      er greift auf den MQTT Datenpunkt zurück.

                      Beim MQTT-Datenpunkten müssen Zahlen 0 und 1 verwendet werden (auch beim Vergleich).
                      Diesen Satz habe ich nicht verstanden, was soll ich da machen?

                      Präsentation3.jpg

                      paul53P Offline
                      paul53P Offline
                      paul53
                      schrieb am zuletzt editiert von
                      #32

                      @radler1 sagte: was soll ich da machen?

                      Blockly?
                      0 und 1 anstelle von falsch und wahr verwenden.

                      Bitte verzichtet auf Chat-Nachrichten, denn die Handhabung ist grauenhaft !
                      Produktiv: RPi 2 mit S.USV, HM-MOD-RPI und SLC-USB-Stick mit root fs

                      R 1 Antwort Letzte Antwort
                      0
                      • paul53P paul53

                        @radler1 sagte: was soll ich da machen?

                        Blockly?
                        0 und 1 anstelle von falsch und wahr verwenden.

                        R Offline
                        R Offline
                        Radler1
                        schrieb am zuletzt editiert von
                        #33

                        @paul53

                        ich hab das in Blockly mit Baustein Mathematik 0 und 1 als auch Bausteintext 0 und 1 probiert leider ohne Erfolg.!

                        Präsentation4.png

                        paul53P 2 Antworten Letzte Antwort
                        0
                        • R Radler1

                          @paul53

                          ich hab das in Blockly mit Baustein Mathematik 0 und 1 als auch Bausteintext 0 und 1 probiert leider ohne Erfolg.!

                          Präsentation4.png

                          paul53P Offline
                          paul53P Offline
                          paul53
                          schrieb am zuletzt editiert von paul53
                          #34

                          @radler1 sagte: leider ohne Erfolg.!

                          Du musst den Wert vergleichen - nicht die Objekt ID.

                          Blockly_DP_Props.JPG

                          Bilder bitte direkt hochladen (3. Symbol von rechts).

                          Bitte verzichtet auf Chat-Nachrichten, denn die Handhabung ist grauenhaft !
                          Produktiv: RPi 2 mit S.USV, HM-MOD-RPI und SLC-USB-Stick mit root fs

                          R 1 Antwort Letzte Antwort
                          0
                          • paul53P paul53

                            @radler1 sagte: leider ohne Erfolg.!

                            Du musst den Wert vergleichen - nicht die Objekt ID.

                            Blockly_DP_Props.JPG

                            Bilder bitte direkt hochladen (3. Symbol von rechts).

                            R Offline
                            R Offline
                            Radler1
                            schrieb am zuletzt editiert von
                            #35

                            @paul53

                            vielen vielen Dank das war es!!!

                            1 Antwort Letzte Antwort
                            0
                            • R Radler1

                              @paul53

                              ich hab das in Blockly mit Baustein Mathematik 0 und 1 als auch Bausteintext 0 und 1 probiert leider ohne Erfolg.!

                              Präsentation4.png

                              paul53P Offline
                              paul53P Offline
                              paul53
                              schrieb am zuletzt editiert von
                              #36

                              @radler1
                              Einfachere Version:

                              Bild_2021-02-22_120041.png

                              Bitte verzichtet auf Chat-Nachrichten, denn die Handhabung ist grauenhaft !
                              Produktiv: RPi 2 mit S.USV, HM-MOD-RPI und SLC-USB-Stick mit root fs

                              R 1 Antwort Letzte Antwort
                              0
                              • paul53P paul53

                                @radler1
                                Einfachere Version:

                                Bild_2021-02-22_120041.png

                                R Offline
                                R Offline
                                Radler1
                                schrieb am zuletzt editiert von
                                #37

                                @paul53
                                sei bedankt auch dafür

                                Radler1

                                1 Antwort Letzte Antwort
                                0
                                Antworten
                                • In einem neuen Thema antworten
                                Anmelden zum Antworten
                                • Älteste zuerst
                                • Neuste zuerst
                                • Meiste Stimmen


                                Support us

                                ioBroker
                                Community Adapters
                                Donate

                                369

                                Online

                                32.5k

                                Benutzer

                                81.7k

                                Themen

                                1.3m

                                Beiträge
                                Community
                                Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen | Einwilligungseinstellungen
                                ioBroker Community 2014-2025
                                logo
                                • Anmelden

                                • Du hast noch kein Konto? Registrieren

                                • Anmelden oder registrieren, um zu suchen
                                • Erster Beitrag
                                  Letzter Beitrag
                                0
                                • Home
                                • Aktuell
                                • Tags
                                • Ungelesen 0
                                • Kategorien
                                • Unreplied
                                • Beliebt
                                • GitHub
                                • Docu
                                • Hilfe