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.

Video walk through of my Remote HF station

Mike-VA3MW
Mike-VA3MW Administrator, FlexRadio Employee, Community Manager, Super Elmer, Moderator admin
edited August 2020 in Remote Operation (SmartLink)
Tagged:
«1

Comments

  • Tim VE6SH
    Tim VE6SH Member ✭✭
    edited May 2020
  • Adde Tjernberg
    Adde Tjernberg Member ✭✭
    edited June 2020
    Great presentation. Got hooked on the Node-RED stuff!
  • Mike-VA3MW
    Mike-VA3MW Administrator, FlexRadio Employee, Community Manager, Super Elmer, Moderator admin
    edited May 2020
    My hope is that we all share our NodeRed flows so it helps people get started.

    This is where most of the chat is happening https://community.flexradio.com/flexradio/topics/remote-operating-and-node-red

    Mike
  • David Decoons, wo2x
    David Decoons, wo2x Member, Super Elmer Moderator
    edited May 2020
    +1 on Node Red. Mike and Andreas, N6NU got me hooked when I was in the hospital, bored. I wrote flows for controlling and monitoring a KPA1500 amp, DLI Web Switch Pro, and Idiom Press serial interface for my rotor. Good stuff indeed. The DLI Web Switch Pro can be set up to ping multiple sites. If it fails ping to all sites three times then it reboots user defined outlets. (Cable modem, router, local maintenance PC). Nice thing is the switch also supports several programming languages to remotely control it. Dave wo2x
  • AA0Z
    AA0Z Member ✭✭
    edited May 2020
  • Craig Mitchell
    Craig Mitchell Member
    edited June 2020
  • Mike-VA3MW
    Mike-VA3MW Administrator, FlexRadio Employee, Community Manager, Super Elmer, Moderator admin
    edited May 2020
    Hi Craig

    On the PI, none.  All my switches are controlled by HTML links.    This is the switch I use https://www.kmtronic.com/lan-ethernet-ip-8-channels-web-relay-board.html

    You can see the examples here https://info.kmtronic.com/control-kmtronic-lan-relays-using-browser-bookmarks.html

    Mike

  • Craig Mitchell
    Craig Mitchell Member
    edited May 2020
  • Mike-VA3MW
    Mike-VA3MW Administrator, FlexRadio Employee, Community Manager, Super Elmer, Moderator admin
    edited May 2020
    Hi Craig

    The KMTRONICS has status XML that it echos back that I capture and that is what sets the LED colour.  So, I have some full circle communication.   As for Temp, that is done on an I2C buss.  The web server runs on the same RPI and is part of the NodeRed installation.

    If you want to monitor a bunch of sites, I would look into MQTT to manage the distribution of the information.  In the Steppir and Rotator flows that N6NU wrote, he uses MQTT to send messages to other operating stations.
  • Alan
    Alan Member ✭✭✭✭
    edited May 2020
  • Craig Mitchell
    Craig Mitchell Member
    edited May 2020
  • Mike-VA3MW
    Mike-VA3MW Administrator, FlexRadio Employee, Community Manager, Super Elmer, Moderator admin
    edited May 2020
    Thanks Alan.  Today was a hectic and long day and I am a bit behind on emails.  I will get to them.  73
  • Alan
    Alan Member ✭✭✭✭
    edited May 2020
    Thanks, Mike.   No problem.   I caught the end of your afternoon video and heard you also had a morning of working on your water supply in the lake.

    Alan
  • Mike-VA3MW
    Mike-VA3MW Administrator, FlexRadio Employee, Community Manager, Super Elmer, Moderator admin
    edited June 2020
  • Mike-VA3MW
    Mike-VA3MW Administrator, FlexRadio Employee, Community Manager, Super Elmer, Moderator admin
    edited June 2020
  • Craig Mitchell
    Craig Mitchell Member
    edited June 2020
  • Mike-VA3MW
    Mike-VA3MW Administrator, FlexRadio Employee, Community Manager, Super Elmer, Moderator admin
    edited June 2020
    You can find his email address on his QRZ page.  :)

  • Alan
    Alan Member ✭✭✭✭
    edited June 2020
    Mike

    Not sure if you sent the "completed" SteppIR code.  See my screenshot with questions noted.  If it is not finished, that OK.  I was just trying to make it work without success.  I have other options if yours is "work in progress".

    Alan

    image
  • Mike-VA3MW
    Mike-VA3MW Administrator, FlexRadio Employee, Community Manager, Super Elmer, Moderator admin
    edited June 2020
    Hi

    My flow is heavily modified and is not the flow I am currently using.  Dave WO2X sent me the one we received from Andreas, N6NU.

    However, let me see what I can piece together.

    TCP 4002 is from a PSTRotator output.  You can ignore that injection point.


    Steppir IN is from the RS232 Port that is connected to the Steppir.  If you open it up, you'll see more about it.  The Steppir controller is 4800 8N1 for a baud rate.

    Steppir1Status is from the MQTT server and that is where we get the frequency.  That flow, attached is a work in progress.  What it does is connect to the radio on port 4992, send a command and then look for a variety of things.  

    From Flex Queries also comes from the MQTT server that the flow (attached) sends to.   I am not sure I sent that in the beginning.

    Sorry, I know this is clear as mud.  You may have to dig into it a bit.

    Mike




    [{"id":"a5a6f35f.a0a62","type":"tab","label":"FlexRadio","disabled":false,"info":""},{"id":"5332910e.2f411","type":"tcp in","z":"a5a6f35f.a0a62","name":"","server":"client","host":"192.168.110.76","port":"4992","datamode":"stream","datatype":"utf8","newline":"\\n","topic":"","base64":false,"x":203.01953125,"y":158.00390625,"wires":[["32af30a0.da29c","784db465.9bedfc","21676014.64315","4bb65a81.899f44"]]},{"id":"9f0dc4f.232cd38","type":"tcp out","z":"a5a6f35f.a0a62","host":"","port":"","beserver":"reply","base64":false,"end":false,"name":"","x":1003.01953125,"y":198.00390625,"wires":[]},{"id":"167dc49a.68cbab","type":"split","z":"a5a6f35f.a0a62","name":"","splt":" ","spltType":"str","arraySplt":1,"arraySpltType":"len","stream":false,"addname":"","x":323.01953125,"y":418.00390625,"wires":[["66b580f3.0a7a4"]]},{"id":"66b580f3.0a7a4","type":"switch","z":"a5a6f35f.a0a62","name":"","property":"payload","propertyType":"msg","rules":[{"t":"regex","v":"^freq=","vt":"str","case":false}],"checkall":"true","repair":false,"outputs":1,"x":463.01953125,"y":418.00390625,"wires":[["8d5baf1.32b805"]]},{"id":"8d5baf1.32b805","type":"function","z":"a5a6f35f.a0a62","name":"Parse FlexTXFreq","func":"\nmsg.payload= msg.payload.split('=')[1]*100000;\n\nflow.set(\"FlexTXFreq\",msg.payload);\n\n\n\nreturn msg;","outputs":1,"noerr":0,"x":670,"y":420,"wires":[["b4944ad5.44dbd8"]]},{"id":"d63d2770.e41758","type":"mqtt out","z":"a5a6f35f.a0a62","name":"","topic":"FlexStatus","qos":"","retain":"","broker":"201e7171.0af3ee","x":1110,"y":500,"wires":[]},{"id":"b4944ad5.44dbd8","type":"function","z":"a5a6f35f.a0a62","name":"Devide Frequency by 100","func":"var Frequency=msg.payload/100;\n\n\n\nmsg.payload= parseFloat(Frequency).toFixed(2);\nreturn msg;","outputs":1,"noerr":0,"x":890,"y":420,"wires":[["d63d2770.e41758","b2a55269.8a30c","59f3c5b7.c2fbec"]]},{"id":"32af30a0.da29c","type":"trigger","z":"a5a6f35f.a0a62","op1":"C172|sub tx all","op2":"C172|sub tx all","op1type":"str","op2type":"str","duration":"60","extend":true,"units":"min","reset":"","bytopic":"all","name":"","x":490,"y":160,"wires":[["5039d92.c1ba328","5868bc45.056d54","12af30a0.75d09f","163c43e3.a5302c"]]},{"id":"b2a55269.8a30c","type":"trigger","z":"a5a6f35f.a0a62","op1":"","op2":"","op1type":"nul","op2type":"payl","duration":"10","extend":false,"units":"s","reset":"","name":"","x":730,"y":500,"wires":[["d63d2770.e41758"]]},{"id":"5039d92.c1ba328","type":"function","z":"a5a6f35f.a0a62","name":"SUB SLICE ALL","func":"// C172|sub slice all\nmsg.payload = \"C172|sub slice all\\r\"; \nreturn msg;","outputs":1,"noerr":0,"x":793.01953125,"y":178.00390625,"wires":[["9f0dc4f.232cd38"]]},{"id":"5868bc45.056d54","type":"function","z":"a5a6f35f.a0a62","name":"SUB CLIENT ALL","func":"// C172|sub slice all\nmsg.payload = \"C173|sub client all\\r\"; \nreturn msg;","outputs":1,"noerr":0,"x":803.01953125,"y":218.00390625,"wires":[["9f0dc4f.232cd38"]]},{"id":"12af30a0.75d09f","type":"function","z":"a5a6f35f.a0a62","name":"SUB TX ALL","func":"// C172|sub slice all\nmsg.payload = \"C202|sub tx all\\r\"; \nreturn msg;","outputs":1,"noerr":0,"x":783.01953125,"y":138.00390625,"wires":[["9f0dc4f.232cd38"]]},{"id":"784db465.9bedfc","type":"switch","z":"a5a6f35f.a0a62","name":"transmit","property":"payload","propertyType":"msg","rules":[{"t":"cont","v":"|transmit","vt":"str"}],"checkall":"true","repair":false,"outputs":1,"x":173.01953125,"y":418.00390625,"wires":[["167dc49a.68cbab"]]},{"id":"163c43e3.a5302c","type":"function","z":"a5a6f35f.a0a62","name":"SUB RADIO ALL","func":"// C172|sub slice all\nmsg.payload = \"C73|sub radio all\\r\"; \nreturn msg;","outputs":1,"noerr":0,"x":810,"y":260,"wires":[["9f0dc4f.232cd38"]]},{"id":"2cdb975d.660f78","type":"inject","z":"a5a6f35f.a0a62","name":"","topic":"","payload":"","payloadType":"date","repeat":"","crontab":"","once":false,"onceDelay":0.1,"x":410.51171875,"y":58.94921875,"wires":[["12af30a0.75d09f"]]},{"id":"59f3c5b7.c2fbec","type":"ui_text","z":"a5a6f35f.a0a62","group":"147ec7a6.61a838","order":10,"width":0,"height":0,"name":"","label":"6600 Freq","format":"{{msg.payload}}","layout":"row-spread","x":1130,"y":420,"wires":[]},{"id":"21676014.64315","type":"switch","z":"a5a6f35f.a0a62","name":"rfpower","property":"payload","propertyType":"msg","rules":[{"t":"cont","v":"|transmit","vt":"str"}],"checkall":"true","repair":false,"outputs":1,"x":180,"y":560,"wires":[["35cc47b5.351a98"]]},{"id":"35cc47b5.351a98","type":"split","z":"a5a6f35f.a0a62","name":"","splt":" ","spltType":"str","arraySplt":1,"arraySpltType":"len","stream":false,"addname":"","x":350,"y":560,"wires":[["e7e8db4.377d128"]]},{"id":"e7e8db4.377d128","type":"switch","z":"a5a6f35f.a0a62","name":"","property":"payload","propertyType":"msg","rules":[{"t":"regex","v":"^rfpower=","vt":"str","case":false}],"checkall":"true","repair":false,"outputs":1,"x":490,"y":560,"wires":[["edb3c81.600ee38"]]},{"id":"edb3c81.600ee38","type":"function","z":"a5a6f35f.a0a62","name":"ParsePWR","func":"\nmsg.payload= msg.payload.split('=')[1];\n\nflow.set(\"FlexTXPWR\",msg.payload);\n\n\n\nreturn msg;","outputs":1,"noerr":0,"x":710,"y":560,"wires":[["6e9b14da.a6563c"]]},{"id":"6e9b14da.a6563c","type":"ui_text","z":"a5a6f35f.a0a62","group":"147ec7a6.61a838","order":11,"width":0,"height":0,"name":"","label":"TX Power","format":"{{msg.payload}}","layout":"row-spread","x":1140,"y":560,"wires":[]},{"id":"4d6cb5be.c9a64c","type":"comment","z":"a5a6f35f.a0a62","name":"","info":" state=TRANSMITTING\n  state=READY","x":1620,"y":200,"wires":[]},{"id":"4bb65a81.899f44","type":"switch","z":"a5a6f35f.a0a62","name":"TX/RX State","property":"payload","propertyType":"msg","rules":[{"t":"cont","v":"state","vt":"str"}],"checkall":"true","repair":false,"outputs":1,"x":170,"y":660,"wires":[["50ad74fe.67e61c"]]},{"id":"50ad74fe.67e61c","type":"split","z":"a5a6f35f.a0a62","name":"","splt":" ","spltType":"str","arraySplt":1,"arraySpltType":"len","stream":false,"addname":"","x":310,"y":660,"wires":[["3b771b3c.5215e4"]]},{"id":"3b771b3c.5215e4","type":"switch","z":"a5a6f35f.a0a62","name":"","property":"payload","propertyType":"msg","rules":[{"t":"cont","v":"TRANSMITTING","vt":"str"},{"t":"cont","v":"READY","vt":"str"}],"checkall":"true","repair":false,"outputs":2,"x":430,"y":660,"wires":[["7d3c7d0d.97c674"],["ae295af8.9e4b38"]],"inputLabels":["i/p"],"outputLabels":["PTT Requested","UnKey"]},{"id":"7d3c7d0d.97c674","type":"change","z":"a5a6f35f.a0a62","name":"","rules":[{"t":"set","p":"payload","pt":"msg","to":"close","tot":"str"}],"action":"","property":"","from":"","to":"","reg":false,"x":700,"y":640,"wires":[["74bc71a6.a2d9e"]],"info":"The msg.payload is set to open or closed and\nsent to MQTT so that the Steppir controller\nwill know to open or close the gate.\n\nWhen Closed, the Steppir code will not send commands\nto the controller and hopefully not cause the \nSteppir to actually move while in TX"},{"id":"ae295af8.9e4b38","type":"change","z":"a5a6f35f.a0a62","name":"","rules":[{"t":"set","p":"payload","pt":"msg","to":"open","tot":"str"}],"action":"","property":"","from":"","to":"","reg":false,"x":700,"y":680,"wires":[["74bc71a6.a2d9e"]],"info":"The msg.payload is set to open or closed and\nsent to MQTT so that the Steppir controller\nwill know to open or close the gate.\n\nWhen Closed, the Steppir code will not send commands\nto the controller and hopefully not cause the \nSteppir to actually move while in TX"},{"id":"74bc71a6.a2d9e","type":"mqtt out","z":"a5a6f35f.a0a62","name":"To Steppir Control","topic":"control","qos":"","retain":"","broker":"201e7171.0af3ee","x":1010,"y":660,"wires":[],"info":"To Steppir Code"},{"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":"147ec7a6.61a838","type":"ui_group","z":"","name":"Steppir","tab":"d6ba9a2a.f3f0d8","order":4,"disp":true,"width":"4","collapse":true},{"id":"d6ba9a2a.f3f0d8","type":"ui_tab","z":"","name":"VA3MW Shack Control","icon":"dashboard","order":1,"disabled":false,"hidden":false}]

  • Alan
    Alan Member ✭✭✭✭
    edited June 2020
    Thanks Mike.

    I understood the inputs and outputs, just could not get the SteppIR commands to work.

    I am using the Flex API flow, above, in several of my flows.  I have learned a lot about the Flex API by understanding how the flow works.

    Thanks for working up a flow to share.  I would like to add a "retract" button to my dashboard and was looking at how to use Node-Red, alone, to get this done.  If you can share your working flow, that would be great.

    Alan
    WA9WUD
  • Alan
    Alan Member ✭✭✭✭
    edited June 2020
  • Alan
    Alan Member ✭✭✭✭
    edited June 2020
    Mike

    I am making progress with the Node-Red SteppIR flow.

    I have added the command buttons to the GUI flow for "Home", "Calibrate" and "Re-Enable".

    I added code to the flow to add the necessary HEX commands to position 8 on the 9 byte ASCII message for each of the new set command buttons.

    My flow now receives all of the status information from the Stepp IR.

    However, my SteppIR SDA100 controller will not respond to commands from Node-Red.

    The serial cable from Node-Red, in and out, both look good.

    Questions:

    How do you have the SDA100 configured with regards to serial in/out connectors and configuration?

    - are you using the "data-in" DB9 from the Flex USB cables for frequency input?
    - are you using the lower DB9, data-out, for your Node-Red Serial in and out?
    - how do you have the transceiver configuration set up on the SDA100

           >Di Baud Rate
           >Dout Baud Rate
           >Transceiver Type

    Alan

  • David Decoons, wo2x
    David Decoons, wo2x Member, Super Elmer Moderator
    edited June 2020
    Hi Alan,

    I just loaded your SteppIR flow and going to look at the code to see if anything stands out at me. I do not have a SteppIR so will need you to test any changes. We can do it via TeamViewer whenever you have time.

    73
    Dave wo2x

  • Alan
    Alan Member ✭✭✭✭
    edited June 2020
    Thanks go out to Mike, Dave and the SteppIRs developer, Andreas for helping me set up a working flow.

    I now have the SteppIR flow incorporated into my Flex 6600 Dashboard.  I had to modify the flow from a multi-element yagi to a single element vertical antenna. (mainly removing the code for "180" and adding code for "3/4" and eliminating unused  element motors).

    I have a separate tuning board in the SDA100 controller that operates the "Tuning" LED and provides a direct TX inhibit to the Flex if the SteppIR is moving.

    I also have and use the SteppIR Transceiver board.  That provides frequency information to the SteppIR SDA100 controller independent of the Node-Red Flow.  If I have "Track" selected, the Antenna will track the Flex Frequency.

    In my Flex 6600 Flow, I have a "Master" button.  When I push this button, everything shuts down including grounding the HF antenna.  I added logic from the "Master" button to "Home" the SteppIR element.  When I restart the Flex, if the Stepp IR mode is in "Track", the SteppIR will automatically go to the frequency sent directly from the Flex Radio.

    Here is a screenshot of the dashboard.

    Alan
    WA9WUD
    image
  • Mike-VA3MW
    Mike-VA3MW Administrator, FlexRadio Employee, Community Manager, Super Elmer, Moderator admin
    edited June 2020
    Awesome... You read my mind on the Master button.  I need to code one for Lightning that does that over a 2 minute period.  Shut down the radios, then the power supplies, etc.  Nice work!
  • Alan
    Alan Member ✭✭✭✭
    edited June 2020
    Mike..... ...About that lightning.....  You have discussed that in your videos and I was wondering.....is there an API Key, like one can get from Weather Underground, to do HTTP requests for, in this case, lightning, in my (your) area?

    I already shut down the station automatically on low voltage (if I lose power and my UPS battery power is discharged).  It would be useful to add "lightning" to the ways to shut down the station.

    I have seen simple flows that use Weather Underground, for trigging Node-Red, but I have not yet looked to see if the same can be done with a Lighting API Key.

    Shutting down the station has been a neat project.  Of course, you don't just "pull the plug".  Some devices are shutdown but need power, such as the Flex.  Also, I must maintain a UPS source for the LAN infrastructure, so I can remotely get it going again.  More on that if you are interested.

    Alan
  • Mike-VA3MW
    Mike-VA3MW Administrator, FlexRadio Employee, Community Manager, Super Elmer, Moderator admin
    edited June 2020
  • Alan
    Alan Member ✭✭✭✭
    edited June 2020
    Mike

    I found a way to get a Lightning trigger.  Full description is in the Remote Operating discussion.

    Alan
  • Keith WA0BEU
    Keith WA0BEU Member ✭✭
    Thanks Mike this was great info and super video!!!
  • Thanks for the video Mike. I have a remote station down in VK. I use the Remote Rig web switches to control stuff - very stable over the last 5 years. I also use Lantronix 240V switching unit to control LAN switches, 24V power supply, 12V power supply with a battery backup via a West Mountain Radio PSG40. I use the Microtik 4G routers/firewall which are also nice and reliable but hard to setup.


    Just got a Flex 6600 to replace the K3 and K3/0 setup.


    Questions

    How to you cope if the SteppIR SDA100 box power cycles (as it doesn't turn back on)?

    Do you concert your RS232 to a LAN Port using the Lantronics and/or Moxa products? This may I can control the rotators and the Alpha 9500 etc with out having to remote in (using Splashtop Personal)


    Thanks again for the video which had given me some more ideas

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.