[RELEASE] HubiThings Replica

I am getting an authoriziation error recently
HubiThings OAuth oauthCallback() error: javax.net.ssl.SSLPeerUnverifiedException: Certificate for doesn't match any of the subject alternative names: [*.sedara.cloud, sedara.cloud

Any ideas?

Reboot the hub is the only known solution.

1 Like

Hi I'm getting the same issue, reboot resolves it but again this morning I'm getting this error again (Warning: Authorization Token did not refresh and will automatically retry within three hours). I have rebooted the hub 3 times now it seems to solve it for a short time.

Update I just seen in another thread what is going on. Thanks I will wait and see if there is a fix coming. I did do a reboot and it is ok for now until it try's again.

1 Like

@djgutheinz I'm using your Refrigerator drivers and I was wondering.. are we able to pull energy cosumption from SmartThings? I'm seeing these in a capabilities:

It is in the data and readable. I will look at adding.

1 Like

I knew it.. You are the Man!!!!

1 Like

I recently added my Bosch dishwasher to SmartThings using Home Connect. I tested it in SmartThings, and it works. Now, I want to integrate it into Hubitat.

In the HubiThings Replica app, I selected my dishwasher under 'Create HubiThings Device.' However, when I reach the 'Select Hubitat Device Type' step, there’s no option for 'Dishwasher.' I think I might be missing a step. Could you please provide some guidance?

Start there :point_up:...I'm not sure when I'll be able to get to it, but posting the metadata on GitHub will help me get a better idea of the scope. I tend to avoid more specialized drivers since the work required to make them reusable by others is often hard to justify.

Thanks so much, @Bloodtick_Jones! I completely understand your perspective. This feature was more of a nice-to-have for me, so I’m happy to leave it for now.

Hi @Bloodtick_Jones !!

I think you need to make a small adjustment to the TV drive. See the screen below for the current status, the currrentApp even looks like YouTube, but further down in trackDescription and tvChannelName it refers to NetFlix, which is the correct status for the TV.

image

Drive:

def driverVer() { return "1.0-1" }
import groovy.json.JsonOutput
import groovy.json.JsonSlurper
def appliance() { return "ReplicaSamsungTV" }

Thanks.

This is the driver by @djgutheinz and under his source control.

I do have a OCR driver in the Replica package but doesn’t have any local or art mode functionality and would only be for sets 2022+.

1 Like

@Bloodtick_Jones HubiThings Replica is working great with Aqara FP2 paired to SmartThings :trophy:

Summary

There are a dozen of Aqra FP2 attributes that could be mapped to Hubitat! :

Summary

{ "DESCRIPTION":
{"allowed":null,"components":[{"capabilities":[{"id":"presenceSensor","version":1},{"id":"movementSensor","version":1},{"id":"multipleZonePresence","version":1},{"id":"illuminanceMeasurement","version":1},{"id":"refresh","version":1}],"categories":[{"categoryType":"manufacturer","name":"PresenceSensor"}],"id":"main","label":"main"},{"capabilities":[{"id":"stse.deviceMode","version":1}],"categories":[{"categoryType":"manufacturer","name":"PresenceSensor"}],"id":"mode","label":"mode"}],"createTime":"2024-10-12T14:40:18.125Z","deviceId":"hidden","deviceManufacturerCode":"Aqara","executionContext":"LOCAL","label":"Aqara-FP2","lan":{"driverId":"01976eca-e7ff-4d1b-91db-9c980ce668d7","executingLocally":true,"hubId":"hidden","networkId":"54:EF:44:4C:E7:E4","provisioningState":"TYPED"},"locationId":"hidden","manufacturerName":"SmartThingsCommunity","name":"aqara-fp2-zoneDetection","ownerId":"d0af6c46-4544-3e17-1ca5-d16241c6e729","parentDeviceId":"hidden","presentationId":"2831cea1-c351-3230-9fcc-3315c51c5e29","profile":{"id":"713889bc-01f3-333e-97ab-4d9b712d2420"},"restrictionTier":0,"roomId":"hidden","type":"LAN"}
},

{ "CAPABILITIES":
{"components":[{"attributes":{"presence":{"enumCommands":,"schema":{"additionalProperties":false,"properties":{"value":{"enum":["present","not present"],"title":"PresenceState","type":"string"}},"required":["value"],"type":"object"}}},"commands":{},"ephemeral":false,"id":"presenceSensor","name":"Presence Sensor","status":"live","version":1},{"attributes":{"movement":{"enumCommands":,"schema":{"additionalProperties":false,"properties":{"value":{"enum":["inactive","approaching","movingAway","entering","leaving","enteringLeft","enteringRight","leavingLeft","leavingRight"],"title":"MovementType","type":"string"}},"required":["value"],"type":"object"}},"supportedMovements":{"enumCommands":,"schema":{"additionalProperties":false,"properties":{"value":{"items":{"enum":["inactive","approaching","movingAway","entering","leaving","enteringLeft","enteringRight","leavingLeft","leavingRight"],"title":"MovementType","type":"string"},"type":"array"}},"required":,"type":"object"}}},"commands":{},"ephemeral":false,"id":"movementSensor","name":"Movement Sensor","status":"proposed","version":1},{"attributes":{"zoneState":{"enumCommands":,"schema":{"additionalProperties":false,"properties":{"value":{"items":{"additionalProperties":false,"properties":{"id":{"maxLength":255,"title":"String","type":"string"},"name":{"maxLength":255,"title":"String","type":"string"},"state":{"enum":["present","not present"],"title":"PresenceState","type":"string"}},"required":["id","name","state"],"title":"zoneState","type":"object"},"type":"array"}},"required":["value"],"type":"object"}}},"commands":{"createZone":{"arguments":[{"name":"name","optional":false,"schema":{"maxLength":255,"title":"String","type":"string"}},{"name":"id","optional":true,"schema":{"maxLength":255,"title":"String","type":"string"}}],"name":"createZone"},"deleteZone":{"arguments":[{"name":"id","optional":false,"schema":{"maxLength":255,"title":"String","type":"string"}}],"name":"deleteZone"},"updateZoneName":{"arguments":[{"name":"id","optional":false,"schema":{"maxLength":255,"title":"String","type":"string"}},{"name":"name","optional":false,"schema":{"maxLength":255,"title":"String","type":"string"}}],"name":"updateZoneName"}},"ephemeral":false,"id":"multipleZonePresence","name":"Multiple Zone Presence","status":"proposed","version":1},{"attributes":{"illuminance":{"enumCommands":,"schema":{"additionalProperties":false,"properties":{"unit":{"default":"lux","enum":["lux"],"type":"string"},"value":{"maximum":100000,"minimum":0,"type":"number"}},"required":["value"],"type":"object"}}},"commands":{},"ephemeral":false,"id":"illuminanceMeasurement","name":"Illuminance Measurement","status":"live","version":1},{"attributes":{},"commands":{"refresh":{"arguments":,"name":"refresh"}},"ephemeral":false,"id":"refresh","name":"Refresh","status":"live","version":1},{"attributes":{"mode":{"enumCommands":,"schema":{"additionalProperties":false,"properties":{"value":{"enum":["zoneDetection","fallDetection","sleepMonitoring"],"type":"string"}},"required":["value"],"type":"object"}}},"commands":{},"ephemeral":false,"id":"stse.deviceMode","name":"device mode","status":"proposed","version":1}]}
},

{ "STATUS":
{"components":{"main":{"illuminanceMeasurement":{"illuminance":{"timestamp":"2024-10-12T15:52:47.491Z","unit":"lux","value":44}},"movementSensor":{"movement":{"timestamp":"2024-10-12T15:56:46.813Z","value":"inactive"},"supportedMovements":{"timestamp":"2024-10-12T14:40:29.826Z","value":["inactive","approaching","movingAway","entering","leaving"]}},"multipleZonePresence":{"zoneState":{"timestamp":"2024-10-12T15:58:48.511Z","value":[{"id":"5","name":"zone5","state":"not present"},{"id":"3","name":"zone3","state":"not present"},{"id":"4","name":"zone4","state":"not present"},{"id":"6","name":"zone6","state":"not present"},{"id":"2","name":"zone2","state":"not present"}]}},"presenceSensor":{"presence":{"timestamp":"2024-10-12T15:55:42.670Z","value":"present"}},"refresh":{}},"mode":{"stse.deviceMode":{"mode":{"timestamp":"2024-10-12T14:40:29.829Z","value":"zoneDetection"}}}}}
},

{ "RULES":
{"components":[{"command":{"label":"command: setHealthStatusValue(healthStatus*)","name":"setHealthStatusValue","parameters":[{"name":"healthStatus*","type":"ENUM"}],"type":"command"},"mute":false,"trigger":{"additionalProperties":false,"attribute":"healthStatus","capability":"healthCheck","label":"attribute: healthStatus.*","properties":{"value":{"title":"HealthState","type":"string"}},"required":["value"],"type":"attribute"},"type":"smartTrigger"},{"command":{"label":"command: setMotionActive()","name":"setMotionActive","type":"command"},"trigger":{"additionalProperties":false,"attribute":"presence","capability":"presenceSensor","dataType":"ENUM","label":"attribute: presence.present","properties":{"value":{"title":"PresenceState","type":"string"}},"required":["value"],"type":"attribute","value":"present"},"type":"smartTrigger"},{"command":{"label":"command: setMotionInactive()","name":"setMotionInactive","type":"command"},"trigger":{"additionalProperties":false,"attribute":"presence","capability":"presenceSensor","dataType":"ENUM","label":"attribute: presence.not present","properties":{"value":{"title":"PresenceState","type":"string"}},"required":["value"],"type":"attribute","value":"not present"},"type":"smartTrigger"}],"version":1}
}]

Many thanks for this great app! :+1:


Update: the "Replica Aqara FP2" driver is published here.

1 Like

Hi, did you find any time to check that refrigerator driver and energy consumption?

Has something changed with Arlo recently? My replica devices have been working fine for months/years, but none of them since Oct 7th, and I cannot figure out why. Other devices on the same oauth (tapo devices) are working fine.

There is some traffic on the SmartThings community page talking about problems with Arlo.

Can you see if the devices are eventing properly on the ST Advance Website? If they are working correctly there, then it could point to a problem with Replica, but if they are not eventing then its a ST problem.

Just set up Replica today, strictly for 11 Arlo cameras. Tested motion, audio, etc. for all of the cameras, and everything works as expected. Before setting up Replica, I first unlinked Arlo from my SmartThings account and then relinked. (That was recommended by Arlo Support.) After that, smooth sailing.

Thanks for the great product!

2 Likes

REPLICA 1.5.00 RELEASE

The new release of Replica 1.5.00 introduces support for the upcoming SmartThings PAT limitation set to take effect at the end of the year. For more information, please see here. This is the initial implementation of support, and additional updates will be provided in later releases to indicate whether the PAT remains valid.

Install instructions here with HPM updated to match.

Replica 1.5.00:

  • Updates have been made to use the OAuth token wherever possible. However, the PAT is still required for creating Virtual Devices. Hopefully, SmartThings will address this limitation to allow the OAuth token to be used for this functionality as well.

OAuth 1.5.00:

  • Updates have been made to utilize the OAuth token as much as possible. However, the PAT will always be required for deleting and creating the API.

Replica SmartThings Hub:
Replica Location Knob:

  • Updated to use new token scheme.

:point_right: This release should continue to work as configured; however, I recommend revisiting the HubiThings OAuth settings and recreating the APIs. The process involves selecting 'Delete API,' then 'Create API,' and reauthorizing. This will add additional scope permissions to enable full functionality.

Additionally, note that the new HubiThings OAuth includes web links for REST API calls, which can be used if you want to utilize the token in other applications.

SAMSUNG DRIVERS+ BY DAVE

Please see here for new @djgutheinz device handlers and information. These are available in HPM for installation and updates.

3 Likes

Have you checked your TV settings to make sure that its set for a control system to operate it? Usually there is a setting for things like wake on lan, or stay on, or something like that. Also make sure your energy efficiency is not on as this will shutdown the ethernet card. And just to point it out since I have been working in home automation for 20+ years with Crestron and other systems. Samsung is the worst display for ethernet reliability. Don't know what it is about them but they almost always have problems with ethernet control. If you can go to RS232 do it

I have some virtual switches in ST that I've replicated in HE using HubiThings. Many of my rules in HE are based off of the status of these switches. The problem I've run into though is that if there's an issue with ST and HE communicating, I'm not able to change the state of replica virtual switch in HE. It stays in whatever state it was in prior to losing communication with ST. Is there a workaround for this where I can manually change the state in HE if the connection to ST is interrupted?

Thanks!

Replica works by sending the "change" command, either "on" or "off," to ST and then waiting for ST to respond with the "on" or "off" attribute. Obviously, it doesn't need to send to ST if the change was initiated directly from ST. There is a periodic sanity check that will update if the response was missed, but this is very rare if you have a good internet connection.

I am honestly not sure how to approach your request. Could you give an example that wouldn't break this coupling?