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. Error/Bug
  4. Alias Fehler "Cannot read properties of null"

NEWS

  • Jahresrückblick 2025 – unser neuer Blogbeitrag ist online! ✨
    BluefoxB
    Bluefox
    17
    1
    4.2k

  • Neuer Blogbeitrag: Monatsrückblick - Dezember 2025 🎄
    BluefoxB
    Bluefox
    13
    1
    1.2k

  • Weihnachtsangebot 2025! 🎄
    BluefoxB
    Bluefox
    25
    1
    2.6k

Alias Fehler "Cannot read properties of null"

Geplant Angeheftet Gesperrt Verschoben Error/Bug
alias
13 Beiträge 3 Kommentatoren 303 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.
  • M Offline
    M Offline
    Marty56
    schrieb am zuletzt editiert von
    #1

    Hallo,

    Ich habe ein Homematic Thermometer und einen Alias definiert, der den Bug des HM Thermometer, dass bei Temperaturen unter -20 Grad immer 80 Grad angezeigt wird, kompensiert.

    Dazu ist folgender Alias definiert.

    {
      "common": {
        "name": "Thermometer in Gefrierschrank",
        "alias": {
          "id": "hm-rpc.0.LEQ0567580.1.TEMPERATURE",
          "read": "val > 60 ? -20 : val"
        },
        "type": "number",
        "role": "value.temperature",
        "min": -40,
        "max": 80,
        "unit": "°C",
        "custom": {
          "influxdb.0": {
            "enabled": true,
            "storageType": "",
            "aliasId": "",
            "debounceTime": 0,
            "blockTime": 0,
            "changesOnly": true,
            "changesRelogInterval": 0,
            "changesMinDelta": 0,
            "ignoreBelowNumber": "",
            "disableSkippedValueLogging": false,
            "enableDebugLogs": false,
            "debounce": 1000
          }
        }
      },
      "native": {},
      "type": "state",
      "from": "system.adapter.javascript.0",
      "user": "system.user.admin",
      "ts": 1667660078432,
      "_id": "alias.0.K2_Thermo_TEMPERATURE",
      "acl": {
        "object": 1636,
        "state": 1636,
        "owner": "system.user.admin",
        "ownerGroup": "system.group.administrator"
      }
    }
    

    Jedesmal, wenn die Bedingung "val > 60 ? -20 : val" ausgeführt wird, bekomme ich Fehler. Das Thermometer funktioniert störungsfrei.

    	2022-11-09 07:06:15.538	error	Invalid read function for undefined: val > 60 ? -20 : val => Cannot read properties of null (reading 'type')
    
    admin.0
    2022-11-09 07:06:15.529	error	Invalid read function for undefined: val > 60 ? -20 : val => Cannot read properties of null (reading 'type')
    

    User Error oder Bug?

    HW:NUC (16 GB Ram)
    OS: Debian Bullseye, Promox V7, node v16.x npm 8.19.3

    CodierknechtC HomoranH 3 Antworten Letzte Antwort
    0
    • M Marty56

      Hallo,

      Ich habe ein Homematic Thermometer und einen Alias definiert, der den Bug des HM Thermometer, dass bei Temperaturen unter -20 Grad immer 80 Grad angezeigt wird, kompensiert.

      Dazu ist folgender Alias definiert.

      {
        "common": {
          "name": "Thermometer in Gefrierschrank",
          "alias": {
            "id": "hm-rpc.0.LEQ0567580.1.TEMPERATURE",
            "read": "val > 60 ? -20 : val"
          },
          "type": "number",
          "role": "value.temperature",
          "min": -40,
          "max": 80,
          "unit": "°C",
          "custom": {
            "influxdb.0": {
              "enabled": true,
              "storageType": "",
              "aliasId": "",
              "debounceTime": 0,
              "blockTime": 0,
              "changesOnly": true,
              "changesRelogInterval": 0,
              "changesMinDelta": 0,
              "ignoreBelowNumber": "",
              "disableSkippedValueLogging": false,
              "enableDebugLogs": false,
              "debounce": 1000
            }
          }
        },
        "native": {},
        "type": "state",
        "from": "system.adapter.javascript.0",
        "user": "system.user.admin",
        "ts": 1667660078432,
        "_id": "alias.0.K2_Thermo_TEMPERATURE",
        "acl": {
          "object": 1636,
          "state": 1636,
          "owner": "system.user.admin",
          "ownerGroup": "system.group.administrator"
        }
      }
      

      Jedesmal, wenn die Bedingung "val > 60 ? -20 : val" ausgeführt wird, bekomme ich Fehler. Das Thermometer funktioniert störungsfrei.

      	2022-11-09 07:06:15.538	error	Invalid read function for undefined: val > 60 ? -20 : val => Cannot read properties of null (reading 'type')
      
      admin.0
      2022-11-09 07:06:15.529	error	Invalid read function for undefined: val > 60 ? -20 : val => Cannot read properties of null (reading 'type')
      

      User Error oder Bug?

      CodierknechtC Offline
      CodierknechtC Offline
      Codierknecht
      Developer Most Active
      schrieb am zuletzt editiert von
      #2

      @marty56 sagte in Alias Fehler "Cannot read properties of null":

      val > 60 ? -20 : val
      Bedeutet: Wenn der Wert > 60 ist, gebe "-20" zurück - ansonsten den Wert.
      Das war doch lt. Beschreibung anders gedacht.

      val < -20 ? -20 : val
      Das hier bedeutet: Wenn Wert unter -20 dann "-20", ansonsten den Wert.

      "Any fool can write code that a computer can understand. Good programmers write code that humans can understand." (Martin Fowler, "Refactoring")

      Proxmox 9.1.1 LXC|8 GB|Core i7-6700
      HmIP|ZigBee|Tasmota|Unifi
      Zabbix Certified Specialist
      Konnte ich Dir helfen? Dann benutze bitte das Voting unten rechts im Beitrag

      M 1 Antwort Letzte Antwort
      0
      • CodierknechtC Codierknecht

        @marty56 sagte in Alias Fehler "Cannot read properties of null":

        val > 60 ? -20 : val
        Bedeutet: Wenn der Wert > 60 ist, gebe "-20" zurück - ansonsten den Wert.
        Das war doch lt. Beschreibung anders gedacht.

        val < -20 ? -20 : val
        Das hier bedeutet: Wenn Wert unter -20 dann "-20", ansonsten den Wert.

        M Offline
        M Offline
        Marty56
        schrieb am zuletzt editiert von Marty56
        #3

        @codierknecht Nein, da hast Du meine Beschreibung nicht ganz verstanden.
        Das Thermometer gibt 80 aus, für alle Werte unter -20

        Ich hätte auch val == 80 ? -20 : val schreiben können.

        Aber das war nicht meine Frage, sondern es ging mir um die Fehlermeldung.

        HW:NUC (16 GB Ram)
        OS: Debian Bullseye, Promox V7, node v16.x npm 8.19.3

        CodierknechtC 1 Antwort Letzte Antwort
        0
        • M Marty56

          @codierknecht Nein, da hast Du meine Beschreibung nicht ganz verstanden.
          Das Thermometer gibt 80 aus, für alle Werte unter -20

          Ich hätte auch val == 80 ? -20 : val schreiben können.

          Aber das war nicht meine Frage, sondern es ging mir um die Fehlermeldung.

          CodierknechtC Offline
          CodierknechtC Offline
          Codierknecht
          Developer Most Active
          schrieb am zuletzt editiert von Codierknecht
          #4

          @marty56
          OK, ist noch zu früh ...

          "Any fool can write code that a computer can understand. Good programmers write code that humans can understand." (Martin Fowler, "Refactoring")

          Proxmox 9.1.1 LXC|8 GB|Core i7-6700
          HmIP|ZigBee|Tasmota|Unifi
          Zabbix Certified Specialist
          Konnte ich Dir helfen? Dann benutze bitte das Voting unten rechts im Beitrag

          M 1 Antwort Letzte Antwort
          0
          • CodierknechtC Codierknecht

            @marty56
            OK, ist noch zu früh ...

            M Offline
            M Offline
            Marty56
            schrieb am zuletzt editiert von
            #5

            @codierknecht Bitte einen Vorschlag, wie der tenäre Ausdruck sein müsste.

            HW:NUC (16 GB Ram)
            OS: Debian Bullseye, Promox V7, node v16.x npm 8.19.3

            M 1 Antwort Letzte Antwort
            0
            • M Marty56

              @codierknecht Bitte einen Vorschlag, wie der tenäre Ausdruck sein müsste.

              M Offline
              M Offline
              Marty56
              schrieb am zuletzt editiert von
              #6

              Ich habe auch schon "(val > 60) ? -20" : val versucht, aber das hat auch nicht geändert.

              HW:NUC (16 GB Ram)
              OS: Debian Bullseye, Promox V7, node v16.x npm 8.19.3

              CodierknechtC 1 Antwort Letzte Antwort
              0
              • M Marty56

                Ich habe auch schon "(val > 60) ? -20" : val versucht, aber das hat auch nicht geändert.

                CodierknechtC Offline
                CodierknechtC Offline
                Codierknecht
                Developer Most Active
                schrieb am zuletzt editiert von Codierknecht
                #7

                @marty56
                Hab's mal eben für einen Testwert eingerichtet.
                Funktioniert im Prinzip fehlerfrei.

                087da5a3-7923-489e-9c23-a806937f0b7f-image.png

                Bei einem aktuellen Wert im DP von 0.66 wird wie erwartet 1000.66 angezeigt

                "Any fool can write code that a computer can understand. Good programmers write code that humans can understand." (Martin Fowler, "Refactoring")

                Proxmox 9.1.1 LXC|8 GB|Core i7-6700
                HmIP|ZigBee|Tasmota|Unifi
                Zabbix Certified Specialist
                Konnte ich Dir helfen? Dann benutze bitte das Voting unten rechts im Beitrag

                CodierknechtC 1 Antwort Letzte Antwort
                0
                • CodierknechtC Codierknecht

                  @marty56
                  Hab's mal eben für einen Testwert eingerichtet.
                  Funktioniert im Prinzip fehlerfrei.

                  087da5a3-7923-489e-9c23-a806937f0b7f-image.png

                  Bei einem aktuellen Wert im DP von 0.66 wird wie erwartet 1000.66 angezeigt

                  CodierknechtC Offline
                  CodierknechtC Offline
                  Codierknecht
                  Developer Most Active
                  schrieb am zuletzt editiert von
                  #8

                  @codierknecht
                  Ist der Original-DP denn numerisch?

                  "Any fool can write code that a computer can understand. Good programmers write code that humans can understand." (Martin Fowler, "Refactoring")

                  Proxmox 9.1.1 LXC|8 GB|Core i7-6700
                  HmIP|ZigBee|Tasmota|Unifi
                  Zabbix Certified Specialist
                  Konnte ich Dir helfen? Dann benutze bitte das Voting unten rechts im Beitrag

                  1 Antwort Letzte Antwort
                  0
                  • M Marty56

                    Hallo,

                    Ich habe ein Homematic Thermometer und einen Alias definiert, der den Bug des HM Thermometer, dass bei Temperaturen unter -20 Grad immer 80 Grad angezeigt wird, kompensiert.

                    Dazu ist folgender Alias definiert.

                    {
                      "common": {
                        "name": "Thermometer in Gefrierschrank",
                        "alias": {
                          "id": "hm-rpc.0.LEQ0567580.1.TEMPERATURE",
                          "read": "val > 60 ? -20 : val"
                        },
                        "type": "number",
                        "role": "value.temperature",
                        "min": -40,
                        "max": 80,
                        "unit": "°C",
                        "custom": {
                          "influxdb.0": {
                            "enabled": true,
                            "storageType": "",
                            "aliasId": "",
                            "debounceTime": 0,
                            "blockTime": 0,
                            "changesOnly": true,
                            "changesRelogInterval": 0,
                            "changesMinDelta": 0,
                            "ignoreBelowNumber": "",
                            "disableSkippedValueLogging": false,
                            "enableDebugLogs": false,
                            "debounce": 1000
                          }
                        }
                      },
                      "native": {},
                      "type": "state",
                      "from": "system.adapter.javascript.0",
                      "user": "system.user.admin",
                      "ts": 1667660078432,
                      "_id": "alias.0.K2_Thermo_TEMPERATURE",
                      "acl": {
                        "object": 1636,
                        "state": 1636,
                        "owner": "system.user.admin",
                        "ownerGroup": "system.group.administrator"
                      }
                    }
                    

                    Jedesmal, wenn die Bedingung "val > 60 ? -20 : val" ausgeführt wird, bekomme ich Fehler. Das Thermometer funktioniert störungsfrei.

                    	2022-11-09 07:06:15.538	error	Invalid read function for undefined: val > 60 ? -20 : val => Cannot read properties of null (reading 'type')
                    
                    admin.0
                    2022-11-09 07:06:15.529	error	Invalid read function for undefined: val > 60 ? -20 : val => Cannot read properties of null (reading 'type')
                    

                    User Error oder Bug?

                    HomoranH Nicht stören
                    HomoranH Nicht stören
                    Homoran
                    Global Moderator Administrators
                    schrieb am zuletzt editiert von
                    #9

                    @marty56 sagte in Alias Fehler "Cannot read properties of null":

                    "id": "hm-rpc.0.LEQ0567580.1.TEMPERATURE"

                    sollte

                    kein Support per PN! - Fragen im Forum stellen -

                    Benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat.

                    ioBroker freut sich auch über eine Spende für das Forum. Benutzt dazu den Spendenbutton im Header. Danke!

                    der Installationsfixer: curl -fsL https://iobroker.net/fix.sh | bash -

                    CodierknechtC 1 Antwort Letzte Antwort
                    0
                    • HomoranH Homoran

                      @marty56 sagte in Alias Fehler "Cannot read properties of null":

                      "id": "hm-rpc.0.LEQ0567580.1.TEMPERATURE"

                      sollte

                      CodierknechtC Offline
                      CodierknechtC Offline
                      Codierknecht
                      Developer Most Active
                      schrieb am zuletzt editiert von
                      #10

                      Ich habe kein HM-Thermometer, kann das also nur bedingt nachstellen.
                      Mit der Temperatur im Rollladenaktor funktioniert das aber auch wie erwartet.

                      {
                        "common": {
                          "name": "Test",
                          "type": "number",
                          "read": true,
                          "write": false,
                          "def": 0,
                          "alias": {
                            "id": "hm-rpc.0.00111D8994D7A3.0.ACTUAL_TEMPERATURE",
                            "read": "(val > 20) ? -20 : val"
                          },
                          "min": -20,
                          "max": 80,
                          "unit": "°C"
                        },
                        "type": "state",
                        "native": {},
                        "_id": "alias.0.Test",
                        "acl": {
                          "object": 1636,
                          "state": 1636,
                          "owner": "system.user.admin",
                          "ownerGroup": "system.group.administrator"
                        },
                        "from": "system.adapter.admin.1",
                        "user": "system.user.admin",
                        "ts": 1667982471112
                      }```
                      [/s]

                      "Any fool can write code that a computer can understand. Good programmers write code that humans can understand." (Martin Fowler, "Refactoring")

                      Proxmox 9.1.1 LXC|8 GB|Core i7-6700
                      HmIP|ZigBee|Tasmota|Unifi
                      Zabbix Certified Specialist
                      Konnte ich Dir helfen? Dann benutze bitte das Voting unten rechts im Beitrag

                      M 1 Antwort Letzte Antwort
                      0
                      • CodierknechtC Codierknecht

                        Ich habe kein HM-Thermometer, kann das also nur bedingt nachstellen.
                        Mit der Temperatur im Rollladenaktor funktioniert das aber auch wie erwartet.

                        {
                          "common": {
                            "name": "Test",
                            "type": "number",
                            "read": true,
                            "write": false,
                            "def": 0,
                            "alias": {
                              "id": "hm-rpc.0.00111D8994D7A3.0.ACTUAL_TEMPERATURE",
                              "read": "(val > 20) ? -20 : val"
                            },
                            "min": -20,
                            "max": 80,
                            "unit": "°C"
                          },
                          "type": "state",
                          "native": {},
                          "_id": "alias.0.Test",
                          "acl": {
                            "object": 1636,
                            "state": 1636,
                            "owner": "system.user.admin",
                            "ownerGroup": "system.group.administrator"
                          },
                          "from": "system.adapter.admin.1",
                          "user": "system.user.admin",
                          "ts": 1667982471112
                        }```
                        [/s]
                        M Offline
                        M Offline
                        Marty56
                        schrieb am zuletzt editiert von Marty56
                        #11

                        @codierknecht
                        Die Funktion funktioniert auch bei mir, aber ab und zu gibt es eine Fehlermeldung. Es funktioniert aber trotzdem.

                        Da der Admin bzgl. der Aliases nicht so ganz stabil ist, es gibt ja auch noch diese Fehlerbursts, wo alle Definitionen (bei mir sind das ca. 300 + ) als fehlerhaft geloggt werden, hatte ich gedacht, dass es eventuell ein Hinweis ist, wo die Alias Implementierung noch grundsätzliche Schwächen hat.

                        HW:NUC (16 GB Ram)
                        OS: Debian Bullseye, Promox V7, node v16.x npm 8.19.3

                        1 Antwort Letzte Antwort
                        0
                        • M Marty56

                          Hallo,

                          Ich habe ein Homematic Thermometer und einen Alias definiert, der den Bug des HM Thermometer, dass bei Temperaturen unter -20 Grad immer 80 Grad angezeigt wird, kompensiert.

                          Dazu ist folgender Alias definiert.

                          {
                            "common": {
                              "name": "Thermometer in Gefrierschrank",
                              "alias": {
                                "id": "hm-rpc.0.LEQ0567580.1.TEMPERATURE",
                                "read": "val > 60 ? -20 : val"
                              },
                              "type": "number",
                              "role": "value.temperature",
                              "min": -40,
                              "max": 80,
                              "unit": "°C",
                              "custom": {
                                "influxdb.0": {
                                  "enabled": true,
                                  "storageType": "",
                                  "aliasId": "",
                                  "debounceTime": 0,
                                  "blockTime": 0,
                                  "changesOnly": true,
                                  "changesRelogInterval": 0,
                                  "changesMinDelta": 0,
                                  "ignoreBelowNumber": "",
                                  "disableSkippedValueLogging": false,
                                  "enableDebugLogs": false,
                                  "debounce": 1000
                                }
                              }
                            },
                            "native": {},
                            "type": "state",
                            "from": "system.adapter.javascript.0",
                            "user": "system.user.admin",
                            "ts": 1667660078432,
                            "_id": "alias.0.K2_Thermo_TEMPERATURE",
                            "acl": {
                              "object": 1636,
                              "state": 1636,
                              "owner": "system.user.admin",
                              "ownerGroup": "system.group.administrator"
                            }
                          }
                          

                          Jedesmal, wenn die Bedingung "val > 60 ? -20 : val" ausgeführt wird, bekomme ich Fehler. Das Thermometer funktioniert störungsfrei.

                          	2022-11-09 07:06:15.538	error	Invalid read function for undefined: val > 60 ? -20 : val => Cannot read properties of null (reading 'type')
                          
                          admin.0
                          2022-11-09 07:06:15.529	error	Invalid read function for undefined: val > 60 ? -20 : val => Cannot read properties of null (reading 'type')
                          

                          User Error oder Bug?

                          CodierknechtC Offline
                          CodierknechtC Offline
                          Codierknecht
                          Developer Most Active
                          schrieb am zuletzt editiert von
                          #12

                          @marty56 sagte in Alias Fehler "Cannot read properties of null":

                          Das hörte sich zunächst aber anders an.

                          Jedesmal, wenn die Bedingung "val > 60 ? -20 : val" ausgeführt wird, bekomme ich Fehler.

                          Was ist denn, wenn Du zunächst mal hingehst und den Wert explizit per parseFloat(val) konvertierst?
                          Auch wenn das

                          ... => Cannot read properties of null (reading 'type')
                          

                          vermuten lässt, dass die Ursache eine andere ist. Wobei ich gerade auch keine Idee habe, warum er hier type anmeckert.
                          Nur mal so in's Blaue gedacht:

                          isNaN(val) ? -99 : parseFloat(val) > 60 ? -20 : parseFloat(val)
                          

                          Hast Du den Alias mal gelöscht und komplett neu aufgesetzt?
                          Tritt das Problem nur bei diesem Alias auf, oder passiert das auch mal in anderen Konstellationen?

                          "Any fool can write code that a computer can understand. Good programmers write code that humans can understand." (Martin Fowler, "Refactoring")

                          Proxmox 9.1.1 LXC|8 GB|Core i7-6700
                          HmIP|ZigBee|Tasmota|Unifi
                          Zabbix Certified Specialist
                          Konnte ich Dir helfen? Dann benutze bitte das Voting unten rechts im Beitrag

                          M 1 Antwort Letzte Antwort
                          0
                          • CodierknechtC Codierknecht

                            @marty56 sagte in Alias Fehler "Cannot read properties of null":

                            Das hörte sich zunächst aber anders an.

                            Jedesmal, wenn die Bedingung "val > 60 ? -20 : val" ausgeführt wird, bekomme ich Fehler.

                            Was ist denn, wenn Du zunächst mal hingehst und den Wert explizit per parseFloat(val) konvertierst?
                            Auch wenn das

                            ... => Cannot read properties of null (reading 'type')
                            

                            vermuten lässt, dass die Ursache eine andere ist. Wobei ich gerade auch keine Idee habe, warum er hier type anmeckert.
                            Nur mal so in's Blaue gedacht:

                            isNaN(val) ? -99 : parseFloat(val) > 60 ? -20 : parseFloat(val)
                            

                            Hast Du den Alias mal gelöscht und komplett neu aufgesetzt?
                            Tritt das Problem nur bei diesem Alias auf, oder passiert das auch mal in anderen Konstellationen?

                            M Offline
                            M Offline
                            Marty56
                            schrieb am zuletzt editiert von Marty56
                            #13

                            @codierknecht Ja, das stimmt, das Wort "jedesmal" war falsch. Besser wäre "manchmal" gewesen.

                            Die Aliases lege ich per Script an und deshalb habe ich sie schon sehr oft neu aufgesetzt.

                            Und was komisch ist, ist das Wort "null" in der Fehlermeldung.

                            Es sieht so aus, als ob der Alias Adapter einen undefinierten Wert vom dem Sensor bekommt. Vielleicht eine Race Condition, wo die Info, das sich etwas geändert hat, vor dem eigentlich Bereitstellen des geänderten Werts kommt.
                            Ich glaube nicht, dass das parseflot() was bringt.

                            HW:NUC (16 GB Ram)
                            OS: Debian Bullseye, Promox V7, node v16.x npm 8.19.3

                            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

                            587

                            Online

                            32.7k

                            Benutzer

                            82.4k

                            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