Skip to content
  • Home
  • Recent
  • Tags
  • 0 Unread 0
  • Categories
  • Unreplied
  • Popular
  • GitHub
  • Docu
  • Hilfe
Skins
  • Light
  • Brite
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Default (No Skin)
  • No Skin
Collapse
ioBroker Logo

Community Forum

donate donate
  1. ioBroker Community Home
  2. Deutsch
  3. Skripten / Logik
  4. JavaScript
  5. [gelöst]Datenpunkt erstellen aus respons

NEWS

  • Monatsrückblick Januar/Februar 2026 ist online!
    BluefoxB
    Bluefox
    18
    1
    710

  • Jahresrückblick 2025 – unser neuer Blogbeitrag ist online! ✨
    BluefoxB
    Bluefox
    18
    1
    5.9k

  • Neuer Blogbeitrag: Monatsrückblick - Dezember 2025 🎄
    BluefoxB
    Bluefox
    13
    1
    1.5k

[gelöst]Datenpunkt erstellen aus respons

Scheduled Pinned Locked Moved JavaScript
10 Posts 3 Posters 910 Views 3 Watching
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • F Offline
    F Offline
    fototec
    wrote on last edited by fototec
    #1

    Hallo, ich benötige mal eure Hilfe... Leider hab ich nicht so die Ahnung von javascript und komme nicht weiter. ich hab folgenden Code um ein Relay zu schalten:

    on({id: "javascript.0.KMTronic_!"/*KMTronic 1*/, change: "any"}, function(obj) {
      var request = require('request'),
        username = "123",
        password = "123",
        url = 'http://192.168.178.103:7771/relays.cgi?relay=1',
        auth = "Basic " + new Buffer(username + ":" + password).toString("base64");
     
      request({
            url : url,
            headers : {'Authorization' : auth}
        },
        function (Status, response, body) {
                log('Status: ' + Status);
                log('response: ' + JSON.stringify(response));
                log('body: ' + body);
        }
      );
    });```
    code_text
    

    Im Log wird folgendes ausgegeben:

    javascript.0 2020-10-13 07:58:41.345 info </div>
    javascript.0 2020-10-13 07:58:41.345 info </p>
    javascript.0 2020-10-13 07:58:41.345 info Relay8: Relay8
    javascript.0 2020-10-13 07:58:41.345 info Relay7: Relay7
    javascript.0 2020-10-13 07:58:41.345 info Relay6: Relay6
    javascript.0 2020-10-13 07:58:41.345 info Relay5: Relay5
    javascript.0 2020-10-13 07:58:41.345 info Relay4: Relay4
    javascript.0 2020-10-13 07:58:41.345 info Relay3: Relay3
    javascript.0 2020-10-13 07:58:41.345 info Relay2: Relay2
    javascript.0 2020-10-13 07:58:41.345 info Relay1: lampe1
    javascript.0 2020-10-13 07:58:41.345 info Status: 0 0 0 0 0 0 0 0
    javascript.0 2020-10-13 07:58:41.345 info <p hidden>
    javascript.0 2020-10-13 07:58:41.345 info <div>
    javascript.0 2020-10-13 07:58:41.345 info
    javascript.0 2020-10-13 07:58:41.345 info </div>
    javascript.0 2020-10-13 07:58:41.345 info <font size="5"> Relay8 <span style="color:red">0 </span> </font>
    javascript.0 2020-10-13 07:58:41.345 info <br />
    javascript.0 2020-10-13 07:58:41.345 info <br />
    javascript.0 2020-10-13 07:58:41.345 info <br />
    javascript.0 2020-10-13 07:58:41.345 info <font size="5"> Relay7 <span style="color:red">0 </span> </font>
    javascript.0 2020-10-13 07:58:41.345 info <br />
    javascript.0 2020-10-13 07:58:41.345 info <br />
    javascript.0 2020-10-13 07:58:41.345 info <br />
    javascript.0 2020-10-13 07:58:41.345 info <font size="5"> Relay6 <span style="color:red">0 </span> </font>
    javascript.0 2020-10-13 07:58:41.345 info <br />
    javascript.0 2020-10-13 07:58:41.345 info <br />
    javascript.0 2020-10-13 07:58:41.345 info <br />
    javascript.0 2020-10-13 07:58:41.345 info <font size="5"> Relay5 <span style="color:red">0 </span> </font>
    javascript.0 2020-10-13 07:58:41.345 info <br />
    javascript.0 2020-10-13 07:58:41.345 info <br />
    javascript.0 2020-10-13 07:58:41.345 info <br />
    javascript.0 2020-10-13 07:58:41.345 info <font size="5"> Relay4 <span style="color:red">0 </span> </font>
    javascript.0 2020-10-13 07:58:41.345 info <br />
    javascript.0 2020-10-13 07:58:41.345 info <br />
    javascript.0 2020-10-13 07:58:41.345 info <br />
    javascript.0 2020-10-13 07:58:41.345 info <font size="5"> Relay3 <span style="color:red">0 </span> </font>
    javascript.0 2020-10-13 07:58:41.345 info <br />
    javascript.0 2020-10-13 07:58:41.345 info <br />
    javascript.0 2020-10-13 07:58:41.345 info <br />
    javascript.0 2020-10-13 07:58:41.345 info <font size="5"> Relay2 <span style="color:red">0 </span> </font>
    javascript.0 2020-10-13 07:58:41.345 info <br />
    javascript.0 2020-10-13 07:58:41.345 info <br />
    javascript.0 2020-10-13 07:58:41.345 info <br />
    javascript.0 2020-10-13 07:58:41.345 info <font size="5"> lampe1 <span style="color:red">0 </span> </font>
    javascript.0 2020-10-13 07:58:41.345 info (11485) script.js.KMT.TestKmt_1: body: <div>
    javascript.0 2020-10-13 07:58:41.344 info (11485) script.js.KMT.TestKmt_1: response: {"statusCode":200,"body":"<div>\r\n<font size="5"> lampe1 <span style="color:red">0 </span> </font>\r\n<br />\r\n<br />\r\n<br
    javascript.0 2020-10-13 07:58:41.344 info (11485) script.js.KMT.TestKmt_1: Status: null
    javascript.0 2020-10-13 07:58:37.562 info (11485) script.js.KMT.TestKmt_1: registered 1 subscription and 0 schedules
    javascript.0 2020-10-13 07:58:37.541 info (11485) Start javascript script.js.KMT.TestKmt_1

    Nun zu meinem Problem, ich möchte das der Status bei jedem schalten in einem Datenpunkt geschrieben wird bzw aktualisiert wird. leider hab ich keine Idee dazu. vieleicht kann mir jemand weiter helfen. Danke und liebe Grüße

    UncleSamU 1 Reply Last reply
    0
    • F fototec

      Hallo, ich benötige mal eure Hilfe... Leider hab ich nicht so die Ahnung von javascript und komme nicht weiter. ich hab folgenden Code um ein Relay zu schalten:

      on({id: "javascript.0.KMTronic_!"/*KMTronic 1*/, change: "any"}, function(obj) {
        var request = require('request'),
          username = "123",
          password = "123",
          url = 'http://192.168.178.103:7771/relays.cgi?relay=1',
          auth = "Basic " + new Buffer(username + ":" + password).toString("base64");
       
        request({
              url : url,
              headers : {'Authorization' : auth}
          },
          function (Status, response, body) {
                  log('Status: ' + Status);
                  log('response: ' + JSON.stringify(response));
                  log('body: ' + body);
          }
        );
      });```
      code_text
      

      Im Log wird folgendes ausgegeben:

      javascript.0 2020-10-13 07:58:41.345 info </div>
      javascript.0 2020-10-13 07:58:41.345 info </p>
      javascript.0 2020-10-13 07:58:41.345 info Relay8: Relay8
      javascript.0 2020-10-13 07:58:41.345 info Relay7: Relay7
      javascript.0 2020-10-13 07:58:41.345 info Relay6: Relay6
      javascript.0 2020-10-13 07:58:41.345 info Relay5: Relay5
      javascript.0 2020-10-13 07:58:41.345 info Relay4: Relay4
      javascript.0 2020-10-13 07:58:41.345 info Relay3: Relay3
      javascript.0 2020-10-13 07:58:41.345 info Relay2: Relay2
      javascript.0 2020-10-13 07:58:41.345 info Relay1: lampe1
      javascript.0 2020-10-13 07:58:41.345 info Status: 0 0 0 0 0 0 0 0
      javascript.0 2020-10-13 07:58:41.345 info <p hidden>
      javascript.0 2020-10-13 07:58:41.345 info <div>
      javascript.0 2020-10-13 07:58:41.345 info
      javascript.0 2020-10-13 07:58:41.345 info </div>
      javascript.0 2020-10-13 07:58:41.345 info <font size="5"> Relay8 <span style="color:red">0 </span> </font>
      javascript.0 2020-10-13 07:58:41.345 info <br />
      javascript.0 2020-10-13 07:58:41.345 info <br />
      javascript.0 2020-10-13 07:58:41.345 info <br />
      javascript.0 2020-10-13 07:58:41.345 info <font size="5"> Relay7 <span style="color:red">0 </span> </font>
      javascript.0 2020-10-13 07:58:41.345 info <br />
      javascript.0 2020-10-13 07:58:41.345 info <br />
      javascript.0 2020-10-13 07:58:41.345 info <br />
      javascript.0 2020-10-13 07:58:41.345 info <font size="5"> Relay6 <span style="color:red">0 </span> </font>
      javascript.0 2020-10-13 07:58:41.345 info <br />
      javascript.0 2020-10-13 07:58:41.345 info <br />
      javascript.0 2020-10-13 07:58:41.345 info <br />
      javascript.0 2020-10-13 07:58:41.345 info <font size="5"> Relay5 <span style="color:red">0 </span> </font>
      javascript.0 2020-10-13 07:58:41.345 info <br />
      javascript.0 2020-10-13 07:58:41.345 info <br />
      javascript.0 2020-10-13 07:58:41.345 info <br />
      javascript.0 2020-10-13 07:58:41.345 info <font size="5"> Relay4 <span style="color:red">0 </span> </font>
      javascript.0 2020-10-13 07:58:41.345 info <br />
      javascript.0 2020-10-13 07:58:41.345 info <br />
      javascript.0 2020-10-13 07:58:41.345 info <br />
      javascript.0 2020-10-13 07:58:41.345 info <font size="5"> Relay3 <span style="color:red">0 </span> </font>
      javascript.0 2020-10-13 07:58:41.345 info <br />
      javascript.0 2020-10-13 07:58:41.345 info <br />
      javascript.0 2020-10-13 07:58:41.345 info <br />
      javascript.0 2020-10-13 07:58:41.345 info <font size="5"> Relay2 <span style="color:red">0 </span> </font>
      javascript.0 2020-10-13 07:58:41.345 info <br />
      javascript.0 2020-10-13 07:58:41.345 info <br />
      javascript.0 2020-10-13 07:58:41.345 info <br />
      javascript.0 2020-10-13 07:58:41.345 info <font size="5"> lampe1 <span style="color:red">0 </span> </font>
      javascript.0 2020-10-13 07:58:41.345 info (11485) script.js.KMT.TestKmt_1: body: <div>
      javascript.0 2020-10-13 07:58:41.344 info (11485) script.js.KMT.TestKmt_1: response: {"statusCode":200,"body":"<div>\r\n<font size="5"> lampe1 <span style="color:red">0 </span> </font>\r\n<br />\r\n<br />\r\n<br
      javascript.0 2020-10-13 07:58:41.344 info (11485) script.js.KMT.TestKmt_1: Status: null
      javascript.0 2020-10-13 07:58:37.562 info (11485) script.js.KMT.TestKmt_1: registered 1 subscription and 0 schedules
      javascript.0 2020-10-13 07:58:37.541 info (11485) Start javascript script.js.KMT.TestKmt_1

      Nun zu meinem Problem, ich möchte das der Status bei jedem schalten in einem Datenpunkt geschrieben wird bzw aktualisiert wird. leider hab ich keine Idee dazu. vieleicht kann mir jemand weiter helfen. Danke und liebe Grüße

      UncleSamU Offline
      UncleSamU Offline
      UncleSam
      Developer
      wrote on last edited by
      #2

      @fototec Das sieht nicht nach einer API aus, sondern eher nach einer Webpage.

      Was ist das für ein Relais? Wo findet man die Dokumentation dazu?
      Ich nehme an es ist dieses: https://info.kmtronic.com/kmtronic-lan-ethernet-ip-8-channels-web-relay-board.html

      Grundsätzlich sieht das JavaScript nicht falsch aus, aber die URL stimmt wohl nicht. Es müsste eine URL sein, die etwas ausführt, nicht eine URL die etwas anzeigt. Normalerweise geben API URLs XML oder JSON zurück, bei deiner URL ist es aber eine gewöhnliche Webpage.

      Am einfachsten geht es wenn du mit deinem Browser (Chrome oder aktuellster Edge) auf die Seite gehst und F12 drückst). Dann mal "von Hand" die Relais schalten und unter "Netzwerk" schauen, was da für Requests geschickt werden. Wie gesagt: du willst nicht die Seite, die das Relais als HTML darstellt sondern die URL, die aufgerufen wird, wenn du einen der Relais-Knöpfe im Browser drückst.

      Bitte bei Problemen mit meinen Adaptern, Issue auf GitHub erfassen: Loxone | I2C | Luxtronik2
      ♡-lichen Dank an meine Sponsoren

      1 Reply Last reply
      0
      • UncleSamU Offline
        UncleSamU Offline
        UncleSam
        Developer
        wrote on last edited by
        #3

        Wenn du's dir übrigens einfach machen willst, installiere in ioBroker Node-Red und benutze den Flow, der KMTronic zur Verfügung stellt:
        https://github.com/kmtronic-ltd/node-red-example/

        Bitte bei Problemen mit meinen Adaptern, Issue auf GitHub erfassen: Loxone | I2C | Luxtronik2
        ♡-lichen Dank an meine Sponsoren

        1 Reply Last reply
        0
        • UncleSamU Offline
          UncleSamU Offline
          UncleSam
          Developer
          wrote on last edited by
          #4

          ... und wenn ich mir den Flow so anschaue, dann lautet die URL:
          http://192.168.178.103:7771/FF0x0y wobei x die Relais-Nummer (begonnen mit 1) ist und y das Relais ein (1) oder aus (0) schaltet. Also z.B. http://192.168.178.103:7771/FF0100 schaltet das Relais 1 aus.

          Bitte bei Problemen mit meinen Adaptern, Issue auf GitHub erfassen: Loxone | I2C | Luxtronik2
          ♡-lichen Dank an meine Sponsoren

          1 Reply Last reply
          0
          • F Offline
            F Offline
            fototec
            wrote on last edited by
            #5

            Danke für deine Hilfe, du liegst da richtig mit dem :https://info.kmtronic.com/kmtronic-lan-ethernet-ip-8-channels-web-relay-board.html
            Also schalten tut das Relay mit meinem Script, aber ich würde gern das der Status der im Log steht in einen Datenpunkt geschrieben wird.. (javascript.0 2020-10-13 07:58:41.345 info Status: 0 0 0 0 0 0 0 0) dazu hab ich keine Idee..

            1 Reply Last reply
            0
            • F Offline
              F Offline
              fototec
              wrote on last edited by
              #6

              Es wird mir ja im Log geschrieben und daher muss es doch einen Weg geben der es in einen Datenpunkt schreibt..

              AsgothianA 1 Reply Last reply
              0
              • F fototec

                Es wird mir ja im Log geschrieben und daher muss es doch einen Weg geben der es in einen Datenpunkt schreibt..

                AsgothianA Offline
                AsgothianA Offline
                Asgothian
                Developer
                wrote on last edited by Asgothian
                #7

                @fototec
                Schritt 0: einmal vorweg mit „createState“ die 8 stati anlegen die du später füllen willst.
                Sieht auch: https://www.iobroker.net/docu/index-81.htm?page_id=5809&lang=en#createState

                Schritt 1: regexp erzeugen, welches aus der Variable Status den Zustand der Relais sauber findet. Da dieser aus 8 zahlen, z.bsp.

                0 0 0 0 0 0 0 0
                

                besteht sollte das machbar sein. Zum Testen bietet sich
                https://regex101.com/
                an.

                Schritt 2: aus den 8 zahlen die 8 stati der einzelnen Relais extrahieren.

                Schritt 3: je nach Status die mit „createState“ angelegten Datenpunkte via „setState“ aktualisieren.

                Schritt 4: Erfolg genießen.

                A.

                ioBroker auf RPi4 - Hardware soweit wie möglich via Zigbee.
                "Shit don't work" ist keine Fehlermeldung, sondern ein Fluch.

                F 1 Reply Last reply
                0
                • AsgothianA Asgothian

                  @fototec
                  Schritt 0: einmal vorweg mit „createState“ die 8 stati anlegen die du später füllen willst.
                  Sieht auch: https://www.iobroker.net/docu/index-81.htm?page_id=5809&lang=en#createState

                  Schritt 1: regexp erzeugen, welches aus der Variable Status den Zustand der Relais sauber findet. Da dieser aus 8 zahlen, z.bsp.

                  0 0 0 0 0 0 0 0
                  

                  besteht sollte das machbar sein. Zum Testen bietet sich
                  https://regex101.com/
                  an.

                  Schritt 2: aus den 8 zahlen die 8 stati der einzelnen Relais extrahieren.

                  Schritt 3: je nach Status die mit „createState“ angelegten Datenpunkte via „setState“ aktualisieren.

                  Schritt 4: Erfolg genießen.

                  A.

                  F Offline
                  F Offline
                  fototec
                  wrote on last edited by
                  #8

                  @Asgothian
                  leider hab ich so garkeine Ahnung von Javascript :( das ist ja mein Problem..

                  UncleSamU 1 Reply Last reply
                  0
                  • F fototec

                    @Asgothian
                    leider hab ich so garkeine Ahnung von Javascript :( das ist ja mein Problem..

                    UncleSamU Offline
                    UncleSamU Offline
                    UncleSam
                    Developer
                    wrote on last edited by
                    #9

                    @fototec sagte in Datenpunkt erstellen aus respons:

                    leider hab ich so garkeine Ahnung von Javascript

                    Dann mach es bitte mit Node-Red oder Blockly. Beide benötigen keine Programmier-Erfahrung. Weil JavaScript ist dann dann doch nicht in einer Stunde gelernt (vor allem wenn man ohne Programmierkenntnisse ran geht). Oder such dir Beispiele hier im Forum, wie man States anlegt und beschreibt und kopiere die Sachen zusammen.

                    Wofür brauchst du denn die Datenpunkte?

                    Bitte bei Problemen mit meinen Adaptern, Issue auf GitHub erfassen: Loxone | I2C | Luxtronik2
                    ♡-lichen Dank an meine Sponsoren

                    F 1 Reply Last reply
                    0
                    • UncleSamU UncleSam

                      @fototec sagte in Datenpunkt erstellen aus respons:

                      leider hab ich so garkeine Ahnung von Javascript

                      Dann mach es bitte mit Node-Red oder Blockly. Beide benötigen keine Programmier-Erfahrung. Weil JavaScript ist dann dann doch nicht in einer Stunde gelernt (vor allem wenn man ohne Programmierkenntnisse ran geht). Oder such dir Beispiele hier im Forum, wie man States anlegt und beschreibt und kopiere die Sachen zusammen.

                      Wofür brauchst du denn die Datenpunkte?

                      F Offline
                      F Offline
                      fototec
                      wrote on last edited by
                      #10

                      @UncleSam
                      Guten Morgen, und danke an alle die mir bis jetzt schon einiges geschrieben haben,,

                      Die Datenpunkte brauch ich um die Zustände des Relays weiter geben zu können.. mir war klar das es nicht einfach ist und mit Node Red ist es natürlich möglich jedoch ist es wieder ein Adapter mehr ,, trotzdem danke für deine Zeit .

                      1 Reply Last reply
                      0

                      Hello! It looks like you're interested in this conversation, but you don't have an account yet.

                      Getting fed up of having to scroll through the same posts each visit? When you register for an account, you'll always come back to exactly where you were before, and choose to be notified of new replies (either via email, or push notification). You'll also be able to save bookmarks and upvote posts to show your appreciation to other community members.

                      With your input, this post could be even better 💗

                      Register Login
                      Reply
                      • Reply as topic
                      Log in to reply
                      • Oldest to Newest
                      • Newest to Oldest
                      • Most Votes


                      Support us

                      ioBroker
                      Community Adapters
                      Donate

                      561

                      Online

                      32.7k

                      Users

                      82.6k

                      Topics

                      1.3m

                      Posts
                      Community
                      Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen | Einwilligungseinstellungen
                      ioBroker Community 2014-2025
                      logo
                      • Login

                      • Don't have an account? Register

                      • Login or register to search.
                      • First post
                        Last post
                      0
                      • Home
                      • Recent
                      • Tags
                      • Unread 0
                      • Categories
                      • Unreplied
                      • Popular
                      • GitHub
                      • Docu
                      • Hilfe