Es fällt auf, dass meistens größere Blöcke nicht durchkommen (also gleich 5 Pakete hintereinander).
Was heißt "größere Blöcke"?
Du packst doch wohl hoffentlich nicht die Message in ein größeres char-Array und sendest dann auf einmal mit einer einzigen vw_send Anweisung in einem Rutsch? Dann würde natürlich das zutreffen, was ich in diesem Thread vorgerechnet habe: Je größer die Blöcke, desto weniger kommt an.
Sondern Du sendest hoffentlich immer dieselbe kleine Message mit eigenem vw_send fünfmal getrennt hintereinander mit zusätzlichem delay:
for (int i=0;i<5;i++)
{
vw_send((uint8_t*)msg, strlen(msg));
vw_wait_tx();
delay(30);
}
Wobei das zusätzlich eingefügte delay nach dem vw_wait_tx() mindestens so lange dauern sollte, wie Du zum Abholen und Verarbeiten einer empfangenen Nachricht beim Empfänger benötigst.
BTW China-Bestellungen und Zoll: Mit Zoll hast Du bis zu einem Warenwert von 22,50 EUR pro Sendung nichts zu tun. Außer dass die Sendung bei Dir gelegentlich mal mit einem kleinen grünen Aufkleber ankommt, auf dem entweder sowas steht wie "zollamtlich geprüft" oder "von der Zollbehandlung befreit", weil der Zoll geprüft hat, ob der zoll- und einfuhrumsatzsteuerfreie Warenwert vielleicht überschritten wurde.