Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. Blockly
    5. Blockly Lese- und Schreiberfolg

    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

    Blockly Lese- und Schreiberfolg

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

      Hallo Matthias @haus-automatisierung

      Ich bin gerade dabei meine Scripte mit Blockly mal etwas "operationell zu festigen", d.h. ich würde gerne einbauen, dass er bei jedem Datenpunkt, auf den er versucht lesend zuzugreifen, eine Prüfung durchführt, ob dies erfolgreich war, wenn nicht dann möchte ich weitere Aktionen durchführen (z.B. Text ins Log, Telegramm etc.).

      Ebenso würde ich gerne eine Prüfung nach x ms durchführen, ob das Schreiben eines Datenpunktes erfolgreich war. Leider kommt es hin- und wieder vor, dass DP z.B. mit Modbus nicht erfolgreich ins Gerät übertragen werden, weshalb ich gerne eine Prüfung nach x ms durchführen würde, ob es geklappt hat.

      Das sind eigentlich sehr rudimentäre Funktionen, weshalb ich dachte, ob man das nicht in die Bausteine mit aufnehmen kann?
      Der Aufwand das für jeden einzelnen Punkt, bei jedem Lese- oder Schreibvorgang manuell zu basteln, ist enorm hoch. Es würde aber eine gewaltige Qualitätssteigerung bedeuten.

      Gruß

      Jörg

      Meister Mopper paul53 2 Replies Last reply Reply Quote 0
      • Meister Mopper
        Meister Mopper @JoergH last edited by

        @joergh

        Ich denke, dass der richtige Weg ein feature request beim javascript-Adapter auf github wäre.

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

          @joergh sagte: versucht lesend zuzugreifen, eine Prüfung durchführt, ob dies erfolgreich war

          Die Prüfung erfolgt bereits: Es gibt eine Warnung, wenn der Zugriff nicht erfolgreich war.

          1 Reply Last reply Reply Quote 1
          • J
            JoergH last edited by

            @paul53 ... und wie nutze ich die um dann eine Aktion auszulösen?

            Ich muss dann wohl bei jedem Lese- oder Schreibvorgang extra mit einer "falls" Abfrage arbeiten, oder gibt es einen anderen Weg?

            Beim Schreiben geht das sowieso nicht, weil ich hier manchmal auf die Reaktion eines externen Gerätes angewiesen bin, d.h. ich schreibe den DP und er führt das erfolgreich aus, aber beim Übertragen zum Gerät klappt etwas nicht und beim nächsten Abgleich steht der alte Wert wieder drin. Da braucht man dann ein zeitliches Delay, um dann zu prüfen ob das Ergebnis tatsächlich vorhanden ist....

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

              @joergh sagte: wie nutze ich die um dann eine Aktion auszulösen?

              Was für eine Aktion soll ausgelöst werden, wenn das Lesen nicht erfolgreich war?

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

                @paul53 Am besten eben frei definierbar. Ich möchte dann z.B. eine Fehlermeldung in dem der Skriptname und der DP-Name auftaucht nicht nur ins Log, sondern an Telegramm, eventuell ein Wiederholen des Lesevorgangs oder auch Anlegen eines DP auslösen.

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

                  @joergh sagte: Wiederholen des Lesevorgangs

                  Das ist sinnlos, denn der DP wird gelesen, wenn der Zustand existiert. Mann kann die Existenz prüfen:

                  if(!existsState(id)) Aktionen(id)
                  else return getState(id).val
                  
                  J 1 Reply Last reply Reply Quote 0
                  • J
                    JoergH @paul53 last edited by

                    @paul53 sagte in Blockly Lese- und Schreiberfolg:

                    @joergh sagte: Wiederholen des Lesevorgangs

                    Das ist sinnlos, denn der DP wird gelesen, wenn der Zustand existiert. Mann kann die Existenz prüfen:

                    if(existsState(id) getState(id).val
                    else Aktionen(id)
                    

                    Das muss durchaus nicht sinnlos sein, denn dazwischen können ja weitere Aktionen liegen, z.B. der Start eines Gerätes, dass den DP bereit stellt, etc.

                    Ich muss jetzt jedes Mal einen manuellen Check des Erfolgs programmieren und deswegen macht es Sinn die Erfolgsprüfung so zu gestalten, dass die "falls...dann" Prüfung schon enthalten ist. Beim Schreiben am besten mit einem definierbaren Delay versehen.

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

                    Support us

                    ioBroker
                    Community Adapters
                    Donate

                    421
                    Online

                    31.9k
                    Users

                    80.3k
                    Topics

                    1.3m
                    Posts

                    3
                    8
                    309
                    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