Skip to content
  • Home
  • Recent
  • Tags
  • 0 Unread 0
  • Categories
  • Unreplied
  • Popular
  • 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

  • Default (No Skin)
  • No Skin
Collapse
ioBroker Logo

Community Forum

  1. ioBroker Community Home
  2. English
  3. ioBroker general
  4. How to replace null with 0 using alias-manager

NEWS

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

  • Monatsrückblick – September 2025
    BluefoxB
    Bluefox
    13
    1
    1.9k

  • Neues Video "KI im Smart Home" - ioBroker plus n8n
    BluefoxB
    Bluefox
    15
    1
    2.3k

How to replace null with 0 using alias-manager

Scheduled Pinned Locked Moved ioBroker general
25 Posts 9 Posters 3.4k Views 7 Watching
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • apollon77A Offline
    apollon77A Offline
    apollon77
    wrote on last edited by apollon77
    #16

    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?

    Beitrag hat geholfen? Votet rechts unten im Beitrag :-) https://paypal.me/Apollon77 / https://github.com/sponsors/Apollon77

    • Debug-Log für Instanz einschalten? Admin -> Instanzen -> Expertenmodus -> Instanz aufklappen - Loglevel ändern
    • Logfiles auf Platte /opt/iobroker/log/… nutzen, Admin schneidet Zeilen ab
    Tomasz NowakT 1 Reply Last reply
    0
    • apollon77A 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 NowakT Offline
      Tomasz NowakT Offline
      Tomasz Nowak
      wrote on last edited by
      #17

      @apollon77

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

      apollon77A 1 Reply Last reply
      0
      • Tomasz NowakT Tomasz Nowak

        @apollon77

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

        apollon77A Offline
        apollon77A Offline
        apollon77
        wrote on last edited by
        #18

        @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

        Beitrag hat geholfen? Votet rechts unten im Beitrag :-) https://paypal.me/Apollon77 / https://github.com/sponsors/Apollon77

        • Debug-Log für Instanz einschalten? Admin -> Instanzen -> Expertenmodus -> Instanz aufklappen - Loglevel ändern
        • Logfiles auf Platte /opt/iobroker/log/… nutzen, Admin schneidet Zeilen ab
        1 Reply Last reply
        0
        • Tomasz NowakT Tomasz Nowak

          Thats strange:

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

          And I still see this object in ioBroker admin panel

          paul53P Offline
          paul53P Offline
          paul53
          wrote on last edited by
          #19

          @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);
          });
          

          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

          Tomasz NowakT 1 Reply Last reply
          1
          • paul53P paul53

            @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 NowakT Offline
            Tomasz NowakT Offline
            Tomasz Nowak
            wrote on last edited by Tomasz Nowak
            #20

            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!

            AlCalzoneA 1 Reply Last reply
            0
            • Tomasz NowakT 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!

              AlCalzoneA Offline
              AlCalzoneA Offline
              AlCalzone
              Developer
              wrote on last edited by
              #21

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

              and probably zwave2

              I can only repeat myself: This is not a problem in zwave2. It just uses the expire feature for states which mqtt-client doesn't handle correctly.

              Warum `sudo` böse ist: https://forum.iobroker.net/post/17109

              Tomasz NowakT paul53P 2 Replies Last reply
              1
              • AlCalzoneA AlCalzone

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

                and probably zwave2

                I can only repeat myself: This is not a problem in zwave2. It just uses the expire feature for states which mqtt-client doesn't handle correctly.

                Tomasz NowakT Offline
                Tomasz NowakT Offline
                Tomasz Nowak
                wrote on last edited by Tomasz Nowak
                #22

                Yes, that's true.

                And for the record, this issue (with Fibaro sceneId) is totally solved with two PR's to mqtt-client adapter proposed by @AlCalzone (#46 & #47) and merged by @apollon77

                You guys are amazing!

                1 Reply Last reply
                1
                • AlCalzoneA AlCalzone

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

                  and probably zwave2

                  I can only repeat myself: This is not a problem in zwave2. It just uses the expire feature for states which mqtt-client doesn't handle correctly.

                  paul53P Offline
                  paul53P Offline
                  paul53
                  wrote on last edited by
                  #23

                  @alcalzone sagte: It just uses the expire feature for states

                  Wozu ist ein Datenpunkt ohne Zustand gut? Bringt es irgend einen Vorteil, state.expire zu nutzen?

                  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

                  AlCalzoneA apollon77A 2 Replies Last reply
                  0
                  • paul53P paul53

                    @alcalzone sagte: It just uses the expire feature for states

                    Wozu ist ein Datenpunkt ohne Zustand gut? Bringt es irgend einen Vorteil, state.expire zu nutzen?

                    AlCalzoneA Offline
                    AlCalzoneA Offline
                    AlCalzone
                    Developer
                    wrote on last edited by
                    #24

                    @paul53 Im vorliegenden Fall handelt es sich um Events, die eigentlich nur exakt in dem Moment, in dem sie empfangen werden, eine Bedeutung haben (z.B. kurzer Knopfdruck). Damit man trotzdem sowohl darauf reagieren kann, als auch im Admin etwas sieht, habe ich mich entschieden, diese für jeweils 1 Sekunde im State zu speichern.

                    Expire macht diese Funktion recht praktisch, weil sich ioBroker bzw. die Datenbank dann ums Timeout kümmert und man nicht selbst jeden State tracken muss.
                    Das Zurücksetzen funktioniert so auch dann noch, wenn innerhalb der Sekunde der Adapter beendet wird.

                    Warum `sudo` böse ist: https://forum.iobroker.net/post/17109

                    1 Reply Last reply
                    0
                    • paul53P paul53

                      @alcalzone sagte: It just uses the expire feature for states

                      Wozu ist ein Datenpunkt ohne Zustand gut? Bringt es irgend einen Vorteil, state.expire zu nutzen?

                      apollon77A Offline
                      apollon77A Offline
                      apollon77
                      wrote on last edited by
                      #25

                      @paul53 Naja Formal ist es ein Unterschied (auf einer reinen Datenebene) ob ein State einen Wert hat - und ja formal ist auch "null" ein Wert der eine spezifische Bedeutung haben kann. Damit braucht es eine Abgrenzung zu "es ist kein Wert da" und das ist genau der Fall hier.

                      Auch das zurücksetzen von Werten (einige Adapter machen bei "Button" States die an sich immer nur auf true getriggert werden extra timeouts damit der Button wieder auf false zurückgesetzt wird (weil User das gern in Visus so haben wollen ... no offense ;-) ) Wenn aber jetzt der Adapter beendet wird oder das Skript nicht mehr läuft bleibt das halt auf true stehen.

                      Mit expires kann du den Wert automatisiert "clearen" weil das in der Verantwortung der Datenbank liegt (File-DB bzw Redis sorgt dafür)

                      Mit expires kann man auch durchaus Überwachungen bauen. Zum Beispiel funktionieren die wie system.adapter.alive so, dass diese alle 15s neu gesetzt werden mit einem expire von 30s oder so. So lange also der prozess läuft expired das nie weil es immer neu gesetzt wird.
                      Wenn jetzt der Adater komisch hängenbleibt, sodass er nicht crasht aber auch nicht regelmässig alive setzen kann wird der state expiren ... das registriert der Controller und reragiert durch kill des prozesses und neustart ...

                      Also es gibt durchaus sinnvolle Anwendungsformen.

                      Die die @AlCalzone beschrieben hat könnte man für alle buttons nutzen (wenn es mit alles visus und der User erwartung kompatibel wäre ;-) )

                      Beitrag hat geholfen? Votet rechts unten im Beitrag :-) https://paypal.me/Apollon77 / https://github.com/sponsors/Apollon77

                      • Debug-Log für Instanz einschalten? Admin -> Instanzen -> Expertenmodus -> Instanz aufklappen - Loglevel ändern
                      • Logfiles auf Platte /opt/iobroker/log/… nutzen, Admin schneidet Zeilen ab
                      1 Reply Last reply
                      0
                      Reply
                      • Reply as topic
                      Log in to reply
                      • Oldest to Newest
                      • Newest to Oldest
                      • Most Votes


                      Support us

                      ioBroker
                      Community Adapters
                      Donate

                      438

                      Online

                      32.4k

                      Users

                      81.4k

                      Topics

                      1.3m

                      Posts
                      Community
                      Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen | Einwilligungseinstellungen
                      ioBroker Community 2014-2025
                      logo
                      • Login

                      • Don't have an account? Register

                      • Login or register to search.
                      • First post
                        Last post
                      0
                      • Home
                      • Recent
                      • Tags
                      • Unread 0
                      • Categories
                      • Unreplied
                      • Popular
                      • GitHub
                      • Docu
                      • Hilfe