Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. [solved] HM: Abfragen von Datenpunkt generiert Duty Cycle?

    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

    [solved] HM: Abfragen von Datenpunkt generiert Duty Cycle?

    This topic has been deleted. Only users with topic management privileges can see it.
    • K
      klassisch Most Active last edited by klassisch

      Hallo,
      Frage an die Experten:
      Habe eigentlich in der Absicht unnötige Kommandos und damit DC auf der HM CCU zu vermeiden, den aktuellen Aktorzustand in den ioBroker Objekten per Skript abgefragt.
      Wollte nur dann ein Zustandstandsignal an dden Datenpunkt übergeben, wenn das tatsächlich zu einer Änderung geführt hätte.
      Dazu also den Datenpunktunkt abgefragt und verglichen.
      Aber durch diese Abfrage des Datenpunkts in den ioBroker Objekten scheint sich der DC auf der CCU drastisch zu erhöhen.

      Wie ist das zu erklären? Ich dachte so ein getState sei ein lesender Zugriff? Offensichtlich habe ich das Zusammenspiel zwischen ioBroker und HM nicht verstanden.

      Habe jetzt im Skript eine Varibla angelegt, die abfrage. Diese Variable wird geändert, wenn sich das subscribierte HM-Objekt ändert. Jetzt ist der DC wieder normal.
      Thema also gelöst, aber nicht wirklich verstanden.

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

        @klassisch sagte: Ich dachte so ein getState sei ein lesender Zugriff?

        Ja, und sogar nur auf den Puffer der Javascript-Instanz. Der HM-RPC-Adapter bekommt den Zugriff nicht mit - erst recht nicht die CCU.

        K 1 Reply Last reply Reply Quote 0
        • K
          klassisch Most Active @paul53 last edited by

          @paul53 Danke!

          Das dachte ich auch.
          Passt aber nicht zu meinem DC.

          Jetzt habe ich das nochmals recherchiert und das alte Script aus dem Backup geholt und nochmals genauer nachgeschaut und einen Fehler gefunden:

          Da stand

          if(intendedState != getState(windowsAdviserId)){
          

          wo hätte stehen sollen

          if(intendedState != getState(windowsAdviserId).val){
          

          Der hat also nicht den Datenpunkt geholt, sondern das ganze Objekt. damit ist wohl die Ungleichheit im if statement immer gegeben und der Aktor wird immer angesteuert. Die "Sparschaltung" war also fehlerhaft.

          "User did err" hätte die alte Univac gesagt.

          Danke für Deine Mühe.

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

          Support us

          ioBroker
          Community Adapters
          Donate

          919
          Online

          31.8k
          Users

          80.0k
          Topics

          1.3m
          Posts

          2
          3
          138
          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