Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. Unterschied "steuere Objekt" und "aktualisiere Objekt"

    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

    Unterschied "steuere Objekt" und "aktualisiere Objekt"

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

      Was erwartest Du zu sehen, ausser dass im Web im Objekt "50" steht und ein Skript beim Auslesen des Wertes "0" bekommt? Das kannst Du mir auch so glauben, denn wenn Du es mir so nicht glaubst wirst Du mir von einem Snapshot auch nicht glauben wann er gemacht worden ist… Die Fakten sind wie sie sind. Ob der Fall ueberhaupt nochmal auftreten wird nachdem ich alle Zugriffe auf das Objekt von "steuere ..." auf "aktualisiere ..." umgestellt habe muss ich erst sehen ...

      .. Und kaum dass ich es geschrieben habe sehe ich schon zwei neue Faelle. Grade aktuell.

      Die "100" und die "80" die man hier sieht kommen im Skript beide als "0" raus.

      Bild ist angehaengt.

      Hier ist der Output von einem trivial-Skript dass einfach nur die Werte ausliest und ausgibt:

      11:49:28.405 [info] javascript.0 script.js.Skript1: registered 0 subscriptions and 0 schedules

      11:49:38.407 [info] javascript.0 script.js.Skript1: Zone Keller Gang = 0

      11:49:38.407 [info] javascript.0 script.js.Skript1: Zone Keller EG = 0

      Bild vom Skript auch angehaengt, weil man ja Blockly so gut managen kann …
      5934_bildschirmfoto_von__2018-03-24_11-42-42_.png
      5934_bildschirmfoto_von__2018-03-24_11-51-26_.png

      1 Reply Last reply Reply Quote 0
      • S
        skraw.iobroker last edited by

        PS "Zone Keller EG" in der Ausgabe ist natuerlich "Zone EG", sieht man ja im Skript …

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

          ".MeineGeraete" funktioniert nur manchmal !

          Funktioniert: "MeineGeraete.0".

          1 Reply Last reply Reply Quote 0
          • S
            skraw.iobroker last edited by

            @paul53:

            ".MeineGeraete" funktioniert nicht !

            Funktioniert: "MeineGeraete.0". `

            Also damit wir uns richtig verstehen: wir sprechen hier nicht von etwas das nie geht. Wir sprechen davon dass das ganze immer geht, nur manchmal alle paar Tage gibt es den Effekt, dass im Web ein Wert stehenbleibt, der von den Skripten die diesen Wert auslesen und runterzaehlen eben nicht so gesehen wird wie im Web sondern als "0".

            Wenn der Wert des Objekts das naechste mal per "aktualisiere …" wieder hoch gesetzt wird gehts wieder ganz normal weiter und er wird wieder runtergezaehlt.

            Ich wuerde vermuten dass die Ausgabe im Web auf irgendeiner temporaeren Uebernahme des Objektwertes fusst und da irgendwas nicht so geht wie man denkt, vielleicht eine race-condition.

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

              Der JS-Adapter erlaubt eine kurze und eine vollständige Schreibweise der Datenpunkt-ID. Beginnt eine ID mit "irgendwas.N." (N = Zahl), dann wird die ID so genommen wie sie ist. Beginnt die ID abweichend davon, kann es passieren, dass die ID innerhalb der Instanz "javascript.N" vermutet wird.

              1 Reply Last reply Reply Quote 0
              • S
                skraw.iobroker last edited by

                Ich koennte das ausprobieren, aber wie kann ich ".MeineGeraete" umbenennen?

                Ansonsten muesste ich hunderte Referenzen in Skripten neu setzen …

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

                  @skraw.iobroker:

                  Ich koennte das ausprobieren, aber wie kann ich ".MeineGeraete" umbenennen? `
                  Die Datenpunkte müssen wohl neu erstellt werden.
                  @skraw.iobroker:

                  Ansonsten muesste ich hunderte Referenzen in Skripten neu setzen … `
                  Deshalb verwende ich eindeutige Namen und ermittle im Script die ID mit getIdByName('name').

                  1 Reply Last reply Reply Quote 0
                  • S
                    skraw.iobroker last edited by

                    @paul53:

                    @skraw.iobroker:

                    Ansonsten muesste ich hunderte Referenzen in Skripten neu setzen … Deshalb verwende ich eindeutige Namen und ermittle im Script die ID mit __getIdByName('name')__.

                    Wo ist diese Funktion im Blockly ? Ich kann da nichts finden das sowas macht.

                    1 Reply Last reply Reply Quote 0
                    • S
                      skraw.iobroker last edited by

                      Ich hab mir das jetzt nochmal unter diesem Aspekt angesehen.

                      Die Skripte referenzieren alle mit kompletter Objekt-ID (copy-paste aus der Script-Ansicht funktioniert leider nicht, sonst haett ichs zitiert). Ich frage mich schon welcher der Werte tatsaechlich stimmt, es koennte ja auch sein, dass die Darstellung im Web ein Problem hat…

                      1 Reply Last reply Reply Quote 0
                      • S
                        skraw.iobroker last edited by

                        Hier habe ich ein starkes Indiz dafuer, dass die Darstellung im Web des Objekt-Wertes ein Problem hat.

                        In meinem Screenshot vom 24.03 ca 11:42 Uhr sieht man dass "Zone_EG_" auf 100 steht.

                        Aber im Logfile dieses Tages steht folgendes:

                        2018-03-24 06:24:06.017  - info: javascript.0 script.js.Skript-Melder: EG Licht an
                        2018-03-24 06:26:02.922  - info: javascript.0 script.js.Skript-Timeouts: EG Licht aus
                        2018-03-24 06:31:08.848  - info: javascript.0 script.js.Skript-Melder: EG Licht an
                        2018-03-24 06:33:53.023  - info: javascript.0 script.js.Skript-Timeouts: EG Licht aus
                        2018-03-24 17:58:04.005  - info: javascript.0 script.js.Skript-Melder: EG Licht an
                        2018-03-24 18:00:30.410  - info: javascript.0 script.js.Skript-Timeouts: EG Licht aus
                        
                        

                        Man sieht das Skript schaltet das Licht um 06:33:53 Uhr aus. Das bedeutet es hat den Wert des obigen Objektes auf 0 heruntergezaehlt. Er muss also zu diesem Zeitpunkt "0" sein. Der im Web angezeigte Wert ist falsch.

                        Da sollte man die Ursache suchen.

                        Nachtrag: man kann die Korrektheit des "Herunterzaehlens" des Skripts auch daran sehen, dass mein Timeout bei 120 liegt und zwischen dem "Licht an" und dem "Licht aus" pi mal Daumen etwa 2 Minuten liegen was dem Timeout entspricht. Ganz genau darf man es bei JS scheinbar nicht nehmen mit Zeitintervallen 🙂

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

                          @skraw.iobroker:

                          Wo ist diese Funktion im Blockly ? Ich kann da nichts finden das sowas macht. `
                          In Blockly existiert diese Funktion nicht, da in Blockly die ID per "Select ID" direkt zugeordnet wird. Blockly ist halt nur eine Einstiegshilfe für Leute, die vorher noch nicht programmiert haben (außer vlt. mit graphischen Programmieroberflächen).

                          1 Reply Last reply Reply Quote 0
                          • S
                            skraw.iobroker last edited by

                            Tja, wie oben bewiesen ist aber Blockly technisch korrekt und die Weboberflaeche im Irrtum.

                            1 Reply Last reply Reply Quote 0
                            • S
                              skraw.iobroker last edited by

                              Wie legt man denn eigentlich ein neues Verzeichnis von Objekten an?

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

                                @skraw.iobroker:

                                Wie legt man denn eigentlich ein neues Verzeichnis von Objekten an? `
                                Im Browser die Seite neu laden, damit nichts selektiert ist und dann https://forum.iobroker.net/viewtopic.php?f=20&t=5381#p54567.

                                1 Reply Last reply Reply Quote 0
                                • S
                                  skraw.iobroker last edited by

                                  Danke fuer den Link, aber er zeigt echt nur eins: jeder hat damit Probleme. Die Konstruktion ist einfach nicht straight-forward. Wenn man sowas selbst anlegt fuer eigene Variablen ist es ziemlich undurchsichtig ob das "Verzeichnis" wo man sie reinlegt vom Typ her ein "Device" oder ein "Channel" ist und was ueberhaupt der Unterschied hinterher waere, wenn es den ueberhaupt gibt.

                                  1 Reply Last reply Reply Quote 0
                                  • S
                                    skraw.iobroker last edited by

                                    @paul53:

                                    @skraw.iobroker:

                                    Wo ist diese Funktion im Blockly ? Ich kann da nichts finden das sowas macht. In Blockly existiert diese Funktion nicht, da in Blockly die ID per "Select ID" direkt zugeordnet wird. Blockly ist halt nur eine Einstiegshilfe für Leute, die vorher noch nicht programmiert haben (außer vlt. mit graphischen Programmieroberflächen).

                                    Also wenn man sich erst mal mit Blockly angefreundet hat geht eigentlich alles damit recht schnell. Es ist ja nun nicht gerade so dass man fuer Smarthome Anwendungen besonders komplexe Programme brauchen wuerde.

                                    Ich waere jedoch dafuer dass man die Zugriffe auf die Objekte auch bei Blockly auf den Namen zurueckfuehren wuerde, denn der steht schliesslich auch in den Ausdruecken drin, auch wenn man in der Tat die ID ausgewaehlt hat. Ich denke es waere kein echtes Problem hier zwei jeweils Statements draus zu machen. Noch besser waere natuerlich ein Einsteller im jeweiligen zugreifenden Statement. Dann haette es der User in der Hand.

                                    1 Reply Last reply Reply Quote 0
                                    • S
                                      skraw.iobroker last edited by

                                      Mittlerweile hat sich etwas veraendert mit den Web-Ansichten meiner Objekte. Die version 3.3.5 vom admin-Interface scheint die Updates der Objekte jetzt richtig anzuzeigen. Ich hatte seit der Installation von 3.3.5 keinen Fall mehr wo die Web-Werte offensichtlich anders waren als die die die Skripte gesehen haben. Bei 3.3.3 schien das Problem dagegen noch da zu sein.

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

                                      Support us

                                      ioBroker
                                      Community Adapters
                                      Donate

                                      843
                                      Online

                                      31.8k
                                      Users

                                      79.9k
                                      Topics

                                      1.3m
                                      Posts

                                      3
                                      22
                                      4065
                                      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