ReefBot, You've Changed

fcmatt

Well-Known Member
View Badges
Joined
Jul 4, 2016
Messages
765
Reaction score
944
Location
MA
Rating - 0%
0   0   0
I am after a UDP message to be broadcast over Ethernet. Ideally it would be something like a 10 value array corresponding with the test results for each test. The message need only be update once an hour or something. It could be transmitted as a floating point value (32bit) or as an integer (16bit) as hundredths of PPM.
for example PO4 could be directly transmitted as 0.086PPM ( floating point) or as 86 for an integer.

I want to tie it directly to my controller for full automatic and self adjusting control.

I prefer a UDP message as it is a single sided broadcast and would require no connection configuration within the reefbot

What controller on the market can handle taking in a udp broadcast packet and do something with it? I assume some type of open source controller.

I also question why you would want to use a udp broadcast packet which you should probably limit to 512 bytes of data so there is little chance of issues taking place. That is not a lot of data I guess or maybe things could fit.

Why wouldn't you just use some protocol already being offered on the units? Could the reefbot just post it on httpd? Perhaps a stripped down version of snmpd? And the controller could use existing tools to grab it.

Dunno. Just sounds odd to send out data as a broadcast which has no guarantee of arrival. Hard to troubleshoot for average users.
 

ZaneTer

Well-Known Member
View Badges
Joined
Jan 14, 2018
Messages
923
Reaction score
878
Rating - 0%
0   0   0
What controller on the market can handle taking in a udp broadcast packet and do something with it? I assume some type of open source controller.

I also question why you would want to use a udp broadcast packet which you should probably limit to 512 bytes of data so there is little chance of issues taking place. That is not a lot of data I guess or maybe things could fit.

Why wouldn't you just use some protocol already being offered on the units? Could the reefbot just post it on httpd? Perhaps a stripped down version of snmpd? And the controller could use existing tools to grab it.

Dunno. Just sounds odd to send out data as a broadcast which has no guarantee of arrival. Hard to troubleshoot for average users.
Good question but you will find that every industrial controller on the market can make use of UDP or TCP/IP messaging. Not a single one will use or offer support for http interfacing. SNMP is pretty hit and miss as to which controllers support it out of the box.
512 bytes provides us with 128 32bit floating point values. If you are only measuring 4 chemicals with your testing you have then used less than 3% of your message capacity. It still provides more than enough messaging space to expand out other chemical tests. The option is still then available to take and INT at the head of the message and use it to multiplex out your message but obviously update frequency can take a bit of a hit but let’s face it, nobody cares if you only get the message once a minute for the particular “page” you are after. If you consider an update time of 50ms, spread over a minute, minus the lost INT for multiplexing you arrive at 612,000bytes.

Not bad for a properly utilised UDP message.

You asked why UDP, that’s easy, it’s a single sided connection. Nobody needs to fiddle with any parameters within the reefbot. The controller simply has to listen and interpret the message based upon the multiplex number at the head of the message. Reefbot wouldn’t care what the partner was or even if it was listening.

I hope that answers the question, feel free to ask any more
 

ZaneTer

Well-Known Member
View Badges
Joined
Jan 14, 2018
Messages
923
Reaction score
878
Rating - 0%
0   0   0
How did you get to "free labour" from a free API? Are you enjoying using R2R for free?
You expect people to offer free development to reefbot without compensation, yet you don’t see that as free labour?

You chose a very poor analogy with R2R as they are not asking people to develop their website not app for free.
 
Last edited by a moderator:

doodledreads

Active Member
View Badges
Joined
Mar 6, 2017
Messages
499
Reaction score
539
Location
South Charlotte
Rating - 0%
0   0   0
You expect people to offer free development to reefbot without compensation, yet you don’t see that as free labour?

You chose a very poor analogy with R2R as they are not asking people to develop their website not app for free.

I think I chose the perfect analogy. Tell me you did not learn from the knowledge of others here. Think people get paid for that? Look up ReefPI and people who share their 3D printing files on the forum. I wonder how much they get paid. I don't expect people to do free development, I am a data engineer by trade and I use and contribute to open source software, you certainly need to be compensated for good work as agreed upon; but Reefbot never asked you to develop anything for them. If you do, its on you. And it's on you if you want to share it or not.

Guess you are a different kinda person and you can have your own opinion. All I am saying is you ripping on Reefbot is unfair; just because they released a free API doesnt mean they have to send a unit to anyone who *might* develop an app. Its like me asking Apple to send me the newest iphone coz I might write an app.
 
Last edited by a moderator:

fcmatt

Well-Known Member
View Badges
Joined
Jul 4, 2016
Messages
765
Reaction score
944
Location
MA
Rating - 0%
0   0   0
Good question but you will find that every industrial controller on the market can make use of UDP or TCP/IP messaging. Not a single one will use or offer support for http interfacing. SNMP is pretty hit and miss as to which controllers support it out of the box.
512 bytes provides us with 128 32bit floating point values. If you are only measuring 4 chemicals with your testing you have then used less than 3% of your message capacity. It still provides more than enough messaging space to expand out other chemical tests. The option is still then available to take and INT at the head of the message and use it to multiplex out your message but obviously update frequency can take a bit of a hit but let’s face it, nobody cares if you only get the message once a minute for the particular “page” you are after. If you consider an update time of 50ms, spread over a minute, minus the lost INT for multiplexing you arrive at 612,000bytes.

Not bad for a properly utilised UDP message.

You asked why UDP, that’s easy, it’s a single sided connection. Nobody needs to fiddle with any parameters within the reefbot. The controller simply has to listen and interpret the message based upon the multiplex number at the head of the message. Reefbot wouldn’t care what the partner was or even if it was listening.

I hope that answers the question, feel free to ask any more

I have a feeling my ignorance of the state of open source controllers and the reefbot will limit my ability to discuss this in depth. I just come from an ISP background that uses open source heavily for the last 20 years. We tend to make do with what the stuff has in place with minimal amount of effort to get the desired results. Often reusing existing tools results in a much more robust solution then hacking in some code. If I knew what daemons each unit had, what cli tools, if cron was available, what db it uses for storing data, etc.. I could probably swing something in hours.
 

ZaneTer

Well-Known Member
View Badges
Joined
Jan 14, 2018
Messages
923
Reaction score
878
Rating - 0%
0   0   0
I think I chose the perfect analogy. Tell me you did not learn from the knowledge of others here. Think people get paid for that? Look up ReefPI and people who share their 3D printing files on the forum. I wonder how much they get paid. I don't expect people to do free development, I am a data engineer by trade and I use and contribute to open source software, you certainly need to be compensated for good work as agreed upon; but Reefbot never asked you to develop anything for them. If you do, its on you. And it's on you if you want to share it or not.

Guess you are a different kinda person and you can have your own opinion. All I am saying is you ripping on Reefbot is unfair; just because they released a free API doesnt mean they have to send a unit to anyone who *might* develop an app. Its like me asking Apple to send me the newest iphone coz I might write an app.
Congratulations, I am a controls and automation engineer but I don’t feel the need to swing that around :)

Again, your analogy of ReefPi is incorrect because nobody is selling them or making money from someone else’s work.

Reefbot is trying to encourage people to work on and develop their system with zero benefit to the contributors. It’s simply ludicrous to even attempt to do that and shows the lack of business ethics within the business. Don’t misunderstand, I respect reefbot for what they have achieved but I do not agree with them attempting to get others to do their work for them.

“If you are good at something never do it for free”
 

ZaneTer

Well-Known Member
View Badges
Joined
Jan 14, 2018
Messages
923
Reaction score
878
Rating - 0%
0   0   0
I have a feeling my ignorance of the state of open source controllers and the reefbot will limit my ability to discuss this in depth. I just come from an ISP background that uses open source heavily for the last 20 years. We tend to make do with what the stuff has in place with minimal amount of effort to get the desired results. Often reusing existing tools results in a much more robust solution then hacking in some code. If I knew what daemons each unit had, what cli tools, if cron was available, what db it uses for storing data, etc.. I could probably swing something in hours.
Agreed, it’s certainly not complex in terms of technical issues on either side. I can’t think of a single device that communicates over Ethernet that doesn’t support UDP. Reefbot could have easily used a simple message structure of 100 bytes allowing for 25 floating point variables or 50 INT based values requiring scaling on the other end.

So many ways to skin a cat on this but it is a shame as not only people using industrial controllers but others using ReefPi or even Arduino based systems could have had easy access to the readout from the Reefbot, integrated in a PID loop and a doser and hey presto, you have an automatic doser with self correction.

I simply won’t do it for free just because someone asked.
 

doodledreads

Active Member
View Badges
Joined
Mar 6, 2017
Messages
499
Reaction score
539
Location
South Charlotte
Rating - 0%
0   0   0
Congratulations, I am a controls and automation engineer but I don’t feel the need to swing that around :)

Again, your analogy of ReefPi is incorrect because nobody is selling them or making money from someone else’s work.

Reefbot is trying to encourage people to work on and develop their system with zero benefit to the contributors. It’s simply ludicrous to even attempt to do that and shows the lack of business ethics within the business. Don’t misunderstand, I respect reefbot for what they have achieved but I do not agree with them attempting to get others to do their work for them.

“If you are good at something never do it for free”
Its like speaking to a wall. Oh well.
 
Last edited:

kapnkush608

2500 Club Member
View Badges
Joined
Jul 10, 2012
Messages
3,829
Reaction score
2,324
Location
Madison
Rating - 0%
0   0   0
I take a very dim view of companies that would attempt to get people to develop their product for them without compensation for their efforts
@drernesto
They aren't asking you to develop anything bruh. They opened up their API so people can develop their own client side applications. I honestly doubt they would let you modify reefbot source. If they have a competent team of developers staffed, it's as simple as asking them if a feature is possible and if they could build it.
 

kapnkush608

2500 Club Member
View Badges
Joined
Jul 10, 2012
Messages
3,829
Reaction score
2,324
Location
Madison
Rating - 0%
0   0   0
Agreed, it’s certainly not complex in terms of technical issues on either side. I can’t think of a single device that communicates over Ethernet that doesn’t support UDP. Reefbot could have easily used a simple message structure of 100 bytes allowing for 25 floating point variables or 50 INT based values requiring scaling on the other end.

So many ways to skin a cat on this but it is a shame as not only people using industrial controllers but others using ReefPi or even Arduino based systems could have had easy access to the readout from the Reefbot, integrated in a PID loop and a doser and hey presto, you have an automatic doser with self correction.

I simply won’t do it for free just because someone asked.
"I WaNt a FrEe ReEf BoT aS cOmPenSaTioN fOr dOiNg sOmEtHinG No ONe aSkED mE tO dO."
- you
 
Back
Top