Possible Arlo integration options

Well let me know how this goes. As time is going on and as Smartthings has decided to actively kill my hub (ADT Smartthings Panel) i am moving further and further away from it. The code for AA should work as I had it triggering the Virtual switch for about a month or so with the above methodology. Let me now if there are any issues. Arlo is pretty much the only reason for me to have it active in a hubless setup.

Our personal experience is a interesting one though. In my home though it did seem to work well with triggering the recording via virtual switch it wasn't without issues. We found that if you wanted to monitor the cameras while activity was happening it seems that it killed the video feed being used for monitoring periodically and basically turning active monitoring into a impossible option. I have heard others say this is a issue with using the same profile that is used for the Smartthings integration, But my wife and i use seperate accounts already so i don't completely believe that reason.

I have recently found the Samsung Automation Studio node for Node red. This looks like it may be the best option now. It uses the New API model so no worry about Hubconnecting going away with the Groovy IDE, and it gives you 100% access to what is part of Smartthings now. I am still fiddling with it, but it is very promising.

I already have a flow setup that replicates Motion detection to Hubitat using a Virtual Motion device from the Smartthings API.

1 Like

I'm going to start diving into this "soon". It does look really handy, and since the node-red node is by the Samsung team it will likely stay working long term.

Could be a REALLY useful conduit for otherwise unsupported cloud integrations.

I already have my Arlo cameras in SmartThings, so I just have to figure out how the nodes and the Samsung Automation Studio works I guess. Any quick tips @mavrrick58 before I just dive in and try to figure it out?

I am still figuring it out, and that with being a node red novice isn't helping make it easier :rage:. Really i just started with the "automatoin example" and the "my device example" from their website.

The harder part for me yesterday was getting my server setup with a reverse proxy to allow Smartthings to talk to my node red instance and not open everything up. You will need a SSL enabled server or Node red to have SSL enabled for the webhook connection from the Smartthings Workspace developer tools.

The Automation Node must have some magic sauce as it handles all of the negotiation once you setup the smartapp in the Workspace.

Only problem is right now it doesn't appear to be working, and i am getting guardrail errors when trying to setup my app again. So i am not sure what is happening.

Well seems to be responding fine now.

Yeah.... I've got the status and command nodes working fine. Can't get the event node to work yet - all the devices are greyed out/disabled when I configure the node.

I'll keep poking on it.

This may be stupid to say, but you know you don't actually have to build anything in the Automation Studio itself, right? The node-red nodes are INSTEAD OF building it in the studio. (EDIT: *** Well, I guess it depends on how you are using it, actually.)

I guess I would be curious how you are using the event node.

I can get status all day long by periodic polling on the status node - Arlo motion events work great at 10s polling. But the Arlo devices are greyed out/unusable in the event node for me both in node-red and Samsung Automation Studio. So I'm assuming somehow I have the devices setup wrong in SmartThings or I can't do events with that data type and need to do it via polling.

Yea. I first loaded it in my local Node red setup. I did end up trying out the examples on the Samsung Automation studio on their side to help me figure out a few things that weren't aligning exactly from their examples. It was probably just a lack of understanding on my part.

The key with the Event node is that is based on having the Automation and smartapp part figured out and setup in Smartthings. This is what i have that works for the most part.

Basically you have to have the Automation node that allows you to setup the endpoint on your local node red instance. The Device profile that is just a config node to specify the type of device to include when the Smartapp part is working, and the event to filter out what event you are looking for. After that in my example i have it executing a command on a Virtual motion device to activate or inactivate the motion sensor.

You do need to use the Samsung developer work space and also setup a project their. It will need the endpoint you setup on the Automation node. It will need to be able to use SSL to connect to it so you may need ngnix or a reverse proxy infront of the node red instance. Once you setup the project in your work space you will need it to validate against the node red endpoint. If it all works then you can deploy it for yourself in the work space. Then go to your phone and open the smartthings app. Go the area in the settings section for about smartthing and hold down for 5 seconds to enable developer mode. Once that is done turn it on. Now you should be able to go and install the smartapp based on the config you setup in node red. The automation node handles the smartapp setup process in node red based on what you setup.

Eh, I would rather just poll the status node, rather than setup SSL and reverse webhooks.

But what you did makes perfect sense, too, if you don't want to poll the status!

So I'm just going to let this run a few days and see how it goes:

The main reason I thought to do it was to maybe get motion activity from the cameras. The event should be near instantaneous of motion happening vs pooling which always has a possible max delay of your polling interval.

Honestly it was more about if i could rather than if i should. I already have a server that was running reverse proxy's for some other stuff and has SSL enabled so it wasn't hard to setup that up. I know of some easy ways for others to do that as well with Unraid, but I would imagine it could be a pain for folks that don't have infrastructure at home to do it.

The Native Samsung Automation Studio may work well for folks as a alternative to the Groovy IDE on ST side if it continues to improve. It also removes the need for the SSL setup. But then limits your interactions with devices at home with a full blown node red setup.

I think I am hitting some issues with Guardrails and rate limits though. Not sure why as that flow is only for 3 devices.

1 Like

I also have submitted a few (and more to come) issues on their github site. Wonder how receptive they would be to improving a few things - like making the parameters for videoCapture command to be set by variables instead of hard entered.

1 Like

Do you know of a good way to pull a HTTP Response header out with Node red. That is where the Guardrails and Rate Limits are kept during activity.

Not offhand. If it is in a message though, like it would be from an http-in node, it can be done with split or a function node.

So is this an alternative to AA if we just wanted to arm/disarm the cameras? Seems like a lot of work to set up :sweat:.

I don't know what AA is.

Depends how you do it...

If you do it via polling, and already have node-red like many of us do, it was about 15 seconds to setup.

If you want to do it the definitely better/faster, but much harder, way with events instead of polling then yes it could be time consuming depending on your infrastructure/skills.

For Arlo devices, polling motion is doable because it holds the motion=active event quite a while, so it shouldn't be missed. BUT there is a delay of your polling frequency though, which may not be OK for some uses.

And obviously, aside from Arlo you could bring ANYTHING that is in SmartThings over - devices, 3rd party integrations, other. Possibilities are intriguing!

2 Likes

Could be or not. Depends on how much you want to put in node red. In theory you could have flows that monitor for all the same events in Hubitat and then create the same action to Smartthings. I haven't spent enough time to test all scenarios out though. At the very least you could probably use this with AA just to pass calls to Smartthings in place of Hub Connect. HUBCONNECT is dependent on the Groovy IDE and will stop working when it is retired. This should work after that happens.

So to be clear the dependencies you have to have to use events are. As followes.

  1. A developer workspace with Samsung
  2. Node red avaliable with SSL connectivity to the internet.

Getting the samsung developer workspace ia about a 5 min setup. And easy to do.

Getting node red on the internet safely with SSL is the tricky part. It also depends allot on what you have to run it. There are many ways to accomplish it with some being very easy and some not so much. Just make sure you dont open up your Node red server to the internet without taking the steps to secure it. Bu default the server is open to anyone on your local network.

Once you have the ability to get a ssl connection to Node red from the internet it is very easy to setup event based flows as well. Maybe a 5 min process to do besides setting up the flows.

I am fortunate i already had a reverse proxy with SSL running for other purposes so adding Node red was a piece of cake.

One problem I am trying to wrap my head around are Smartthings API Guardrails and Rate Limits. Once they are considered polling may end up being the best option still.

1 Like

It's @mavrrick58's arlo app (Arlo Assistant)

Indeed! I have long retired my ST hub, but there must be some things that HE doesn't support or might well be easier to do on ST!

I have retired my hub as well. I was going to leave it running until they forced me to abandon it. Simply put I am a casualty of the recent announcement of the 3 hubs that will be retired in June. The ADT Smartthings panel, the Gen 1 hub and the Smartthings Link are all going to be bricks by June 31st. Some will be gone by June 1st. I finished migrating what I could off and now am hub-less. Pretty much all that is left are the Arlo Cameras I have.

Today I spent some time working on a DTH for the Arlo cameras. I was testing with virtual motion sensors and that seems to be working great once I separated each camera into it's own flow. The key as i see it is that there are certain things that can just be polled and other that if you want the best use case may want endpoints with SAS. I am working on creating the flows that would effectively allow me to shut down hub connect completely.

If all you want to do is arm and disarm via Hubitat all you need to do is use SAS to pass the On/Off command to the cameras when you want to arm and disarm them. Keep in mind unless you use Arlo Cloud Arm and disarm in their traditional sense is different. It can also mean different things like do you want to have the cameras armed to send motion detection, but not actually record. That was part of what Arlo Assistant does. It helps provide conditions to control how the recording is taking place. You could continue to do that with SAS as well in different flows. The other option is continue to use a virtual switch in Smartthings to just tell Smartthings when to record and pass the on command through SAS to Smartthings and continue to let Smartthings trigger the recording.

1 Like

Ok I have taken this a step further now and wanted to post a update about using the "Samsung Automation Studio"

I just created a new Virtual Drivers for Arlo Cameras. It is located at Arlo Virtual Driver on Github.

This driver will allow us to use SAS in Node red to present virtual devices of the Arlo cameras in HE. This virtual device will maintain local states. It externalizes with commands of all of the states so that you can use commands with the Hubitat pallet for Node red to update Hubitat based on polls from Smartthings.

I have also setup endpoints in Node Red with SAS so that I can get immediate updates from smartthings when activity takes place for the cameras. I have some cleanup to do with my apps in Smartthings that were created but it apperas to be fully functional.

A summary of what this gives me is as follows.

  1. I get immediate updates for motion so this fully enables the cameras to be used for motoin detection.
  2. HE will be aware if the cameras go ofline.
  3. HEwill be fully aware of the cameras battery states
  4. HE will be fully aware of the cameras Siren states
  5. HE will trigger the sirens if my alarm goes off on my two siren enabled cameras and disable them if when it is disabled.
  6. HE can trigger the cameras to be turned off.

If Samsung ever adds Sound Detection to their Arlo integration we can easily make HE aware of that with this as well. The commands are already part of the driver.

1 Like

I have Updated the Arlo Virtual Driver above. I made a few changes to make it more usable with the Hubitat pallen for Node red. This will also allow you better options for using it with SAMSUNG Automation Studio.
Here are the flows i have setup with Node Red and Samsung Automation studio.

This is a polling flow that will pull the status of the cameras from Samsung and then put the correct state on the Arlo Virtual Driver.

[{"id":"8cc2fea4.c2483","type":"tab","label":"Smartthings Pooling for Hubitat devices","disabled":false,"info":""},{"id":"5cf2a4d9.a17eec","type":"installed-device","z":"8cc2fea4.c2483","name":"Arlo Cameras","alias":"token:9d77ef17","device":{"deviceId":"49c91cd4-76c6-498e-8a0c-c4c0f2e58185","name":"c2c-arlo-pro-3-switch","label":"Back Yard","manufacturerName":"SmartThings","presentationId":"SmartThings-smartthings-c2c_arlo_pro_3","locationId":"6deb2ff0-5ece-4c2c-9709-fc4e2819c574","roomId":"fe89c8a7-7a39-4465-99b5-0db72a4ff4ad","createTime":"2020-12-12T02:37:52.748Z","profile":{"id":"89aefc3a-e210-4678-944c-638d47d296f6"},"viper":{"manufacturerName":"Arlo","modelName":"VMC4040P"},"type":"VIPER","restrictionTier":0,"capabilities":[{"id":"alarm","version":1,"vid":"alarm_v1"},{"id":"battery","version":1,"vid":"battery_v1"},{"id":"healthCheck","version":1,"vid":"healthCheck_v1"},{"id":"motionSensor","version":1,"vid":"motionSensor_v1"},{"id":"refresh","version":1,"vid":"refresh_v1"},{"id":"soundSensor","version":1,"vid":"soundSensor_v1"},{"id":"switch","version":1,"vid":"switch_v1"},{"id":"videoCapture","version":1,"vid":"videoCapture_v1"},{"id":"videoStream","version":1,"vid":"videoStream_v1"}]},"devices":["92edcacd-1f05-4aac-b2a8-1437e4e702bb","7a84818c-fb66-448a-8d5d-ca4125d9d23c","d909bea5-6af5-4b4b-a9c4-86d1f32ab7c3","7288ef28-7dde-4ad8-b8cd-a5b8a1bb9a3d","49c91cd4-76c6-498e-8a0c-c4c0f2e58185","42811632-3af1-42c9-9b2b-0e37925fbc03"],"profileId":"5cf2a4d9.a17eec","x":100,"y":40,"wires":[]},{"id":"c6cc84cf.761938","type":"status-device","z":"8cc2fea4.c2483","name":"Back Yard Camera States","alias":"Back Yard","deviceNodeId":"5cf2a4d9.a17eec","deviceType":"installed-device","deviceId":"49c91cd4-76c6-498e-8a0c-c4c0f2e58185","componentId":"","capabilityId":"healthCheck_v1","attributeId":"DeviceWatch-DeviceStatus","rules":[],"logging":false,"loggingEditor":false,"loggingConsole":false,"outputs":1,"x":370,"y":120,"wires":[["11ea2fea.68a03","7a158708.65e3e8","daf8f023.4f117","567ddc21.980d64","8720af53.34cae"]]},{"id":"b539a4d.2810258","type":"debug","z":"8cc2fea4.c2483","name":"Backyard Comands","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"true","targetType":"full","statusVal":"","statusType":"auto","x":1330,"y":120,"wires":[]},{"id":"2ae55ee8.2fd612","type":"hubitat command","z":"8cc2fea4.c2483","deviceLabel":"Backyard Camera","name":"","server":"37a6fe31.441bc2","deviceId":"515","command":"","commandArgs":"","x":1130,"y":120,"wires":[["b539a4d.2810258"]]},{"id":"75c5b60b.39b178","type":"inject","z":"8cc2fea4.c2483","name":"","props":[{"p":"payload"},{"p":"topic","vt":"str"}],"repeat":"60","crontab":"","once":false,"onceDelay":0.1,"topic":"","payload":"","payloadType":"date","x":110,"y":480,"wires":[["d22c9149.0f352","c6cc84cf.761938","91428a1e.ec2988","1bd45f24.fe0f71","54cc58a5.8bd8f8","44c5b77a.9ced88"]]},{"id":"d22c9149.0f352","type":"status-device","z":"8cc2fea4.c2483","name":"Front Door Doorbell States","alias":"Front Door Doorbell","deviceNodeId":"5cf2a4d9.a17eec","deviceType":"installed-device","deviceId":"d909bea5-6af5-4b4b-a9c4-86d1f32ab7c3","componentId":"","capabilityId":"healthCheck_v1","attributeId":"DeviceWatch-DeviceStatus","rules":[],"logging":false,"loggingEditor":false,"loggingConsole":false,"outputs":1,"x":380,"y":320,"wires":[["1edc128a.7c56ed","cfee088b.c40ef8","a2fe1d0a.48c9f","522abd66.4f5114","fb1fd3cc.c2063"]]},{"id":"883d376c.705e48","type":"rbe","z":"8cc2fea4.c2483","name":"","func":"rbe","gap":"","start":"","inout":"out","property":"payload","x":950,"y":340,"wires":[["8bca3fdf.8b3b2"]]},{"id":"1edc128a.7c56ed","type":"change","z":"8cc2fea4.c2483","name":"Set device health value","rules":[{"t":"set","p":"command","pt":"msg","to":"healthcheck","tot":"str"},{"t":"set","p":"arguments","pt":"msg","to":"payload.components.main.healthCheck[\"DeviceWatch-DeviceStatus\"].value","tot":"msg"}],"action":"","property":"","from":"","to":"","reg":false,"x":710,"y":340,"wires":[["883d376c.705e48"]]},{"id":"7a9d9dd9.7f48f4","type":"debug","z":"8cc2fea4.c2483","name":"Front Door Commands","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"true","targetType":"full","statusVal":"","statusType":"auto","x":1340,"y":320,"wires":[]},{"id":"8bca3fdf.8b3b2","type":"hubitat command","z":"8cc2fea4.c2483","deviceLabel":"Front Door Doorbell","name":"","server":"37a6fe31.441bc2","deviceId":"511","command":"","commandArgs":"","x":1130,"y":320,"wires":[["7a9d9dd9.7f48f4"]]},{"id":"522abd66.4f5114","type":"change","z":"8cc2fea4.c2483","name":"Set Battery command","rules":[{"t":"set","p":"command","pt":"msg","to":"battery","tot":"str"},{"t":"set","p":"arguments","pt":"msg","to":"payload.components.main.battery.battery.value","tot":"msg"}],"action":"","property":"","from":"","to":"","reg":false,"x":700,"y":380,"wires":[["b0bfe313.995bd"]]},{"id":"b0bfe313.995bd","type":"rbe","z":"8cc2fea4.c2483","name":"","func":"rbe","gap":"","start":"","inout":"out","property":"payload","x":950,"y":380,"wires":[["8bca3fdf.8b3b2"]]},{"id":"cfee088b.c40ef8","type":"debug","z":"8cc2fea4.c2483","name":"Front Door Payload research","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"payload","targetType":"msg","statusVal":"","statusType":"auto","x":380,"y":280,"wires":[]},{"id":"a2fe1d0a.48c9f","type":"change","z":"8cc2fea4.c2483","name":"Set Alarm Command and parm","rules":[{"t":"set","p":"command","pt":"msg","to":"alarm","tot":"str"},{"t":"set","p":"arguments","pt":"msg","to":"payload.components.main.alarm.alarm.value","tot":"msg"}],"action":"","property":"","from":"","to":"","reg":false,"x":730,"y":260,"wires":[["2857e953.5106d6"]]},{"id":"2857e953.5106d6","type":"rbe","z":"8cc2fea4.c2483","name":"","func":"rbe","gap":"","start":"","inout":"out","property":"payload","x":950,"y":260,"wires":[["8bca3fdf.8b3b2"]]},{"id":"fb1fd3cc.c2063","type":"change","z":"8cc2fea4.c2483","name":"Set Switch command ","rules":[{"t":"set","p":"command","pt":"msg","to":"payload.components.main.switch.switch.value","tot":"msg"}],"action":"","property":"","from":"","to":"","reg":false,"x":700,"y":300,"wires":[["e031c975.f5fde8"]]},{"id":"e031c975.f5fde8","type":"rbe","z":"8cc2fea4.c2483","name":"","func":"rbe","gap":"","start":"","inout":"out","property":"payload","x":950,"y":300,"wires":[["8bca3fdf.8b3b2"]]},{"id":"9cf24a96.bd8c18","type":"rbe","z":"8cc2fea4.c2483","name":"","func":"rbe","gap":"","start":"","inout":"out","property":"payload","x":950,"y":140,"wires":[["2ae55ee8.2fd612"]]},{"id":"daf8f023.4f117","type":"change","z":"8cc2fea4.c2483","name":"Set device health value","rules":[{"t":"set","p":"command","pt":"msg","to":"healthcheck","tot":"str"},{"t":"set","p":"arguments","pt":"msg","to":"payload.components.main.healthCheck[\"DeviceWatch-DeviceStatus\"].value","tot":"msg"}],"action":"","property":"","from":"","to":"","reg":false,"x":710,"y":140,"wires":[["9cf24a96.bd8c18"]]},{"id":"567ddc21.980d64","type":"change","z":"8cc2fea4.c2483","name":"Set Battery command","rules":[{"t":"set","p":"command","pt":"msg","to":"battery","tot":"str"},{"t":"set","p":"arguments","pt":"msg","to":"payload.components.main.battery.battery.value","tot":"msg"}],"action":"","property":"","from":"","to":"","reg":false,"x":700,"y":180,"wires":[["b32ac47f.ac3188"]]},{"id":"b32ac47f.ac3188","type":"rbe","z":"8cc2fea4.c2483","name":"","func":"rbe","gap":"","start":"","inout":"out","property":"payload","x":950,"y":180,"wires":[["2ae55ee8.2fd612"]]},{"id":"11ea2fea.68a03","type":"change","z":"8cc2fea4.c2483","name":"Set Alarm Command and parm","rules":[{"t":"set","p":"command","pt":"msg","to":"alarm","tot":"str"},{"t":"set","p":"arguments","pt":"msg","to":"payload.components.main.alarm.alarm.value","tot":"msg"}],"action":"","property":"","from":"","to":"","reg":false,"x":730,"y":60,"wires":[["e8102895.b91498"]]},{"id":"e8102895.b91498","type":"rbe","z":"8cc2fea4.c2483","name":"","func":"rbe","gap":"","start":"","inout":"out","property":"payload","x":950,"y":60,"wires":[["2ae55ee8.2fd612"]]},{"id":"7a158708.65e3e8","type":"change","z":"8cc2fea4.c2483","name":"Set Switch command ","rules":[{"t":"set","p":"command","pt":"msg","to":"payload.components.main.switch.switch.value","tot":"msg"}],"action":"","property":"","from":"","to":"","reg":false,"x":700,"y":100,"wires":[["9ac5b38.49cf15"]]},{"id":"9ac5b38.49cf15","type":"rbe","z":"8cc2fea4.c2483","name":"","func":"rbe","gap":"","start":"","inout":"out","property":"payload","x":950,"y":100,"wires":[["2ae55ee8.2fd612"]]},{"id":"8720af53.34cae","type":"debug","z":"8cc2fea4.c2483","name":"Backyard payload Research","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"payload","targetType":"msg","statusVal":"","statusType":"auto","x":380,"y":80,"wires":[]},{"id":"91428a1e.ec2988","type":"status-device","z":"8cc2fea4.c2483","name":"Driveway  States","alias":"Driveway","deviceNodeId":"5cf2a4d9.a17eec","deviceType":"installed-device","deviceId":"7288ef28-7dde-4ad8-b8cd-a5b8a1bb9a3d","componentId":"","capabilityId":"healthCheck_v1","attributeId":"DeviceWatch-DeviceStatus","rules":[],"logging":false,"loggingEditor":false,"loggingConsole":false,"outputs":1,"x":340,"y":500,"wires":[["27a2653c.0731da","d5eeac49.abdaa","68313e87.09bd6","e59ee776.a729e8"]]},{"id":"64f11b3d.3fbe74","type":"debug","z":"8cc2fea4.c2483","name":"Driveway Commands","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"true","targetType":"full","statusVal":"","statusType":"auto","x":1340,"y":500,"wires":[]},{"id":"678d838c.78450c","type":"hubitat command","z":"8cc2fea4.c2483","deviceLabel":"Driveway Camera","name":"","server":"37a6fe31.441bc2","deviceId":"516","command":"","commandArgs":"","x":1130,"y":500,"wires":[["64f11b3d.3fbe74"]]},{"id":"36e992ee.c97d2e","type":"rbe","z":"8cc2fea4.c2483","name":"","func":"rbe","gap":"","start":"","inout":"out","property":"payload","x":950,"y":500,"wires":[["678d838c.78450c"]]},{"id":"68313e87.09bd6","type":"change","z":"8cc2fea4.c2483","name":"Set device health value","rules":[{"t":"set","p":"command","pt":"msg","to":"healthcheck","tot":"str"},{"t":"set","p":"arguments","pt":"msg","to":"payload.components.main.healthCheck[\"DeviceWatch-DeviceStatus\"].value","tot":"msg"}],"action":"","property":"","from":"","to":"","reg":false,"x":710,"y":500,"wires":[["36e992ee.c97d2e"]]},{"id":"e59ee776.a729e8","type":"change","z":"8cc2fea4.c2483","name":"Set Battery command","rules":[{"t":"set","p":"command","pt":"msg","to":"battery","tot":"str"},{"t":"set","p":"arguments","pt":"msg","to":"payload.components.main.battery.battery.value","tot":"msg"}],"action":"","property":"","from":"","to":"","reg":false,"x":700,"y":540,"wires":[["2270d760.9c1fa8"]]},{"id":"2270d760.9c1fa8","type":"rbe","z":"8cc2fea4.c2483","name":"","func":"rbe","gap":"","start":"","inout":"out","property":"payload","x":950,"y":540,"wires":[["678d838c.78450c"]]},{"id":"d5eeac49.abdaa","type":"change","z":"8cc2fea4.c2483","name":"Set Switch command ","rules":[{"t":"set","p":"command","pt":"msg","to":"payload.components.main.switch.switch.value","tot":"msg"}],"action":"","property":"","from":"","to":"","reg":false,"x":700,"y":460,"wires":[["2b989dad.223b02"]]},{"id":"2b989dad.223b02","type":"rbe","z":"8cc2fea4.c2483","name":"","func":"rbe","gap":"","start":"","inout":"out","property":"payload","x":950,"y":460,"wires":[["678d838c.78450c"]]},{"id":"27a2653c.0731da","type":"debug","z":"8cc2fea4.c2483","name":"Driveway Payload Research","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"payload","targetType":"msg","statusVal":"","statusType":"auto","x":380,"y":460,"wires":[]},{"id":"1bd45f24.fe0f71","type":"status-device","z":"8cc2fea4.c2483","name":"Breakfast Room States","alias":"Breakfast Room","deviceNodeId":"5cf2a4d9.a17eec","deviceType":"installed-device","deviceId":"42811632-3af1-42c9-9b2b-0e37925fbc03","componentId":"","capabilityId":"healthCheck_v1","attributeId":"DeviceWatch-DeviceStatus","rules":[],"logging":false,"loggingEditor":false,"loggingConsole":false,"outputs":1,"x":370,"y":660,"wires":[["fa9ecafa.c8cfe8","c10b1e0a.843db","2a1ddd8b.5c9fc2","30f63793.db1ad8"]]},{"id":"72f3b1bc.936b2","type":"debug","z":"8cc2fea4.c2483","name":"Breakfast Room Commands ","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"true","targetType":"full","statusVal":"","statusType":"auto","x":1400,"y":660,"wires":[]},{"id":"77d4df64.8f623","type":"hubitat command","z":"8cc2fea4.c2483","deviceLabel":"Breakfast Room Camera","name":"","server":"37a6fe31.441bc2","deviceId":"513","command":"","commandArgs":"","x":1150,"y":660,"wires":[["72f3b1bc.936b2"]]},{"id":"d36d9e23.f6e89","type":"rbe","z":"8cc2fea4.c2483","name":"","func":"rbe","gap":"","start":"","inout":"out","property":"payload","x":950,"y":660,"wires":[["77d4df64.8f623"]]},{"id":"2a1ddd8b.5c9fc2","type":"change","z":"8cc2fea4.c2483","name":"Set device health value","rules":[{"t":"set","p":"command","pt":"msg","to":"healthcheck","tot":"str"},{"t":"set","p":"arguments","pt":"msg","to":"payload.components.main.healthCheck[\"DeviceWatch-DeviceStatus\"].value","tot":"msg"}],"action":"","property":"","from":"","to":"","reg":false,"x":710,"y":660,"wires":[["d36d9e23.f6e89"]]},{"id":"30f63793.db1ad8","type":"change","z":"8cc2fea4.c2483","name":"Set Battery command","rules":[{"t":"set","p":"command","pt":"msg","to":"battery","tot":"str"},{"t":"set","p":"arguments","pt":"msg","to":"payload.components.main.battery.battery.value","tot":"msg"}],"action":"","property":"","from":"","to":"","reg":false,"x":700,"y":700,"wires":[["f4dfefdc.73318"]]},{"id":"f4dfefdc.73318","type":"rbe","z":"8cc2fea4.c2483","name":"","func":"rbe","gap":"","start":"","inout":"out","property":"payload","x":950,"y":700,"wires":[["77d4df64.8f623"]]},{"id":"c10b1e0a.843db","type":"change","z":"8cc2fea4.c2483","name":"Set Switch command ","rules":[{"t":"set","p":"command","pt":"msg","to":"payload.components.main.switch.switch.value","tot":"msg"}],"action":"","property":"","from":"","to":"","reg":false,"x":700,"y":620,"wires":[["b84d271b.7b4af8"]]},{"id":"b84d271b.7b4af8","type":"rbe","z":"8cc2fea4.c2483","name":"","func":"rbe","gap":"","start":"","inout":"out","property":"payload","x":950,"y":620,"wires":[["77d4df64.8f623"]]},{"id":"fa9ecafa.c8cfe8","type":"debug","z":"8cc2fea4.c2483","name":"Breakfast Room Payload","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"payload","targetType":"msg","statusVal":"","statusType":"auto","x":370,"y":620,"wires":[]},{"id":"54cc58a5.8bd8f8","type":"status-device","z":"8cc2fea4.c2483","name":"Great Room Camera States","alias":"Great Room Camera","deviceNodeId":"5cf2a4d9.a17eec","deviceType":"installed-device","deviceId":"92edcacd-1f05-4aac-b2a8-1437e4e702bb","componentId":"","capabilityId":"healthCheck_v1","attributeId":"DeviceWatch-DeviceStatus","rules":[],"logging":false,"loggingEditor":false,"loggingConsole":false,"outputs":1,"x":380,"y":800,"wires":[["911391ec.59898","86cdb6ee.1287b8","72bd280e.8caf08"]]},{"id":"82bc4c41.9a9ed","type":"rbe","z":"8cc2fea4.c2483","name":"","func":"rbe","gap":"","start":"","inout":"out","property":"payload","x":950,"y":820,"wires":[["4e78659e.7a8c1c"]]},{"id":"72bd280e.8caf08","type":"change","z":"8cc2fea4.c2483","name":"Set device health value","rules":[{"t":"set","p":"command","pt":"msg","to":"healthcheck","tot":"str"},{"t":"set","p":"arguments","pt":"msg","to":"payload.components.main.healthCheck[\"DeviceWatch-DeviceStatus\"].value","tot":"msg"}],"action":"","property":"","from":"","to":"","reg":false,"x":710,"y":820,"wires":[["82bc4c41.9a9ed"]]},{"id":"86cdb6ee.1287b8","type":"change","z":"8cc2fea4.c2483","name":"Set Switch command ","rules":[{"t":"set","p":"command","pt":"msg","to":"payload.components.main.switch.switch.value","tot":"msg"}],"action":"","property":"","from":"","to":"","reg":false,"x":700,"y":780,"wires":[["818630ec.6c21f"]]},{"id":"818630ec.6c21f","type":"rbe","z":"8cc2fea4.c2483","name":"","func":"rbe","gap":"","start":"","inout":"out","property":"payload","x":950,"y":780,"wires":[["4e78659e.7a8c1c"]]},{"id":"911391ec.59898","type":"debug","z":"8cc2fea4.c2483","name":"Greatroom Payload","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"payload","targetType":"msg","statusVal":"","statusType":"auto","x":350,"y":760,"wires":[]},{"id":"4e78659e.7a8c1c","type":"hubitat command","z":"8cc2fea4.c2483","deviceLabel":"Great Room Camera","name":"","server":"37a6fe31.441bc2","deviceId":"514","command":"","commandArgs":"","x":1140,"y":800,"wires":[["6e45416d.aa65c"]]},{"id":"6e45416d.aa65c","type":"debug","z":"8cc2fea4.c2483","name":"Great Room Commands","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"true","targetType":"full","statusVal":"","statusType":"auto","x":1390,"y":800,"wires":[]},{"id":"44c5b77a.9ced88","type":"status-device","z":"8cc2fea4.c2483","name":"Kitchen Camera States","alias":"Great Room Camera","deviceNodeId":"5cf2a4d9.a17eec","deviceType":"installed-device","deviceId":"92edcacd-1f05-4aac-b2a8-1437e4e702bb","componentId":"","capabilityId":"healthCheck_v1","attributeId":"DeviceWatch-DeviceStatus","rules":[],"logging":false,"loggingEditor":false,"loggingConsole":false,"outputs":1,"x":370,"y":920,"wires":[["df606a18.264998","ba91e69d.ea74c8","4deca052.dbd5d"]]},{"id":"203dc463.0f7a0c","type":"rbe","z":"8cc2fea4.c2483","name":"","func":"rbe","gap":"","start":"","inout":"out","property":"payload","x":950,"y":940,"wires":[["49dfd65.195a528"]]},{"id":"4deca052.dbd5d","type":"change","z":"8cc2fea4.c2483","name":"Set device health value","rules":[{"t":"set","p":"command","pt":"msg","to":"healthcheck","tot":"str"},{"t":"set","p":"arguments","pt":"msg","to":"payload.components.main.healthCheck[\"DeviceWatch-DeviceStatus\"].value","tot":"msg"}],"action":"","property":"","from":"","to":"","reg":false,"x":710,"y":940,"wires":[["203dc463.0f7a0c"]]},{"id":"ba91e69d.ea74c8","type":"change","z":"8cc2fea4.c2483","name":"Set Switch command ","rules":[{"t":"set","p":"command","pt":"msg","to":"payload.components.main.switch.switch.value","tot":"msg"}],"action":"","property":"","from":"","to":"","reg":false,"x":700,"y":900,"wires":[["69f33028.ec7ca"]]},{"id":"69f33028.ec7ca","type":"rbe","z":"8cc2fea4.c2483","name":"","func":"rbe","gap":"","start":"","inout":"out","property":"payload","x":950,"y":900,"wires":[["49dfd65.195a528"]]},{"id":"df606a18.264998","type":"debug","z":"8cc2fea4.c2483","name":"Kitchen Payload","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"payload","targetType":"msg","statusVal":"","statusType":"auto","x":340,"y":880,"wires":[]},{"id":"49dfd65.195a528","type":"hubitat command","z":"8cc2fea4.c2483","deviceLabel":"Kitchen Camera","name":"","server":"37a6fe31.441bc2","deviceId":"517","command":"","commandArgs":"","x":1120,"y":920,"wires":[["a2710cf3.777bd"]]},{"id":"a2710cf3.777bd","type":"debug","z":"8cc2fea4.c2483","name":"Kitchen Commands","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"true","targetType":"full","statusVal":"","statusType":"auto","x":1370,"y":920,"wires":[]},{"id":"71802c7e.dc2ed4","type":"comment","z":"8cc2fea4.c2483","name":"Arlo Pro3","info":"","x":320,"y":160,"wires":[]},{"id":"df6db5a3.8d26a8","type":"comment","z":"8cc2fea4.c2483","name":"Arlo Video Door Bell","info":"","x":350,"y":360,"wires":[]},{"id":"161fcf30.286f31","type":"comment","z":"8cc2fea4.c2483","name":"Arlo Pro 2","info":"","x":320,"y":540,"wires":[]},{"id":"36b465ab.1c4ada","type":"comment","z":"8cc2fea4.c2483","name":"Arlo Pro2","info":"","x":320,"y":700,"wires":[]},{"id":"4d925313.4e8edc","type":"comment","z":"8cc2fea4.c2483","name":"Arlo Q Cameras","info":"","x":340,"y":840,"wires":[]},{"id":"7c6d9420.2102dc","type":"comment","z":"8cc2fea4.c2483","name":"Arlo Q Cameras","info":"","x":340,"y":960,"wires":[]},{"id":"37a6fe31.441bc2","type":"hubitat config","name":"Main Hub","usetls":false,"host":"192.168.86.35","port":"80","appId":"563","nodeRedServer":"http://192.168.86.43:1880","webhookPath":"/hubitat/webhook","autoRefresh":true,"useWebsocket":false,"colorEnabled":false,"color":"#ace043"}]

This flow varies a little bit based what camera model is used, but shows how to get the status into Smarthings using a samsung PAT token with the Hubitat node red pallet and the Arlo Virtual Driver. You will need to provide a PAT token for this flow provided by Samsung. The token will be added to the My Device node in the upper left of the flow.

This flow show how to send commands based on changes with the Arlo Virtual Driver back to Smartthings based on changes in Hubitat.

[{"id":"e92dc518.89f428","type":"tab","label":"Hubitat Back To Smartthings","disabled":false,"info":""},{"id":"1f224f56.6598a1","type":"hubitat device","z":"e92dc518.89f428","deviceLabel":"Breakfast Room Camera","name":"","server":"37a6fe31.441bc2","deviceId":"513","attribute":"switch","sendEvent":true,"x":170,"y":80,"wires":[["b5a2cff0.798f6"]]},{"id":"6b40678c.0e8258","type":"command-device","z":"e92dc518.89f428","name":"Breakfast Room on","deviceNodeId":"d4d3cd8a.0abcb","deviceType":"installed-device","deviceId":"42811632-3af1-42c9-9b2b-0e37925fbc03","capabilityId":"switch_v1","attributeId":"on","rules":[{"capaId":"switch_v1","attrId":"on","args":[]}],"logging":false,"outputs":1,"x":630,"y":60,"wires":[[]]},{"id":"b5a2cff0.798f6","type":"switch","z":"e92dc518.89f428","name":"","property":"payload.value","propertyType":"msg","rules":[{"t":"eq","v":"on","vt":"str"},{"t":"eq","v":"off","vt":"str"}],"checkall":"true","repair":false,"outputs":2,"x":390,"y":80,"wires":[["6b40678c.0e8258"],["12910b4b.9fe825"]]},{"id":"d4d3cd8a.0abcb","type":"installed-device","z":"e92dc518.89f428","name":"Arlo Cameras","alias":"token:9d77ef17","device":{"deviceId":"42811632-3af1-42c9-9b2b-0e37925fbc03","name":"c2c-arlo-go-switch","label":"Breakfast Room","manufacturerName":"SmartThings","presentationId":"SmartThings-smartthings-c2c_arlo_go","locationId":"6deb2ff0-5ece-4c2c-9709-fc4e2819c574","roomId":"fe89c8a7-7a39-4465-99b5-0db72a4ff4ad","createTime":"2020-12-12T02:37:52.746Z","profile":{"id":"c6adb5c6-6fc1-49bc-9580-88ff9c6d9e10"},"viper":{"manufacturerName":"Arlo","modelName":"VMC4030P"},"type":"VIPER","restrictionTier":0,"capabilities":[{"id":"battery","version":1,"vid":"battery_v1"},{"id":"healthCheck","version":1,"vid":"healthCheck_v1"},{"id":"motionSensor","version":1,"vid":"motionSensor_v1"},{"id":"refresh","version":1,"vid":"refresh_v1"},{"id":"soundSensor","version":1,"vid":"soundSensor_v1"},{"id":"switch","version":1,"vid":"switch_v1"},{"id":"videoCapture","version":1,"vid":"videoCapture_v1"},{"id":"videoStream","version":1,"vid":"videoStream_v1"}]},"devices":["92edcacd-1f05-4aac-b2a8-1437e4e702bb","7a84818c-fb66-448a-8d5d-ca4125d9d23c","d909bea5-6af5-4b4b-a9c4-86d1f32ab7c3","7288ef28-7dde-4ad8-b8cd-a5b8a1bb9a3d","49c91cd4-76c6-498e-8a0c-c4c0f2e58185","42811632-3af1-42c9-9b2b-0e37925fbc03"],"profileId":"d4d3cd8a.0abcb","x":110,"y":40,"wires":[]},{"id":"12910b4b.9fe825","type":"command-device","z":"e92dc518.89f428","name":"Breakfast Room Off","deviceNodeId":"d4d3cd8a.0abcb","deviceType":"installed-device","deviceId":"42811632-3af1-42c9-9b2b-0e37925fbc03","capabilityId":"switch_v1","attributeId":"off","rules":[{"capaId":"switch_v1","attrId":"off","args":[]}],"logging":false,"outputs":1,"x":630,"y":100,"wires":[[]]},{"id":"c87ab6c0.f485b8","type":"hubitat device","z":"e92dc518.89f428","deviceLabel":"Kitchen Camera","name":"","server":"37a6fe31.441bc2","deviceId":"517","attribute":"switch","sendEvent":true,"x":140,"y":180,"wires":[["c1dbfca.d3fed"]]},{"id":"c1dbfca.d3fed","type":"switch","z":"e92dc518.89f428","name":"","property":"payload.value","propertyType":"msg","rules":[{"t":"eq","v":"on","vt":"str"},{"t":"eq","v":"off","vt":"str"}],"checkall":"true","repair":false,"outputs":2,"x":390,"y":180,"wires":[["ea78455f.b96878"],["932d5dca.263b3"]]},{"id":"ea78455f.b96878","type":"command-device","z":"e92dc518.89f428","name":"Kitchen on","alias":"on","deviceNodeId":"d4d3cd8a.0abcb","deviceType":"installed-device","deviceId":"7a84818c-fb66-448a-8d5d-ca4125d9d23c","componentId":"","capabilityId":"switch_v1","attributeId":"on","rules":[{"capaId":"switch_v1","attrId":"on","args":[]}],"logging":false,"loggingEditor":false,"loggingConsole":false,"outputs":1,"x":610,"y":160,"wires":[[]]},{"id":"932d5dca.263b3","type":"command-device","z":"e92dc518.89f428","name":"Kitchen off","alias":"off","deviceNodeId":"d4d3cd8a.0abcb","deviceType":"installed-device","deviceId":"7a84818c-fb66-448a-8d5d-ca4125d9d23c","componentId":"","capabilityId":"switch_v1","attributeId":"off","rules":[{"capaId":"switch_v1","attrId":"off","args":[]}],"logging":false,"loggingEditor":false,"loggingConsole":false,"outputs":1,"x":610,"y":200,"wires":[[]]},{"id":"9da3a67c.451dc8","type":"hubitat device","z":"e92dc518.89f428","deviceLabel":"Great Room Camera","name":"","server":"37a6fe31.441bc2","deviceId":"514","attribute":"switch","sendEvent":true,"x":160,"y":280,"wires":[["c02c153.a5a93e8"]]},{"id":"c02c153.a5a93e8","type":"switch","z":"e92dc518.89f428","name":"","property":"payload.value","propertyType":"msg","rules":[{"t":"eq","v":"on","vt":"str"},{"t":"eq","v":"off","vt":"str"}],"checkall":"true","repair":false,"outputs":2,"x":390,"y":280,"wires":[["2fb51ba1.bc28a4"],["302a5828.0afba8"]]},{"id":"2fb51ba1.bc28a4","type":"command-device","z":"e92dc518.89f428","name":"Great Room Camera on","alias":"on","deviceNodeId":"d4d3cd8a.0abcb","deviceType":"installed-device","deviceId":"92edcacd-1f05-4aac-b2a8-1437e4e702bb","componentId":"","capabilityId":"switch_v1","attributeId":"on","rules":[{"capaId":"switch_v1","attrId":"on","args":[]}],"logging":false,"loggingEditor":false,"loggingConsole":false,"outputs":1,"x":650,"y":260,"wires":[[]]},{"id":"302a5828.0afba8","type":"command-device","z":"e92dc518.89f428","name":"Great Room Camera off","alias":"off","deviceNodeId":"d4d3cd8a.0abcb","deviceType":"installed-device","deviceId":"92edcacd-1f05-4aac-b2a8-1437e4e702bb","componentId":"","capabilityId":"switch_v1","attributeId":"off","rules":[{"capaId":"switch_v1","attrId":"off","args":[]}],"logging":false,"loggingEditor":false,"loggingConsole":false,"outputs":1,"x":650,"y":300,"wires":[[]]},{"id":"59c2a217.b2084c","type":"hubitat device","z":"e92dc518.89f428","deviceLabel":"Driveway Camera","name":"","server":"37a6fe31.441bc2","deviceId":"516","attribute":"switch","sendEvent":true,"x":150,"y":380,"wires":[["44de228e.73cacc"]]},{"id":"44de228e.73cacc","type":"switch","z":"e92dc518.89f428","name":"","property":"payload.value","propertyType":"msg","rules":[{"t":"eq","v":"on","vt":"str"},{"t":"eq","v":"off","vt":"str"}],"checkall":"true","repair":false,"outputs":2,"x":390,"y":380,"wires":[["eda3a28.7e8e06"],["6300b052.a61b4"]]},{"id":"eda3a28.7e8e06","type":"command-device","z":"e92dc518.89f428","name":"Driveway Camera on","alias":"on","deviceNodeId":"d4d3cd8a.0abcb","deviceType":"installed-device","deviceId":"7288ef28-7dde-4ad8-b8cd-a5b8a1bb9a3d","componentId":"","capabilityId":"switch_v1","attributeId":"on","rules":[{"capaId":"switch_v1","attrId":"on","args":[]}],"logging":false,"loggingEditor":false,"loggingConsole":false,"outputs":1,"x":640,"y":360,"wires":[[]]},{"id":"6300b052.a61b4","type":"command-device","z":"e92dc518.89f428","name":"Driveway Camera off","alias":"off","deviceNodeId":"d4d3cd8a.0abcb","deviceType":"installed-device","deviceId":"7288ef28-7dde-4ad8-b8cd-a5b8a1bb9a3d","componentId":"","capabilityId":"switch_v1","attributeId":"off","rules":[{"capaId":"switch_v1","attrId":"off","args":[]}],"logging":false,"loggingEditor":false,"loggingConsole":false,"outputs":1,"x":640,"y":400,"wires":[[]]},{"id":"82c35db3.b3714","type":"hubitat device","z":"e92dc518.89f428","deviceLabel":"Backyard Camera","name":"","server":"37a6fe31.441bc2","deviceId":"515","attribute":"switch","sendEvent":true,"x":150,"y":480,"wires":[["fc93d203.ede05"]]},{"id":"fc93d203.ede05","type":"switch","z":"e92dc518.89f428","name":"","property":"payload.value","propertyType":"msg","rules":[{"t":"eq","v":"on","vt":"str"},{"t":"eq","v":"off","vt":"str"}],"checkall":"true","repair":false,"outputs":2,"x":390,"y":480,"wires":[["2a067946.521436"],["39e1b9df.af11f6"]]},{"id":"2a067946.521436","type":"command-device","z":"e92dc518.89f428","name":"Backyard Camera on","alias":"on","deviceNodeId":"d4d3cd8a.0abcb","deviceType":"installed-device","deviceId":"49c91cd4-76c6-498e-8a0c-c4c0f2e58185","componentId":"","capabilityId":"switch_v1","attributeId":"on","rules":[{"capaId":"switch_v1","attrId":"on","args":[]}],"logging":false,"loggingEditor":false,"loggingConsole":false,"outputs":1,"x":640,"y":460,"wires":[[]]},{"id":"39e1b9df.af11f6","type":"command-device","z":"e92dc518.89f428","name":"Backyard Camera off","alias":"off","deviceNodeId":"d4d3cd8a.0abcb","deviceType":"installed-device","deviceId":"49c91cd4-76c6-498e-8a0c-c4c0f2e58185","componentId":"","capabilityId":"switch_v1","attributeId":"off","rules":[{"capaId":"switch_v1","attrId":"off","args":[]}],"logging":false,"loggingEditor":false,"loggingConsole":false,"outputs":1,"x":640,"y":500,"wires":[[]]},{"id":"d2940e7c.b38ff","type":"hubitat device","z":"e92dc518.89f428","deviceLabel":"House Siren","name":"","server":"37a6fe31.441bc2","deviceId":"338","attribute":"alarm","sendEvent":true,"x":130,"y":680,"wires":[["a5c4b60d.95f3b8"]]},{"id":"a5c4b60d.95f3b8","type":"switch","z":"e92dc518.89f428","name":"","property":"payload.value","propertyType":"msg","rules":[{"t":"eq","v":"off","vt":"str"},{"t":"eq","v":"both","vt":"str"},{"t":"eq","v":"siren","vt":"str"},{"t":"eq","v":"strobe","vt":"str"}],"checkall":"true","repair":false,"outputs":4,"x":290,"y":680,"wires":[["809fa5a0.d76e78","4199e9ae.1e9c58"],["976a571d.3e65d8","2d6fe9a0.7d09e6"],["63b3a118.07209","44ad7d2f.adbd24"],["7aa6d6bb.f58b58","e9a221af.69882"]]},{"id":"809fa5a0.d76e78","type":"command-device","z":"e92dc518.89f428","name":"Backyard Siren (off)","alias":"off","deviceNodeId":"d4d3cd8a.0abcb","deviceType":"installed-device","deviceId":"49c91cd4-76c6-498e-8a0c-c4c0f2e58185","componentId":"","capabilityId":"alarm_v1","attributeId":"off","rules":[{"capaId":"alarm_v1","attrId":"off","args":[]}],"logging":false,"loggingEditor":false,"loggingConsole":false,"outputs":1,"x":630,"y":540,"wires":[[]]},{"id":"4199e9ae.1e9c58","type":"command-device","z":"e92dc518.89f428","name":"Front Door Doorbell Siren (off)","alias":"off","deviceNodeId":"d4d3cd8a.0abcb","deviceType":"installed-device","deviceId":"d909bea5-6af5-4b4b-a9c4-86d1f32ab7c3","componentId":"","capabilityId":"alarm_v1","attributeId":"off","rules":[{"capaId":"alarm_v1","attrId":"off","args":[]}],"logging":false,"loggingEditor":false,"loggingConsole":false,"outputs":1,"x":670,"y":580,"wires":[[]]},{"id":"976a571d.3e65d8","type":"command-device","z":"e92dc518.89f428","name":"Backyard Siren (both)","alias":"both","deviceNodeId":"d4d3cd8a.0abcb","deviceType":"installed-device","deviceId":"49c91cd4-76c6-498e-8a0c-c4c0f2e58185","componentId":"","capabilityId":"alarm_v1","attributeId":"both","rules":[{"capaId":"alarm_v1","attrId":"both","args":[]}],"logging":false,"loggingEditor":false,"loggingConsole":false,"outputs":1,"x":640,"y":620,"wires":[[]]},{"id":"2d6fe9a0.7d09e6","type":"command-device","z":"e92dc518.89f428","name":"Front Door Doorbell Siren (both)","alias":"both","deviceNodeId":"d4d3cd8a.0abcb","deviceType":"installed-device","deviceId":"d909bea5-6af5-4b4b-a9c4-86d1f32ab7c3","componentId":"","capabilityId":"alarm_v1","attributeId":"both","rules":[{"capaId":"alarm_v1","attrId":"both","args":[]}],"logging":false,"loggingEditor":false,"loggingConsole":false,"outputs":1,"x":670,"y":660,"wires":[[]]},{"id":"63b3a118.07209","type":"command-device","z":"e92dc518.89f428","name":"Backyard Siren (siren)","alias":"siren","deviceNodeId":"d4d3cd8a.0abcb","deviceType":"installed-device","deviceId":"49c91cd4-76c6-498e-8a0c-c4c0f2e58185","componentId":"","capabilityId":"alarm_v1","attributeId":"siren","rules":[{"capaId":"alarm_v1","attrId":"siren","args":[]}],"logging":false,"loggingEditor":false,"loggingConsole":false,"outputs":1,"x":640,"y":700,"wires":[[]]},{"id":"44ad7d2f.adbd24","type":"command-device","z":"e92dc518.89f428","name":"Front Door Doorbell Siren (siren)","alias":"siren","deviceNodeId":"d4d3cd8a.0abcb","deviceType":"installed-device","deviceId":"d909bea5-6af5-4b4b-a9c4-86d1f32ab7c3","componentId":"","capabilityId":"alarm_v1","attributeId":"siren","rules":[{"capaId":"alarm_v1","attrId":"siren","args":[]}],"logging":false,"loggingEditor":false,"loggingConsole":false,"outputs":1,"x":670,"y":740,"wires":[[]]},{"id":"7aa6d6bb.f58b58","type":"command-device","z":"e92dc518.89f428","name":"Backyard Siren (strobe)","alias":"strobe","deviceNodeId":"d4d3cd8a.0abcb","deviceType":"installed-device","deviceId":"49c91cd4-76c6-498e-8a0c-c4c0f2e58185","componentId":"","capabilityId":"alarm_v1","attributeId":"strobe","rules":[{"capaId":"alarm_v1","attrId":"strobe","args":[]}],"logging":false,"loggingEditor":false,"loggingConsole":false,"outputs":1,"x":650,"y":780,"wires":[[]]},{"id":"e9a221af.69882","type":"command-device","z":"e92dc518.89f428","name":"Front Door Doorbell Siren (strobe)","alias":"strobe","deviceNodeId":"d4d3cd8a.0abcb","deviceType":"installed-device","deviceId":"d909bea5-6af5-4b4b-a9c4-86d1f32ab7c3","componentId":"","capabilityId":"alarm_v1","attributeId":"strobe","rules":[{"capaId":"alarm_v1","attrId":"strobe","args":[]}],"logging":false,"loggingEditor":false,"loggingConsole":false,"outputs":1,"x":680,"y":820,"wires":[[]]},{"id":"37a6fe31.441bc2","type":"hubitat config","name":"Main Hub","usetls":false,"host":"192.168.86.35","port":"80","appId":"563","nodeRedServer":"http://192.168.86.43:1880","webhookPath":"/hubitat/webhook","autoRefresh":true,"useWebsocket":false,"colorEnabled":false,"color":"#ace043"}]

This flow shows that not only can we poll the state of the cameras in Smartthings, but we can also send commands to devices as well The examples here show that we can turn the cameras on and off and even activate the Alarm state in the newer cameras that support it. This will also require the PAT toke in the "My Devices" node in the upper left corner

This flow is a example of a Endpoint flow with Samsung Automation Studio. This flow allows Node-Red to receive motion events from Smartthings for the cameras.

[{"id":"46f36378.f8b8bc","type":"tab","label":"Smartthing Arlo Camera Frontdoor endpoint","disabled":false,"info":""},{"id":"47326a59.108f24","type":"device-profile","z":"46f36378.f8b8bc","name":"Front Door Doorbell Camera","capabilityId":"motionSensor_v1","profileId":"47326a59.108f24","cpType":"standard","x":140,"y":60,"wires":[]},{"id":"741b5b46.46af14","type":"automation","z":"46f36378.f8b8bc","name":"Front Door Doorbell Endpoint","method":"post","url":"/arloFrontDoorDoorbell","urlDate":1617046329754,"eqtype":"","loggingEditor":true,"loggingConsole":false,"x":140,"y":140,"wires":[["4a20ff87.2b483"]]},{"id":"4a20ff87.2b483","type":"event-device","z":"46f36378.f8b8bc","name":"Camera Motion","deviceNodeId":"47326a59.108f24","deviceType":"device-profile","deviceId":"47326a59.108f24","capabilityId":"motionSensor_v1","attributeId":"motion","rules":[{"capaId":"motionSensor_v1","attrId":"motion","operator":"eq","valueType":"string","value":"active"},{"capaId":"motionSensor_v1","attrId":"motion","operator":"eq","valueType":"string","value":"inactive"}],"logging":false,"outputs":2,"x":360,"y":140,"wires":[["1b508113.9c1fff"],["1b508113.9c1fff"]]},{"id":"cb91cf86.5615","type":"hubitat command","z":"46f36378.f8b8bc","deviceLabel":"Front Door Doorbell","name":"","server":"37a6fe31.441bc2","deviceId":"511","command":"motion","commandArgs":"","x":750,"y":140,"wires":[[]]},{"id":"1b508113.9c1fff","type":"change","z":"46f36378.f8b8bc","name":"Setup Command","rules":[{"t":"set","p":"command","pt":"msg","to":"payload.attribute","tot":"msg"},{"t":"set","p":"arguments","pt":"msg","to":"payload.value","tot":"msg"}],"action":"","property":"","from":"","to":"","reg":false,"x":550,"y":140,"wires":[["cb91cf86.5615"]]},{"id":"37a6fe31.441bc2","type":"hubitat config","name":"Main Hub","usetls":false,"host":"192.168.86.35","port":"80","appId":"563","nodeRedServer":"http://192.168.86.43:1880","webhookPath":"/hubitat/webhook","autoRefresh":true,"useWebsocket":false,"colorEnabled":false,"color":"#ace043"}]

This simple flow allows the creation of a simple smartapp for Smartthing to send events to when motion occurs. Through testing I found that it is better to only have one endpoint per flow. Something seems to go wrong on the Smartthings side when including more then one endpoint in a flow when doing the app install.

With the endpoint created you do need to go into Smartthings Developer work space and register the endpoint. This means giving them the URL to the endpoint and a name to the app in Smartthings. This does mean the endpoint needs to be available on the internet and secured with TLS.

2 Likes