Yes, I have been able to transmit as well. I used Node-RED to write commands to the serial port (i.e. /dev/ttyUSB0). I used commands recognized by the JeeLib Classic emonBase firmware (i.e. “1,1,18,16s”).
Here is the flow I used.
[{"id":"50369e7e.134d48","type":"tab","label":"RFM69Pi","disabled":false,"info":""},{"id":"6ebfa729.fcc488","type":"change","z":"50369e7e.134d48","name":"Set to Node 14","rules":[{"t":"set","p":"payload","pt":"msg","to":"14i","tot":"str"}],"action":"","property":"","from":"","to":"","reg":false,"x":400,"y":300,"wires":[["27ce8704.60cb9"]]},{"id":"4359f4b5.c93904","type":"inject","z":"50369e7e.134d48","name":"","props":[{"p":"payload"},{"p":"topic","vt":"str"}],"repeat":"","crontab":"","once":false,"onceDelay":0.1,"topic":"","payload":"","payloadType":"date","x":180,"y":220,"wires":[["a09016aa.10e5d"]]},{"id":"c4364baf.85c9a8","type":"debug","z":"50369e7e.134d48","name":"","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"false","statusVal":"","statusType":"auto","x":890,"y":260,"wires":[]},{"id":"27ce8704.60cb9","type":"serial request","z":"50369e7e.134d48","name":"","serial":"e62ea184.4fae68","x":680,"y":260,"wires":[["c4364baf.85c9a8"]]},{"id":"3b31404f.b1383","type":"change","z":"50369e7e.134d48","name":"Send Test","rules":[{"t":"set","p":"payload","pt":"msg","to":"t","tot":"str"}],"action":"","property":"","from":"","to":"","reg":false,"x":380,"y":260,"wires":[["27ce8704.60cb9"]]},{"id":"a09016aa.10e5d","type":"change","z":"50369e7e.134d48","name":"Send 10 to Node 16","rules":[{"t":"set","p":"payload","pt":"msg","to":"1,1,18,16s","tot":"str"}],"action":"","property":"","from":"","to":"","reg":false,"x":420,"y":220,"wires":[["27ce8704.60cb9"]]},{"id":"41b71f4e.a5d8b8","type":"inject","z":"50369e7e.134d48","name":"","props":[{"p":"payload"},{"p":"topic","vt":"str"}],"repeat":"","crontab":"","once":false,"onceDelay":0.1,"topic":"","payload":"","payloadType":"date","x":180,"y":300,"wires":[["6ebfa729.fcc488"]]},{"id":"5f4729d8.c27b8","type":"inject","z":"50369e7e.134d48","name":"","props":[{"p":"payload"},{"p":"topic","vt":"str"}],"repeat":"","crontab":"","once":false,"onceDelay":0.1,"topic":"","payload":"","payloadType":"date","x":180,"y":260,"wires":[["3b31404f.b1383"]]},{"id":"c357fbf7.11986","type":"change","z":"50369e7e.134d48","name":"Set to Node 15","rules":[{"t":"set","p":"payload","pt":"msg","to":"15i","tot":"str"}],"action":"","property":"","from":"","to":"","reg":false,"x":400,"y":340,"wires":[["27ce8704.60cb9"]]},{"id":"f7febe5f.2b97","type":"inject","z":"50369e7e.134d48","name":"","props":[{"p":"payload"},{"p":"topic","vt":"str"}],"repeat":"","crontab":"","once":false,"onceDelay":0.1,"topic":"","payload":"","payloadType":"date","x":180,"y":340,"wires":[["c357fbf7.11986"]]},{"id":"38b808fd.5ad8d","type":"change","z":"50369e7e.134d48","name":"Send Group to 212","rules":[{"t":"set","p":"payload","pt":"msg","to":"212g","tot":"str"}],"action":"","property":"","from":"","to":"","reg":false,"x":410,"y":180,"wires":[["27ce8704.60cb9"]]},{"id":"570230d2.c23818","type":"inject","z":"50369e7e.134d48","name":"","props":[{"p":"payload"},{"p":"topic","vt":"str"}],"repeat":"","crontab":"","once":false,"onceDelay":0.1,"topic":"","payload":"","payloadType":"date","x":180,"y":180,"wires":[["38b808fd.5ad8d"]]},{"id":"9ae421d2.eaf73","type":"change","z":"50369e7e.134d48","name":"Change to Group 210 (OEM)","rules":[{"t":"set","p":"payload","pt":"msg","to":"210g","tot":"str"}],"action":"","property":"","from":"","to":"","reg":false,"x":440,"y":140,"wires":[["27ce8704.60cb9"]]},{"id":"7a3f2102.553c78","type":"inject","z":"50369e7e.134d48","name":"","props":[{"p":"payload"},{"p":"topic","vt":"str"}],"repeat":"","crontab":"","once":false,"onceDelay":0.1,"topic":"","payload":"","payloadType":"date","x":180,"y":140,"wires":[["9ae421d2.eaf73"]]},{"id":"ed57d65a.94645","type":"change","z":"50369e7e.134d48","name":"Get version","rules":[{"t":"set","p":"payload","pt":"msg","to":"v","tot":"str"}],"action":"","property":"","from":"","to":"","reg":false,"x":390,"y":380,"wires":[["27ce8704.60cb9"]]},{"id":"64e2185c.62c77","type":"inject","z":"50369e7e.134d48","name":"","props":[{"p":"payload"},{"p":"topic","vt":"str"}],"repeat":"","crontab":"","once":false,"onceDelay":0.1,"topic":"","payload":"","payloadType":"date","x":180,"y":380,"wires":[["ed57d65a.94645"]]},{"id":"f822bf42.42901","type":"comment","z":"50369e7e.134d48","name":"Testing and Learning About the RFM69Pi Connected to this emonBase","info":"","x":350,"y":60,"wires":[]},{"id":"cb6e5e28.f92878","type":"debug","z":"50369e7e.134d48","name":"","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"false","x":1170,"y":400,"wires":[]},{"id":"56fc52b6.622a04","type":"function","z":"50369e7e.134d48","name":"Convert to Binary, Highbit, Lowbit","func":"var number = msg.payload;\n\nmsg.payload = (number >>> 0).toString(2).padStart(16, '0');\nmsg.lowbit = msg.payload.substring(1, 8).padStart(8, '0');\nmsg.highbit = msg.payload.substring(9,16).padStart(8, '0');\nreturn msg;","outputs":1,"noerr":0,"x":740,"y":500,"wires":[["cb6e5e28.f92878","e3f8c806.066e3","4ef8b828.a2168","6d30b09c.ad087","29c53869.ab34e","28470d81.da2a2a"]]},{"id":"df123418.830c28","type":"change","z":"50369e7e.134d48","name":"Enter A Number in This Node","rules":[{"t":"set","p":"payload","pt":"msg","to":"374","tot":"num"}],"action":"","property":"","from":"","to":"","reg":false,"x":400,"y":500,"wires":[["56fc52b6.622a04"]]},{"id":"e3f8c806.066e3","type":"debug","z":"50369e7e.134d48","name":"","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"lowbit","targetType":"msg","x":1170,"y":480,"wires":[]},{"id":"4ef8b828.a2168","type":"debug","z":"50369e7e.134d48","name":"","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"highbit","targetType":"msg","x":1170,"y":440,"wires":[]},{"id":"6d30b09c.ad087","type":"function","z":"50369e7e.134d48","name":"Convert High Bit, Low Bit to Original Number","func":"var binary = msg.lowbit + msg.highbit;\nmsg.payload = parseInt(binary, 2);\n\nreturn msg;","outputs":1,"noerr":0,"x":1270,"y":540,"wires":[["4e118804.c8d8a8"]]},{"id":"29c53869.ab34e","type":"function","z":"50369e7e.134d48","name":"Convert High Bit to Number","func":"var binary = msg.highbit;\nmsg.payload = parseInt(binary, 2);\n\nreturn msg;","outputs":1,"noerr":0,"x":1220,"y":580,"wires":[["9d174a53.373a2"]]},{"id":"28470d81.da2a2a","type":"function","z":"50369e7e.134d48","name":"Convert Low Bit to Number","func":"var binary = msg.lowbit;\nmsg.payload = parseInt(binary, 2);\n\nreturn msg;","outputs":1,"noerr":0,"x":1220,"y":620,"wires":[["b30a7d1b.55ff1"]]},{"id":"7f036d79.a28afc","type":"inject","z":"50369e7e.134d48","name":"","repeat":"","crontab":"","once":false,"onceDelay":0.1,"topic":"","payload":"","payloadType":"date","x":180,"y":500,"wires":[["df123418.830c28"]]},{"id":"4e118804.c8d8a8","type":"debug","z":"50369e7e.134d48","name":"Return the Number","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"payload","targetType":"msg","x":1550,"y":540,"wires":[]},{"id":"9d174a53.373a2","type":"debug","z":"50369e7e.134d48","name":"","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"false","x":1450,"y":580,"wires":[]},{"id":"b30a7d1b.55ff1","type":"debug","z":"50369e7e.134d48","name":"","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"false","x":1450,"y":620,"wires":[]},{"id":"76fe44491baf34b0","type":"comment","z":"50369e7e.134d48","name":"Testing and Learning the Binary Representation of Data","info":"","x":300,"y":440,"wires":[]},{"id":"e62ea184.4fae68","type":"serial-port","serialport":"/dev/ttyUSB0","serialbaud":"38400","databits":"8","parity":"none","stopbits":"1","waitfor":"","dtr":"none","rts":"none","cts":"none","dsr":"none","newline":"\\n","bin":"false","out":"char","addchar":"","responsetimeout":"10000"}]
Yes. I have tested using more than two transcievers and it works. Those that do so might want to look at this post by @Bill.Thomson, which describes how to keep the USB devices at predictable serial device names. How to match a ttyUSBX device to a USB Serial device
I would also recommend being more explicit about the node IDs, especially if you plan to use outbound messages. Here is what that looks like in my setup with an RFM69Pi and two Moteino USBs.
[interfacers]
### This interfacer manages the RFM12Pi/RFM69Pi/emonPi module
[[RFM2Pi]]
Type = EmonHubJeeInterfacer
[[[init_settings]]]
com_port = /dev/ttyAMA0
com_baud = 38400 # 9600 for old RFM12Pi
[[[runtimesettings]]]
pubchannels = ToEmonCMS,
subchannels = ToRFM12,
group = 210
frequency = 433
baseid = 15 # emonPi / emonBase nodeID
quiet = true # Report incomplete RF packets (no implemented on emonPi)
calibration = 230V # (UK/EU: 230V, US: 110V)
#interval = 10 # Interval to transmit time to emonGLCD (seconds)
### This interfacer manages a Moteino USB
[[MoteinoUSB0]]
Type = EmonHubJeeInterfacer
[[[init_settings]]]
com_port = /dev/ttyUSB0
com_baud = 38400
[[[runtimesettings]]]
pubchannels = ToEmonCMS,
subchannels = ToRFM12,
group = 210
frequency = 433
baseid = 14 # emonPi / emonBase nodeID
quiet = true # Report incomplete RF packets (no implemented on emonPi)
calibration = 230V # (UK/EU: 230V, US: 110V)
#interval = 10 # Interval to transmit time to emonGLCD (seconds)
### This interfacer manages a Moteino USB
[[MoteinoUSB1]]
Type = EmonHubJeeInterfacer
[[[init_settings]]]
com_port = /dev/ttyUSB1
com_baud = 38400
[[[runtimesettings]]]
pubchannels = ToEmonCMS,
subchannels = ToRFM12,
group = 210
frequency = 433
baseid = 16 # emonPi / emonBase nodeID
quiet = true # Report incomplete RF packets (no implemented on emonPi)
calibration = 230V # (UK/EU: 230V, US: 110V)
#interval = 10 # Interval to transmit time to emonGLCD (seconds)
“In Parallel” is better than “Simultaneously”. I agree. Can the title of my original post be updated?