Welcome to the new FlexRadio Community! Please review the new Community Rules and other important new Community information on the Message Board.
If you are having a problem, please refer to the product documentation or check the Help Center for known solutions.
Need technical support from FlexRadio? It's as simple as Creating a HelpDesk ticket.

Remote operating and Node Red

1246710

Comments

  • Alan
    Alan Member ✭✭✭✭
    edited December 2019
    As John says, you can access the RPi using a screen share program of choice.  Node-Red runs on the RPi but its graphical interface does not.  For me, the advantage of running Node-Red on the RPi is to allow the RPi to be co-located close to my remote station and relays which control various functions.  If you do not need the remote access, but want Node-Red, you can install Node-Red on your station Windows Computer.

    For Node-Red, you access it using any type of web browser of choice on your platform of choice.

    Regarding using Node-Red to access third party devices.....it depends.  Others on this list have shown examples of interfacing with devices whose developers were willing to share API details.   For them, it allowed consolidating and customizing to one's particular operating situation and giving convenient remote control access.

    Node-Red also allows one to simplify the remote operation of devices via your LAN and WAN (need to forward the 1880 port in your router for WAN).

    I use PST router in a server-client mode and am not aware of any advantages of moving it to Node-Red because it really depends on the type of antenna rotor controller you use and if the controller is open source.

    I do not have direct experience with the other device / app examples in your question.

    Alan
    WA9WUD 


  • W7NIK
    W7NIK Member ✭✭
    edited December 2019
    Alan , I would like to pick your thoughts, my email is nickw7nik@gmail.com What does running PST on server /client. Mode mean ? Are you on 40m or 80 m in the evening?
  • John - K3MA
    John - K3MA Member ✭✭
    edited December 2019
  • Alan
    Alan Member ✭✭✭✭
    edited December 2019
    Not exactly.

    PST can control multiple rotors as you say, but that is not the server/client purpose.

    In my case, I operate remotely.  PST Rotor communicates to the rotor controller via Windows Com Ports (physical USB cables).  I have a small windows computer at the remote location with PST Rotor installed (the Server) and physically connected to the antenna rotor via USB cables.

    On PST rotor, under the "communications" pulldown, I designated the remote Windows computer as the "TCP Server"

    At my shack station, I also have PST Rotor running on my desktop.  Under the same "communications" pulldown, the shack compter is designated as a "client".

    The first time you must, on the "communications" pulldown, select "TCP Client Setup" to enter the ip address of the server computer and the port you are using (the same setup on the server computer allows you to select ports).  Make sure the port is the same on both client and server.

    Now, you can operate your PST rotor from both locations, the shack, and the remote location.

    If you open the port on your internet router and point it to the ip address of the server, you can turn your rotor with PST rotor anywhere you can get an internet connection.   Otherwise, you can only access the server on your local network.

    Yes, pick away on my brain.   My e-mail is:    a.alan.blind@gmail.com

    Alan
    WA9WUD
  • W7NIK
    W7NIK Member ✭✭
    edited December 2019
    Thank  u  i under stand now, I have PST only as local connection, luv, it , automatic  switchers my relays according freq. 
  • Alan
    Alan Member ✭✭✭✭
    edited December 2019
    Hi Mike

    I am looking at adding the W2 Wattmeter to my remote station.   Could you share your Node-Red flow for this device?

    Also, what is your serial interface between the W2 Wattmeter to the Node-Red host device? 
     
    Alan
    WA9WUD
  • Mike-VA3MW
    Mike-VA3MW Administrator, FlexRadio Employee, Community Manager, Super Elmer, Moderator admin
    edited December 2019
    Hi Alan

    Here it is thanks for Andreas N6NU.  He wrote it.  You will have to make some changes and likely remove the GATE I have.  The GATE is used so that the W2  only reads RF power when the radio is in TX.

    I use a StarTech 4 port RS232 interface that is about $100CDN.  I found it on Amazon.    

    I will paste it in hear so others can use it.  It isn't quite plug and play but if you have some things on NR working, you will figure it out.   I have a couple of buttons to select the active port and to put it in high power.  If you use lower power sensors you'll have to make the changes accordingly so the math is correct or you will be out by a factor of 10.

    Mike va3mw


    [{"id":"81b1b39d.82de4","type":"tab","label":"W2","disabled":false,"info":""},{"id":"d661203c.bd0e6","type":"inject","z":"81b1b39d.82de4","name":"SendF","topic":"","payload":"F;","payloadType":"str","repeat":".1","crontab":"","once":true,"onceDelay":".1","x":120,"y":200,"wires":[["adeef7d7.d900e8"]]},{"id":"6bc5931b.62256c","type":"inject","z":"81b1b39d.82de4","name":"SendS","topic":"","payload":"S;","payloadType":"str","repeat":"","crontab":"","once":false,"onceDelay":"","x":120.43580627441406,"y":244.99465942382812,"wires":[["adeef7d7.d900e8"]]},{"id":"83b5a67c.9ee178","type":"delay","z":"81b1b39d.82de4","name":"","pauseType":"delay","timeout":"250","timeoutUnits":"milliseconds","rate":"1","nbRateUnits":"1","rateUnits":"second","randomFirst":"1","randomLast":"5","randomUnits":"seconds","drop":false,"x":738.5714111328125,"y":78.60714721679688,"wires":[["4d79f191.9651d"]]},{"id":"fcff1429.21ab88","type":"delay","z":"81b1b39d.82de4","name":"","pauseType":"delay","timeout":"500","timeoutUnits":"milliseconds","rate":"1","nbRateUnits":"1","rateUnits":"second","randomFirst":"1","randomLast":"5","randomUnits":"seconds","drop":false,"x":735.5714111328125,"y":115.60714721679688,"wires":[["4d79f191.9651d"]]},{"id":"fcf4a2a0.6750a","type":"delay","z":"81b1b39d.82de4","name":"","pauseType":"delay","timeout":"750","timeoutUnits":"milliseconds","rate":"1","nbRateUnits":"1","rateUnits":"second","randomFirst":"1","randomLast":"5","randomUnits":"seconds","drop":false,"x":733.5714263916016,"y":214.60714530944824,"wires":[["4d79f191.9651d"]]},{"id":"a975e60b.c82b68","type":"delay","z":"81b1b39d.82de4","name":"","pauseType":"delay","timeout":"100","timeoutUnits":"milliseconds","rate":"1","nbRateUnits":"1","rateUnits":"second","randomFirst":"1","randomLast":"5","randomUnits":"seconds","drop":false,"x":738.5714111328125,"y":40.607147216796875,"wires":[["4d79f191.9651d"]]},{"id":"2c7db0f4.cd3fb","type":"inject","z":"81b1b39d.82de4","name":"","topic":"","payload":"I;","payloadType":"str","repeat":"10","crontab":"","once":false,"onceDelay":"","x":120.5714111328125,"y":300.3571472167969,"wires":[["adeef7d7.d900e8"]]},{"id":"4d79f191.9651d","type":"serial out","z":"81b1b39d.82de4","name":"W2MeterOut","serial":"8c8041f4.047d2","x":954.0714111328125,"y":362.3571472167969,"wires":[]},{"id":"6416080a.c0dde8","type":"function","z":"81b1b39d.82de4","name":"SWR REQ","func":"msg.payload=""S;""
    return msg;","outputs":1,"noerr":0,"x":530,"y":120,"wires":[["c87a7c97.47bbb","fcf4a2a0.6750a"]]},{"id":"970ebfe1.027fe","type":"serial in","z":"81b1b39d.82de4","name":"W2MeterIn","serial":"8c8041f4.047d2","x":160,"y":540,"wires":[["d67eb13a.0ebcc","9453e50a.cb4118"]],"info":"Under normal operating conditions, if the W2 is sent either an ""I"" or an ""i"", it returns a string of information about the state of
    the Sensors, the Range settings, some internal settings, and which Sensor is active. If, however, the W2 is in the high SWR
    alarm mode (all SWR LED's flashing), sending the ""I"" command returns only ""A!;""

    Byte Property
    1 ""I"" or ""i"" (echoes back what you sent).
    2 Active Sensor (1 or 2) matching the ""S1/S2"" LED lit.
    3 Range Level (1=2W, 2=20W, 3=200W, 4=2KW) of the Active Sensor.
    4 AutoRange status (0=off, 1=on) for Active Sensor.
    5 Sensor type (0=200W, 1=2KW, 2=VHF) of Active Sensor.
    6 Sensor's internal attenuator status (0=off, 1=on) of Active Sensor.
    7 W2 LED display state (0=off, 1=on).
    8 Active Sensor (0=none, 1=S1, 2=S2).
    9 Sensor1 Range Control (0=manual, 1=auto).
    10 Sensor1 Range Level (0=no sensor, 1=2W, 2=20W, 3=200W, 4=2KW).
    11 Sensor2 Range Control (0=manual, 1=auto).
    12 Sensor2 Range Level (0=no sensor, 1=2W, 2=20W, 3=200W, 4=2KW).
    E l e c r a f t • w w w . e l e c r a f t . c o m • 8 3 1 - 7 6 3 - 4 2 1 1
    W"},{"id":"d67eb13a.0ebcc","type":"switch","z":"81b1b39d.82de4","name":"","property":"payload","propertyType":"msg","rules":[{"t":"cont","v":"F","vt":"str"},{"t":"cont","v":"R","vt":"str"},{"t":"cont","v":"S","vt":"str"},{"t":"cont","v":"I","vt":"str"},{"t":"eq","v":";","vt":"str"}],"checkall":"false","repair":false,"outputs":5,"x":350,"y":569.714298248291,"wires":[["f4bf6aad.e44788"],[],["915b1fdb.3f78b"],[],[]],"outputLabels":["F","R","","",""]},{"id":"f4bf6aad.e44788","type":"function","z":"81b1b39d.82de4","name":"ParsePower","func":"msg.payload = parseInt(msg.payload.substr(1,5))/10

    return msg;","outputs":1,"noerr":0,"x":170,"y":649.714298248291,"wires":[["17451ed9.d8e651","38a12d0e.ebc842"]]},{"id":"915b1fdb.3f78b","type":"function","z":"81b1b39d.82de4","name":"ParseSWR","func":"msg.payload = parseInt(msg.payload.substr(1,5))/100

    return msg;","outputs":1,"noerr":0,"x":169.5,"y":689.714298248291,"wires":[["f0a1222e.486fe","aa8b0e8a.43d33","cc0b59c1.b2a088"]]},{"id":"17451ed9.d8e651","type":"mqtt out","z":"81b1b39d.82de4","name":"","topic":"W2FWD","qos":"","retain":"","broker":"201e7171.0af3ee","x":875.8572463989258,"y":646.0001468658447,"wires":[]},{"id":"f0a1222e.486fe","type":"mqtt out","z":"81b1b39d.82de4","name":"","topic":"W2SWR","qos":"","retain":"","broker":"201e7171.0af3ee","x":872.2856864929199,"y":694.0000810623169,"wires":[]},{"id":"dc153878.06d958","type":"delay","z":"81b1b39d.82de4","name":"","pauseType":"delay","timeout":"650","timeoutUnits":"milliseconds","rate":"1","nbRateUnits":"1","rateUnits":"second","randomFirst":"1","randomLast":"5","randomUnits":"seconds","drop":false,"x":734,"y":161,"wires":[["4d79f191.9651d"]]},{"id":"cc0b59c1.b2a088","type":"debug","z":"81b1b39d.82de4","name":"Alarm?","active":false,"tosidebar":true,"console":false,"tostatus":false,"complete":"payload","targetType":"msg","x":894.9999961853027,"y":587.9999990463257,"wires":[]},{"id":"7cdb8e0f.63d75","type":"ui_level","z":"81b1b39d.82de4","group":"2dbe67ac.f10de8","order":4,"width":"5","height":"2","name":"W2 RF","label":"PGXL RF","colorHi":"#e60000","colorWarn":"#ff9900","colorNormal":"#00b33c","colorOff":"#595959","min":0,"max":"1400","segWarn":"","segHigh":"","unit":"Watts","layout":"sh","channelA":"","channelB":"","decimals":0,"animations":"reactive","shape":2,"colorschema":"fixed","textoptions":"default","colorText":"#eeeeee","fontLabel":"","fontValue":"","fontSmall":"","colorFromTheme":true,"x":597.0000267028809,"y":803.0000438690186,"wires":[]},{"id":"e2b211ba.b76b3","type":"ui_level","z":"81b1b39d.82de4","group":"2dbe67ac.f10de8","order":5,"width":"5","height":"2","name":"W2 SWR","label":"SWR","colorHi":"#e60000","colorWarn":"#ff9900","colorNormal":"#00b33c","colorOff":"#595959","min":"1","max":"4","segWarn":"2.5","segHigh":"","unit":"","layout":"sh","channelA":"","channelB":"","decimals":"1","animations":"reactive","shape":"1","colorschema":"fixed","textoptions":"custom","colorText":"#eeeeee","fontLabel":"","fontValue":"","fontSmall":"","colorFromTheme":true,"x":605.9999885559082,"y":761.0000162124634,"wires":[]},{"id":"aa8b0e8a.43d33","type":"rbe","z":"81b1b39d.82de4","name":"","func":"rbei","gap":"","start":"","inout":"out","property":"payload","x":388.5000190734863,"y":721.9999876022339,"wires":[["e2b211ba.b76b3"]]},{"id":"c87a7c97.47bbb","type":"debug","z":"81b1b39d.82de4","name":"","active":false,"tosidebar":true,"console":false,"tostatus":false,"complete":"false","x":949.515625,"y":283.9140625,"wires":[]},{"id":"9453e50a.cb4118","type":"debug","z":"81b1b39d.82de4","name":"","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"false","x":910,"y":520,"wires":[]},{"id":"8e14a494.92fb68","type":"rbe","z":"81b1b39d.82de4","name":"","func":"rbe","gap":"5%","start":"","inout":"out","property":"payload","x":432.52784729003906,"y":800.923656463623,"wires":[["7cdb8e0f.63d75"]]},{"id":"38a12d0e.ebc842","type":"smooth","z":"81b1b39d.82de4","name":"","property":"payload","action":"max","count":"3","round":"0","mult":"single","x":293.5277976989746,"y":795.9168491363525,"wires":[["8e14a494.92fb68"]]},{"id":"df7c0100.a065e","type":"mqtt in","z":"81b1b39d.82de4","name":"From Flex TX/RX","topic":"control","qos":"2","datatype":"auto","broker":"201e7171.0af3ee","x":140,"y":40,"wires":[["adeef7d7.d900e8"]]},{"id":"adeef7d7.d900e8","type":"gate","z":"81b1b39d.82de4","name":"","controlTopic":"control","defaultState":"open","openCmd":"close","closeCmd":"open","toggleCmd":"toggle","defaultCmd":"default","persist":false,"x":310,"y":160,"wires":[["6416080a.c0dde8","4d79f191.9651d","c87a7c97.47bbb","86f54466.fc5698"]]},{"id":"fc31a0ef.701ea","type":"ui_button","z":"81b1b39d.82de4","name":"Hi PWR Range","group":"2dbe67ac.f10de8","order":6,"width":"2","height":"1","passthru":false,"label":"Hi PWR","tooltip":"Hi Power Range","color":"","bgcolor":"","icon":"","payload":"3H;","payloadType":"str","topic":"","x":400,"y":440,"wires":[["4d79f191.9651d"]]},{"id":"55553919.391428","type":"ui_button","z":"81b1b39d.82de4","name":"Port 1","group":"2dbe67ac.f10de8","order":8,"width":"2","height":"1","passthru":false,"label":"Port 1","tooltip":"W2 RF Port 1","color":"","bgcolor":"","icon":"","payload":"O1;","payloadType":"str","topic":"","x":370,"y":400,"wires":[["4d79f191.9651d"]]},{"id":"e6dd7a04.6b21e8","type":"ui_button","z":"81b1b39d.82de4","name":"Port 2","group":"2dbe67ac.f10de8","order":9,"width":"2","height":"1","passthru":false,"label":"Port 2","tooltip":"W2 RF Port 2","color":"","bgcolor":"","icon":"","payload":"O2;","payloadType":"str","topic":"","x":370,"y":360,"wires":[["4d79f191.9651d"]]},{"id":"f567e35a.65ad5","type":"ui_button","z":"81b1b39d.82de4","name":"SCAN","group":"2dbe67ac.f10de8","order":7,"width":"2","height":"1","passthru":false,"label":"Scan","tooltip":"RF Port Scan","color":"","bgcolor":"","icon":"","payload":"Y1;","payloadType":"str","topic":"","x":370,"y":320,"wires":[["4d79f191.9651d"]]},{"id":"73c5e5d1.6de7ac","type":"polymer_paper-toggle-button","z":"81b1b39d.82de4","name":"","html":"","class":"","parent":"","width":"100%","height":"","topic":"","payloadTrueType":"bool","payloadFalseType":"bool","payloadTrue":"true","payloadFalse":"false","x":980,"y":100,"wires":[[]]},{"id":"86f54466.fc5698","type":"delay","z":"81b1b39d.82de4","name":"Clear Display after Unkey","pauseType":"delay","timeout":"1","timeoutUnits":"seconds","rate":"1","nbRateUnits":"1","rateUnits":"second","randomFirst":"1","randomLast":"5","randomUnits":"seconds","drop":false,"x":390,"y":260,"wires":[["4d79f191.9651d"]]},{"id":"8c8041f4.047d2","type":"serial-port","z":"","serialport":"/dev/ttyUSB0","serialbaud":"9600","databits":"8","parity":"none","stopbits":"1","waitfor":"","newline":";","bin":"false","out":"char","addchar":";","responsetimeout":"115"},{"id":"201e7171.0af3ee","type":"mqtt-broker","z":"","name":"","broker":"192.168.110.111","port":"1883","clientid":"","usetls":false,"compatmode":true,"keepalive":"60","cleansession":true,"birthTopic":"","birthQos":"0","birthPayload":"","closeTopic":"","closeQos":"0","closePayload":"","willTopic":"","willQos":"0","willPayload":""},{"id":"2dbe67ac.f10de8","type":"ui_group","z":"","name":"RF Info","tab":"d6ba9a2a.f3f0d8","order":2,"disp":true,"width":"4","collapse":false},{"id":"d6ba9a2a.f3f0d8","type":"ui_tab","z":"","name":"VA3MW Shack Control","icon":"dashboard","order":1,"disabled":false,"hidden":false}]
  • Alan
    Alan Member ✭✭✭✭
    edited December 2019
    Thanks, Mike.  This is a big help.

    Alan
    WA9WUD
  • Alan
    Alan Member ✭✭✭✭
    edited January 2020
    Update on my use of Node-Red / W2 Wattmeter.

    So far, my integration of the Elecraft W2 Wattmeter into Node-Red has been with mixed results.

    I used the Moxa N5110A Serial Converter because I already was using the same with my HF-Auto software.  This is whare my challenges remain.

    I wanted to use virtual com ports rather than the IP / port from the Moxa.  Setting up the Moxa  TTY drivers on the Raspberry was a challenge but completed successfully.   I was able to enter the dev/tty-XX port designations into the Node-Red Serial-in node and it was recognized by Node-Red.....but no data was moving from the W2 to Node-Red.   The "gate" node on Mike's flow was "open".

    Problem is the Moxa /dev file is at the root level and Node-Red is at the user level.  I have not been successful in bridging this gap.

    The good news is that Moxa makes it easy to make virtual ports on Windows and I have been successful in using the Elecraft W2 application remotely.   The Elecraft W2 application meets my needs, for now.

    Any advice from the group on using virtual com ports on a Raspberry would be appreciated.

    Moxa customer support says I should use IP based ports instead of virtual COM ports.  If I do that, then I cannot use the Elecraft W2 applications.

    Alan
  • Ted  VE3TRQ
    Ted VE3TRQ Member ✭✭✭
    edited January 2020
    This may be obvious, but make sure the /dev virtual port has permissions to allow your user of choice to read and write to it (“sudo chmod” is your friend).
  • Alan
    Alan Member ✭✭✭✭
    edited January 2020
    Thanks, Ted

    I will give this a try.  I did not know how to change the permission of the /dev/tty file in the Root.

    Alan
  • Ted  VE3TRQ
    Ted VE3TRQ Member ✭✭✭
    edited January 2020
    As an aside, the usual way to set up access to device files in /dev is to change the “g” (group) access rights, adding yourself to the group that has the appropriate rights. As an example, in many case “dialin” is the group that is attached to tty serial devices - so add yourself (your login user) to the “dialin” group. Alternatively, and less securely, you can of course open access rights to the “a” (all) user attribute (e.g. “sudo chmod a+wr /dev/”). (Edited to add the less secure way)
  • Alan
    Alan Member ✭✭✭✭
    edited January 2020
  • Alan
    Alan Member ✭✭✭✭
    edited January 2020
  • Alan
    Alan Member ✭✭✭✭
    edited January 2020
  • Alan
    Alan Member ✭✭✭✭
    edited January 2020
  • Alan
    Alan Member ✭✭✭✭
    edited June 2020
  • Alan
    Alan Member ✭✭✭✭
    edited January 2020
  • Alan
    Alan Member ✭✭✭✭
    edited January 2020
  • Alan
    Alan Member ✭✭✭✭
    edited January 2020
  • Alan
    Alan Member ✭✭✭✭
    edited June 2020
  • Mike-VA3MW
    Mike-VA3MW Administrator, FlexRadio Employee, Community Manager, Super Elmer, Moderator admin
    edited February 2020
    Awesome!  I'll have to give it a try.  

    Thanks Mark!
  • Alan
    Alan Member ✭✭✭✭
    edited February 2020
  • Neal Pollack, N6YFM
    Neal Pollack, N6YFM Member ✭✭
    edited April 2020
    Does anyone know if PSTrotator can work with the Easy Rotor Controller ERC-M model?   If so, I could even adapt my cheap Yaesu G-450a to work with something similar to this.
  • Neal Pollack, N6YFM
    Neal Pollack, N6YFM Member ✭✭
    edited June 2020
  • Neal Pollack, N6YFM
    Neal Pollack, N6YFM Member ✭✭
    edited June 2020
  • David Decoons, wo2x
    David Decoons, wo2x Member, Super Elmer Moderator
    edited April 2020
    According to PSTRotator web site the Easy Rotor Control is supported.
    I have a Node Red flow to talk to PSTRotatorAZ.

    Dave wo2x
  • David Decoons, wo2x
    David Decoons, wo2x Member, Super Elmer Moderator
    edited April 2020
    There are commands you can send to the Flex to show the voltage measured in the radio.

    Dave wo2x
  • David Decoons, wo2x
    David Decoons, wo2x Member, Super Elmer Moderator
    edited April 2020
    Depending on which remote client you are using you will no longer see the radio available in the chooser screen when it shuts down. I'd wait an additional 30 seconds after the radio disappears from the chooser window.

    Dave wo2x

  • Alan
    Alan Member ✭✭✭✭
    edited April 2020
    Here is a screenshot of the PST rotor setting pulldown with the list of rotor controllers.    Perhaps the ERC controllers are what you are looking for.

    Alan
    WA9WUDimage

Leave a Comment

Rich Text Editor. To edit a paragraph's style, hit tab to get to the paragraph menu. From there you will be able to pick one style. Nothing defaults to paragraph. An inline formatting menu will show up when you select text. Hit tab to get into that menu. Some elements, such as rich link embeds, images, loading indicators, and error messages may get inserted into the editor. You may navigate to these using the arrow keys inside of the editor and delete them with the delete or backspace key.