Hello, we currently have ~100+ Photon-based devices at customer sites. We claim and own all of these in our Particle account, and authenticate the user on our end using our own server / database which we use for any interaction between our web app + Particle device with a single never-expiring access token. We mostly have customers use the Particle iOS app to get onto their own WiFi and so far it works well, and once the device comes online they don’t need to interact with it anymore (unless we are troubleshooting together).
If we have it so that a product is claimed by a Customer, does it still show up in our console and can we flash firmware, see variables, etc.? And can we still use our global access token to control it?
If a product is claimed by a Customer and it does show up in our console, does it still count against blocks of 100 devices from a pricing standpoint?
My guess is that the pricing doesn’t change, and since our servers will likely always be in the middle, I don’t think there is a distinct benefit to using Particle Customers in our case, but please let me know if I am missing something. Thank you!
I recommend not using customers. There are only a few cases where it makes sense:
You have a mobile app that needs to interact with the customer’s devices, and do not have your own server. However, in practice, you’ll actually need your own server anyway to handle things like password reset, so that’s not a very good reason.
You rely on publishing events to devices, instead of using functions or variables. One issue with the single account model is that devices can publish to each other, which is sometimes desirable, sometimes not. Using functions instead of published events from your server and not using customers is often a better alternative.
In most other cases, you’re better off using your server from make API calls on behalf of your users, and handling your own authentication and account creation on your server. This is also an advantage if your are contracting out mobile app development, because it means your mobile app devices don’t need to know anything Particle-specific.
A customer token has the ability to call functions and get variables on their device, and publish events, but cannot log into the console or flash code. Those functions are still handled by you, whether you claim devices to a single account or use customers. The devices still show up in the console, and the pricing is the same.
Additionally, there’s a third option: If your devices do not subscribe to events on device, you don’t have to claim the device or use customers at all. You can use unclaimed product devices, which saves a setup during device onboarding.
Thanks @rickkas7 , that jives with what I read in the documentation.
Can you clarify regarding Customers + Billing / 100 device blocks?
I suspect an unclaimed product device is the only way to not increment against the 100 device block billing, but we need to be able to see and access the device in our Particle Console, so I am guessing this isn’t really an option for us (right?).
In the free plan, any device that is claimed to the account and not in a product (in the developer sandbox), counts toward the 100 device limit. Additionally, every device in a product that is owned by the account, regardless of claiming, counts against the limit.
In the growth plan, any device added to a product counts toward the billable device count after it connects to the cloud the first time. This is true whether the device is claimed to a single account, claimed to a team member, claimed to a customer account, or unclaimed.
The only exception is cellular devices that have deactivated Particle SIM cards are not counted in the growth plan. Cellular devices in the growth plan with 3rd-party SIM cards are counted in the growth plan.