Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. English
    3. ioBroker general
    4. How to replace null with 0 using alias-manager

    NEWS

    • Neuer Blog: Fotos und Eindrücke aus Solingen

    • ioBroker@Smart Living Forum Solingen, 14.06. - Agenda added

    • ioBroker goes Matter ... Matter Adapter in Stable

    How to replace null with 0 using alias-manager

    This topic has been deleted. Only users with topic management privileges can see it.
    • Tomasz Nowak
      Tomasz Nowak last edited by

      Hi,
      I have an object that returns a value (number) on button press but then it shows null.
      I need to convert that null tu value 0.
      I've tried the alias-manager adapter, but I don't know how to write a proper rule for that.
      This below doesn't seem to work:

      a9377ab3-3023-4f4f-874d-604d0ac7586d-image.png

      Any help appreciated!

      Homoran AlCalzone 2 Replies Last reply Reply Quote 0
      • Homoran
        Homoran Global Moderator Administrators @Tomasz Nowak last edited by

        @tomasz-nowak sagte in How to replace null with 0 using alias-manager:

        Any help appreciated!

        I really don't know, but please try val === null?0:val

        Tomasz Nowak 1 Reply Last reply Reply Quote 1
        • Tomasz Nowak
          Tomasz Nowak @Homoran last edited by

          @homoran said in How to replace null with 0 using alias-manager:

          I really don't know, but please try val === null?0:val

          Thanks, but it doesn't seem to work 😞

          Homoran 1 Reply Last reply Reply Quote 0
          • Homoran
            Homoran Global Moderator Administrators @Tomasz Nowak last edited by

            @tomasz-nowak sagte in How to replace null with 0 using alias-manager:

            it doesn't seem to work

            can you please try val == null?0:val

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

              Zeig doch bitte mal dwie das Alias objekt aussieht was da rausfällt.

              1 Reply Last reply Reply Quote 0
              • AlCalzone
                AlCalzone Developer @Tomasz Nowak last edited by

                @tomasz-nowak The common.type seems wrong - the original state is numeric. Maybe that confuses the alias function.

                Tomasz Nowak 1 Reply Last reply Reply Quote 0
                • Tomasz Nowak
                  Tomasz Nowak @AlCalzone last edited by

                  @alcalzone I've changed common.type to number - no change.
                  @Homoran Tried also == and no change.

                  So I have this object: SceneId:

                  a90ffa87-ea9e-4a8a-9b28-7497c5fbe57c-image.png

                  When I press a mono-switch connected that dimmer I see value "26" for a blink of an eye, than there's noting in that field (I believe its "null"). This null somehow crashes mqtt-broker, so I wanted to change "null" to "0".

                  But in an alias object:

                  4539395f-acb2-4167-8ccf-0541f12e5f93-image.png

                  Its exactly the same - 26 shows for a blink of the eye and then nothing. Both with val === null?0:val and val == null?0:val.
                  This alias object also crashes mqtt-client adapter with uncaught null exception.

                  This is full config of my alias. I'm not sure if I understand all correctly.

                  78aeb06f-e900-4761-a932-6d948d9ce1fa-image.png

                  apollon77 1 Reply Last reply Reply Quote 0
                  • apollon77
                    apollon77 @Tomasz Nowak last edited by

                    @tomasz-nowak Crashes? Logs please 🙂

                    Also I would like to see the Core JSON of the created alias object because that matters (not a UI) 😉

                    Go into Admin please, Objects Tab, go to that state and enable expert mode, klick on pencil on right side, in dialog "raw" and copy the json please here

                    Tomasz Nowak 1 Reply Last reply Reply Quote 0
                    • Tomasz Nowak
                      Tomasz Nowak @apollon77 last edited by

                      @apollon77

                      This is JSON for an alias object:

                      {
                        "from": "system.adapter.admin.0",
                        "user": "system.user.admin",
                        "ts": 1619609676629,
                        "common": {
                          "name": "Scene ID",
                          "role": "level",
                          "type": "number",
                          "read": true,
                          "write": true,
                          "alias": {
                            "id": "zwave2.0.Node_014.Scene_Activation.sceneId",
                            "read": "val == null?0:val"
                          }
                        },
                        "native": {},
                        "acl": {
                          "object": 1636,
                          "owner": "system.user.admin",
                          "ownerGroup": "system.group.administrator",
                          "state": 1636
                        },
                        "_id": "alias.0.Fibaro_Dimmer_1_SceneID.sceneId",
                        "type": "state"
                      }
                      

                      and this is for the source object:

                      {
                        "type": "state",
                        "common": {
                          "role": "level",
                          "read": true,
                          "write": true,
                          "name": "Scene ID",
                          "type": "number",
                          "min": 1,
                          "max": 255
                        },
                        "native": {
                          "nodeId": 14,
                          "valueId": {
                            "commandClass": 43,
                            "endpoint": 0,
                            "property": "sceneId"
                          }
                        },
                        "from": "system.adapter.zwave2.0",
                        "user": "system.user.admin",
                        "ts": 1619558168447,
                        "_id": "zwave2.0.Node_014.Scene_Activation.sceneId",
                        "acl": {
                          "object": 1636,
                          "state": 1636,
                          "owner": "system.user.admin",
                          "ownerGroup": "system.group.administrator"
                        }
                      }
                      

                      Thanks

                      Tomasz Nowak 1 Reply Last reply Reply Quote 0
                      • Tomasz Nowak
                        Tomasz Nowak @Tomasz Nowak last edited by

                        Mqtt-client crash log is here (I've created an issue out of this):
                        https://github.com/Pmant/ioBroker.mqtt-client/issues/45

                        tnowak created this issue in Pmant/ioBroker.mqtt-client

                        closed Uncaught exception: Cannot read property 'from' of null #45

                        apollon77 1 Reply Last reply Reply Quote 0
                        • apollon77
                          apollon77 @Tomasz Nowak last edited by

                          @tomasz-nowak js-controller Version??

                          Tomasz Nowak 1 Reply Last reply Reply Quote 0
                          • Tomasz Nowak
                            Tomasz Nowak @apollon77 last edited by

                            @apollon77

                            • JS-Controller version: 3.2.16
                            • Node version: v12.22.1
                            • Operating system: docker image @ Raspberry OS
                            • all adapters in current released versions
                            1 Reply Last reply Reply Quote 0
                            • apollon77
                              apollon77 last edited by

                              Ok, jetuzt mal ganz genau: was ist der exakte wert?

                              • In allen screenshots ist gar kein Wert zu sehen - auch nicht "null"
                              • Der mqtt-client Adapter crasht weil der state an sich "null" ist - also NICHT "state wert ist null" sondern es gibt gar keinen state!! Nix
                              • Aliasse greifen dann nicht weil Sie nur Werte mappen - bedeutet also das der resulting Alias auch "keinen Wert hat"

                              Am besten dazu jetzt mal

                              iobroker state get zwave2.0.Node_014.Scene_Activation.sceneId

                              machen und Ausgabe posten.

                              Tomasz Nowak 1 Reply Last reply Reply Quote 0
                              • Tomasz Nowak
                                Tomasz Nowak @apollon77 last edited by

                                @apollon77 said in How to replace null with 0 using alias-manager:

                                Ok, jetuzt mal ganz genau: was ist der exakte wert?

                                • In allen screenshots ist gar kein Wert zu sehen - auch nicht "null"
                                • Der mqtt-client Adapter crasht weil der state an sich "null" ist - also NICHT "state wert ist null" sondern es gibt gar keinen state!! Nix
                                • Aliasse greifen dann nicht weil Sie nur Werte mappen - bedeutet also das der resulting Alias auch "keinen Wert hat"

                                Am besten dazu jetzt mal

                                iobroker state get zwave2.0.Node_014.Scene_Activation.sceneId

                                machen und Ausgabe posten.

                                Yes, no value is seen on the screenshots because there no value at all for most of the time. It gets "26" or "24" depending on number of clicks, but only for a second. Then it returns to empty / null.
                                Now, because mqtt-client can't handle this correctly, I've been trying to alias this object somehow to push it to MQTT anyway. So, I can not rewrite empty object with any custom value (such as "0" for instance)?

                                Tomasz Nowak 1 Reply Last reply Reply Quote 0
                                • Tomasz Nowak
                                  Tomasz Nowak @Tomasz Nowak last edited by Tomasz Nowak

                                  Thats strange:

                                  8ab9a02c-3dbe-4017-9d17-a043a51690fb-image.png

                                  And I still see this object in ioBroker admin panel

                                  paul53 1 Reply Last reply Reply Quote 0
                                  • apollon77
                                    apollon77 last edited by apollon77

                                    Ok nicht englishc.

                                    Nicht Dinge vermischen!!

                                    Es gibt Objekte - das siehst Du im Admin. Und Objekte haben (vielleicht) einen Wert. Ein Wert kann da sein und einen value haben und der Wert kann auch NICHT da sein (weil nie gesetzt wurde, weil expired oder weil gelöscht.

                                    Also: Jetzt wieder zwave2 Frage ... warum existiert der state nicht?

                                    Tomasz Nowak 1 Reply Last reply Reply Quote 0
                                    • Tomasz Nowak
                                      Tomasz Nowak @apollon77 last edited by

                                      @apollon77

                                      That issue I've also reported here 🙂
                                      https://github.com/AlCalzone/ioBroker.zwave2/issues/597

                                      tnowak created this issue in AlCalzone/ioBroker.zwave2

                                      closed Scene_Activation.sceneId null value seems to be crashing mqtt-client #597

                                      apollon77 1 Reply Last reply Reply Quote 0
                                      • apollon77
                                        apollon77 @Tomasz Nowak last edited by

                                        @tomasz-nowak ;üsste man umformulieren!

                                        Wie gesagt der crash ist ein Fehler in mqtt-client! Die Frage an zwave2 ist warum der state gelöscht wird

                                        1 Reply Last reply Reply Quote 0
                                        • paul53
                                          paul53 @Tomasz Nowak last edited by

                                          @tomasz-nowak
                                          If the state expires after a second, use a script:

                                          on({id: 'zwave2.0.Node_014.Scene_Activation.sceneId'}, function(dp) {
                                              setState('0_userdata.0.Fibaro_Dimmer_1_SceneID.sceneId', dp.state.val, true);
                                              setTimeout(function() {
                                                  setState('0_userdata.0.Fibaro_Dimmer_1_SceneID.sceneId', 0, true);
                                              }, 1000);
                                          });
                                          
                                          Tomasz Nowak 1 Reply Last reply Reply Quote 1
                                          • Tomasz Nowak
                                            Tomasz Nowak @paul53 last edited by Tomasz Nowak

                                            I've never used Javascript in ioBroker, but I have installed Javascript adapter now, created that channel and object under 0_userdata.0 and......
                                            WOW, it works as it should !!!!!!!!!!!!
                                            I get 26 and 24 values on 1- and 2-click and then the objects turns to 0. And it works with mqtt-client putting it to the broker just fine:

                                            9be4e581-c53e-4147-a0ce-0a7deb513310-image.png

                                            Thank you @paul53 for this quick solution! 🙌

                                            I hope mqtt-client (and probably zwave2) adapters will be address with this issue in the future, but for now I may switch my lights again!

                                            AlCalzone 1 Reply Last reply Reply Quote 0
                                            • First post
                                              Last post

                                            Support us

                                            ioBroker
                                            Community Adapters
                                            Donate

                                            783
                                            Online

                                            31.8k
                                            Users

                                            80.0k
                                            Topics

                                            1.3m
                                            Posts

                                            9
                                            25
                                            2304
                                            Loading More Posts
                                            • Oldest to Newest
                                            • Newest to Oldest
                                            • Most Votes
                                            Reply
                                            • Reply as topic
                                            Log in to reply
                                            Community
                                            Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen
                                            The ioBroker Community 2014-2023
                                            logo