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.
    • rantanplan
      rantanplan last edited by

      Hallo

      Ein Screenshot von Deinem Blockly wäre hilfreich.

      Dein Problem kann viele Ursachen haben.

      Zu Deiner Frage im Betreff.

      "steuere" kann man immer nehmen.

      "steuere" MUSS man nehmen, wenn man Aktoren/Geräte oder Variablen auf der CCU anspricht.

      Bei "steuere" reicht ioBrocker den Wert weiter und erwartet eine Bestätigung.

      Bei "aktualisiere" wird der Datenpunkt nur in ioBroker geändert. Weiter passiert nichts.

      "aktualisiere" kann man nehmen wenn man ioBrocker Datenpunkte/Variablen ändern möchte. Da muss ja nichts weitergeleitet werden.

      Also:

      "Aktualisiere Lampe.Status mit wahr" schaltet die Lampe NICHT ein.

      "steuere Lampe.Status mit wahr" schaltet die Lampe ein.

      "aktualisiere MeineCCUVariable mit meinWert" ändert die Variable auf der CCU NICHT.

      "steuere MeineCCUVariable mit meinWert" ändert die Variable auf der CCU.

      "aktualisiere MeineIoBrockerVariable mit meinWert" ändert die Variable

      "steuere MeineIoBrockerVariable mit meinWert" ändert die Variable auch

      Grüße

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

        Danke fuer die Erklaerungen. Ich verstehe jetzt im Groben den Unterschied. Was ich nicht verstehe ist wie es moeglich ist, dass der im Web angezeigte Wert sagen wir 50 sein kann, aber beim Auslesen im Skript erhaelt man die 0… (reales Beispiel)

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

          @skraw.iobroker:

          Danke fuer die Erklaerungen. Ich verstehe jetzt im Groben den Unterschied. Was ich nicht verstehe ist wie es moeglich ist, dass der im Web angezeigte Wert sagen wir 50 sein kann, aber beim Auslesen im Skript erhaelt man die 0… (reales Beispiel) `

          Solange Du kein reales Beispiel zeigst, kann man da auch nichts sagen.

          1 Reply Last reply Reply Quote 0
          • 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

                                            850
                                            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