Keyboard Shortcuts
Likes
- Nodered-Hamradio
- Messages
Search
Updated flows by WO2X = VITA49, FlexRadio, KPA1500 and PSTRotatorAZ
¿ªÔÆÌåÓýHi All, ? I have updated the following flows: ? VITA49v5 & FlexRadiov5 ¨C These two flows must be used together. I have zipped them into a single file and uploaded them to my file area. Meters are zeroed and client info removed when last client disconnects. Radio info clears when radio powered down. ? KPA1500v2 ¨C meters are set to zero when amp is off. ? PSTRotatorAZ ¨C Updated rotor flow to talk to PSTRotatorAZ UDP server. It incorporates Tormod¡¯s Azimuth map. ? ? ? 73 Dave wo2x ? ? |
File Notifications
#file-notice
[email protected] Notification
The following files have been uploaded to the Files area of the [email protected] group. By: David De Coons wo2x Description: The following files have been uploaded to the Files area of the [email protected] group. By: David De Coons wo2x Description: The following files have been uploaded to the Files area of the [email protected] group. By: David De Coons wo2x Description: |
Moderated
Re: Zeroing meters when rig or amp off (eg. KPA500, Flex)
¿ªÔÆÌåÓýThat is exactly what my updated Flex Radio and VITA 49 flows do. When there is no client connected Node Red sets the meters to zero. Note ¨C when disconnecting a client it may take up to a minute before the temperature meter actually goes to zero. ? I also do the same for my Elecraft KPA1500 flow. ? I am uploading the new VITA40v5, FlexRadiov5, and KPA1500 flows to the file section now. The VITA49 and FlexRadio flows need to be used together So I am zipping them as a single file. The new flows will detect the proper model of radio along with the software version and set meters appropriately. NOTE ¨C There is no fan speed internal meter on the 6300/6500/6700 models as they use 4 fans (2 different style fans) while the 6400/6600 uses a single fan. ? Enjoy! Feedback is appreciated. ? 73 Dave wo2x ? ? From: [email protected] <[email protected]> On Behalf Of K6HN Gary
Sent: Saturday, January 30, 2021 6:40 PM To: [email protected] Subject: Re: [nodered-hamradio] Zeroing meters when rig or amp off (eg. KPA500, Flex) ? I send the meter a 0 when it's turned off. Simple... |
Moderated
Re: Zeroing meters when rig or amp off (eg. KPA500, Flex)
I send the meter a 0 when it's turned off. Simple...
-- Gary K6HN |
Moderated
Re: Zeroing meters when rig or amp off (eg. KPA500, Flex)
Thanks, Alan......the left pane is the one you helped me make. It's working great when the rig is on.? I imported Dave's KPA500 and KAT500 flows, but haven't gotten the amp and tuner just yet (although the "administration" has ok'd it). Next phase for me is to figure out how to add sliders to set power out and maybe other things.
Charlie KB8CR |
Moderated
Re: Zeroing meters when rig or amp off (eg. KPA500, Flex)
Charlie I know for sure that Dave, WO2X, is almost ready to release a new version of the VITA49 and Flex API flow that will "zero" the meters. Alan WA9WUD |
Moderated
Re: Zeroing meters when rig or amp off (eg. KPA500, Flex)
This is what it looks like when things are turned off:?
|
Moderated
Zeroing meters when rig or amp off (eg. KPA500, Flex)
Is there a way to zero the meters/text data for the meters when the radio or amplifier is turned off?
Currently, when they are off, the meters register full scale. Thanks, Charlie KB8CR |
Re: Parsing a string
Since it's fixed length (8) convert it into an array then you can access each position via an index
OR without conversion
|
Re: INA-219 Node Fixed/Updated, no longer requires downgrade to Node.js v10
Yes there is Kyle.? ?Look to the beginning of the thread.? Procedure is in the link to the bug report.? It is not hard.? I am running the workaround myself. Neal On Fri, Jan 29, 2021, 2:31 PM Kyle K <kylekrieg@...> wrote: I just got my INA219 boards last week and were going to start playing around with them.? I had not installed the INA-219 node yet.? I installed my OS in 2020. |
Re: INA-219 Node Fixed/Updated, no longer requires downgrade to Node.js v10
I just got my INA219 boards last week and were going to start playing around with them.? I had not installed the INA-219 node yet.? I installed my OS in 2020.
I'm assuming there isn't a procedure on how to roll back?? How do we find out what version we have installed? Kyle AA0Z |
Re: Parsing a string
¿ªÔÆÌåÓýAdvantage of a 50¡± 4k TV as a monitor. Good for my tired old eyes (age 59). ? I do like your single function solution! ? 73 Dave wo2x ? ? ? ? From: [email protected] <[email protected]> On Behalf Of Mick - W8BE
Sent: Friday, January 29, 2021 4:07 PM To: [email protected] Subject: Re: [nodered-hamradio] Parsing a string ? Thanks Dave,? I caught it... I need a bigger monitor.? Doing it on a laptop screen.? ?It would seem Michaels has a plethora?of options available to him now. ? On Fri, Jan 29, 2021 at 4:04 PM David De Coons wo2x <RocketNJ@...> wrote:
|
Re: Parsing a string
¿ªÔÆÌåÓýHi Alan, ? Mick¡¯s single function node is fine for processing Mike¡¯s string input. With the DLI the input is a base 10 number which equates to the binary position of the eight outlets. A combo of both flows would be good for Miles use as it would give him visual indication and ability to control the relays. ? Mike, if you need a hand let me know but this should get you on the right track. ? 73 Dave wo2x ? ? From: [email protected] <[email protected]> On Behalf Of Alan Blind, WA9WUD
Sent: Friday, January 29, 2021 3:58 PM To: [email protected] Subject: Re: [nodered-hamradio] Parsing a string ? Mike var offmsg = { payload: msg.payload,topic:msg.topic }; ? var msg1 = { payload: msg.payload,topic:msg.topic }; var msg2 = { payload: msg.payload,topic:msg.topic }; var msg3 = { payload: msg.payload,topic:msg.topic }; var msg4 = { payload: msg.payload,topic:msg.topic }; var msg5 = { payload: msg.payload,topic:msg.topic }; var msg6 = { payload: msg.payload,topic:msg.topic }; var msg7 = { payload: msg.payload,topic:msg.topic }; var msg8 = { payload: msg.payload,topic:msg.topic }; ? ? //msg.payload=true; onmsg.payload=true; offmsg.payload=false; ? if (msg.payload & ? 1) msg1.payload=true; else msg1.payload=false; if (msg.payload & ? 2) msg2.payload=true; else msg2.payload=false; if (msg.payload & ? 4) msg3.payload=true; else msg3.payload=false; if (msg.payload & ? 8) msg4.payload=true; else msg4.payload=false; if (msg.payload & ?16) msg5.payload=true; else msg5.payload=false; if (msg.payload & ?32) msg6.payload=true; else msg6.payload=false; if (msg.payload & ?64) msg7.payload=true; else msg7.payload=false; if (msg.payload & 128) msg8.payload=true; else msg8.payload=false; ? ? ? return [msg1,msg2,msg3,msg4,msg5,msg6,msg7,msg8];?you can download everything form the files section. |
Re: Parsing a string
Thanks Dave,? I caught it... I need a bigger monitor.? Doing it on a laptop screen.? ?It would seem Michaels has a plethora?of options available to him now. On Fri, Jan 29, 2021 at 4:04 PM David De Coons wo2x <RocketNJ@...> wrote:
|
Re: Parsing a string
¿ªÔÆÌåÓýHi Mick, ? Close ? Your msg6 if/else has true & true.(typo) ? Here¡¯s the cleaned up, cleaned up version. ? 73 Dave wo2x ? var output = msg.payload.split(""); msg.out0 = parseInt(output[0]); msg.out1 = parseInt(output[1]); msg.out2 = parseInt(output[2]); msg.out3 = parseInt(output[3]); msg.out4 = parseInt(output[4]); msg.out5 = parseInt(output[5]); msg.out6 = parseInt(output[6]); msg.out7 = parseInt(output[7]); ? ? if (msg.out0 === 1){ msg1 = {topic: 'relay1',payload:'true'}; } else? msg1 = {topic: 'relay1',payload:'false'}; ? if (msg.out1 === 1){ msg2 = {topic: 'relay2',payload:'true'}; } else msg2 = {topic: 'relay2',payload:'false'}; ? if (msg.out2 === 1) { msg3 = {topic: 'relay3',payload:'true'}; } else msg3 = {topic: 'relay3',payload:'false'}; ? if (msg.out3 === 1) { msg4 = {topic: 'relay4',payload:'true'}; } else msg4 = {topic: 'relay4',payload:'false'}; ? if (msg.out4 === 1) { msg5 = {topic: 'relay5',payload:'true'};? ?? } else msg5 = {topic: 'relay5',payload:'false'}; ? if (msg.out5 === 1) { msg6 = {topic: 'relay6',payload:'true'}; } else msg6 = {topic: 'relay6',payload:'false'}; ? if (msg.out6 === 1) { msg7 = {topic: 'relay7',payload:'true'};? ?? } else msg7 = {topic: 'relay7',payload:'false'}; ? if (msg.out7 === 1) { msg8 = {topic: 'relay8',payload:'true'}; } else msg8 = {topic: 'relay8',payload:'false'}; ? node.send(msg1); node.send(msg2); node.send(msg3); node.send(msg4); node.send(msg5); node.send(msg6); node.send(msg7); node.send(msg8); ? return; ? ? ? |
Re: Parsing a string
All,??
Last update.? ?I changed the topic to relay...? Inject of 101010 Give you: Here is the final function: var output = msg.payload.split("");
msg.out0 = parseInt(output[0]);
msg.out1 = parseInt(output[1]);
msg.out2 = parseInt(output[2]);
msg.out3 = parseInt(output[3]);
msg.out4 = parseInt(output[4]);
msg.out5 = parseInt(output[5]);
msg.out6 = parseInt(output[6]);
msg.out7 = parseInt(output[7]);
?
?
if (msg.out0 === 1){
msg1 = {relay: 1,payload:'true'};
} else?
msg1 = {relay: 1,payload:'false'};
?
if (msg.out1 === 1){
msg2 = {relay: 2,payload:'true'};
} else
msg2 = {relay: 2,payload:'false'};
?
if (msg.out2 === 1) {
msg3 = {relay: 3,payload:'true'};
} else
msg3 = {relay: 3,payload:'false'};
?
if (msg.out3 === 1) {
msg4 = {relay: 4,payload:'true'};
} else
msg4 = {relay: 4,payload:'false'};
?
if (msg.out4 === 1) {
msg5 = {relay: 5,payload:'true'};? ??
} else
msg5 = {relay: 5,payload:'false'};
?
if (msg.out5 === 1) {
msg6 = {relay: 6,payload:'true'};
} else
msg6 = {relay: 6,payload:'false'};
?
if (msg.out6 === 1) {
msg7 = {relay: 7,payload:'true'};? ??
} else
msg7 = {relay: 7,payload:'true'};
?
if (msg.out7 === 1) {
msg8 = {relay: 8,payload:'true'};
} else
msg8 = {relay: 8,payload:'false'};
?
node.send(msg1);
node.send(msg2);
node.send(msg3);
node.send(msg4);
node.send(msg5);
node.send(msg6);
node.send(msg7);
node.send(msg8);
?
return;
?
|
Re: Parsing a string
Mike
I like the method Dave used in his DLI Relay Flow. ?The response is an eight-digit number, with 0 or 1 in each digit, depending on the relay status. ? Dave has a function to do a "logical and" for each digit to determine and outputs a true or false. ?Would this work for you? ? For example, if the second digit is 1, then the function "1 & 2" is true, because the binary of the second digit is 2**1 = 2 and 2 logical 2 is true. ?Likewise, for the third digit, 2**2 is 4 so the logical comparator is 4. Alan. WA9WUD And here is the function. ?Of course,var onmsg = { payload: msg.payload,topic:msg.topic }; var offmsg = { payload: msg.payload,topic:msg.topic };
========================= ?
var msg1 = { payload: msg.payload,topic:msg.topic };
var msg2 = { payload: msg.payload,topic:msg.topic };
var msg3 = { payload: msg.payload,topic:msg.topic };
var msg4 = { payload: msg.payload,topic:msg.topic };
var msg5 = { payload: msg.payload,topic:msg.topic };
var msg6 = { payload: msg.payload,topic:msg.topic };
var msg7 = { payload: msg.payload,topic:msg.topic };
var msg8 = { payload: msg.payload,topic:msg.topic };
?
?
//msg.payload=true;
onmsg.payload=true;
offmsg.payload=false;
?
if (msg.payload & ? 1) msg1.payload=true; else msg1.payload=false;
if (msg.payload & ? 2) msg2.payload=true; else msg2.payload=false;
if (msg.payload & ? 4) msg3.payload=true; else msg3.payload=false;
if (msg.payload & ? 8) msg4.payload=true; else msg4.payload=false;
if (msg.payload & ?16) msg5.payload=true; else msg5.payload=false;
if (msg.payload & ?32) msg6.payload=true; else msg6.payload=false;
if (msg.payload & ?64) msg7.payload=true; else msg7.payload=false;
if (msg.payload & 128) msg8.payload=true; else msg8.payload=false;
?
?
?
return [msg1,msg2,msg3,msg4,msg5,msg6,msg7,msg8];?you can download everything form the files section. |
Re: Parsing a string
Here you go...I cleaned it up...? edit...apparently not enough....try this...I used an inject of 10101010
var output = msg.payload.split("");
msg.out0 = parseInt(output[0]);
msg.out1 = parseInt(output[1]);
msg.out2 = parseInt(output[2]);
msg.out3 = parseInt(output[3]);
msg.out4 = parseInt(output[4]);
msg.out5 = parseInt(output[5]);
msg.out6 = parseInt(output[6]);
msg.out7 = parseInt(output[7]);
?
?
if (msg.out0 === 1){
msg1 = {topic: 'relay1',payload:'true'};
} else?
msg1 = {topic: 'relay1',payload:'false'};
?
if (msg.out1 === 1){
msg2 = {topic: 'relay2',payload:'true'};
} else
msg2 = {topic: 'relay2',payload:'false'};
?
if (msg.out2 === 1) {
msg3 = {topic: 'relay3',payload:'true'};
} else
msg3 = {topic: 'relay3',payload:'false'};
?
if (msg.out3 === 1) {
msg4 = {topic: 'relay4',payload:'true'};
} else
msg4 = {topic: 'relay4',payload:'false'};
?
if (msg.out4 === 1) {
msg5 = {topic: 'relay5',payload:'true'};? ??
} else
msg5 = {topic: 'relay5',payload:'false'};
?
if (msg.out5 === 1) {
msg6 = {topic: 'relay6',payload:'true'};
} else
msg6 = {topic: 'relay6',payload:'false'};
?
if (msg.out6 === 1) {
msg7 = {topic: 'relay7',payload:'true'};? ??
} else
msg7 = {topic: 'relay7',payload:'true'};
?
if (msg.out7 === 1) {
msg8 = {topic: 'relay8',payload:'true'};
} else
msg8 = {topic: 'relay8',payload:'false'};
?
node.send(msg1);
node.send(msg2);
node.send(msg3);
node.send(msg4);
node.send(msg5);
node.send(msg6);
node.send(msg7);
node.send(msg8);
?
return;
?
?
|