Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. (Gelöst) JS in Device (Alias) 2 Werte schreiben

    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

    (Gelöst) JS in Device (Alias) 2 Werte schreiben

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

      Hallo Zusammen,

      ich betreibe über TCP Modbus insgesamt 64 Kanäle. (Relay Treiber)

      740166b7-f279-4381-aeee-d245c8126f2e-image.png

      Um die Kanäle zu schalten ist es nötig ins Holding register des Objektes die HEX. Werte 0100 für Ein und 0200 für Aus zu schreiben.

      Im IOB Modubus Adapter funktioniert zwar nur DEC. aber auch gut

      Schreibe Wert (TX) 256 -> Relay Ein -> Rückmeldung (RX) = 1
      Schreibe Wert (TX) 512 - >Relay Aus -> Rückmeldung (TX) = 0

      d37ebe70-b8f7-4332-8165-9557b84f0430-image.png

      Meine Idee ist es sich für die Kanäle je einen Alias (Device Adapter) an zu legen. Was soweit auch alles reibungslos klappt.

      965748e8-6c2d-474d-ad77-aa47e24f27f4-image.png

      Beim editieren des Alias - Set wertes auf " val + 255 " oder auch nur " 256 " schaltet die Karte.
      Aber leider nur ein (logisch) -

      irgendwie bin ich zu blöd eine vernünftige IF Abfrage hin zu bekommen welche ich an stelle von "val + 255 " in den set wert schreibe, die in etwa so aussehen sollte.

      if ((obj.state ? obj.state.val : "") == 1)
      {(256);}
      else
      {(512);}

      geht das überhaupt das man dort eine IF Abfrage setzt ?

      Hat jemand eine Idee ?

      Schöne Grüße,
      Tom

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

        @tomtl

        Alias als "boolean":

        write: "val ? 256 : 512"
        
        T 1 Reply Last reply Reply Quote 0
        • T
          TomTL @paul53 last edited by TomTL

          @paul53

          Perfekt es funktioniert
          Das ist ja der Hammer, ich hab seid 2 Tagen versucht das irgendwie sauber hin zu bekommen, von Datenpunkten setzen, skripts etc. Nix half.
          Ich war echt total demotiviert nach dem ich zig Tage investiert habe, um alleine die ganze Modbus Architektur zu verstehen, auf zu setzen, RS 485 <-> Ethernet <-> Io Broker... und dann an dem aller letzten Punkt zu verzweifeln.

          1000 DANK !!!!

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

          Support us

          ioBroker
          Community Adapters
          Donate

          397
          Online

          31.8k
          Users

          80.0k
          Topics

          1.3m
          Posts

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