Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. ioBroker Allgemein
    4. Iobroker.admin v1.0.0

    NEWS

    • Wir empfehlen: Node.js 22.x

    • Neuer Blog: Fotos und Eindrücke aus Solingen

    • ioBroker goes Matter ... Matter Adapter in Stable

    Iobroker.admin v1.0.0

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

      In JIRA ist eine noch nicht bearbeitete Fehlermeldung enthalten:

      Die Behandlung von Datenpunkten vom Typ "boolean" mit Zustandstexten (common.states) im Reiter "Zustände" (adminStates.js) muss korrigiert werden, da die Auswahl über die Select Box anstelle von false/true einen String (den Zustandstext) in den Wert (states.val) des Datenpunktes schreibt.

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

        Update: Habe in JIRA unter ADMIN-4 eine geänderte "adminStates.js" eingestellt, mit der das Problem behoben sein sollte.

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

          @paul53:

          Update: Habe in JIRA unter ADMIN-4 eine geänderte "adminStates.js" eingestellt, mit der das Problem behoben sein sollte. `
          Bist du sicher, dass du wirklich die neueste Version von admin hast?

          Ich kann den Kode nicht erkennen hier:

          https://github.com/ioBroker/ioBroker.ad … nStates.js

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

            Habe weiter getestet, und festgestellt, dass zwar die Selektion so funktioniert, aber es treten andere Effekte auf.

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

              Nun habe ich einen kleineren Teil (ab Zeile 95) geändert: Ein Zeile (Kommentar: NEU) hinzugefügt und einiges auskommentiert. Nach einigen Test mit states als String und als Objekt scheint es so zu funktionieren.

              ! ```
              if (main.objects[_id] && main.objects[_id].common && main.objects[_id].common.type == 'boolean' && main.objects[_id].common.states) { var states = main.objects[_id].common.states; /* if (typeof main.objects[_id].common.states == 'string' && main.objects[_id].common.states[0] == '{') { try { states = JSON.parse(main.objects[_id].common.states); var text = ''; for (var s in states) { text += text ? ';' : ''; text += s + ':' + states[s]; } states = text; } catch (ex) { console.error('Cannot parse states: ' + main.objects[_id].common.states); states = null; } } else if (typeof main.objects[_id].common.states == 'object') { var text = ''; for (var s in states) { text += text ? ';' : ''; text += s + ':' + states[s]; } states = text; } if (states) { */ that.$grid.setColProp('val', { editable: true, edittype: 'select', formatter: 'select', // NEU editoptions: {value: states}, align: 'center' }); /* } else { that.$grid.setColProp('val', { editable: true, edittype: 'select', editoptions: {value: 'true:false'}, align: 'center' }); ! } */ } else if (

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

                @paul53:

                Nun habe ich einen kleineren Teil (ab Zeile 95) geändert: Ein Zeile (Kommentar: NEU) hinzugefügt und einiges auskommentiert. Nach einigen Test mit states als String und als Objekt scheint es so zu funktionieren.

                ! `if (main.objects[_id] && main.objects[_id].common && main.objects[_id].common.type == 'boolean' && main.objects[_id].common.states) { var states = main.objects[_id].common.states; /* if (typeof main.objects[_id].common.states == 'string' && main.objects[_id].common.states[0] == '{') { try { states = JSON.parse(main.objects[_id].common.states); var text = ''; for (var s in states) { text += text ? ';' : ''; text += s + ':' + states[s]; } states = text; } catch (ex) { console.error('Cannot parse states: ' + main.objects[_id].common.states); states = null; } } else if (typeof main.objects[_id].common.states == 'object') { var text = ''; for (var s in states) { text += text ? ';' : ''; text += s + ':' + states[s]; } states = text; } if (states) { */ that.$grid.setColProp('val', { editable: true, edittype: 'select', formatter: 'select', // NEU editoptions: {value: states}, align: 'center' }); /* } else { that.$grid.setColProp('val', { editable: true, edittype: 'select', editoptions: {value: 'true:false'}, align: 'center' }); ! } */ } else if (` Du hast ganze Umwandlung deaktiviert. Wie seht dein Problem-Objekt aus?[/s][/s] `

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

                  @Bluefox:

                  Wie seht dein Problem-Objekt aus? `
                  Z.B. so:

                  {
                    "_id": "javascript.0.Test.Schalter",
                    "type": "state",
                    "common": {
                      "name": "Test.Schalter",
                      "role": "",
                      "type": "boolean",
                      "read": true,
                      "write": true,
                      "desc": "Schaltertest",
                      "def": false,
                      "states": {
                        "false": "Aus",
                        "true": "Ein"
                      }
                    },
                    "native": {},
                    "acl": {
                      "object": 1638,
                      "state": 1638
                    }
                  }
                  

                  Mit Umwandlung, aber ohne formatter: 'select' liefert die Auswahl "Aus" bzw. "Ein" (string). Mit der Änderung ist das Ergebnis false bzw. true (boolean).

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

                    Ich kann dein Problem nicht reproduzieren mit dem Object.

                    Allerdings es gibt neue Version. Probier mal die.

                    Ansonsten das wird geschrieben beim Steuern:

                    {"id":"javascript.0.Test.Schalter","newState":{"val":false,"ts":1462040239,"ack":false,"lc":1462040239,"from":"system.adapter.admin.0"}}

                    {"id":"javascript.0.Test.Schalter","newState":{"val":true,"ts":1462040221,"ack":false,"lc":1462040221,"from":"system.adapter.admin.0"}}

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

                      Habe es mit frisch installierter Version 1.0.3 von ibroker.admin gestestet mit folgendem Ergebnis:

                      javascript-0	2016-04-30 23:46:12	info	script.js._Multistate-Test: Test.Schalter: Ein string
                      javascript-0	2016-04-30 23:46:07	info	script.js._Multistate-Test: Test.Schalter: Aus string
                      javascript-0	2016-04-30 23:45:43	info	script.js._Multistate-Test: Test.String: 20.3 °C string
                      javascript-0	2016-04-30 23:45:18	info	script.js._Multistate-Test: Test.String: neuer Text string
                      javascript-0	2016-04-30 23:44:55	info	script.js._Multistate-Test: Test.swi: Nein string
                      javascript-0	2016-04-30 23:44:51	info	script.js._Multistate-Test: Test.swi: Ja string
                      javascript-0	2016-04-30 23:44:25	info	script.js._Multistate-Test: Test.3-Stufen: 2 number
                      javascript-0	2016-04-30 23:44:21	info	script.js._Multistate-Test: Test.3-Stufen: 3 number
                      javascript-0	2016-04-30 23:44:07	info	script.js._Multistate-Test: Test.Checkbox: true boolean
                      javascript-0	2016-04-30 23:44:03	info	script.js._Multistate-Test: Test.Checkbox: false boolean
                      javascript-0	2016-04-30 23:43:43	info	script.js._Multistate-Test: Test.Analog: 42 number
                      javascript-0	2016-04-30 23:43:38	info	script.js._Multistate-Test: Test.Analog: 43 number
                      admin-0	2016-04-30 23:43:30	info	Repository received successfully.
                      
                      

                      Das ist das zugehörige Testscript:

                      var anaid = getIdByName("Test.Analog");
                      var checkid = getIdByName("Test.Checkbox");
                      var msid = getIdByName("Test.3-Stufen");
                      var swiid = getIdByName("Test.swi");
                      var strid = getIdByName("Test.String");
                      var schaltid =getIdByName("Test.Schalter");
                      
                      function loggen(dp) {
                          log(dp.common.name +": " + dp.state.val + " " + typeof dp.state.val);
                      }
                      
                      on(anaid, loggen);
                      on(checkid, loggen);
                      on(msid, loggen);
                      on(swiid, loggen);
                      on(strid, loggen);
                      on(schaltid, loggen);
                      
                      

                      Wie man sieht, liefert die Veränderung des Wertes im Reiter "Zustände" bei den beiden Datenpunkten (common.type: boolean) "Test.swi" und "Test.Schalter" einen String zurück. Der Unterschied zwischen "Test.Schalter" und "Test.swi" ist common.states: Schalter als Objekt und swi als String.

                          "states": "false:Nein;true:Ja",
                      
                      1 Reply Last reply Reply Quote 0
                      • Bluefox
                        Bluefox last edited by

                        @paul53:

                        Habe es mit frisch installierter Version 1.0.3 von ibroker.admin gestestet mit folgendem Ergebnis:

                        javascript-0	2016-04-30 23:46:12	info	script.js._Multistate-Test: Test.Schalter: Ein string
                        javascript-0	2016-04-30 23:46:07	info	script.js._Multistate-Test: Test.Schalter: Aus string
                        javascript-0	2016-04-30 23:45:43	info	script.js._Multistate-Test: Test.String: 20.3 °C string
                        javascript-0	2016-04-30 23:45:18	info	script.js._Multistate-Test: Test.String: neuer Text string
                        javascript-0	2016-04-30 23:44:55	info	script.js._Multistate-Test: Test.swi: Nein string
                        javascript-0	2016-04-30 23:44:51	info	script.js._Multistate-Test: Test.swi: Ja string
                        javascript-0	2016-04-30 23:44:25	info	script.js._Multistate-Test: Test.3-Stufen: 2 number
                        javascript-0	2016-04-30 23:44:21	info	script.js._Multistate-Test: Test.3-Stufen: 3 number
                        javascript-0	2016-04-30 23:44:07	info	script.js._Multistate-Test: Test.Checkbox: true boolean
                        javascript-0	2016-04-30 23:44:03	info	script.js._Multistate-Test: Test.Checkbox: false boolean
                        javascript-0	2016-04-30 23:43:43	info	script.js._Multistate-Test: Test.Analog: 42 number
                        javascript-0	2016-04-30 23:43:38	info	script.js._Multistate-Test: Test.Analog: 43 number
                        admin-0	2016-04-30 23:43:30	info	Repository received successfully.
                        
                        

                        Das ist das zugehörige Testscript:

                        var anaid = getIdByName("Test.Analog");
                        var checkid = getIdByName("Test.Checkbox");
                        var msid = getIdByName("Test.3-Stufen");
                        var swiid = getIdByName("Test.swi");
                        var strid = getIdByName("Test.String");
                        var schaltid =getIdByName("Test.Schalter");
                        
                        function loggen(dp) {
                            log(dp.common.name +": " + dp.state.val + " " + typeof dp.state.val);
                        }
                        
                        on(anaid, loggen);
                        on(checkid, loggen);
                        on(msid, loggen);
                        on(swiid, loggen);
                        on(strid, loggen);
                        on(schaltid, loggen);
                        
                        

                        Wie man sieht, liefert die Veränderung des Wertes im Reiter "Zustände" bei den beiden Datenpunkten (common.type: boolean) "Test.swi" und "Test.Schalter" einen String zurück. Der Unterschied zwischen "Test.Schalter" und "Test.swi" ist common.states: Schalter als Objekt und swi als String.

                            "states": "false:Nein;true:Ja",
                        ```` `  
                        

                        Und du schaltest über Objekte oder über Zustände?

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

                          @Bluefox:

                          Und du schaltest über Objekte oder über Zustände? `
                          Tab "Zustände".

                          EDIT: Habe es gerade im Tab "Objekte" getestet. Hier funktioniert es jetzt für alle Datenpunkttypen korrekt 😄

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

                            Hey,

                            im Github sind noch Issues … Mich quält schon länger das https://github.com/ioBroker/ioBroker.admin/issues/63 ... Ist da eine Lösung in Sicht? Vorher ist das für mich nicht wirklich "stable" 😞

                            Apollon77 created this issue in ioBroker/ioBroker.admin

                            closed Daten-Duplizierung bei mehreren Instanzen #63

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

                            Support us

                            ioBroker
                            Community Adapters
                            Donate
                            FAQ Cloud / IOT
                            HowTo: Node.js-Update
                            HowTo: Backup/Restore
                            Downloads
                            BLOG

                            871
                            Online

                            32.0k
                            Users

                            80.4k
                            Topics

                            1.3m
                            Posts

                            4
                            14
                            2065
                            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