OpenHop/pyMC: messages sent to unscoped channels are duplicated #231

Closed
opened 2026-10-05 02:05:00 +02:00 by adam · 4 comments
Owner

Summary

When using RemoteTerm with OpenHop / pyMC as a virtual companion, messages sent to unscoped channels appear to be transmitted twice.

This does not seem to happen when sending to a channel scoped to my region.

Expected behaviour

Pressing Send should result in one outgoing MeshCore message, regardless of whether the channel is scoped or unscoped.

Actual behaviour

Messages sent to unscoped channels are duplicated.

For example:

  • #test — unscoped: duplicate send
  • #nrl — unscoped: duplicate send
  • #macarthur — scoped to AU-NSW-SYD: sends once as expected
  • #sydney — scoped to AU-NSW-SYD: sends once as expected

The online observer also shows two copies of the same message, which suggests RemoteTerm/pyMC is actually sending two packets..

Steps to reproduce

  1. Configure RemoteTerm to use OpenHop / pyMC as the companion/backend.
  2. Open or add an unscoped channel, such as #test.
  3. Send a short message, for example Test.
  4. Check an external MeshCore observer.

Result

Two copies of the message are seen.

Comparison

Sending the same type of message to a region-scoped channel does not duplicate.

## Summary When using RemoteTerm with OpenHop / pyMC as a virtual companion, messages sent to **unscoped channels** appear to be transmitted twice. This does not seem to happen when sending to a channel scoped to my region. ## Expected behaviour Pressing Send should result in one outgoing MeshCore message, regardless of whether the channel is scoped or unscoped. ## Actual behaviour Messages sent to unscoped channels are duplicated. For example: - `#test` — unscoped: duplicate send - `#nrl` — unscoped: duplicate send - `#macarthur` — scoped to `AU-NSW-SYD`: sends once as expected - `#sydney` — scoped to `AU-NSW-SYD`: sends once as expected The online observer also shows two copies of the same message, which suggests RemoteTerm/pyMC is actually sending two packets.. ## Steps to reproduce 1. Configure RemoteTerm to use OpenHop / pyMC as the companion/backend. 2. Open or add an unscoped channel, such as `#test`. 3. Send a short message, for example `Test`. 4. Check an external MeshCore observer. ## Result Two copies of the message are seen. ## Comparison Sending the same type of message to a region-scoped channel does not duplicate. <!-- github-sync-id:4827363290 -->
adam closed this issue 2026-10-05 02:05:00 +02:00
Author
Owner

We don't officially support pyMC; I have just made some changes to how we handle unscoped sends. It might (or might not) impact this behavior; I know there is also ongoing pymc work around improving their API compatibility. On latest pyMC and latest RemoteTerm, do you still see this issue? If you use docker prebuilt images, gimme an hour or so before you test since I'll need to do a fresh build.

We don't officially support pyMC; I have just made some changes to how we handle unscoped sends. It might (or might not) impact this behavior; I know there is also ongoing pymc work around improving their API compatibility. On latest pyMC and latest RemoteTerm, do you still see this issue? If you use docker prebuilt images, gimme an hour or so before you test since I'll need to do a fresh build. <!-- github-comment-id:4919909406 -->
Author
Owner

I'm going to close this; if you can provide additional information, feel free to reopen.

I'm going to close this; if you can provide additional information, feel free to reopen. <!-- github-comment-id:5037044219 -->
Author
Owner

I have done some testing and i think i may have a clue to what the issue may involve.

RemoteTerm seems to remove all channels set up on the openhop repeater. The repeater is in a limbo state where it itself does not control the scopes.

Steps to reproduce:

  • Start up an openhop repeater using the docker compose example with a rak4631 over eth as the modem.
  • Enable a virtual companion in openhop
  • Connect via the official meshcore app, add channels etc
  • Message via the official app, everything works fine.
  • Disconnect official app, connect remoteterm to the openhop companion over tcp.
  • Optional: Send messages etc, anything without region settings works fine.
  • Disconnect remoteterm (via UI or stopping the service)
  • Connect via official app to the openhop companion.
  • Observe that all channels are now removed.

It seems that it is only RemoteTerm that is removing the channels. Meshcore One and the official app do not remove them.

Id just like to add that supporting something like openhop would be really nice. OpenHop has support for virtual companions on a repeater, which is an awesome feature removing the need for both a repeater and a companion at really good home locations (eg house on a mountain)

I have done some testing and i think i may have a clue to what the issue may involve. RemoteTerm seems to remove all channels set up on the openhop repeater. The repeater is in a limbo state where it itself does not control the scopes. Steps to reproduce: - Start up an openhop repeater using the docker compose example with a rak4631 over eth as the modem. - Enable a virtual companion in openhop - Connect via the official meshcore app, add channels etc - Message via the official app, everything works fine. - Disconnect official app, connect remoteterm to the openhop companion over tcp. - Optional: Send messages etc, anything without region settings works fine. - Disconnect remoteterm (via UI or stopping the service) - Connect via official app to the openhop companion. - Observe that all **channels are now removed**. It seems that it is only RemoteTerm that is removing the channels. Meshcore One and the official app do not remove them. Id just like to add that supporting something like openhop would be really nice. OpenHop has support for virtual companions on a repeater, which is an awesome feature removing the need for both a repeater and a companion at really good home locations (eg house on a mountain) <!-- github-comment-id:5388131917 -->
Author
Owner

Can someone reopen this? I can be responsible for providing test results etc

Can someone reopen this? I can be responsible for providing test results etc <!-- github-comment-id:5388139435 -->
Sign in to join this conversation.
No labels
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: adam/Remote-Terminal-for-MeshCore#231