NEWS
Tr-064 zeichenkette zerlegen
-
Hallo.
Ich bin noch Anfänger und kann nichts finden was mir ein Anrufer Bild ausgibt.
im tr-064.0.callmonitor.inbound.json wird mir eine zeichenkette angezeigt im Format {"caller":"01777987326","callee":"65908000","_type":"inbound","callerName":"","imageurlcaller":""}
jetzt möchte ich den nur einen Eintrag ,den wert aus imageurlcaller in eine neue Variable schreiben
mein Code sieht so aus
! var obj = "tr-064.0.callmonitor.inbound.json"/json/;
! //var obj = {"caller":"01777987326","callee":"65908000","_type":"inbound","imageurlcaller":"Http usw."};
! var pic = obj.imageurlcaller;
! setState("javascript.0.Anruferbild",JSON.stringify(pic));
! log("Bild:" + pic);Doch es geht nicht, wenn ich die 2 Zeile aktiviere trägt er mir das Ergebnis ein, aber nicht bei Zeile 1
im log steht nur javascript.0 script.js.Name.beleuchtung: Nummer :undefined
wo liegt der Fehler?
vielleicht kann mir jemand weiter helfen
vielen Dank Manne
-
Zuerst mal musst du den Wert aus dem tr-064-Adapter anders auslesen:
var obj = getState("tr-064.0.callmonitor.inbound.json"/*json*/).val;
Dann sehen wir weiter…
-
vielen Dank für die Hilfe,
ich habe es jetzt hin bekommen das er mir callee, caller oder callerName ausgibt aber in Anführungszeichen
bei imageurlcaller trägt er nur "null" ein obwohl der Bild Pfad da ist
! var pic = String(getState("tr-064.0.callmonitor.inbound.imageurlcaller").val, 0, false);
! var pic = setState("javascript.0.Anruferbild",JSON.stringify(pic));
! log(" Bild : " + pic);
und im log steht Bild : undefined obwohl er einen wert in Anrufferbild schreibt -
schau mal, so vielleicht?
var obj = JSON.parse(getState('tr-064.0.callmonitor.inbound.json').val); log('caller: ' + obj.caller); // setState("javascript.0.Anrufer",obj.caller); log('callee: ' + obj.callee); // setState("javascript.0.Angerufender",obj.callee); log('_type: ' + obj._type); // setState("javascript.0.Type",obj._type); log('calleeName: ' + obj.calleeName); // setState("javascript.0.AngerufendeName",obj.calleeName);
"imageurlcaller":"Http usw ist bei mir nicht vorhanden, sollte aber prinzipiell ähnlich sein…
log('pic: ' + obj.imageurlcaller);
-
Jo,
Danke das hat mich weiter gebracht werde jetzt noch einen Trigger einbauen und eine if schleife wenn kein Bild vorhanden ist
vielen Dank
Manne
-
Hier mal mein fertiges Script
welches mir das Bild des gerade anrufenden Anrufers zeig, sollte kein Bild vorhanden sein wir es durch eine Dumy Bild ersetzt.
das gleiche ist beim Anrufer-Namen, ist keiner vorhanden wird die Nummer angezeigt.
eine pause von 1 secunde verhindert das alte Daten eingelesen werden.
! on({id: 'tr-064.0.callmonitor.ringing', change: "ne"}, function (obj1) {
! var value = obj1.state.val;
! var oldValue = obj1.oldState.val;
! timeout = setTimeout(function () {
! var obj = JSON.parse(getState('tr-064.0.callmonitor.inbound.json').val);
! setState("javascript.0.scriptEnabled.Telefon.Anrufernummer",obj.caller);
! var nem = obj.callerName;
! if (nem === ""){
! var nem1 = obj.caller;
! setState("javascript.0.scriptEnabled.Telefon.Anrufername",nem1);
! } else {
! setState("javascript.0.scriptEnabled.Telefon.Anrufername",nem);
! }
! var pic = obj.imageurlcaller;
! if (pic === undefined){
! var pic1 = "http://localhost:8082/vis.0/main/img/anrufer/call.png";
! setState("javascript.0.scriptEnabled.Telefon.Anruferbild",pic1);
! } else {
! setState("javascript.0.scriptEnabled.Telefon.Anruferbild",pic);
! }
! }, 1000);
! });
geht bestimmt auch besser aber als Anfänger kann ich es gut benutzen