NEWS
Hilfe bei der Script erstellung
-
@t0bit3ch
In Zeile 3 steht die Funktion in der eine Warnung ausgelöst wird. In Zeile 20 rufst du console.log(error) auf. Keine Ahnung was in error drin steht, aber scheinbar kann die log funktion das nicht verarbeiten. -
hab es jetzt so probiert
var alarmmeldung = "javascript.0.E_Message.Alarmtext";
"messageText": getState(alarmmeldung).val,
jetzt kommt kein fehler mehr im log aber der pager wird auch nicht mehr ausgelöst
-
@t0bit3ch
Versuche mal folgende:const axios = require('axios'); var alarmmeldung = getState("javascript.0.emmesage.alarmtext").val; if (typeof alarmmeldung !== 'string' || alarmmeldung == '') log('das ist kein string'); log(alarmmeldung); function auth() { axios.post('https://api.emessage.de/auth/login',{ username: 'USERNAME', //* E*Message Benutzername */ password: 'PASSWORD' //* E*Message Kennwort */ },{ headers: { 'Authorization': 'Basic Og==', 'Content-Type': 'application/json' } }).then(function (response) { if (response.status==200) { var token = response.data.data.jwt; sendMessage(token); } }) .catch(function (error) { log('fehler in post'); console.log(error); }); } function sendMessage(token) { axios.post('https://api.emessage.de/rs/eSendMessages',{ "messageText": alarmmeldung + ' ', //* Pocsag Nachricht an Pager */ //* bei mir durch einen Datenpunkt ersetzt */ "recipients": [ { "serviceName": "eCityruf", //* Alarmierungstyp */ //* eCityruf - eBos - 2wayS */ "identifier": "*******" //* E*Message Funkrufnummer */ } ] },{ headers: { 'Content-Type': 'application/json', 'Authorization': 'Bearer ' + token } }) .catch(function (error) { log('fehler in send'); console.log(error); }); }
Das bekommen wir schon ans laufen
EDIT: Da waren noch ein paar Komma drin, die da nichts zu suchen haben. -
@ticaki
jetzt kommt das in der loginfo javascript.0 (13740) Start javascript script.js.Pager_Alarmierung.emessage_send_test2 warn javascript.0 (13740) at script.js.Pager_Alarmierung.emessage_send_test2:2:20 warn javascript.0 (13740) at script.js.Pager_Alarmierung.emessage_send_test2:49:3 info javascript.0 (13740) script.js.Pager_Alarmierung.emessage_send_test2: das ist kein string info javascript.0 (13740) script.js.Pager_Alarmierung.emessage_send_test2: registered 0 subscriptions and 0 schedules
-
Was steht in "javascript.0.emmesage.alarmtext"? Ist der Datenpunkt als String definiert?
füge in Zeile 4 folgendes ein:
log(alarmmeldung);
Du hättest jetzt aber entweder mehr Logmeldungen oder eine pagernachricht bekommen sollen. Ich hab oben den Code editiert.
-
@ticaki
also im log kommt jetzt die meldung aus dem datenpunkt so wie es sein soll.
der pager bleibt aber ruhig -
@ticaki
hatte grad nochmal diesen code probiertconst axios = require('axios'); var alarmmeldung = "javascript.0.emmesage.alarmtext"; function auth() { axios.post('https://api.emessage.de/auth/login',{ username: 'USERNAME', //* E*Message Benutzername */ password: 'PASSWORD' //* E*Message Kennwort */ },{ headers: { 'Authorization': 'Basic Og==', 'Content-Type': 'application/json', } }).then(function (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/rs/eSendMessages',{ "messageText": getState(alarmmeldung).val, //* Pocsag Nachricht an Pager */ //* bei mir durch einen Datenpunkt ersetzt */ "recipients": [ { "serviceName": "eCityruf", //* Alarmierungstyp */ //* eCityruf - eBos - 2wayS */ "identifier": "******" //* E*Message Funkrufnummer */ } ] },{ headers: { 'Content-Type': 'application/json', 'Authorization': 'Bearer ' + token, } }) .catch(function (error) { console.log(error); }); } console.log(getState("javascript.0.emmesage.alarmtext").val); auth();
damit funktionert es
-
-
super das es letztendlich doch geklappt hat.
-
@oliverio
Moin Moin,
Ich bin zwischendurch noch ein bisschen am probieren den status vom pager abzurufen.
ich hänge grad wieder bei einem problem. ich lasse mir einen datenpunkt schreiben der so aussieht"46b61d10-10c3-11ec-8787-7dd1f95191be"
ich möchte das die " am anfang und ende nicht mit in den datenpunkt geschrieben werden. wie bekomme ich das hin?
hab schon so einiges probiert, aber nichts hat bisher funktioniert.
hier mal eins von meinen versuchensetState("0_userdata.0.E-Message.E-Message-TrackingID", trid).val.replace('"');
-
@t0bit3ch sagte in Hilfe bei der Script erstellung:
@oliverio
Moin Moin,
Ich bin zwischendurch noch ein bisschen am probieren den status vom pager abzurufen.
ich hänge grad wieder bei einem problem. ich lasse mir einen datenpunkt schreiben der so aussieht"46b61d10-10c3-11ec-8787-7dd1f95191be"
ich möchte das die " am anfang und ende nicht mit in den datenpunkt geschrieben werden. wie bekomme ich das hin?
hab schon so einiges probiert, aber nichts hat bisher funktioniert.
hier mal eins von meinen versuchensetState("0_userdata.0.E-Message.E-Message-TrackingID", trid).val.replace('"');
hab es hinbekommen
so langsam verstehe ich das JS
-
@t0bit3ch
Das gequotete Beispiel sieht aber nicht aus als wenns funktionieren würde. -
@ticaki sagte in Hilfe bei der Script erstellung:
@t0bit3ch
Das gequotete Beispiel sieht aber nicht aus als wenns funktionieren würde.hatte das funktionierende beispiel wohl vergessen
var trid = JSON.stringify(response.data.data.trackingId); var tridneu = trid.substr(1, trid.length - 2); setState("0_userdata.0.E-Message.E-Message-TrackingID", tridneu);
-
@t0bit3ch sagte in Hilfe bei der Script erstellung:
@ticaki sagte in Hilfe bei der Script erstellung:
@t0bit3ch
Das gequotete Beispiel sieht aber nicht aus als wenns funktionieren würde.hatte das funktionierende beispiel wohl vergessen
var trid = JSON.stringify(response.data.data.trackingId); var tridneu = trid.substr(1, trid.length - 2); setState("0_userdata.0.E-Message.E-Message-TrackingID", tridneu);
Eigentor! Du hast dir die Hochkommas selbst reingebastelt, durch das nicht notwendige JSON.stringify(). das hier reicht völlig
let trid=response.data.data.trackingId; setState("0_userdata.0.E-Message.E-Message-TrackingID", trid);
-
@fastfoot
Danke für den Tipp. Werde es morgen mal versuchenMan lernt nie aus
-
setState("0_userdata.0.E-Message.E-Message-TrackingID", response.data.data.trackingId);
-
@ticaki sagte in Hilfe bei der Script erstellung:
setState("0_userdata.0.E-Message.E-Message-TrackingID", response.data.data.trackingId);
klar doch, ich halte es aber für einen Anfänger für besser das aufzusplitten. Dadurch ist es besser nachvollziehbar was da passiert. Der kürzeste Code ist halt nicht immer der Beste...
-
-
@t0bit3ch
Let ist wie var und deklariert eine variable.
let wurde mit ES6 (da wurde javascript vom syntax etwas modernisiert) eingeführt und hat leichte abweichungen zu var (speziell zu hoisting und scope behandlung).
aber als anfänger kannst du das erst mal genau so wie var verwenden.https://developer.mozilla.org/de/docs/Web/JavaScript/Reference/Statements/let
-
@oliverio
okay danke.
den Link werde ich mir übers wochenende mal genauer angucken