Skip to content
  • 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
Logo
  1. ioBroker Community Home
  2. Deutsch
  3. Skripten / Logik
  4. [Gelöst] Javascript schreibt nicht in Datenpunkt

NEWS

  • UPDATE 31.10.: Amazon Alexa - ioBroker Skill läuft aus ?
    apollon77A
    apollon77
    48
    3
    8.1k

  • Monatsrückblick – September 2025
    BluefoxB
    Bluefox
    13
    1
    1.8k

  • Neues Video "KI im Smart Home" - ioBroker plus n8n
    BluefoxB
    Bluefox
    15
    1
    2.0k

[Gelöst] Javascript schreibt nicht in Datenpunkt

Scheduled Pinned Locked Moved Skripten / Logik
18 Posts 7 Posters 1.4k Views
  • 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.
  • L Offline
    L Offline
    LJSven
    wrote on last edited by
    #1

    Ich habe folgendes Javasrcript. Leider wird das Objekt bzw. der Datenpunkt nicht aktualiert. In der Console wird true ausgegeben… im Backend steht aber false. Was mache ich falsch?

    ! ````
    const request = require('request');
    const parser = require('xml2js').parseString;
    ! createState('Dreambox_OG_Standby_Status', false, {
    "type": "object",
    "role": "state",
    "read": true,
    "write": true
    });
    ! function getDB500Status(xml) {
    parser(xml, function (err, result) {
    if(err) log('Fehler XML-Parsen: ' + err, 'error');
    else {
    var stateDB = result.e2powerstate.e2instandby;
    setState('Dreambox_OG_Standby_Status', stateDB, true);
    console.log(stateDB);
    //console.log(obj.e2powerstate);
    }
    });
    }
    function getXML() {
    request('http://root:********@192.168.178.210/web/powerstate', function (error, response, body) {
    if (error) log("Fehler beim Herunterladen: " + error, 'error');
    else getDB500Status(body);
    });
    }
    getXML();

    1 Reply Last reply
    0
    • BluefoxB Offline
      BluefoxB Offline
      Bluefox
      wrote on last edited by
      #2

      Probier mal 'Dreambox_OG_Standby_Status' auf 'javascript.0.Dreambox_OG_Standby_Status' zu ersetzen..

      Wieso machst du "type" = "object" und schreibst dabei boolean?

      Mach type=boolean (Das hat aber mit deinem Fehler wenig zu tun. Einfach Feng Shui)

      1 Reply Last reply
      0
      • L Offline
        L Offline
        LJSven
        wrote on last edited by
        #3

        Geschrieben wir wieder nichts 😞 Bin neu auf dem Gebiet. Es erscheint ein Warning:

        ! javascript.0 2018-05-07 22:09:16.176 warn at Parser. (/opt/iobroker/node_modules/iobroker.javascript/node_modules/xml2js/lib/parser.js:303:18)
        ! javascript.0 2018-05-07 22:09:16.176 warn at script.js.common.Dreambox_OG.Standby_Status_DB_OG:17:9
        ! javascript.0 2018-05-07 22:09:16.156 warn Wrong type of javascript.0.Dreambox_OG_Standby_Status: "object". Please fix, while deprecated and will not work in next versions.
        ! javascript.0 2018-05-07 22:09:15.834 info script.js.common.Dreambox_OG.Standby_Status_DB_OG: registered 0 subscriptions and 0 schedules
        ! javascript.0 2018-05-07 22:09:15.820 info Start javascript script.js.common.Dreambox_OG.Standby_Status_DB_OG
        ! javascript.0 2018-05-07 22:09:15.801 info Stop script script.js.common.Dreambox_OG.Standby_Status_DB_OG
        ! javascript.0 2018-05-07 22:09:05.156 info script.js.common.Dreambox_OG.Standby_Status_DB_OG: true

        1 Reply Last reply
        0
        • D Offline
          D Offline
          dna909
          wrote on last edited by
          #4

          > setState('Dreambox_OG_Standby_Status', stateDB, true);

          nimm mal da das true raus.

          Das gehört da glaub ich nicht hin.

          setState('Dreambox_OG_Standby_Status', stateDB);
          

          MfG

          dna909

          Intel NUC7PJYH mit Proxmox, Odroid U2, CCU2, Philips Hue, ESP8266, Xiaomi Robot, Google Chromecast Audio, Instar 6012HD, Bosch HNG6764S6

          1 Reply Last reply
          0
          • L Offline
            L Offline
            LJSven
            wrote on last edited by
            #5

            Kein Ahnung was ich falsch mache. Wenn ich diese Zeile ändere, z.b. in "Test" ändere, schreibt er den Wert.

            var stateDB = "Test";
            

            Wenn ich den Befehl im Log aussgebe:````
            console.log(result.e2powerstate.e2instandby)

            
            Wenn ich es wie folgt mache, wird der Wert nicht übernommen:
            
            

            var stateDB = result.e2powerstate.e2instandby;

            
            Wo ist der Fehler?
            1 Reply Last reply
            0
            • arteckA Offline
              arteckA Offline
              arteck
              Developer Most Active
              wrote on last edited by
              #6

              ist jetzt nicht dein ernst oder…

              var stateDB = getState('result.e2powerstate.e2instandby').val;
              

              zigbee hab ich, zwave auch, nuc's genauso und HA auch

              1 Reply Last reply
              0
              • L Offline
                L Offline
                LJSven
                wrote on last edited by
                #7

                @arteck:

                ist jetzt nicht dein ernst oder…

                var stateDB = getState('result.e2powerstate.e2instandby').val;
                ```` `  
                

                Doch, ich bin da leider nicht erfahren. Allerdings kommt bei deinem Vorschlag folgende Meldung

                "getState "result.e2powerstate.e2instandby" not found (3)"

                Es geht auch hier darum, daß zuerst eine XML ausgelesen wird und dann der Wert in den Datenpunkt geschrieben werden soll.

                1 Reply Last reply
                0
                • AlCalzoneA Offline
                  AlCalzoneA Offline
                  AlCalzone
                  Developer
                  wrote on last edited by
                  #8

                  @LJSven:

                  Doch, ich bin da leider nicht erfahren. Allerdings kommt bei deinem Vorschlag folgende Meldung

                  "getState "result.e2powerstate.e2instandby" not found (3)" `

                  Das macht schon Sinn wie du es hattest. result.e2powerstate.e2instandby ist eine Variable in deinem ausgelesenen Objekt und kein State in ioBroker.
                  > Wrong type of javascript.0.Dreambox_OG_Standby_Status: "object"
                  bedeutet aber, dass du nicht wie von Bluefox empfohlen den State mit Typ "boolean" (wahr/falsch) erstellst, sondern mit "object". Änder das erst mal und probiers dann nochmal.

                  Warum `sudo` böse ist: https://forum.iobroker.net/post/17109

                  1 Reply Last reply
                  0
                  • paul53P Offline
                    paul53P Offline
                    paul53
                    wrote on last edited by
                    #9

                    Offenbar enthält die Variable result.e2powerstate.e2instandby ein Objekt. Was ergibt ?

                    log(JSON.stringify(result.e2powerstate.e2instandby));
                    

                    Bitte verzichtet auf Chat-Nachrichten, denn die Handhabung ist grauenhaft !
                    Produktiv: RPi 2 mit S.USV, HM-MOD-RPI und SLC-USB-Stick mit root fs

                    1 Reply Last reply
                    0
                    • L Offline
                      L Offline
                      LJSven
                      wrote on last edited by
                      #10

                      @paul53:

                      Offenbar enthält die Variable result.e2powerstate.e2instandby ein Objekt. Was ergibt ?

                      log(JSON.stringify(result.e2powerstate.e2instandby));
                      ```` `  
                      

                      javascript.0 script.js.common.Dreambox_OG.Standby_Status_DB_OG: ["true"]

                      1 Reply Last reply
                      0
                      • paul53P Offline
                        paul53P Offline
                        paul53
                        wrote on last edited by
                        #11

                        Das ist ein Array mit einem Element. Was ergibt ?

                        log(result.e2powerstate.e2instandby[0] + ' ' + typeof result.e2powerstate.e2instandby[0]);
                        

                        Bitte verzichtet auf Chat-Nachrichten, denn die Handhabung ist grauenhaft !
                        Produktiv: RPi 2 mit S.USV, HM-MOD-RPI und SLC-USB-Stick mit root fs

                        1 Reply Last reply
                        0
                        • L Offline
                          L Offline
                          LJSven
                          wrote on last edited by
                          #12

                          @paul53:

                          Das ist ein Array mit einem Element. Was ergibt ?

                          log(result.e2powerstate.e2instandby[0] + ' ' + typeof result.e2powerstate.e2instandby[0]);
                          ```` `  
                          

                          Das ergibt:

                          ! javascript.0 script.js.common.Dreambox_OG.Standby_Status_DB_OG: false string

                          Wenn ich es so mache, scheint es zu gehen:

                          stateDB = JSON.parse(result.e2powerstate.e2instandby);
                          

                          Ist das okay?

                          Kann ich ein Javascript via Blockly starten / stoppen?

                          1 Reply Last reply
                          0
                          • paul53P Offline
                            paul53P Offline
                            paul53
                            wrote on last edited by
                            #13

                            @LJSven:

                            var stateDB = JSON.parse(result.e2powerstate.e2instandby);
                            

                            Ist das okay? `
                            Ja.

                            Bitte verzichtet auf Chat-Nachrichten, denn die Handhabung ist grauenhaft !
                            Produktiv: RPi 2 mit S.USV, HM-MOD-RPI und SLC-USB-Stick mit root fs

                            1 Reply Last reply
                            0
                            • L Offline
                              L Offline
                              LJSven
                              wrote on last edited by
                              #14

                              Prima! Kann als gelöst markiert werden.

                              PS. Wenn noch jemand eine Antwort hat, ob ich ein Scirpt per Blockly starten kann, bin ich happy.

                              1 Reply Last reply
                              0
                              • wendy2702W Online
                                wendy2702W Online
                                wendy2702
                                wrote on last edited by
                                #15

                                Ja, das geht.

                                Gibt einen Datenpunkt zu deinem Script der heißt etwas mit „script.enabled“.

                                Z.B.

                                999_f84ea20d-0854-45b7-a64f-ced5c1869903.jpeg

                                Denn kannst du über eine Blockly per Cron z.B. Für 2-3 Sekunden auf „true“ setzen.

                                Das````
                                [Gelöst]

                                Bitte keine Fragen per PN, die gehören ins Forum!

                                Benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat.

                                1 Reply Last reply
                                0
                                • L Offline
                                  L Offline
                                  LJSven
                                  wrote on last edited by
                                  #16

                                  Hier mein Script um die Dreambox (Enigma2) den Standby Status abzufragen:

                                  ! const request = require('request');
                                  ! const parser = require('xml2js').parseString;
                                  ! createState('javascript.0.Dreambox_OG_Standby_Status', false, {
                                  ! read: true,
                                  ! write: true,
                                  ! desc: "DB500 Standby Status",
                                  ! type: "object",
                                  ! def: false
                                  ! });
                                  ! function getDB500Status(xml) {
                                  ! parser(xml, function (err, result) {
                                  ! if(err) log('Fehler XML-Parsen: ' + err, 'error');
                                  ! else {
                                  ! var stateDB;
                                  ! stateDB = JSON.parse(result.e2powerstate.e2instandby);
                                  ! setState('javascript.0.Dreambox_OG_Standby_Status', stateDB);
                                  ! console.log(JSON.parse(result.e2powerstate.e2instandby));
                                  ! }
                                  ! });
                                  ! }
                                  ! function getXML() {
                                  ! request('http://root:%2A%2A%2A%2A%2A%2A%2A%2A@192.168.178.220:88/web/powerstate', function (error, response, body) {
                                  ! if (error) log("Fehler beim Herunterladen: " + error, 'error');
                                  ! else getDB500Status(body);
                                  ! });
                                  ! }
                                  ! schedule('* * * * *', getXML); // jede Minute

                                  1 Reply Last reply
                                  0
                                  • wendy2702W Online
                                    wendy2702W Online
                                    wendy2702
                                    wrote on last edited by
                                    #17

                                    Danke fürs teilen!

                                    Bitte keine Fragen per PN, die gehören ins Forum!

                                    Benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat.

                                    1 Reply Last reply
                                    0
                                    • paul53P Offline
                                      paul53P Offline
                                      paul53
                                      wrote on last edited by
                                      #18

                                      @LJSven:

                                      createState('javascript.0.Dreambox_OG_Standby_Status', false, {

                                      read: true,

                                      write: true,

                                      desc: "DB500 Standby Status",

                                      type: "object",

                                      def: false

                                      }); `
                                      Der Datenpunkt-Typ ist falsch !

                                      createState('javascript.0.Dreambox_OG_Standby_Status', false, {
                                         read: true,
                                         write: true,
                                         desc: "DB500 Standby Status",
                                         type: "boolean",
                                         def: false
                                      });
                                      

                                      Bitte verzichtet auf Chat-Nachrichten, denn die Handhabung ist grauenhaft !
                                      Produktiv: RPi 2 mit S.USV, HM-MOD-RPI und SLC-USB-Stick mit root fs

                                      1 Reply Last reply
                                      0
                                      Reply
                                      • Reply as topic
                                      Log in to reply
                                      • Oldest to Newest
                                      • Newest to Oldest
                                      • Most Votes


                                      Support us

                                      ioBroker
                                      Community Adapters
                                      Donate

                                      603

                                      Online

                                      32.4k

                                      Users

                                      81.4k

                                      Topics

                                      1.3m

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

                                      • Don't have an account? Register

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