Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. ioBroker Allgemein
    4. Javascript 6.1.0 - Neue Funktionen (Beta)

    NEWS

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

    • ioBroker goes Matter ... Matter Adapter in Stable

    • Monatsrückblick - April 2025

    Javascript 6.1.0 - Neue Funktionen (Beta)

    This topic has been deleted. Only users with topic management privileges can see it.
    • Homoran
      Homoran Global Moderator Administrators @paul53 last edited by

      @paul53 Danke!

      M 1 Reply Last reply Reply Quote 0
      • M
        Marty56 @Homoran last edited by

        Ich habe tatsächlich diesen neuen Fehler "setState Checker" bekommen, bei einem Script.

        Script script.js.common.Energie is calling setState more than 1000 times per minute! Stopping Script now! Please check your script
        

        Es wäre schön, wenn man etwas mehr Infos zu dem State oder der Zeile bekommen könnte, wo dieser Fehler auftritt.

        Homoran apollon77 2 Replies Last reply Reply Quote 0
        • Homoran
          Homoran Global Moderator Administrators @Marty56 last edited by

          @marty56 ich hab keine Ahnung von javascript.
          Aber was für Infos fehlen dir denn?

          such mal alle setState()
          da scheinen in einer Schleife im Millisekundentakt States geprüft zu werden.

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

            @marty56 er zählt alle set state pro Skript. Des Weiteren einmal pro Minute schaut er nach der Zahl. Wie soll man das denn auf ein einzelnes setState runterbrechen? Das geht nicht.

            Starte dein Skript im verbose Mode und jede Aktion wird geloggt. Dann siehst du vllt mehr.

            Und ja es kann ja sein das das für das Skript ok ist. Aber solltest du prüfen bevor du das Limit hoch setzt.

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

              @paul53 hm … ok ich stehende einen Fehler das in Beispielen createState kommt. Aber wo ist variable? Ok muss ich nachher mal am pc suchen. Oder mach nen pr :-))

              Homoran paul53 2 Replies Last reply Reply Quote 0
              • Homoran
                Homoran Global Moderator Administrators @apollon77 last edited by Homoran

                @apollon77 createState('myAlias', {id: {read: 'myReadValiable', write: 'myWriteVariable'}})
                vielleicht besser datapoint

                apollon77 1 Reply Last reply Reply Quote 1
                • M
                  MCU last edited by

                  @darkiop
                  https://forum.iobroker.net/topic/39912/liste-aller-aktiven-scheduler/2

                  D 1 Reply Last reply Reply Quote 2
                  • apollon77
                    apollon77 @Homoran last edited by

                    @homoran ok my fault dann. Fixe Doku nachher

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

                      @apollon77 sagte: mach nen pr :-))

                      Erledigt.

                      apollon77 2 Replies Last reply Reply Quote 1
                      • apollon77
                        apollon77 @paul53 last edited by

                        @paul53 Danke!!

                        1 Reply Last reply Reply Quote 0
                        • D
                          darkiop Most Active @MCU last edited by

                          @mcu Danke dir, kein fehler da etwas transparenz zu haben 😉

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

                            @paul53 Danke! merged und auch noch ein anderer Fehler gefixt.

                            1 Reply Last reply Reply Quote 0
                            • BananaJoe
                              BananaJoe Most Active last edited by

                              @apollon77 sagte in Javascript 6.1.0 - Neue Funktionen (Beta):

                              Der JavaScript Adapter überwacht ab sofort die Anzahl der setState pro Skript und wenn dies pro Minute mehr als 1000 sind (der Wert ist global im Adapter konfigurierbar) - 1000/Min sind 16 pro Sekunde - wird das Skript beendet! Ein Fehler wird geloggt.

                              Mhh, sehe ich das nur im Log? Ich spiele darauf an mich z.B. per Telegram benachrichtigen zu lassen. Die States unter javascript.0.scriptEnabled zu überwachen ist denke ich nicht hilfreich.
                              Mein Monitoring kann aber auch mit Log-Dateien umgehen - ich bräuchte dafür aber mal eine Beispiel wie so ein Logeintrag aussieht.

                              Ansonsten: Klasse Idee!

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

                                @bananajoe ja aktuell nur log. Man könnte theoretisch noch den scriptProblem state Zähler erhöhen.

                                Zum Beispiel: scroll mal hier im thread hoch. marty56 war reingerannt 😉

                                BananaJoe 1 Reply Last reply Reply Quote 1
                                • BananaJoe
                                  BananaJoe Most Active @apollon77 last edited by

                                  @apollon77 Gefunden. ist dann ein Error? (Du hats im Eingangspost geschrieben das ein Fehler geloggt wird)

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

                                    @bananajoe ja. As i remember

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

                                      @apollon77 sagte in Javascript 6.1.0 - Neue Funktionen (Beta):

                                      As i remember

                                      geht das bei dir auch schon los? :duckundwech:

                                      M 1 Reply Last reply Reply Quote 1
                                      • M
                                        Marty56 @Homoran last edited by Marty56

                                        @appollon

                                        Hi,

                                        Da ich immer diese massenhaften Abstürze bei den Aliases habe, möchte ich mein Alias Genierungsscript jetzt auf das offizielle API umstellen.
                                        Leider kappiere ich die Syntax nicht richtig.

                                        Alle Beispiele sollen überschreiben eines existierenden Alias enforcen.

                                        Beispiel 1.
                                        Ich möchte z.B. einen Wert invertieren.

                                        createAlias('alias.0.Test.test', 'hm-rpc.0.KEQ0172616.1.STATE',true, 
                                             {alias: { read: '!val'}
                                             })
                                        

                                        wird schon in der Syntax nicht angenommen.

                                        Beispiel 2:

                                        Und ich würde gerne den Typ des Alias ändern.
                                        Use Case. Es wird die Batterie in % gemessen im Original Datenpunkt und es soll ein Alias erzeugt werden, der boolean ausgibt, z.B. "low_bat".

                                        Irgendwie so

                                        createAlias('OG_Taster_3_LOWBAT', 'zigbee.0.943469fffe668b6a.battery',true, 
                                        {   
                                            name: "Zigbee Taster am Sofa im OG",
                                            type: "mixed",
                                            unit: "",
                                            alias: { read: "val < 20 ? true : false"}
                                        })
                                        

                                        letztlich soll der Alias so aussehen

                                        {
                                          "type": "state",
                                          "common": {
                                            "name": "Zigbee Taster am Sofa im OG",
                                            "type": "mixed",
                                            "unit": "",
                                            "read": true,
                                            "write": false,
                                            "role": "value.battery",
                                            "min": 0,
                                            "max": 100,
                                            "icon": "img/battery_p.png",
                                            "alias": {
                                              "id": "zigbee.0.943469fffe668b6a.battery",
                                              "read": "val < 20 ? true : false"
                                            }
                                          },
                                          "from": "system.adapter.javascript.0",
                                          "user": "system.user.admin",
                                          "ts": 1667491683697,
                                          "_id": "alias.0.OG_Taster_3_LOWBAT",
                                          "acl": {
                                            "object": 1636,
                                            "state": 1636,
                                            "owner": "system.user.admin",
                                            "ownerGroup": "system.group.administrator"
                                          }
                                        }
                                        
                                        apollon77 1 Reply Last reply Reply Quote 0
                                        • apollon77
                                          apollon77 @Marty56 last edited by apollon77

                                          @marty56 Ok, da muss ggf Doku erweitert werden.

                                          Die Alias Definition ist immer der ZWEITE parameter.

                                          Also "nur ne ID" wird zu {alias: {id: aliasId}} im common.

                                          Wenn Du an der Alias definition rumschrauben willst dann musst du das als zweiten Parameter angeben, also in deinem Fall

                                          createAlias('alias.0.Test.test', {id:'hm-rpc.0.KEQ0172616.1.STATE', read:'!val'},true, 
                                          

                                          bzw im zweiten Fall:

                                          createAlias('alias.0.Test.geraet_low_bat', {id: 'zigbee.0.00158d0002a1a494.battery',read: "val < 20 ? true : false" },true, 
                                          
                                          {   type: "mixed",
                                              unit: "%",
                                          })
                                          

                                          PS: ich hab es innden javascript docs noch erwähnt, wobei da schon stand:

                                          • alias: can be either an existing state id as string or a object with full alias definition including read/write ids and read/write functions.

                                          Jetzt ist noch ein "Not: Alias definitions can not be set as part of the common parameter!" dazugekommen.

                                          M 1 Reply Last reply Reply Quote 2
                                          • M
                                            Marty56 @apollon77 last edited by

                                            @apollon77 Danke für die Erklärungen.

                                            Ich habe jetzt all meine Aliases auf das neue API umgestellt, alle alten Aliases gelöscht und dann wieder neu generiert.

                                            Leider ist dieser allgemeine, sporadische Alias Error immer noch da. Schade.

                                            2022-11-05 07:19:34.891 - error: admin.0 (516) Alias subscription error. Please check your alias definitions: sourceId=zigbee.0.00158d0003e57190.transition_time, sourceObj={"type":"state","common":{"name":"Transition time","type":"number","unit":"sec","read":false,"write":true,"role":"state"},"native":{},"from":"system.adapter.zigbee.0","user":"system.user.admin","ts":1653374903543,"_id":"zigbee.0.00158d0003e57190.transition_time","acl":{"object":1636,"state":1636,"owner":"system.user.admin","ownerGroup":"system.group.administrator"}}
                                            2022-11-05 07:19:34.891 - error: admin.0 (516) Alias subscription error. Please check your alias definitions: sourceId=zigbee.0.00158d0003e57190.available, sourceObj={"type":"state","common":{"name":"Available","type":"boolean","read":true,"write":false,"role":"state"},"native":{},"from":"system.adapter.zigbee.0","user":"system.user.admin","ts":1653374903521,"_id":"zigbee.0.00158d0003e57190.available","acl":{"object":1636,"state":1636,"owner":"system.user.admin","ownerGroup":"system.group.administrator"}}
                                            
                                            apollon77 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

                                            972
                                            Online

                                            31.7k
                                            Users

                                            79.7k
                                            Topics

                                            1.3m
                                            Posts

                                            11
                                            52
                                            3603
                                            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