Graag downlink voorbeeld door rechtstreeks de api te gebruiken


  • Ik probeer:
    curl -X PUT -H “Accept: application/json” -H “Authorization: Basic xxx” -H “Content-Type: application/json” -d “{ “resourcevalue” : “Hallo” }” https://iot.netwerk.t-mobile.nl/m2m/endpoints/86833xxxxxxxxxx/downlinkMessage/0/data
    met xxx uiteraard de Base64 van mijn username:password en 86833xxxxxxxxx de IMEI van mijn device. Ik kan wel https://iot.netwerk.t-mobile.nl/rest/device?iDisplayLength=-1 aanroepen met dezelfde authorisatie, dus die is goed lijkt mij. Toch krijg ik {“msg”:“Unauthorized”,“code”:1001}
    Ik heb als {DeviceId} ook al IMEI:86833xxxxxxxxxx geprobeerd en ook 5041, een id dat ik terugkreeg van /rest/device?iDisplayLength=-1

    Wat doe ik niet goed?



  • Ik zie dat ik /downlinkMessage/0/data probeer terwijl het downlinkMsg/0/data moet zijn. Ik krijg echter dan dezelfde reactie



  • Volgens mij werkt de dowlink op bovenstaande manier alleen als je de callback URL ook via een curl command hebt toegevoegd (en refererend naar je andere topic, heb je de callback URL volgens mij via de GUI toegevoegd)



  • @afzal_m Ik heb de callback inderdaad via de GUI toegevoegd, ik zal vanavond eens proberen de URL via curl toe te voegen.
    Klopt het dat ik geen https callback kan toevoegen?



  • @afzal_m Dank voor je hulp! De callback url met curl toevoegen werkt inderdaad. Het is misschien een goed idee dit beter te documenteren? Of nog beter: te veranderen dat een via de GUI toegevoegde URL ook werkt?

    Getting started VII ‘Hello device’ is ook erg summier met alleen een postman voorbeeld…

    Voor degenen die geinteresseerd zijn, dit is de API call die werkt:

    curl -X PUT -H “Authorization: Basic xxx” -H “Content-Type: application/json” -d “{ “resourceValue” : “Hallo” }” https://iot.netwerk.t-mobile.nl/m2m/endpoints/IMEI%3a868333030xxxxxx/downlinkMsg/0/data

    Met achter ‘Basic’ uiteraard je eigen Base64(username:password) ipv xxx en je eigen device IMEI. Voor de volledigheid: de downlink op je device komt pas binnen na de eerstvolgende uplink.



  • Ja, we gaan de doc library volgende week updaten! Dank voor de feedback.

    En…

    @jeroend said in Graag downlink voorbeeld door rechtstreeks de api te gebruiken:

    Voor de volledigheid: de downlink op je device komt pas binnen na de eerstvolgende uplink.

    Hier wordt ook aan gewerkt 😉



  • @jeroend said in Graag downlink voorbeeld door rechtstreeks de api te gebruiken:

    Ik will een bericht sturen naar een SODAQ UBEE R410M en zie dat dit kennelijk mogelijk is met “curl”. Nu begreep ik alleen niet waar ik die “Base64(username:password)” vandaan moet halen.

    Begijp ik verder goed dat mijn IMEI op de plaats van de xxxxxx moet komen in de regel met " /IMEI%3a868333030xxxxxx/downlinkMsg/0/data" en de rest moet laten staan?



  • @arie-van-wettum Goede syntax is als volgt:

    https://iot.netwerk.t-mobile.nl/m2m/endpoints/IMEI:<imei>/downlinkMsg/0/data

    Met als body:

    {
    {“resourceValue” : “<string>”}
    }



  • @jeroend said in Graag downlink voorbeeld door rechtstreeks de api te gebruiken:

    O.k. stel mijn IMEI is 123456789 dan krijg ik:

    curl -X PUT -H “Authorization: Basic xxx” -H “Content-Type: application/json” -d “{ “resourceValue” : “Hallo” }” https://iot.netwerk.t-mobile.nl/m2m/endpoints/IMEI:123456789/downlinkMsg/0/data

    Wat is dat dan deze “Authorization: Basic xxx” ? Waar kan ik deze “Base64(username:password)” vandaan halen?



  • @arie-van-wettum

    Wat is dat dan deze “Authorization: Basic xxx” ? Waar kan ik deze “Base64(username:password)” vandaan halen?

    https://www.blitter.se/utils/basic-authentication-header-generator/

    Vul hier je T-Mobile API naam en wachtwoord in. Vul dat vervolgens in op de plek van xxx, dan zou het moeten werken… (veel API tools doen dit zelf al, zoals bijvoorbeeld postman)



  • Ik probeerde net via de documentatie te achterhalen hoe downlink berichten verstuurd moeten worden, daar is helaas nog steeds vrijwel niets over te vinden. De beste beschrijving is nu in het postman screenshot van “VII. Hello device”. Bij deze dus een bump van dit oude bericht, wat meer in depth documentatie zou welkom zijn.

    Hoe moet de body er bijvoorbeeld precies uit zien, is er alleen een resourceValue attirbuut of zijn er meer mogelijkheden?
    En kan er alleen ASCII data verstuurd worden?



  • @bart-abel Voor het versturen van een downlink bericht kan je de volgende API call uitvoeren

    curl -X PUT -H "Authorization: Basic xxxxxxxxx" -H "Content-Type: application/json" -d "{ "resourceValue" : "Hallo" }" https://iot.netwerk.t-mobile.nl/m2m/endpoints/IMEI:xxxxxxx004/downlinkMsg/0/data
    

    Waarbij de xxxxxxx waardes ingevuld moeten worden met jouw credentials en IMEI. (Vergeet niet om van te voren een endpoint te registreren via de API)

    Zo als je hierboven ziet, ziet body er als volgt uitziet

    { "resourceValue" : "Hallo" }
    

    Aangezien de body JSON is kunnen er alleen ASCII characters verstuurd worden. Om binary data te versturen kan er base64 encoding gebruikt worden.



  • @bob-mooij Bedankt voor de informatie. Als er base64 encoding wordt gebruikt, wordt dit dan decoded afgeleverd bij het device? Zie ook mijn andere post over de uplink route: https://forum.iot.t-mobile.nl/topic/364/uplink-data-encoding Zou je daar ook antwoord op kunnen geven in de andere post?



  • Hoi @bart-abel en @Bob-Mooij jullie zijn op de goede weg er zijn 2 nog ongedocumenteerde API calls beschikbaar voor binaire downlink berichten.

    *PUT {{base_url}}/m2m/endpoints/{{DeviceId}}/downlinkMsgBase64/0/data

    *PUT {{base_url}}/m2m/endpoints/{{DeviceId}}/downlinkMsgBase64Drx/0/data

    Voor beide API’s geldt dat de base64 encoded payload, binair wordt afgeleverd bij je device als je hem via de UDP adapter hebt geregistreerd.

    Het verschil tussen deze calls is dat bij de eerste call je downlinks (Max 10) worden gebufferd en pas naar het device wordt gestuurd als we zeker weten dat hij luistert en dat is dus nadat we een uplink bericht hebben ontvangen.

    De tweede call versturen we direct door naar je device, je moet dan zelf zeker weten dat hij op dat moment in staat is berichten te ontvangen. NB; Ook hier is een tijdelijke netwerk buffer van 1 bericht aanwezig deze is minder betrouwbaar.


 

Looks like your connection to Internet of Things was lost, please wait while we try to reconnect.