Skip to content
  • Home
  • Aktuell
  • Tags
  • 0 Ungelesen 0
  • Kategorien
  • Unreplied
  • Beliebt
  • 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

  • Standard: (Kein Skin)
  • Kein Skin
Einklappen
ioBroker Logo

Community Forum

donate donate
  1. ioBroker Community Home
  2. Deutsch
  3. Skripten / Logik
  4. JavaScript
  5. Hilfe bei der Script erstellung

NEWS

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

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

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

Hilfe bei der Script erstellung

Geplant Angeheftet Gesperrt Verschoben JavaScript
98 Beiträge 6 Kommentatoren 8.6k Aufrufe 5 Watching
  • Älteste zuerst
  • Neuste zuerst
  • Meiste Stimmen
Antworten
  • In einem neuen Thema antworten
Anmelden zum Antworten
Dieses Thema wurde gelöscht. Nur Nutzer mit entsprechenden Rechten können es sehen.
  • T T0biT3ch

    @oliverio said in Hilfe bei der Script erstellung:

    @t0bit3ch

    solche Abfragen kannst du mit der Bibliothek axios machen, welche bereits in iobroker schon verfügbar ist.
    Du kannst dir mal die Beispiele hier anschauen
    https://github.com/axios/axios
    Achtung im Forum gibt es auch Beispiele, die eine etwas ältere Bibliothek (request) verwenden, die aber nicht mehr verwendet werden soll. Diese Beispiele sehen ähnlich aus, funktionieren aber mit axios nicht 1:1

    Wie du aus der Beschreibung erkennen kannst musst du dich mit einer Anfrage erst einmal anmelden. Dadurch erhältst du ein Token welches für alle weiteren Anfragen dich identifiziert (zumindest für eine gewisse Zeit, Details stehen da nicht)

    Mit dem Token musst du dann die 2. Abfrage ausführen und die Daten halt exakt so angeben, wie es da steht.
    Die Anfragen nutzen das HTTP-protokoll. Dazu könntest du auch zumindest mal den wikipedia-Artikel lesen, das du das Grundprinzip verstehst und weist was GET und POST bedeutet.

    Wenn du in JS ganz neu bist und ggfs schon mit einer anderen Programmiersprachen beschäftigt hast, wird dich das asynchrone Prinzip von JS am Anfang überraschen und ein paar Gehirnwindungen überanstrengen. Das evtl zuvor auch mal am Anfang noch etwas nachlesen.

    Moin Moin,
    Leider bin ich heute erst zum Antworten gekommen.
    bin aber in den letzten Tagen fleißig gewesen.

    var request = require('request');
    var options = {
      'method': 'POST',
      'url': 'https://api.emessage.de/auth/login',
      'headers': {
        'Authorization': 'Basic Og==',
        'Content-Type': 'application/json'
      },
      body: JSON.stringify({
        "username": "USERNAME",
        "password": "PASSWORD"
      })
    
    };
    request(options, function (error, response) {
      if (error) throw new Error(error);
      console.log(response.body);
    });
    
    

    Mit diesem Script bekomme ich einen Token nach der anfrage zurück, aber wie kann ich den Token in Datenpunken ablegen und in das Script zum Nachrichten Senden wieder einfügen?

    hier das Script zum Senden

    var request = require('request');
    var options = {
      'method': 'POST',
      'url': 'https://api.emessage.de/rs/eSendMessages',
      'headers': {
        'Authorization': 'Bearer TOKEN',
        'Content-Type': 'application/json'
      },
      body: JSON.stringify({
        "messageText": "Testnachricht",
        "recipients": [
          {
            "serviceName": "eCityruf",
            "identifier": "PAGER-ID"
          }
        ]
      })
    
    };
    request(options, function (error, response) {
      if (error) throw new Error(error);
      console.log(response.body);
    });
    

    Ich stehe auf dem Schlauch und komme einfach nicht weiter.... :disappointed:

    T Offline
    T Offline
    T0biT3ch
    schrieb am zuletzt editiert von
    #4

    @t0bit3ch
    Es scheint als müsste der Token vor jedem Nachrichtenversand neu Generiert werden :man-shrugging:

    1 Antwort Letzte Antwort
    0
    • T T0biT3ch

      @oliverio said in Hilfe bei der Script erstellung:

      @t0bit3ch

      solche Abfragen kannst du mit der Bibliothek axios machen, welche bereits in iobroker schon verfügbar ist.
      Du kannst dir mal die Beispiele hier anschauen
      https://github.com/axios/axios
      Achtung im Forum gibt es auch Beispiele, die eine etwas ältere Bibliothek (request) verwenden, die aber nicht mehr verwendet werden soll. Diese Beispiele sehen ähnlich aus, funktionieren aber mit axios nicht 1:1

      Wie du aus der Beschreibung erkennen kannst musst du dich mit einer Anfrage erst einmal anmelden. Dadurch erhältst du ein Token welches für alle weiteren Anfragen dich identifiziert (zumindest für eine gewisse Zeit, Details stehen da nicht)

      Mit dem Token musst du dann die 2. Abfrage ausführen und die Daten halt exakt so angeben, wie es da steht.
      Die Anfragen nutzen das HTTP-protokoll. Dazu könntest du auch zumindest mal den wikipedia-Artikel lesen, das du das Grundprinzip verstehst und weist was GET und POST bedeutet.

      Wenn du in JS ganz neu bist und ggfs schon mit einer anderen Programmiersprachen beschäftigt hast, wird dich das asynchrone Prinzip von JS am Anfang überraschen und ein paar Gehirnwindungen überanstrengen. Das evtl zuvor auch mal am Anfang noch etwas nachlesen.

      Moin Moin,
      Leider bin ich heute erst zum Antworten gekommen.
      bin aber in den letzten Tagen fleißig gewesen.

      var request = require('request');
      var options = {
        'method': 'POST',
        'url': 'https://api.emessage.de/auth/login',
        'headers': {
          'Authorization': 'Basic Og==',
          'Content-Type': 'application/json'
        },
        body: JSON.stringify({
          "username": "USERNAME",
          "password": "PASSWORD"
        })
      
      };
      request(options, function (error, response) {
        if (error) throw new Error(error);
        console.log(response.body);
      });
      
      

      Mit diesem Script bekomme ich einen Token nach der anfrage zurück, aber wie kann ich den Token in Datenpunken ablegen und in das Script zum Nachrichten Senden wieder einfügen?

      hier das Script zum Senden

      var request = require('request');
      var options = {
        'method': 'POST',
        'url': 'https://api.emessage.de/rs/eSendMessages',
        'headers': {
          'Authorization': 'Bearer TOKEN',
          'Content-Type': 'application/json'
        },
        body: JSON.stringify({
          "messageText": "Testnachricht",
          "recipients": [
            {
              "serviceName": "eCityruf",
              "identifier": "PAGER-ID"
            }
          ]
        })
      
      };
      request(options, function (error, response) {
        if (error) throw new Error(error);
        console.log(response.body);
      });
      

      Ich stehe auf dem Schlauch und komme einfach nicht weiter.... :disappointed:

      OliverIOO Offline
      OliverIOO Offline
      OliverIO
      schrieb am zuletzt editiert von
      #5

      @t0bit3ch

      da du die bibliothek request verwendest, scheinst du wohl nicht auf meinen post zu antworten :)

      Meine Adapter und Widgets
      TVProgram, SqueezeboxRPC, OpenLiga, RSSFeed, MyTime,, pi-hole2, vis-json-template, skiinfo, vis-mapwidgets, vis-2-widgets-rssfeed
      Links im Profil

      T 1 Antwort Letzte Antwort
      0
      • OliverIOO OliverIO

        @t0bit3ch

        da du die bibliothek request verwendest, scheinst du wohl nicht auf meinen post zu antworten :)

        T Offline
        T Offline
        T0biT3ch
        schrieb am zuletzt editiert von T0biT3ch
        #6

        @oliverio
        habe es jetzt soweit bekommen das ich die Antwort in einem Datenpunkt bringe. Wie kann ich jetzt filtern das in dem Datenpunkt nur der Token angezeigt wird?

        var request = require('request');
        var objectName = '0_userdata.0.E-Message.E-Message.API'
        var resault
        var options ={
          'method': 'POST',
          'url': 'https://api.emessage.de/auth/login',
          'headers': {
            'Authorization': 'Basic Og==',
            'Content-Type': 'application/json'
          },
          body: JSON.stringify({
            "username": "USERNAME",
            "password": "Passwort"
          })
        
        };
        request(options, async function (error, response, resault) {
            if (error) throw new Error(error); 
          console.log(('' + getAttr(resault, '"jwt"')));
          createState(objectName,{name: "E*Message - API",  type: 'json', role: 'state'}, function () {});
          setState("0_userdata.0.E-Message.E-Message.API"/*Testobjekt */, resault, true);
          });
        

        Der Datenpunkt eintrag sieht so aus.

        {
          "apiStatusCode": 200,
          "data": {
            "username": "*******",
            "jwt": "*******TOKEN********"
          },
          "message": "OK"
        }
        

        vielen dank im vorraus :grinning:

        1 Antwort Letzte Antwort
        0
        • OliverIOO OliverIO

          @t0bit3ch

          solche Abfragen kannst du mit der Bibliothek axios machen, welche bereits in iobroker schon verfügbar ist.
          Du kannst dir mal die Beispiele hier anschauen
          https://github.com/axios/axios
          Achtung im Forum gibt es auch Beispiele, die eine etwas ältere Bibliothek (request) verwenden, die aber nicht mehr verwendet werden soll. Diese Beispiele sehen ähnlich aus, funktionieren aber mit axios nicht 1:1

          Wie du aus der Beschreibung erkennen kannst musst du dich mit einer Anfrage erst einmal anmelden. Dadurch erhältst du ein Token welches für alle weiteren Anfragen dich identifiziert (zumindest für eine gewisse Zeit, Details stehen da nicht)

          Mit dem Token musst du dann die 2. Abfrage ausführen und die Daten halt exakt so angeben, wie es da steht.
          Die Anfragen nutzen das HTTP-protokoll. Dazu könntest du auch zumindest mal den wikipedia-Artikel lesen, das du das Grundprinzip verstehst und weist was GET und POST bedeutet.

          Wenn du in JS ganz neu bist und ggfs schon mit einer anderen Programmiersprachen beschäftigt hast, wird dich das asynchrone Prinzip von JS am Anfang überraschen und ein paar Gehirnwindungen überanstrengen. Das evtl zuvor auch mal am Anfang noch etwas nachlesen.

          HomoranH Nicht stören
          HomoranH Nicht stören
          Homoran
          Global Moderator Administrators
          schrieb am zuletzt editiert von
          #7

          @T0biT3ch

          @oliverio sagte in Hilfe bei der Script erstellung:

          solche Abfragen kannst du mit der Bibliothek axios machen, welche bereits in iobroker schon verfügbar ist.

          @oliverio sagte in Hilfe bei der Script erstellung:

          Achtung im Forum gibt es auch Beispiele, die eine etwas ältere Bibliothek (request) verwenden, die aber nicht mehr verwendet werden soll

          kein Support per PN! - Fragen im Forum stellen - es gibt fast nichts, was nicht auch für andere interessant ist.

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

          der Installationsfixer: curl -fsL https://iobroker.net/fix.sh | bash -

          T 1 Antwort Letzte Antwort
          0
          • HomoranH Homoran

            @T0biT3ch

            @oliverio sagte in Hilfe bei der Script erstellung:

            solche Abfragen kannst du mit der Bibliothek axios machen, welche bereits in iobroker schon verfügbar ist.

            @oliverio sagte in Hilfe bei der Script erstellung:

            Achtung im Forum gibt es auch Beispiele, die eine etwas ältere Bibliothek (request) verwenden, die aber nicht mehr verwendet werden soll

            T Offline
            T Offline
            T0biT3ch
            schrieb am zuletzt editiert von
            #8

            Guten Abend,

            wieder ein Stückchen weiter. Den Token habe ich in seine einzelteile zerlegen können. Jetzt geht es ans Senden der Nachrichten. Ich möchte den Token und die Nachricht aus dem Datenpunkt in mein Skript einfügen.

            Dieses Skript habe ich mir zurecht geklickt, aber irgendwie funktioniert das mit dem setState nicht.

            var request = require('request');
            var token = '0_userdata.0.E-Message.E-Message-API';
            var alarmtext = '0_userdata.0.E-Message.E-Message-Text';
            var options = {
              'method': 'POST',
              'url': 'https://api.emessage.de/rs/eSendMessages',
              'headers': {
                'Authorization': setState(token),
                'Content-Type': 'application/json'
              },
              body: JSON.stringify({
                "messageText": setState(alarmtext),
                "recipients": [
                  {
                    "serviceName": "eCityruf",
                    "identifier": "*******"
                  }
                ]
              })
            
            };
            request(options, function (error, response) {
              if (error) throw new Error(error);
              console.log(response.body);
            });
            
            
            T 1 Antwort Letzte Antwort
            0
            • T T0biT3ch

              Guten Abend,

              wieder ein Stückchen weiter. Den Token habe ich in seine einzelteile zerlegen können. Jetzt geht es ans Senden der Nachrichten. Ich möchte den Token und die Nachricht aus dem Datenpunkt in mein Skript einfügen.

              Dieses Skript habe ich mir zurecht geklickt, aber irgendwie funktioniert das mit dem setState nicht.

              var request = require('request');
              var token = '0_userdata.0.E-Message.E-Message-API';
              var alarmtext = '0_userdata.0.E-Message.E-Message-Text';
              var options = {
                'method': 'POST',
                'url': 'https://api.emessage.de/rs/eSendMessages',
                'headers': {
                  'Authorization': setState(token),
                  'Content-Type': 'application/json'
                },
                body: JSON.stringify({
                  "messageText": setState(alarmtext),
                  "recipients": [
                    {
                      "serviceName": "eCityruf",
                      "identifier": "*******"
                    }
                  ]
                })
              
              };
              request(options, function (error, response) {
                if (error) throw new Error(error);
                console.log(response.body);
              });
              
              
              T Offline
              T Offline
              T0biT3ch
              schrieb am zuletzt editiert von
              #9

              @OliverIO

              Hab das ganze nochmal in axios geändert.

              var axios = require('axios');
              var token = '0_userdata.0.E-Message.E-Message-API';
              var alarmtext = '0_userdata.0.E-Message.E-Message-Text';
              var data = JSON.stringify({
                "messageText": setState(alarmtext),
                "recipients": [
                  {
                    "serviceName": "eCityruf",
                    "identifier": "******"
                  }
                ]
              });
              
              var config = {
                method: 'post',
                url: 'https://api.emessage.de/rs/eSendMessages',
                headers: { 
                  'Authorization': setState(token), 
                  'Content-Type': 'application/json'
                },
                data : data
              };
              
              axios(config)
              .then(function (response) {
                console.log(JSON.stringify(response.data));
              })
              .catch(function (error) {
                console.log(error);
              });
              
              

              bekomme jetzt den fehler

              {'code':'ERR_HTTP_INVALID_HEADER_VALUE'}
              

              woran kann das liegen?

              beste grüße :the_horns:

              OliverIOO 1 Antwort Letzte Antwort
              0
              • T T0biT3ch

                @OliverIO

                Hab das ganze nochmal in axios geändert.

                var axios = require('axios');
                var token = '0_userdata.0.E-Message.E-Message-API';
                var alarmtext = '0_userdata.0.E-Message.E-Message-Text';
                var data = JSON.stringify({
                  "messageText": setState(alarmtext),
                  "recipients": [
                    {
                      "serviceName": "eCityruf",
                      "identifier": "******"
                    }
                  ]
                });
                
                var config = {
                  method: 'post',
                  url: 'https://api.emessage.de/rs/eSendMessages',
                  headers: { 
                    'Authorization': setState(token), 
                    'Content-Type': 'application/json'
                  },
                  data : data
                };
                
                axios(config)
                .then(function (response) {
                  console.log(JSON.stringify(response.data));
                })
                .catch(function (error) {
                  console.log(error);
                });
                
                

                bekomme jetzt den fehler

                {'code':'ERR_HTTP_INVALID_HEADER_VALUE'}
                

                woran kann das liegen?

                beste grüße :the_horns:

                OliverIOO Offline
                OliverIOO Offline
                OliverIO
                schrieb am zuletzt editiert von
                #10

                @t0bit3ch sagte in Hilfe bei der Script erstellung:

                'Authorization': setState(token),
                

                Du möchtest sicherlich den Inhalt des datenpunktes lesen und nicht schreiben.
                Da müsste es auch schon ein Fehler gegeben haben, da bei setState die Anzahl der Parameter nicht stimmt.

                Aber generell würde ich das Token nicht in ein datenpunkt schreiben, da es wahrscheinlich gar nicht so lange gültig ist und du es vor jeder Abfrage eh wieder neu abfragen musst.

                Meine Adapter und Widgets
                TVProgram, SqueezeboxRPC, OpenLiga, RSSFeed, MyTime,, pi-hole2, vis-json-template, skiinfo, vis-mapwidgets, vis-2-widgets-rssfeed
                Links im Profil

                T 1 Antwort Letzte Antwort
                0
                • OliverIOO OliverIO

                  @t0bit3ch sagte in Hilfe bei der Script erstellung:

                  'Authorization': setState(token),
                  

                  Du möchtest sicherlich den Inhalt des datenpunktes lesen und nicht schreiben.
                  Da müsste es auch schon ein Fehler gegeben haben, da bei setState die Anzahl der Parameter nicht stimmt.

                  Aber generell würde ich das Token nicht in ein datenpunkt schreiben, da es wahrscheinlich gar nicht so lange gültig ist und du es vor jeder Abfrage eh wieder neu abfragen musst.

                  T Offline
                  T Offline
                  T0biT3ch
                  schrieb am zuletzt editiert von
                  #11

                  @oliverio said in Hilfe bei der Script erstellung:

                  @t0bit3ch sagte in Hilfe bei der Script erstellung:

                  'Authorization': setState(token),
                  

                  Du möchtest sicherlich den Inhalt des datenpunktes lesen und nicht schreiben.
                  Da müsste es auch schon ein Fehler gegeben haben, da bei setState die Anzahl der Parameter nicht stimmt.

                  Aber generell würde ich das Token nicht in ein datenpunkt schreiben, da es wahrscheinlich gar nicht so lange gültig ist und du es vor jeder Abfrage eh wieder neu abfragen musst.

                  Danke für den Hinweis, aber wie könnte ich es denn dann lösen das der Token jedes mal vor dem Senden der Nachricht neu Aktualisiert wird?

                  1 Antwort Letzte Antwort
                  0
                  • OliverIOO Offline
                    OliverIOO Offline
                    OliverIO
                    schrieb am zuletzt editiert von
                    #12

                    @t0bit3ch
                    poste bitte hier mal deinen ganzen code, den du bisher hast.
                    also einmal die abfrage nach dem token und dann 2. die abfrage mit dem eigentlichen befehl in einem post. dann sieht man das auf einmal.
                    die ursprünglichen pdf dateien hast du nicht mehr? ich find sie nicht mehr hier im thread

                    Meine Adapter und Widgets
                    TVProgram, SqueezeboxRPC, OpenLiga, RSSFeed, MyTime,, pi-hole2, vis-json-template, skiinfo, vis-mapwidgets, vis-2-widgets-rssfeed
                    Links im Profil

                    T 1 Antwort Letzte Antwort
                    0
                    • OliverIOO OliverIO

                      @t0bit3ch
                      poste bitte hier mal deinen ganzen code, den du bisher hast.
                      also einmal die abfrage nach dem token und dann 2. die abfrage mit dem eigentlichen befehl in einem post. dann sieht man das auf einmal.
                      die ursprünglichen pdf dateien hast du nicht mehr? ich find sie nicht mehr hier im thread

                      T Offline
                      T Offline
                      T0biT3ch
                      schrieb am zuletzt editiert von
                      #13

                      @oliverio said in Hilfe bei der Script erstellung:

                      @t0bit3ch
                      poste bitte hier mal deinen ganzen code, den du bisher hast.
                      also einmal die abfrage nach dem token und dann 2. die abfrage mit dem eigentlichen befehl in einem post. dann sieht man das auf einmal.
                      die ursprünglichen pdf dateien hast du nicht mehr? ich find sie nicht mehr hier im thread

                      mit diesem code (bekomme es mit axios leider nicht hin) frage ich den token ab und lass mir die angeforderten daten in einen datenpunkt schreiben

                      var request = require('request');
                      var resault
                      var options ={
                        'method': 'POST',
                        'url': 'https://api.emessage.de/auth/login',
                        'headers': {
                          'Authorization': 'Basic Og==',
                          'Content-Type': 'application/json'
                        },
                        body: JSON.stringify({
                          "username": "USERNAME",
                          "password": "PASSWORD"
                        })
                      
                      };
                      request(options, async function (error, response, resault) {
                          if (error) throw new Error(error); 
                        console.log(('' + getAttr(resault, '"jwt"')));
                        setState("0_userdata.0.E-Message.E-Message-API-String"/* JWT */, resault, true);
                        });
                      

                      dann rufe ich den datenpunkt mit den angeforderten daten über ein Blockly Script auf welches mir die daten zerlegt und in mehrere datenpunke sortiert

                      <xml xmlns="https://developers.google.com/blockly/xml">
                        <variables>
                          <variable id="Kr{TqA7bmUJ@ID|SdrFb">API-Status</variable>
                          <variable id="oWS;kTCnQynl7?P(oOxL">Username</variable>
                          <variable id="`|k+#[5=^_i-t;SU=sgS">API-Token</variable>
                        </variables>
                        <block type="on" id="RDTxmtpzwY2#i8wo-5j3" x="38" y="38">
                          <field name="OID">0_userdata.0.E-Message.E-Message-API-String</field>
                          <field name="CONDITION">any</field>
                          <field name="ACK_CONDITION"></field>
                          <statement name="STATEMENT">
                            <block type="debug" id="#vw,R^04?VHo%.W_:PA$">
                              <field name="Severity">log</field>
                              <value name="TEXT">
                                <shadow type="text" id="|a573mU%uv-X*c%/-9y@">
                                  <field name="TEXT">test</field>
                                </shadow>
                                <block type="on_source" id="+Wx=vWMza3i7xHQV+njl">
                                  <field name="ATTR">state.val</field>
                                </block>
                              </value>
                              <next>
                                <block type="variables_set" id="4i,h%+`A)Up@E3CWrR,(">
                                  <field name="VAR" id="Kr{TqA7bmUJ@ID|SdrFb">API-Status</field>
                                  <value name="VALUE">
                                    <block type="text_getSubstring" id="fXy2)F{UojePPs||6m5L">
                                      <mutation at1="true" at2="true"></mutation>
                                      <field name="WHERE1">FROM_START</field>
                                      <field name="WHERE2">FROM_START</field>
                                      <value name="STRING">
                                        <block type="on_source" id="PA#t0e@yV5ogg01kPcd`">
                                          <field name="ATTR">state.val</field>
                                        </block>
                                      </value>
                                      <value name="AT1">
                                        <block type="math_number" id="F8[Ez0b*miQk`g9KKm*M">
                                          <field name="NUM">18</field>
                                        </block>
                                      </value>
                                      <value name="AT2">
                                        <block type="math_number" id="ku+#OXuXQ7FXbmaq=irq">
                                          <field name="NUM">20</field>
                                        </block>
                                      </value>
                                    </block>
                                  </value>
                                  <next>
                                    <block type="update" id="?MS3Iz/f-!5hDYbQBeA_">
                                      <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation>
                                      <field name="OID">0_userdata.0.E-Message.E-Message-API-Status</field>
                                      <field name="WITH_DELAY">FALSE</field>
                                      <value name="VALUE">
                                        <block type="variables_get" id="1Bb!DlC-9?Iy=j_nHF$?">
                                          <field name="VAR" id="Kr{TqA7bmUJ@ID|SdrFb">API-Status</field>
                                        </block>
                                      </value>
                                      <next>
                                        <block type="variables_set" id="s*7{PwAY0fQ`ePmy8M,%">
                                          <field name="VAR" id="oWS;kTCnQynl7?P(oOxL">Username</field>
                                          <value name="VALUE">
                                            <block type="text_getSubstring" id="VV0s!?mK8.H,tnAkwKu,">
                                              <mutation at1="true" at2="true"></mutation>
                                              <field name="WHERE1">FROM_START</field>
                                              <field name="WHERE2">FROM_START</field>
                                              <value name="STRING">
                                                <block type="on_source" id="@ek[B.l(tKY(-4|r@rwR">
                                                  <field name="ATTR">state.val</field>
                                                </block>
                                              </value>
                                              <value name="AT1">
                                                <block type="math_number" id="T3.[TBc_H+Q|zkIYj5IC">
                                                  <field name="NUM">42</field>
                                                </block>
                                              </value>
                                              <value name="AT2">
                                                <block type="math_number" id="zbG?uq8_pU]d_^TjVi|o">
                                                  <field name="NUM">50</field>
                                                </block>
                                              </value>
                                            </block>
                                          </value>
                                          <next>
                                            <block type="update" id="~*vJ)~oPTXb2NR-oQcTT">
                                              <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation>
                                              <field name="OID">0_userdata.0.E-Message.E-Message-Username</field>
                                              <field name="WITH_DELAY">FALSE</field>
                                              <value name="VALUE">
                                                <block type="variables_get" id="Ja`Z}5vKnY/-XsCmCsxw">
                                                  <field name="VAR" id="oWS;kTCnQynl7?P(oOxL">Username</field>
                                                </block>
                                              </value>
                                              <next>
                                                <block type="variables_set" id="`U]osubHK9WBHm)gn1B}">
                                                  <field name="VAR" id="`|k+#[5=^_i-t;SU=sgS">API-Token</field>
                                                  <value name="VALUE">
                                                    <block type="text_getSubstring" id="VXC.dW^%gU94G(V1^M@H">
                                                      <mutation at1="true" at2="true"></mutation>
                                                      <field name="WHERE1">FROM_START</field>
                                                      <field name="WHERE2">FROM_START</field>
                                                      <value name="STRING">
                                                        <block type="on_source" id="B#W50$zXk`##sSsQ}K|m">
                                                          <field name="ATTR">state.val</field>
                                                        </block>
                                                      </value>
                                                      <value name="AT1">
                                                        <block type="math_number" id="PId}2w,-XJ[:yXXhv8bR">
                                                          <field name="NUM">60</field>
                                                        </block>
                                                      </value>
                                                      <value name="AT2">
                                                        <block type="math_number" id="b|84SF#c+C$X+%$d8]=@">
                                                          <field name="NUM">424</field>
                                                        </block>
                                                      </value>
                                                    </block>
                                                  </value>
                                                  <next>
                                                    <block type="update" id="zoBV.$./O{Lb|]2`;p#z">
                                                      <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation>
                                                      <field name="OID">0_userdata.0.E-Message.E-Message-API</field>
                                                      <field name="WITH_DELAY">FALSE</field>
                                                      <value name="VALUE">
                                                        <block type="text_join" id="aUt/649RjEQgudAj~`XG">
                                                          <mutation items="3"></mutation>
                                                          <value name="ADD0">
                                                            <block type="text" id=".j`Rc`;RB|m`eSR8[;BS">
                                                              <field name="TEXT">'Bearer </field>
                                                            </block>
                                                          </value>
                                                          <value name="ADD1">
                                                            <block type="variables_get" id="2.8QwlYFn|kNQq+U1%YN">
                                                              <field name="VAR" id="`|k+#[5=^_i-t;SU=sgS">API-Token</field>
                                                            </block>
                                                          </value>
                                                          <value name="ADD2">
                                                            <block type="text" id="C(_2YRym/)JNO?jh5w;,">
                                                              <field name="TEXT">',</field>
                                                            </block>
                                                          </value>
                                                        </block>
                                                      </value>
                                                    </block>
                                                  </next>
                                                </block>
                                              </next>
                                            </block>
                                          </next>
                                        </block>
                                      </next>
                                    </block>
                                  </next>
                                </block>
                              </next>
                            </block>
                          </statement>
                        </block>
                      </xml>
                      

                      nach dem anfordern über script 1 bekomme ich diese antwort

                      {"apiStatusCode":200,"data":{"username":"****USERNAME****","jwt":"***TOKEN****"},"message":"OK"}
                      

                      nach dem zerlegen durch blockly sieht es dann so aus

                      API Status

                      200
                      

                      Username

                      username
                      

                      Token

                      'Bearer gfhgghkjgshhsajhfjdsbhbkghdfdskjhfskigjhbjkddhsadhsjkhgjksxhhgf554654564jhhjgfhdgdxycvdcxgfdhdfg546+4fgdyfgfdghfdgdsgdgdfgdfgfvbxcfgfdhfghjhjkjhkh.,ghsdgsgdsgsgsd'
                      

                      dann noch der code zum senden der nachricht in dem dann eigentlich der token aus dem datenpunk gesetzt werden soll

                      var request = require('request');
                      var options = {
                        'method': 'POST',
                        'url': 'https://api.emessage.de/rs/eSendMessages',
                        'headers': { 
                          'Authorization': getState("0_userdata.0.E-Message.E-Message-API").val,
                          'Content-Type': 'application/json'
                        },
                        body: JSON.stringify({
                          "messageText": getState("0_userdata.0.E-Message.E-Message-Text").val,
                          "recipients": [
                            {
                              "serviceName": "eCityruf",
                              "identifier": "*********"
                            }
                          ]
                        })
                      
                      };
                      request(options, function (error, response) {
                        if (error) throw new Error(error);
                        console.log(response.body,);
                      });
                      
                      

                      mit diesem code möchte ich mir alarm und störmeldungen auf einen pager senden lassen.
                      wäre natürlich auch cool wenn es für den service von E*Message einen eigenen adapter geben würde

                      hier noch die PDF
                      Webservice API.pdf

                      OliverIOO 1 Antwort Letzte Antwort
                      0
                      • T T0biT3ch

                        @oliverio said in Hilfe bei der Script erstellung:

                        @t0bit3ch
                        poste bitte hier mal deinen ganzen code, den du bisher hast.
                        also einmal die abfrage nach dem token und dann 2. die abfrage mit dem eigentlichen befehl in einem post. dann sieht man das auf einmal.
                        die ursprünglichen pdf dateien hast du nicht mehr? ich find sie nicht mehr hier im thread

                        mit diesem code (bekomme es mit axios leider nicht hin) frage ich den token ab und lass mir die angeforderten daten in einen datenpunkt schreiben

                        var request = require('request');
                        var resault
                        var options ={
                          'method': 'POST',
                          'url': 'https://api.emessage.de/auth/login',
                          'headers': {
                            'Authorization': 'Basic Og==',
                            'Content-Type': 'application/json'
                          },
                          body: JSON.stringify({
                            "username": "USERNAME",
                            "password": "PASSWORD"
                          })
                        
                        };
                        request(options, async function (error, response, resault) {
                            if (error) throw new Error(error); 
                          console.log(('' + getAttr(resault, '"jwt"')));
                          setState("0_userdata.0.E-Message.E-Message-API-String"/* JWT */, resault, true);
                          });
                        

                        dann rufe ich den datenpunkt mit den angeforderten daten über ein Blockly Script auf welches mir die daten zerlegt und in mehrere datenpunke sortiert

                        <xml xmlns="https://developers.google.com/blockly/xml">
                          <variables>
                            <variable id="Kr{TqA7bmUJ@ID|SdrFb">API-Status</variable>
                            <variable id="oWS;kTCnQynl7?P(oOxL">Username</variable>
                            <variable id="`|k+#[5=^_i-t;SU=sgS">API-Token</variable>
                          </variables>
                          <block type="on" id="RDTxmtpzwY2#i8wo-5j3" x="38" y="38">
                            <field name="OID">0_userdata.0.E-Message.E-Message-API-String</field>
                            <field name="CONDITION">any</field>
                            <field name="ACK_CONDITION"></field>
                            <statement name="STATEMENT">
                              <block type="debug" id="#vw,R^04?VHo%.W_:PA$">
                                <field name="Severity">log</field>
                                <value name="TEXT">
                                  <shadow type="text" id="|a573mU%uv-X*c%/-9y@">
                                    <field name="TEXT">test</field>
                                  </shadow>
                                  <block type="on_source" id="+Wx=vWMza3i7xHQV+njl">
                                    <field name="ATTR">state.val</field>
                                  </block>
                                </value>
                                <next>
                                  <block type="variables_set" id="4i,h%+`A)Up@E3CWrR,(">
                                    <field name="VAR" id="Kr{TqA7bmUJ@ID|SdrFb">API-Status</field>
                                    <value name="VALUE">
                                      <block type="text_getSubstring" id="fXy2)F{UojePPs||6m5L">
                                        <mutation at1="true" at2="true"></mutation>
                                        <field name="WHERE1">FROM_START</field>
                                        <field name="WHERE2">FROM_START</field>
                                        <value name="STRING">
                                          <block type="on_source" id="PA#t0e@yV5ogg01kPcd`">
                                            <field name="ATTR">state.val</field>
                                          </block>
                                        </value>
                                        <value name="AT1">
                                          <block type="math_number" id="F8[Ez0b*miQk`g9KKm*M">
                                            <field name="NUM">18</field>
                                          </block>
                                        </value>
                                        <value name="AT2">
                                          <block type="math_number" id="ku+#OXuXQ7FXbmaq=irq">
                                            <field name="NUM">20</field>
                                          </block>
                                        </value>
                                      </block>
                                    </value>
                                    <next>
                                      <block type="update" id="?MS3Iz/f-!5hDYbQBeA_">
                                        <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation>
                                        <field name="OID">0_userdata.0.E-Message.E-Message-API-Status</field>
                                        <field name="WITH_DELAY">FALSE</field>
                                        <value name="VALUE">
                                          <block type="variables_get" id="1Bb!DlC-9?Iy=j_nHF$?">
                                            <field name="VAR" id="Kr{TqA7bmUJ@ID|SdrFb">API-Status</field>
                                          </block>
                                        </value>
                                        <next>
                                          <block type="variables_set" id="s*7{PwAY0fQ`ePmy8M,%">
                                            <field name="VAR" id="oWS;kTCnQynl7?P(oOxL">Username</field>
                                            <value name="VALUE">
                                              <block type="text_getSubstring" id="VV0s!?mK8.H,tnAkwKu,">
                                                <mutation at1="true" at2="true"></mutation>
                                                <field name="WHERE1">FROM_START</field>
                                                <field name="WHERE2">FROM_START</field>
                                                <value name="STRING">
                                                  <block type="on_source" id="@ek[B.l(tKY(-4|r@rwR">
                                                    <field name="ATTR">state.val</field>
                                                  </block>
                                                </value>
                                                <value name="AT1">
                                                  <block type="math_number" id="T3.[TBc_H+Q|zkIYj5IC">
                                                    <field name="NUM">42</field>
                                                  </block>
                                                </value>
                                                <value name="AT2">
                                                  <block type="math_number" id="zbG?uq8_pU]d_^TjVi|o">
                                                    <field name="NUM">50</field>
                                                  </block>
                                                </value>
                                              </block>
                                            </value>
                                            <next>
                                              <block type="update" id="~*vJ)~oPTXb2NR-oQcTT">
                                                <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation>
                                                <field name="OID">0_userdata.0.E-Message.E-Message-Username</field>
                                                <field name="WITH_DELAY">FALSE</field>
                                                <value name="VALUE">
                                                  <block type="variables_get" id="Ja`Z}5vKnY/-XsCmCsxw">
                                                    <field name="VAR" id="oWS;kTCnQynl7?P(oOxL">Username</field>
                                                  </block>
                                                </value>
                                                <next>
                                                  <block type="variables_set" id="`U]osubHK9WBHm)gn1B}">
                                                    <field name="VAR" id="`|k+#[5=^_i-t;SU=sgS">API-Token</field>
                                                    <value name="VALUE">
                                                      <block type="text_getSubstring" id="VXC.dW^%gU94G(V1^M@H">
                                                        <mutation at1="true" at2="true"></mutation>
                                                        <field name="WHERE1">FROM_START</field>
                                                        <field name="WHERE2">FROM_START</field>
                                                        <value name="STRING">
                                                          <block type="on_source" id="B#W50$zXk`##sSsQ}K|m">
                                                            <field name="ATTR">state.val</field>
                                                          </block>
                                                        </value>
                                                        <value name="AT1">
                                                          <block type="math_number" id="PId}2w,-XJ[:yXXhv8bR">
                                                            <field name="NUM">60</field>
                                                          </block>
                                                        </value>
                                                        <value name="AT2">
                                                          <block type="math_number" id="b|84SF#c+C$X+%$d8]=@">
                                                            <field name="NUM">424</field>
                                                          </block>
                                                        </value>
                                                      </block>
                                                    </value>
                                                    <next>
                                                      <block type="update" id="zoBV.$./O{Lb|]2`;p#z">
                                                        <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation>
                                                        <field name="OID">0_userdata.0.E-Message.E-Message-API</field>
                                                        <field name="WITH_DELAY">FALSE</field>
                                                        <value name="VALUE">
                                                          <block type="text_join" id="aUt/649RjEQgudAj~`XG">
                                                            <mutation items="3"></mutation>
                                                            <value name="ADD0">
                                                              <block type="text" id=".j`Rc`;RB|m`eSR8[;BS">
                                                                <field name="TEXT">'Bearer </field>
                                                              </block>
                                                            </value>
                                                            <value name="ADD1">
                                                              <block type="variables_get" id="2.8QwlYFn|kNQq+U1%YN">
                                                                <field name="VAR" id="`|k+#[5=^_i-t;SU=sgS">API-Token</field>
                                                              </block>
                                                            </value>
                                                            <value name="ADD2">
                                                              <block type="text" id="C(_2YRym/)JNO?jh5w;,">
                                                                <field name="TEXT">',</field>
                                                              </block>
                                                            </value>
                                                          </block>
                                                        </value>
                                                      </block>
                                                    </next>
                                                  </block>
                                                </next>
                                              </block>
                                            </next>
                                          </block>
                                        </next>
                                      </block>
                                    </next>
                                  </block>
                                </next>
                              </block>
                            </statement>
                          </block>
                        </xml>
                        

                        nach dem anfordern über script 1 bekomme ich diese antwort

                        {"apiStatusCode":200,"data":{"username":"****USERNAME****","jwt":"***TOKEN****"},"message":"OK"}
                        

                        nach dem zerlegen durch blockly sieht es dann so aus

                        API Status

                        200
                        

                        Username

                        username
                        

                        Token

                        'Bearer gfhgghkjgshhsajhfjdsbhbkghdfdskjhfskigjhbjkddhsadhsjkhgjksxhhgf554654564jhhjgfhdgdxycvdcxgfdhdfg546+4fgdyfgfdghfdgdsgdgdfgdfgfvbxcfgfdhfghjhjkjhkh.,ghsdgsgdsgsgsd'
                        

                        dann noch der code zum senden der nachricht in dem dann eigentlich der token aus dem datenpunk gesetzt werden soll

                        var request = require('request');
                        var options = {
                          'method': 'POST',
                          'url': 'https://api.emessage.de/rs/eSendMessages',
                          'headers': { 
                            'Authorization': getState("0_userdata.0.E-Message.E-Message-API").val,
                            'Content-Type': 'application/json'
                          },
                          body: JSON.stringify({
                            "messageText": getState("0_userdata.0.E-Message.E-Message-Text").val,
                            "recipients": [
                              {
                                "serviceName": "eCityruf",
                                "identifier": "*********"
                              }
                            ]
                          })
                        
                        };
                        request(options, function (error, response) {
                          if (error) throw new Error(error);
                          console.log(response.body,);
                        });
                        
                        

                        mit diesem code möchte ich mir alarm und störmeldungen auf einen pager senden lassen.
                        wäre natürlich auch cool wenn es für den service von E*Message einen eigenen adapter geben würde

                        hier noch die PDF
                        Webservice API.pdf

                        OliverIOO Offline
                        OliverIOO Offline
                        OliverIO
                        schrieb am zuletzt editiert von
                        #14

                        probier mal damit, schau aber sorgfältig nochmal durch
                        und ersetze mit deinen daten.
                        wenn du am code etwas nicht verstehst, stell bitte konkrete fragen.

                        const axios = require('axios');
                        
                        function auth() {
                            axios.post('Host: https://api.emessage.de/auth/login', {
                                username: 'username',
                                password: 'password'
                            },{
                                headers: {
                                    'Content-Type': 'application/json',
                                }
                            }).then(function (response) {
                                console.log(response);
                                if (response.status==200) {
                                    var token = response.data.data.jwt;
                                    sendMessage(token)
                                }
                            })
                            .catch(function (error) {
                                console.log(error);
                            });
                        }
                        
                        function sendMessage(token) {
                        axios.post('Host: https://api.emessage.de/api/eSendMessages',  {
                            "messageText": "Testnachricht",
                            "recipients": [
                                {
                                "serviceName": "eCityruf",
                                "identifier": "Identifier 1"
                                }
                            ]
                         },{
                                headers: {
                                    'Content-Type': 'text/plain',
                                    'Authorization': token,
                                }
                         })
                          .then(function (response) {
                            console.log(response);
                          })
                          .catch(function (error) {
                            console.log(error);
                          });
                        }
                        auth();
                        

                        Meine Adapter und Widgets
                        TVProgram, SqueezeboxRPC, OpenLiga, RSSFeed, MyTime,, pi-hole2, vis-json-template, skiinfo, vis-mapwidgets, vis-2-widgets-rssfeed
                        Links im Profil

                        T 1 Antwort Letzte Antwort
                        0
                        • OliverIOO OliverIO

                          probier mal damit, schau aber sorgfältig nochmal durch
                          und ersetze mit deinen daten.
                          wenn du am code etwas nicht verstehst, stell bitte konkrete fragen.

                          const axios = require('axios');
                          
                          function auth() {
                              axios.post('Host: https://api.emessage.de/auth/login', {
                                  username: 'username',
                                  password: 'password'
                              },{
                                  headers: {
                                      'Content-Type': 'application/json',
                                  }
                              }).then(function (response) {
                                  console.log(response);
                                  if (response.status==200) {
                                      var token = response.data.data.jwt;
                                      sendMessage(token)
                                  }
                              })
                              .catch(function (error) {
                                  console.log(error);
                              });
                          }
                          
                          function sendMessage(token) {
                          axios.post('Host: https://api.emessage.de/api/eSendMessages',  {
                              "messageText": "Testnachricht",
                              "recipients": [
                                  {
                                  "serviceName": "eCityruf",
                                  "identifier": "Identifier 1"
                                  }
                              ]
                           },{
                                  headers: {
                                      'Content-Type': 'text/plain',
                                      'Authorization': token,
                                  }
                           })
                            .then(function (response) {
                              console.log(response);
                            })
                            .catch(function (error) {
                              console.log(error);
                            });
                          }
                          auth();
                          
                          T Offline
                          T Offline
                          T0biT3ch
                          schrieb am zuletzt editiert von
                          #15

                          @oliverio
                          vielen dank für das script. konnte es grad mal kurz probieren
                          leider bekomme ich folgenden fehler

                          javascript.0 (31387) script.js.Pager_Alarmierung.emessage_Send_3: {'message':'connect ECONNREFUSED 127.0.0.1:80','name':'Error','stack':'Error: connect ECONNREFUSED 127.0.0.1:80\n at TCPConnectWrap.afterConnect [as oncomplete] (net.js:1144:16)','config':{'url':'Host: https://api.emessage.de/auth/login','method':'post','data':'{\'username\':\'USERNAME\',\'password\':\'PASSWORD\'}','headers':{'Content-Type':'application/json','User-Agent':'axios/0.21.1','Content-Length':54},'transformRequest':[null],'transformResponse':[null],'timeout':0,'xsrfCookieName':'XSRF-TOKEN','xsrfHeaderName':'X-XSRF-TOKEN','maxContentLength':-1,'maxBodyLength':-1},'code':'ECONNREFUSED'}
                          
                          1 Antwort Letzte Antwort
                          0
                          • OliverIOO Offline
                            OliverIOO Offline
                            OliverIO
                            schrieb am zuletzt editiert von
                            #16

                            @t0bit3ch sagte in Hilfe bei der Script erstellung:

                            127.0.0.1

                            die verbindung wurde vom Rechner abgelehnt
                            lustiger weise ist der rechner 127.0.0.1, was dein eigener ist.
                            aus irgendeinem Grund wird die anfrage dorthin umgeleitet
                            was läuft da auf dem rechner noch? pihole?

                            Meine Adapter und Widgets
                            TVProgram, SqueezeboxRPC, OpenLiga, RSSFeed, MyTime,, pi-hole2, vis-json-template, skiinfo, vis-mapwidgets, vis-2-widgets-rssfeed
                            Links im Profil

                            1 Antwort Letzte Antwort
                            0
                            • OliverIOO Offline
                              OliverIOO Offline
                              OliverIO
                              schrieb am zuletzt editiert von
                              #17

                              @oliverio

                              nimm mal bitte diese version:

                              const axios = require('axios');
                               
                              function auth() {
                              
                                  axios.post('https://api.emessage.de/auth/login',{
                                      username: 'username',
                                      password: 'password'
                                  },{
                                      headers: {
                                          'Content-Type': 'application/json',
                                      }
                                  }).then(function (response) {
                                      console.log(response);
                                      if (response.status==200) {
                                          var token = response.data.data.jwt;
                                          sendMessage(token)
                                      }
                                  })
                                  .catch(function (error) {
                                      console.log(error);
                                  });
                              }
                               
                              function sendMessage(token) {
                                  axios.post('https://api.emessage.de/api/eSendMessages',{
                                      "messageText": "Testnachricht",
                                      "recipients": [
                                          {
                                          "serviceName": "eCityruf",
                                          "identifier": "Identifier 1"
                                          }
                                      ]
                                  },{
                                          headers: {
                                              'Content-Type': 'text/plain',
                                              'Authorization': token,
                                          }
                                  })
                                  .then(function (response) {
                                      console.log(response);
                                  })
                                  .catch(function (error) {
                                      console.log(error);
                                  });
                              }
                              auth();
                              

                              wenn ich diese version verwende, dann funktioniert die abfrage.
                              natürlich kommt dann die rückmeldung, das ich unauthorisiert bin.

                              Meine Adapter und Widgets
                              TVProgram, SqueezeboxRPC, OpenLiga, RSSFeed, MyTime,, pi-hole2, vis-json-template, skiinfo, vis-mapwidgets, vis-2-widgets-rssfeed
                              Links im Profil

                              T T 2 Antworten Letzte Antwort
                              1
                              • OliverIOO OliverIO

                                @oliverio

                                nimm mal bitte diese version:

                                const axios = require('axios');
                                 
                                function auth() {
                                
                                    axios.post('https://api.emessage.de/auth/login',{
                                        username: 'username',
                                        password: 'password'
                                    },{
                                        headers: {
                                            'Content-Type': 'application/json',
                                        }
                                    }).then(function (response) {
                                        console.log(response);
                                        if (response.status==200) {
                                            var token = response.data.data.jwt;
                                            sendMessage(token)
                                        }
                                    })
                                    .catch(function (error) {
                                        console.log(error);
                                    });
                                }
                                 
                                function sendMessage(token) {
                                    axios.post('https://api.emessage.de/api/eSendMessages',{
                                        "messageText": "Testnachricht",
                                        "recipients": [
                                            {
                                            "serviceName": "eCityruf",
                                            "identifier": "Identifier 1"
                                            }
                                        ]
                                    },{
                                            headers: {
                                                'Content-Type': 'text/plain',
                                                'Authorization': token,
                                            }
                                    })
                                    .then(function (response) {
                                        console.log(response);
                                    })
                                    .catch(function (error) {
                                        console.log(error);
                                    });
                                }
                                auth();
                                

                                wenn ich diese version verwende, dann funktioniert die abfrage.
                                natürlich kommt dann die rückmeldung, das ich unauthorisiert bin.

                                T Nicht stören
                                T Nicht stören
                                ticaki
                                schrieb am zuletzt editiert von
                                #18

                                @oliverio
                                Danke für das Beispiel, btw. funktioniert die erste Version bei mir auch nicht Fehler 404 :)

                                Weather-Warnings Espresense NSPanel-Lovelace-ui Tagesschau

                                Spenden

                                1 Antwort Letzte Antwort
                                0
                                • OliverIOO OliverIO

                                  @oliverio

                                  nimm mal bitte diese version:

                                  const axios = require('axios');
                                   
                                  function auth() {
                                  
                                      axios.post('https://api.emessage.de/auth/login',{
                                          username: 'username',
                                          password: 'password'
                                      },{
                                          headers: {
                                              'Content-Type': 'application/json',
                                          }
                                      }).then(function (response) {
                                          console.log(response);
                                          if (response.status==200) {
                                              var token = response.data.data.jwt;
                                              sendMessage(token)
                                          }
                                      })
                                      .catch(function (error) {
                                          console.log(error);
                                      });
                                  }
                                   
                                  function sendMessage(token) {
                                      axios.post('https://api.emessage.de/api/eSendMessages',{
                                          "messageText": "Testnachricht",
                                          "recipients": [
                                              {
                                              "serviceName": "eCityruf",
                                              "identifier": "Identifier 1"
                                              }
                                          ]
                                      },{
                                              headers: {
                                                  'Content-Type': 'text/plain',
                                                  'Authorization': token,
                                              }
                                      })
                                      .then(function (response) {
                                          console.log(response);
                                      })
                                      .catch(function (error) {
                                          console.log(error);
                                      });
                                  }
                                  auth();
                                  

                                  wenn ich diese version verwende, dann funktioniert die abfrage.
                                  natürlich kommt dann die rückmeldung, das ich unauthorisiert bin.

                                  T Offline
                                  T Offline
                                  T0biT3ch
                                  schrieb am zuletzt editiert von
                                  #19

                                  @oliverio sagte in Hilfe bei der Script erstellung:

                                  @oliverio

                                  nimm mal bitte diese version:

                                  const axios = require('axios');
                                   
                                  function auth() {
                                  
                                      axios.post('https://api.emessage.de/auth/login',{
                                          username: 'username',
                                          password: 'password'
                                      },{
                                          headers: {
                                              'Content-Type': 'application/json',
                                          }
                                      }).then(function (response) {
                                          console.log(response);
                                          if (response.status==200) {
                                              var token = response.data.data.jwt;
                                              sendMessage(token)
                                          }
                                      })
                                      .catch(function (error) {
                                          console.log(error);
                                      });
                                  }
                                   
                                  function sendMessage(token) {
                                      axios.post('https://api.emessage.de/api/eSendMessages',{
                                          "messageText": "Testnachricht",
                                          "recipients": [
                                              {
                                              "serviceName": "eCityruf",
                                              "identifier": "Identifier 1"
                                              }
                                          ]
                                      },{
                                              headers: {
                                                  'Content-Type': 'text/plain',
                                                  'Authorization': token,
                                              }
                                      })
                                      .then(function (response) {
                                          console.log(response);
                                      })
                                      .catch(function (error) {
                                          console.log(error);
                                      });
                                  }
                                  auth();
                                  

                                  wenn ich diese version verwende, dann funktioniert die abfrage.
                                  natürlich kommt dann die rückmeldung, das ich unauthorisiert bin.

                                  Guten Abend,

                                  Ich habe das script grad nochmal mit meinen daten probiert. als info im log bekomme ich

                                  info	javascript.0 (31387) script.js.Pager_Alarmierung.emessage_Send_3: {}
                                  

                                  der pager wird aber leider nicht ausgelöst.
                                  könnte man die einzelnen schritte im script loggen um zu sehen woran es liegt?

                                  vielen vielen dank für die unterstützung :+1:

                                  OliverIOO 1 Antwort Letzte Antwort
                                  0
                                  • T T0biT3ch

                                    @oliverio sagte in Hilfe bei der Script erstellung:

                                    @oliverio

                                    nimm mal bitte diese version:

                                    const axios = require('axios');
                                     
                                    function auth() {
                                    
                                        axios.post('https://api.emessage.de/auth/login',{
                                            username: 'username',
                                            password: 'password'
                                        },{
                                            headers: {
                                                'Content-Type': 'application/json',
                                            }
                                        }).then(function (response) {
                                            console.log(response);
                                            if (response.status==200) {
                                                var token = response.data.data.jwt;
                                                sendMessage(token)
                                            }
                                        })
                                        .catch(function (error) {
                                            console.log(error);
                                        });
                                    }
                                     
                                    function sendMessage(token) {
                                        axios.post('https://api.emessage.de/api/eSendMessages',{
                                            "messageText": "Testnachricht",
                                            "recipients": [
                                                {
                                                "serviceName": "eCityruf",
                                                "identifier": "Identifier 1"
                                                }
                                            ]
                                        },{
                                                headers: {
                                                    'Content-Type': 'text/plain',
                                                    'Authorization': token,
                                                }
                                        })
                                        .then(function (response) {
                                            console.log(response);
                                        })
                                        .catch(function (error) {
                                            console.log(error);
                                        });
                                    }
                                    auth();
                                    

                                    wenn ich diese version verwende, dann funktioniert die abfrage.
                                    natürlich kommt dann die rückmeldung, das ich unauthorisiert bin.

                                    Guten Abend,

                                    Ich habe das script grad nochmal mit meinen daten probiert. als info im log bekomme ich

                                    info	javascript.0 (31387) script.js.Pager_Alarmierung.emessage_Send_3: {}
                                    

                                    der pager wird aber leider nicht ausgelöst.
                                    könnte man die einzelnen schritte im script loggen um zu sehen woran es liegt?

                                    vielen vielen dank für die unterstützung :+1:

                                    OliverIOO Offline
                                    OliverIOO Offline
                                    OliverIO
                                    schrieb am zuletzt editiert von OliverIO
                                    #20

                                    @t0bit3ch sagte in Hilfe bei der Script erstellung:

                                    Zumindest das erste response objekt oder fehler objekt aus zeile 13 oder zeile 20 sollte ausgegeben werden.
                                    hast du oben rechts im skript debug und verbose eingeschaltet?

                                    ich habe hier mal noch ein paar verlaufsmeldungen eingefügt. die im unteren bereich sichtbar sein sollten

                                    
                                    const axios = require('axios');
                                     
                                    function auth() {
                                        console.log("Start Auth");
                                        axios.post('https://api.emessage.de/auth/login',{
                                            username: 'username',
                                            password: 'password'
                                        },{
                                            headers: {
                                                'Content-Type': 'application/json',
                                            }
                                        }).then(function (response) {
                                            console.log("Auth response");
                                            console.log(response);
                                            if (response.status==200) {
                                                var token = response.data.data.jwt;
                                                sendMessage(token)
                                            }
                                        })
                                        .catch(function (error) {
                                            console.log("Auth error");
                                            console.log(error);
                                        });
                                    }
                                     
                                    function sendMessage(token) {
                                        console.log("sendmessage start");
                                        axios.post('https://api.emessage.de/api/eSendMessages',{
                                            "messageText": "Testnachricht",
                                            "recipients": [
                                                {
                                                "serviceName": "eCityruf",
                                                "identifier": "Identifier 1"
                                                }
                                            ]
                                        },{
                                                headers: {
                                                    'Content-Type': 'text/plain',
                                                    'Authorization': token,
                                                }
                                        })
                                        .then(function (response) {
                                            console.log("sendmessage respones");
                                            console.log(response);
                                        })
                                        .catch(function (error) {
                                            console.log("sendmessage error");
                                            console.log(error);
                                        });
                                    }
                                    auth();
                                    
                                    

                                    Meine Adapter und Widgets
                                    TVProgram, SqueezeboxRPC, OpenLiga, RSSFeed, MyTime,, pi-hole2, vis-json-template, skiinfo, vis-mapwidgets, vis-2-widgets-rssfeed
                                    Links im Profil

                                    T T 2 Antworten Letzte Antwort
                                    0
                                    • OliverIOO OliverIO

                                      @t0bit3ch sagte in Hilfe bei der Script erstellung:

                                      Zumindest das erste response objekt oder fehler objekt aus zeile 13 oder zeile 20 sollte ausgegeben werden.
                                      hast du oben rechts im skript debug und verbose eingeschaltet?

                                      ich habe hier mal noch ein paar verlaufsmeldungen eingefügt. die im unteren bereich sichtbar sein sollten

                                      
                                      const axios = require('axios');
                                       
                                      function auth() {
                                          console.log("Start Auth");
                                          axios.post('https://api.emessage.de/auth/login',{
                                              username: 'username',
                                              password: 'password'
                                          },{
                                              headers: {
                                                  'Content-Type': 'application/json',
                                              }
                                          }).then(function (response) {
                                              console.log("Auth response");
                                              console.log(response);
                                              if (response.status==200) {
                                                  var token = response.data.data.jwt;
                                                  sendMessage(token)
                                              }
                                          })
                                          .catch(function (error) {
                                              console.log("Auth error");
                                              console.log(error);
                                          });
                                      }
                                       
                                      function sendMessage(token) {
                                          console.log("sendmessage start");
                                          axios.post('https://api.emessage.de/api/eSendMessages',{
                                              "messageText": "Testnachricht",
                                              "recipients": [
                                                  {
                                                  "serviceName": "eCityruf",
                                                  "identifier": "Identifier 1"
                                                  }
                                              ]
                                          },{
                                                  headers: {
                                                      'Content-Type': 'text/plain',
                                                      'Authorization': token,
                                                  }
                                          })
                                          .then(function (response) {
                                              console.log("sendmessage respones");
                                              console.log(response);
                                          })
                                          .catch(function (error) {
                                              console.log("sendmessage error");
                                              console.log(error);
                                          });
                                      }
                                      auth();
                                      
                                      
                                      T Nicht stören
                                      T Nicht stören
                                      ticaki
                                      schrieb am zuletzt editiert von ticaki
                                      #21

                                      @oliverio
                                      Bei mir aktuell und latest. Ergibt:

                                          axios.get(slink)
                                          .then(function(response){
                                              console.log(response) // im log steht dann: warn	script.js.Messages.tankerkoenig: {}
                                          })
                                      

                                      Ich gebe jetzt response.data im log aus um zu sehen was ankommt.
                                      EDIT:
                                      mit async await bekomme ich das:

                                      warn	script.js.common.UWZ: Converting circular structure to JSON --> starting at object with constructor 'ClientRequest' | property 'socket' -> object with constructor 'Socket' --- property '_httpMessage' closes the circle
                                      

                                      Weather-Warnings Espresense NSPanel-Lovelace-ui Tagesschau

                                      Spenden

                                      1 Antwort Letzte Antwort
                                      0
                                      • OliverIOO OliverIO

                                        @t0bit3ch sagte in Hilfe bei der Script erstellung:

                                        Zumindest das erste response objekt oder fehler objekt aus zeile 13 oder zeile 20 sollte ausgegeben werden.
                                        hast du oben rechts im skript debug und verbose eingeschaltet?

                                        ich habe hier mal noch ein paar verlaufsmeldungen eingefügt. die im unteren bereich sichtbar sein sollten

                                        
                                        const axios = require('axios');
                                         
                                        function auth() {
                                            console.log("Start Auth");
                                            axios.post('https://api.emessage.de/auth/login',{
                                                username: 'username',
                                                password: 'password'
                                            },{
                                                headers: {
                                                    'Content-Type': 'application/json',
                                                }
                                            }).then(function (response) {
                                                console.log("Auth response");
                                                console.log(response);
                                                if (response.status==200) {
                                                    var token = response.data.data.jwt;
                                                    sendMessage(token)
                                                }
                                            })
                                            .catch(function (error) {
                                                console.log("Auth error");
                                                console.log(error);
                                            });
                                        }
                                         
                                        function sendMessage(token) {
                                            console.log("sendmessage start");
                                            axios.post('https://api.emessage.de/api/eSendMessages',{
                                                "messageText": "Testnachricht",
                                                "recipients": [
                                                    {
                                                    "serviceName": "eCityruf",
                                                    "identifier": "Identifier 1"
                                                    }
                                                ]
                                            },{
                                                    headers: {
                                                        'Content-Type': 'text/plain',
                                                        'Authorization': token,
                                                    }
                                            })
                                            .then(function (response) {
                                                console.log("sendmessage respones");
                                                console.log(response);
                                            })
                                            .catch(function (error) {
                                                console.log("sendmessage error");
                                                console.log(error);
                                            });
                                        }
                                        auth();
                                        
                                        
                                        T Offline
                                        T Offline
                                        T0biT3ch
                                        schrieb am zuletzt editiert von T0biT3ch
                                        #22

                                        @oliverio
                                        ich habe debug und verbose eingeschaltet. wenn ich das script ausführe bekomme ich diese log

                                        info	javascript.0 (31387) Start javascript script.js.Pager_Alarmierung.emessage_Send_3
                                        20:21:59.200	info	javascript.0 (31387) script.js.Pager_Alarmierung.emessage_Send_3: Start Auth
                                        20:21:59.200	info	javascript.0 (31387) script.js.Pager_Alarmierung.emessage_Send_3: registered 0 subscriptions and 0 schedules
                                        20:21:59.392	info	javascript.0 (31387) script.js.Pager_Alarmierung.emessage_Send_3: Auth response
                                        20:21:59.396	info	javascript.0 (31387) script.js.Pager_Alarmierung.emessage_Send_3: Auth error
                                        20:21:59.396	info	javascript.0 (31387) script.js.Pager_Alarmierung.emessage_Send_3: {}
                                        

                                        pager bleibt weiterhin ruhig :disappointed:

                                        das ist der code aus dem programm postman mit dem die authentifizierung funktioniert

                                        var axios = require('axios');
                                        var data = JSON.stringify({
                                          "username": "USERNAME",
                                          "password": "PASSWORD"
                                        });
                                        
                                        var config = {
                                          method: 'post',
                                          url: 'https://api.emessage.de/auth/login',
                                          headers: { 
                                            'Authorization': 'Basic Og==', 
                                            'Content-Type': 'application/json'
                                          },
                                          data : data
                                        };
                                        
                                        axios(config)
                                        .then(function (response) {
                                          console.log(JSON.stringify(response.data));
                                        })
                                        .catch(function (error) {
                                          console.log(error);
                                        });
                                        

                                        und mit diesem code aus postman kann ich den pager auslösen

                                        var axios = require('axios');
                                        var data = JSON.stringify({
                                          "messageText": "Testnachricht",
                                          "recipients": [
                                            {
                                              "serviceName": "eCityruf",
                                              "identifier": "*********"
                                            }
                                          ]
                                        });
                                        
                                        var config = {
                                          method: 'post',
                                          url: 'https://api.emessage.de/rs/eSendMessages',
                                          headers: { 
                                            'Authorization': 'Bearer jdfngjdfgnhflnhlhnjkgöfxclknjfgnklkmnvöldkgnbjhb önflgkdsnölkdymfkäsöldgn lkdnfgksdnfgnbksngjrfgblfdngfskdöngölnhdknhfäödlkgtekröälqenacklvnbmözlmvtöälaenrljeknvtbjölrnzrtmzövdrml.', 
                                            'Content-Type': 'application/json'
                                          },
                                          data : data
                                        };
                                        
                                        axios(config)
                                        .then(function (response) {
                                          console.log(JSON.stringify(response.data));
                                        })
                                        .catch(function (error) {
                                          console.log(error);
                                        });
                                        
                                        
                                        OliverIOO 1 Antwort Letzte Antwort
                                        0
                                        • T T0biT3ch

                                          @oliverio
                                          ich habe debug und verbose eingeschaltet. wenn ich das script ausführe bekomme ich diese log

                                          info	javascript.0 (31387) Start javascript script.js.Pager_Alarmierung.emessage_Send_3
                                          20:21:59.200	info	javascript.0 (31387) script.js.Pager_Alarmierung.emessage_Send_3: Start Auth
                                          20:21:59.200	info	javascript.0 (31387) script.js.Pager_Alarmierung.emessage_Send_3: registered 0 subscriptions and 0 schedules
                                          20:21:59.392	info	javascript.0 (31387) script.js.Pager_Alarmierung.emessage_Send_3: Auth response
                                          20:21:59.396	info	javascript.0 (31387) script.js.Pager_Alarmierung.emessage_Send_3: Auth error
                                          20:21:59.396	info	javascript.0 (31387) script.js.Pager_Alarmierung.emessage_Send_3: {}
                                          

                                          pager bleibt weiterhin ruhig :disappointed:

                                          das ist der code aus dem programm postman mit dem die authentifizierung funktioniert

                                          var axios = require('axios');
                                          var data = JSON.stringify({
                                            "username": "USERNAME",
                                            "password": "PASSWORD"
                                          });
                                          
                                          var config = {
                                            method: 'post',
                                            url: 'https://api.emessage.de/auth/login',
                                            headers: { 
                                              'Authorization': 'Basic Og==', 
                                              'Content-Type': 'application/json'
                                            },
                                            data : data
                                          };
                                          
                                          axios(config)
                                          .then(function (response) {
                                            console.log(JSON.stringify(response.data));
                                          })
                                          .catch(function (error) {
                                            console.log(error);
                                          });
                                          

                                          und mit diesem code aus postman kann ich den pager auslösen

                                          var axios = require('axios');
                                          var data = JSON.stringify({
                                            "messageText": "Testnachricht",
                                            "recipients": [
                                              {
                                                "serviceName": "eCityruf",
                                                "identifier": "*********"
                                              }
                                            ]
                                          });
                                          
                                          var config = {
                                            method: 'post',
                                            url: 'https://api.emessage.de/rs/eSendMessages',
                                            headers: { 
                                              'Authorization': 'Bearer jdfngjdfgnhflnhlhnjkgöfxclknjfgnklkmnvöldkgnbjhb önflgkdsnölkdymfkäsöldgn lkdnfgksdnfgnbksngjrfgblfdngfskdöngölnhdknhfäödlkgtekröälqenacklvnbmözlmvtöälaenrljeknvtbjölrnzrtmzövdrml.', 
                                              'Content-Type': 'application/json'
                                            },
                                            data : data
                                          };
                                          
                                          axios(config)
                                          .then(function (response) {
                                            console.log(JSON.stringify(response.data));
                                          })
                                          .catch(function (error) {
                                            console.log(error);
                                          });
                                          
                                          
                                          OliverIOO Offline
                                          OliverIOO Offline
                                          OliverIO
                                          schrieb am zuletzt editiert von
                                          #23

                                          @t0bit3ch sagte in Hilfe bei der Script erstellung:

                                          'Authorization': 'Basic Og==', 
                                          

                                          Der einzige Unterschied ist Zeile 11.
                                          Das steht nicht im pdf Dokument drin
                                          Du kannst ja diesen Header dem Code noch hinzufügen

                                          Meine Adapter und Widgets
                                          TVProgram, SqueezeboxRPC, OpenLiga, RSSFeed, MyTime,, pi-hole2, vis-json-template, skiinfo, vis-mapwidgets, vis-2-widgets-rssfeed
                                          Links im Profil

                                          1 Antwort Letzte Antwort
                                          0
                                          Antworten
                                          • In einem neuen Thema antworten
                                          Anmelden zum Antworten
                                          • Älteste zuerst
                                          • Neuste zuerst
                                          • Meiste Stimmen


                                          Support us

                                          ioBroker
                                          Community Adapters
                                          Donate

                                          808

                                          Online

                                          32.4k

                                          Benutzer

                                          81.5k

                                          Themen

                                          1.3m

                                          Beiträge
                                          Community
                                          Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen | Einwilligungseinstellungen
                                          ioBroker Community 2014-2025
                                          logo
                                          • Anmelden

                                          • Du hast noch kein Konto? Registrieren

                                          • Anmelden oder registrieren, um zu suchen
                                          • Erster Beitrag
                                            Letzter Beitrag
                                          0
                                          • Home
                                          • Aktuell
                                          • Tags
                                          • Ungelesen 0
                                          • Kategorien
                                          • Unreplied
                                          • Beliebt
                                          • GitHub
                                          • Docu
                                          • Hilfe