NEWS
Adapter Paketverfolgung DHL, Briefe, Amazon, DPD,GLS,UPS,17T
-
@tombox sagte in Adapter Paketverfolgung DHL, Briefe, Amazon, DPD,GLS,UPS,17T:
schauen ob sich was ändert
Gesagt... getan. Also GIT installiert und
Briefe (Image) bei "currentAdvice" ist da. Bei "oldAdvices01" ist es nicht da (kannja so sein, oder)?
Die Anzeige bei den ankommenden Amazon-Sendungen stimmt im Moment Aber ich beobachte es noch etwas. Melde mich in ca. 30 Minuten (hoffentlich nicht eher) wieder.
Ro75.
-
@ro75 sagte in Adapter Paketverfolgung DHL, Briefe, Amazon, DPD,GLS,UPS,17T:
Melde mich in ca. 30 Minuten (hoffentlich nicht eher) wieder.
@tombox funktioniert. Die Sendungen werden jetzt korrekt geladen. Vielen Dank.
Ro75.
NACHTRAG: (Image) bei "currentAdvice" ist wieder verschwunden.
-
@tombox
Habe zwischenzeitlich die v0.2.2 am laufen und habe gestern und heute jeweils einen Brief im Zulauf gehabt. Der wird wie vorher bereits beim erstmaligem Auftauchen auch im Image-DP abgelegt. Also genauso wie von @Ro75 bereits beschrieben. Bei späteren Durchläufen erscheint im Log folgende Warnmeldung:parcel.0 2023-11-24 14:04:36.439 warn State "parcel.0.dhl.briefe.currentAdvice.advices01.image" has no existing object, this might lead to an error in future versions
Vorher lief die Warnmeldung ja auf den State "parcel.0.dhl.briefe.json".
Ist bei mir jetzt nicht das große Problem, da ich den Datenpunkt via Skript beim erstmaligen Auftreten in einen gesonderten Datenpunkt wegspeichere und darüber in die Visualisierung hole. Aber vielleicht hilfts bei der Fehlersuche.
-
@wolfi913 Hatte ich vergessen sollte in der GitHub version nicht mehr kommen
-
@wolfi913 sagte in Adapter Paketverfolgung DHL, Briefe, Amazon, DPD,GLS,UPS,17T:
Ist bei mir jetzt nicht das große Problem, da ich den Datenpunkt via Skript beim erstmaligen Auftreten in einen gesonderten Datenpunkt wegspeichere und darüber in die Visualisierung hole.
Das ist eine gute Idee. Bisher fehlte mir der Ansatz. Hast du ggfs. auch eine Lösung wenn mehrere Briefe eintrudeln?
Ro75.
-
@ro75
Schaut bei mir so aus, bin aber nicht der Skriptexperte:var id; // Beschreibe diese Funktion … async function existiert_DP(id) { return existsState(id); } on({ id: [].concat(['parcel.0.dhl.briefe.json']), change: 'any' }, async (obj) => { let value = obj.state.val; let oldValue = obj.oldState.val; await wait(2000); if (await existiert_DP('parcel.0.dhl.briefe.currentAdvice.advices01.image')) { setState('0_userdata.0.Datenpunkte.Widgets.Parcel.img_briefe01' /* img_briefe */, getState('parcel.0.dhl.briefe.currentAdvice.advices01.image').val, true); } else { setState('0_userdata.0.Datenpunkte.Widgets.Parcel.img_briefe01' /* img_briefe */, getState('0_userdata.0.Datenpunkte.Widgets.Parcel.img_no_post').val, true); } });
Habe dann das Skript mit entsprechenden Anpassungen (statt 01) in Zeile 13, 15 und 19 noch für 02, 03 und 04 erstellt um max. 4 Briefe anzeigen zu können.
Vorher natürlich noch die entsprechenden Datenpunkte anlegen.
Ein entsprechendes Bild für den Fall das kein Brief kommt kannst Du mit einem Base64Encoder erstellen und dann das Ergebnis (data:image/png;.....) in den Datenpunkt 0_userdata.0.Datenpunkte.Widgets.Parcel.img_no_post einstellen. Das wird dann angezeigt wenn nichts kommt.Das Skript prüft ob der DP "parcel.0.dhl.briefe.currentAdvice.advices0x.image" existiert und speichert dann falls ja den Wert in "0_userdata.0.Datenpunkte.Widgets.Parcel.img_briefe0x" , ansonsten (als wenn nicht) holt er sich das Bild (keine Post) aus dem DP "0_userdata.0.Datenpunkte.Widgets.Parcel.img_no_post" und wird getriggert wenn die Werte von currentAdvice nach oldAdvices01 geschoben werden.
Edit:
Besser sollte es sein den Trigger (Zeile 9) auf "parcel.0.dhl.briefe.json" zu stellen. Skript entsprechend angepasst. Hatte etwas rumgespielt und vergessen das zurückzustellen. -
@tombox sagte in Adapter Paketverfolgung DHL, Briefe, Amazon, DPD,GLS,UPS,17T:
@wolfi913 Hatte ich vergessen sollte in der GitHub version nicht mehr kommen
Vielen Dank . Hab auf die GitHub-Version umgestellt.
-
@wolfi913 sagte in Adapter Paketverfolgung DHL, Briefe, Amazon, DPD,GLS,UPS,17T:
Schaut bei mir so aus, bin aber nicht der Skriptexperte:
Das schaue ich mir an. Vielen Dank an dich.
-
Deine Idee ist klasse. Ich habe das Skript von dir etwas modifiziert.
const MaxAnzeigeBriefe = 6; const leeresBild = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAACXBIWXMAAAsSAAALEgHS3X78AAAADUlEQVR4nGP4//8/AwAI/AL+p5qgoAAAAABJRU5ErkJggg=="; for (let i = 1; i <= MaxAnzeigeBriefe; i++) { //DP zur Darstellung anlegen createState('0_userdata.0.Briefe.'+i, leeresBild, {type: 'string', read: true, write: true}); } createState('0_userdata.0.Briefe.vorhanden', 0, {type: 'number', read: true, write: true}); on({id: 'parcel.0.dhl.briefe.json', change: 'any'}, function (obj) { //hier nun die Bilder für VIS speichern setTimeout(function(){ var CountBriefe = 0; //hier die tatsächlich vorhandenen Briefe merken for (let i = 1; i <= MaxAnzeigeBriefe; i++) { if (existsState('parcel.0.dhl.briefe.currentAdvice.advices0'+i+'.image') === false) { setState('0_userdata.0.Briefe.'+i,leeresBild,true); } else { setState('0_userdata.0.Briefe.'+i,getState('parcel.0.dhl.briefe.currentAdvice.advices0'+i+'.image').val,true); CountBriefe++; } } setState('0_userdata.0.Briefe.vorhanden',CountBriefe,true); },5000); });
Das Skript legt die DP selbst an. Über "MaxAnzeigeBriefe" kann die maximale Anzahl an darzustellenden (speichernden) Briefe festgelegt werden. Dann wird das ganze in einer Schleife abgearbeitet.
Falls du was davon verwenden möchtest, musst du nur noch die DP anpassen. Danke für die Inspiration.
Ro75.
-
@ro75
Klasse
Werd das Skript gleich bei mir einbauen.
Ebenfalls vielen Dank. -
@wolfi913 ich habe dem Skript gerade noch etwas hinzugefügt. Die Anzahl der vorhandenen Briefe. Der DP wird automatisch angelegt und entsprechend befüllt.
Ro75.
-
@ro75
Hab's gleich bei mir mit eingebaut. Funktioniert -
@wolfi913 Entschuldigt bitte aber wie wird das script wo eingefügt.?
-
@walter-o
als neues Javascript im Skriptausführung-Adapter bzw. in einer Instanz davon. -
Welches Widget zeigt denn ein solches Base64 codiertes Bild an?
-
@ofbeqnpolkkl6mby5e13 html oder img src wie in Beitrag 1
-
@tombox sagte in Adapter Paketverfolgung DHL, Briefe, Amazon, DPD,GLS,UPS,17T:
@ofbeqnpolkkl6mby5e13 html oder img src wie in Beitrag 1
Bei mir in den Objekten ist der Datenpunkt "parcel.0.dhl.briefe.oldAdvices01.advices01.image" nicht vorhanden.
Nur parcel.0.dhl.briefe.oldAdvices01.advices01.image_url
Das funktioniert natürlich nicht.
Woran kann es liegen? -
@walter-o Mit v0.2.6?
-
@tombox parcel v0.0.27
-
@walter-o Das ist eigenartig auch nach einem adapter Neustart?