Multicasting messages updating frame counter but not appearing in LoraWAN frames

My chirpstack server is running in a AWS EC2 instance on a ubuntu machine. I have created a multicast-group via the chirpstack web app, assigned the nodes to multicast group and setting the correct values for the mcastdevaddr, mcastnwkskey, and mcastappskey, I tried to POST a message to that multicast group using the API with following code-

<?php

#recieve json post data
header("Content-type: application/json");
$json = file_get_contents('php://input');
$_POST = json_decode($json,true);

// Get JWT TOKEN FROM Chirpstack
#auth endpoint & credentials
$chirpstack_login_url = "http://...chirpstackurl:8080/api/internal/login";
$chirpstack_credentials = [
    'email' => 'email',
    'password' => 'password'
];

#initialize cURL session & set options
$curl = curl_init($chirpstack_login_url);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
curl_setopt($curl, CURLOPT_POST, true);
curl_setopt($curl, CURLOPT_POSTFIELDS,  json_encode($chirpstack_credentials));

#Set headers
curl_setopt($curl, CURLOPT_HTTPHEADER, ['Content-Type: application/json']);
#Execute cURL request
$response = json_decode(curl_exec($curl));
#Close cURL session
curl_close($curl);
$jwt = $response->jwt;

#get multicastid & downlink command
// for testing
$command ="Data";
$multicastid = "8b7bddb1-b8c1-49e9-89e5-bffe464c57a7";

$downlink_url = "http://...chirpstackurl:8080/api/multicast-groups/" . $multicastid . "/queue";
$command_data = [
    'multicastQueueItem' => [
        'data' => base64_encode($command),
        'fPort' => 8,
        'multicastGroupID' => $multicastid

    ]
];

#initialize cURL session & set options
$downlink_curl = curl_init($downlink_url);
curl_setopt($downlink_curl, CURLOPT_RETURNTRANSFER, true);
curl_setopt($downlink_curl, CURLOPT_POST, true);
curl_setopt($downlink_curl, CURLOPT_POSTFIELDS,  json_encode($command_data));

$http_headers = ['Content-Type: application/json','Accept: application/json'];
$bearer_auth = "Grpc-Metadata-Authorization: Bearer " . $jwt;
array_push($http_headers,$bearer_auth);
#Set headers
curl_setopt($downlink_curl, CURLOPT_HTTPHEADER, $http_headers);
#Execute cURL request
$response = curl_exec($downlink_curl);
$http_status = curl_getinfo($downlink_curl, CURLINFO_HTTP_CODE);
#Close cURL session
curl_close($downlink_curl);
echo $http_status;

I got a 200 response code. It is updating the Multicast Frame Counter but nothing is appearing in the LoraWAN frames. I have tested single-cast downlinks, which work correctly.

Is there something that I’m missing or doing incorrectly that would explain why I am not seeing the multicast data in the LoraWAN frames under Gateway tab?

1 Like

Hi,
did you solve the problem. I’m facing the same issue using Chirpstack V3.
Regards,
Stefan