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
    327

  • 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.
  • Michael DolpM Michael Dolp

    @paul53
    Das sagt mir jetzt leider nichts, inwiefern betrifft / beeinflusst dies den Lösungsansatz?

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

    @Michael-Dolp sagte:

    inwiefern betrifft / beeinflusst dies den Lösungsansatz?

    Das werden wird sehen. Evtl. muss noch eine Begrenzung für "read" ergänzt werden.

    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 1 Antwort Letzte Antwort
    0
    • paul53P paul53

      @Michael-Dolp sagte:

      inwiefern betrifft / beeinflusst dies den Lösungsansatz?

      Das werden wird sehen. Evtl. muss noch eine Begrenzung für "read" ergänzt werden.

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

      Habs doch jetzt gleich probiert - es geht soweit, aber ich kriege keine Werte angezeigt (siehe Screenshot). Ich kann einen Wert eingeben und es regelt wie gewünscht in umgerechneter Form den "hm-rpc.0.NEQ0044188.1.LEVEL" das Alias "alias.0.OG.Galerie.Bürobeleuchtung" selbst zeigt aber keine Werte an. Wo habe ich den Fehler?

      alt text

      CODE - "alias.0.OG.Galerie.Bürobeleuchtung":

      {
        "from": "system.adapter.alias.0",
        "user": "system.user.admin",
        "ts": 1605979923610,
        "common": {
          "name": "OG_Galerie_Bürobeleuchtung",
          "unit": "%",
          "role": "value.dimmer",
          "type": "number",
          "alias": {
            "id": "hm-rpc.0.NEQ0044188.1.LEVEL",
            "def": 0,
            "min": 0,
            "max": 100,
            "write": "(val * 9/5) + 32",
            "read": "(val − 32) * 5/9"
          }
        },
        "native": {
          "CONTROL": "DIMMER.LEVEL",
          "ID": "LEVEL",
          "TYPE": "FLOAT",
          "UNIT": "100%",
          "DEFAULT": 0,
          "FLAGS": 1,
          "MAX": 1,
          "MIN": 0,
          "OPERATIONS": 7,
          "TAB_ORDER": 0
        },
        "acl": {
          "object": 1636,
          "owner": "system.user.admin",
          "ownerGroup": "system.group.administrator",
          "state": 1636
        },
        "_id": "alias.0.OG.Galerie.Bürobeleuchtung",
        "type": "state"
      }
      

      Ist das Objekt bzw. der Code überhaupt in diesem Umfang nötig und wo liegt der Fehler - scheint das von Dir prognostizierte evlt. Problem zu sein oder?

      Für weitere Hilfe wäre ich sehr dankbar.

      "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

        Habs doch jetzt gleich probiert - es geht soweit, aber ich kriege keine Werte angezeigt (siehe Screenshot). Ich kann einen Wert eingeben und es regelt wie gewünscht in umgerechneter Form den "hm-rpc.0.NEQ0044188.1.LEVEL" das Alias "alias.0.OG.Galerie.Bürobeleuchtung" selbst zeigt aber keine Werte an. Wo habe ich den Fehler?

        alt text

        CODE - "alias.0.OG.Galerie.Bürobeleuchtung":

        {
          "from": "system.adapter.alias.0",
          "user": "system.user.admin",
          "ts": 1605979923610,
          "common": {
            "name": "OG_Galerie_Bürobeleuchtung",
            "unit": "%",
            "role": "value.dimmer",
            "type": "number",
            "alias": {
              "id": "hm-rpc.0.NEQ0044188.1.LEVEL",
              "def": 0,
              "min": 0,
              "max": 100,
              "write": "(val * 9/5) + 32",
              "read": "(val − 32) * 5/9"
            }
          },
          "native": {
            "CONTROL": "DIMMER.LEVEL",
            "ID": "LEVEL",
            "TYPE": "FLOAT",
            "UNIT": "100%",
            "DEFAULT": 0,
            "FLAGS": 1,
            "MAX": 1,
            "MIN": 0,
            "OPERATIONS": 7,
            "TAB_ORDER": 0
          },
          "acl": {
            "object": 1636,
            "owner": "system.user.admin",
            "ownerGroup": "system.group.administrator",
            "state": 1636
          },
          "_id": "alias.0.OG.Galerie.Bürobeleuchtung",
          "type": "state"
        }
        

        Ist das Objekt bzw. der Code überhaupt in diesem Umfang nötig und wo liegt der Fehler - scheint das von Dir prognostizierte evlt. Problem zu sein oder?

        Für weitere Hilfe wäre ich sehr dankbar.

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

        @Michael-Dolp:

        wo liegt der Fehler?

        Hast du den Alias manuell erstellt ? Ich korrigiere mal.

          "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": "Math.round(0.68 * val + 12)",
               "read": "Math.round((val - 12) / 0.68)"
            }
          },
          "native": {}, // darf nur ein leeres Objekt enthalten !
        

        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 1 Antwort Letzte Antwort
        0
        • paul53P paul53

          @Michael-Dolp:

          wo liegt der Fehler?

          Hast du den Alias manuell erstellt ? Ich korrigiere mal.

            "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": "Math.round(0.68 * val + 12)",
                 "read": "Math.round((val - 12) / 0.68)"
              }
            },
            "native": {}, // darf nur ein leeres Objekt enthalten !
          
          Michael DolpM Offline
          Michael DolpM Offline
          Michael Dolp
          schrieb am zuletzt editiert von Michael Dolp
          #11

          @paul53
          Ja, ich bin wie bereits erwähnt nicht wirklich fit im Coden.. Aber Dank Dir funktioniert es nun perfekt! (siehe Screenshot)

          alt text

          Der komplette Code zu diesem Beispiel:

          HomeMatic Dimmer Device: hm-rpc.0.NEQ0044188.1.LEVEL
          Virtual Device: alias.0.OG.Galerie.Bürobeleuchtung
          Dim-Range: 12-80%

          Berechnung des Faktors hier "0.68":
          Dim.Max - Dim.Min / 100 > (80 - 12) / 100 = 0.68
          ( Wert 12 = Dim.Min )

          {
            "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": "Math.round(0.68 * val + 12)",
                "read": "Math.round((val - 12) / 0.68)"
              }
            },
            "native": {},
            "acl": {
              "object": 1636,
              "owner": "system.user.admin",
              "ownerGroup": "system.group.administrator",
              "state": 1636
            },
            "_id": "alias.0.OG.Galerie.Bürobeleuchtung",
            "type": "state"
          }
          

          Vielen Dank für die schnelle Hilfe!

          Sollte somit "gelöst" sein.

          "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
            Ja, ich bin wie bereits erwähnt nicht wirklich fit im Coden.. Aber Dank Dir funktioniert es nun perfekt! (siehe Screenshot)

            alt text

            Der komplette Code zu diesem Beispiel:

            HomeMatic Dimmer Device: hm-rpc.0.NEQ0044188.1.LEVEL
            Virtual Device: alias.0.OG.Galerie.Bürobeleuchtung
            Dim-Range: 12-80%

            Berechnung des Faktors hier "0.68":
            Dim.Max - Dim.Min / 100 > (80 - 12) / 100 = 0.68
            ( Wert 12 = Dim.Min )

            {
              "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": "Math.round(0.68 * val + 12)",
                  "read": "Math.round((val - 12) / 0.68)"
                }
              },
              "native": {},
              "acl": {
                "object": 1636,
                "owner": "system.user.admin",
                "ownerGroup": "system.group.administrator",
                "state": 1636
              },
              "_id": "alias.0.OG.Galerie.Bürobeleuchtung",
              "type": "state"
            }
            

            Vielen Dank für die schnelle Hilfe!

            Sollte somit "gelöst" sein.

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

            @Michael-Dolp sagte:

            Dim-Range: 12-80%

            Gib mal bei "hm-rpc.0.NEQ0044188.1.LEVEL" den Wert 85 ein und schau, welchen Wert der Alias annimmt.

            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 1 Antwort Letzte Antwort
            0
            • paul53P paul53

              @Michael-Dolp sagte:

              Dim-Range: 12-80%

              Gib mal bei "hm-rpc.0.NEQ0044188.1.LEVEL" den Wert 85 ein und schau, welchen Wert der Alias annimmt.

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

              @paul53
              In dem Fall kommen wir auf 107% - kommt jetzt die erwähnte Begrenzung zum Einsatz?

              Stimmt so oder:
              Berechnung des Faktors hier "0.68":
              Dim.Max - Dim.Min / 100 > (80 - 12) / 100 = 0.68
              ( Wert 12 = Dim.Min )

              "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
                In dem Fall kommen wir auf 107% - kommt jetzt die erwähnte Begrenzung zum Einsatz?

                Stimmt so oder:
                Berechnung des Faktors hier "0.68":
                Dim.Max - Dim.Min / 100 > (80 - 12) / 100 = 0.68
                ( Wert 12 = Dim.Min )

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

                @Michael-Dolp sagte:

                kommt jetzt die erwähnte Begrenzung zum Einsatz?

                Ja.

                      "read": "val < 12 ? 0 : val > 80 ? 100 : Math.round((val - 12) / 0.68)"
                

                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 2 Antworten Letzte Antwort
                0
                • paul53P paul53

                  @Michael-Dolp sagte:

                  kommt jetzt die erwähnte Begrenzung zum Einsatz?

                  Ja.

                        "read": "val < 12 ? 0 : val > 80 ? 100 : Math.round((val - 12) / 0.68)"
                  
                  Michael DolpM Offline
                  Michael DolpM Offline
                  Michael Dolp
                  schrieb am zuletzt editiert von
                  #15

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

                  "read": "val < 12 ? 0 : val > 80 ? 100 : Math.round((val - 12) / 0.68)"

                  Er gibt mir jetzt entsprechend nur noch "true" oder "false" aus. Geht also noch nicht.

                  "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
                  • paul53P paul53

                    @Michael-Dolp sagte:

                    kommt jetzt die erwähnte Begrenzung zum Einsatz?

                    Ja.

                          "read": "val < 12 ? 0 : val > 80 ? 100 : Math.round((val - 12) / 0.68)"
                    
                    Michael DolpM Offline
                    Michael DolpM Offline
                    Michael Dolp
                    schrieb am zuletzt editiert von Michael Dolp
                    #16

                    @paul53
                    EDIT: "geht mit beiden"

                    "type": "number" statt "state" dann gehts.

                    Hier also der momentan perfekt funktionierende Code:

                    {
                      "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": "Math.round(0.68 * val + 12)",
                          "read": "val < 12 ? 0 : val > 80 ? 100 : Math.round((val - 12) / 0.68)"
                        }
                      },
                      "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.68":
                    ( Dim.Max - Dim.Min ) / 100 > (80 - 12) / 100 = 0.68
                    ( Wert 12 = Dim.Min )
                    ( Wert 80 = Dim.Max )

                    "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
                    • Michael DolpM Michael Dolp

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

                      "read": "val < 12 ? 0 : val > 80 ? 100 : Math.round((val - 12) / 0.68)"

                      Er gibt mir jetzt entsprechend nur noch "true" oder "false" aus. Geht also noch nicht.

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

                      @Michael-Dolp sagte:

                      Er gibt mir jetzt entsprechend nur noch "true" oder "false" aus.

                      Seltsam. Wenn ich die Sequenz in Javascript teste, funktioniert es.

                      var val = 8;
                      log(val < 12 ? 0 : val > 80 ? 100 : Math.round((val - 12) / 0.68));
                      

                      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 2 Antworten Letzte Antwort
                      0
                      • paul53P paul53

                        @Michael-Dolp sagte:

                        Er gibt mir jetzt entsprechend nur noch "true" oder "false" aus.

                        Seltsam. Wenn ich die Sequenz in Javascript teste, funktioniert es.

                        var val = 8;
                        log(val < 12 ? 0 : val > 80 ? 100 : Math.round((val - 12) / 0.68));
                        
                        Michael DolpM Offline
                        Michael DolpM Offline
                        Michael Dolp
                        schrieb am zuletzt editiert von Michael Dolp
                        #18

                        @paul53
                        Stimmt, ging auch mit "state" war also alles korrekt. Hang wohl irgendwo kurz.

                        Vielen Dank für die sehr schnelle kompetente Hilfe Paul, das hat mit sehr weiter geholfen!

                        Hab echt schon vorher einige Zeit rumgesucht und nichts gefunden... komisch, dass Niemand dieses Problem hat bzw. Dimmer Visualisiert, welche sich nicht auf 0 und 100 regeln lassen.

                        "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:

                          Er gibt mir jetzt entsprechend nur noch "true" oder "false" aus.

                          Seltsam. Wenn ich die Sequenz in Javascript teste, funktioniert es.

                          var val = 8;
                          log(val < 12 ? 0 : val > 80 ? 100 : Math.round((val - 12) / 0.68));
                          
                          Michael DolpM Offline
                          Michael DolpM Offline
                          Michael Dolp
                          schrieb am zuletzt editiert von
                          #19

                          @paul53
                          Hi, jetzt muss ich leider nochmal stören - wenn ich in das Alias 0% schreibe wird das Device auf den "Min" Wert gesetzt und nicht ebenfalls auf "0" / OFF.

                          Was müsste hierfür noch ergänzt werden?

                          Aktueller Auszug Alias Code:

                          "common": {
                              "name": "OG_Galerie_Bürobeleuchtung",
                              "unit": "%",
                              "role": "level.dimmer",
                              "type": "stater",
                              "def": 0,
                              "min": 0,
                              "max": 100,
                              "alias": {
                                "id": "hm-rpc.0.NEQ0044188.1.LEVEL",
                                "write": "Math.round(0.77 * val + 23)",
                                "read": "val < 23 ? 0 : val > 100 ? 100 : Math.round((val - 23) / 0.77)"
                              }
                          

                          "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
                            Hi, jetzt muss ich leider nochmal stören - wenn ich in das Alias 0% schreibe wird das Device auf den "Min" Wert gesetzt und nicht ebenfalls auf "0" / OFF.

                            Was müsste hierfür noch ergänzt werden?

                            Aktueller Auszug Alias Code:

                            "common": {
                                "name": "OG_Galerie_Bürobeleuchtung",
                                "unit": "%",
                                "role": "level.dimmer",
                                "type": "stater",
                                "def": 0,
                                "min": 0,
                                "max": 100,
                                "alias": {
                                  "id": "hm-rpc.0.NEQ0044188.1.LEVEL",
                                  "write": "Math.round(0.77 * val + 23)",
                                  "read": "val < 23 ? 0 : val > 100 ? 100 : Math.round((val - 23) / 0.77)"
                                }
                            
                            paul53P Offline
                            paul53P Offline
                            paul53
                            schrieb am zuletzt editiert von paul53
                            #20

                            @Michael-Dolp sagte:

                            Auszug Alias Code:

                            "type" ist falsch, richtig:

                                "type": "number",
                            

                            Die Prüfung val > 100 kann entfallen.

                            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 1 Antwort Letzte Antwort
                            0
                            • paul53P paul53

                              @Michael-Dolp sagte:

                              Auszug Alias Code:

                              "type" ist falsch, richtig:

                                  "type": "number",
                              

                              Die Prüfung val > 100 kann entfallen.

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

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

                              Die Prüfung val > 100 kann entfallen.

                              Danke, aber ich glaube wir meinen was anderes - Wenn das Alias 0 ist, dann ist das Device 23
                              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)"

                              Nur so geht es nicht, da wird das Device immer 0

                              Also praktisch ab 1% umrechnen - bei 0% beides auf 0% setzten

                              "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 said in Min/Max "Dimmer-Range" in "0-100% Dim-Level" umrechnen:

                                Die Prüfung val > 100 kann entfallen.

                                Danke, aber ich glaube wir meinen was anderes - Wenn das Alias 0 ist, dann ist das Device 23
                                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)"

                                Nur so geht es nicht, da wird das Device immer 0

                                Also praktisch ab 1% umrechnen - bei 0% beides auf 0% setzten

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

                                @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 ?

                                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 2 Antworten 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
                                  #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
                                          Antworten
                                          • In einem neuen Thema antworten
                                          Anmelden zum Antworten
                                          • Älteste zuerst
                                          • Neuste zuerst
                                          • Meiste Stimmen


                                          Support us

                                          ioBroker
                                          Community Adapters
                                          Donate

                                          512

                                          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