Fibaro Smart Implant: instructions to configure binary inputs (Updated, SKIP first two posts, instructions on the 3rd)

As I said, look at category. Yours is 11, (I/O), while Motion sensors are

  • category 4:
  • subcategory: 3

http://wiki.micasaverde.com/index.php/Luup_Device_Categories

So, you have to find the device ID and then run this code:

local deviceNo = 333
luup.attr_set("category_num", "4", deviceNo)
luup.attr_set("subcategory_num", "3", deviceNo)

if you want them to be door, leak, Co or smoke sensor, just change these properties plus the device files.

1 Like

Thanks a lot, this solved the issue even in mobile app, now it shows as motion sensor everywhere!

Mayby it would be good to update the script as well to incorporate this…

3 Likes

I just bought my second Smart Implant to use in another house to measure temperature and humidity. The sensor is a DH22 that should be able to do that but I can’t seem to get anything but the temp.
Anyone have any information about this? Google have been very helpful so far. :frowning:

Hi,
I tried doing the same, but IN1 and IN2 sensors don’t show their status.
I have added the implant as generic zwave device.


Thanks,
Avi

Looking at the icons, it doesn’t seem to be properly configured. Look at the variables of the inputs, maybe it’s just a cosmetic issue.

Thanks.
When I tried to run the script that you suggested in Develop Apps/Test Lua, it failed, so I manually entered it under device settings.
I only need the binary sensors to work. I don’t care about the temp sensor.
Here are pics of the

Params and Variables tab from the master device of the implant.
BTW. I now dont see the IN1 and IN2 devices for some reason.
It may be that Vera support has touched the configuration, as I opened a ticket.
Avi

If the script failed, report the error.

From your first screenshots, it seems the child are not created correctly. Please post their params+vars.

1 Like

Thanks @therealdb
I’ve unpaired and paired the device again (generic zwave device) and got the devices on the second image (one master, one temp sensor, 2* generic IO, 3 * Get_LANG). I then ran the script from the third post (with corrected master id) using the “Test luup code” option and it failed and then I tried to do it on “edit startup Lua” and it worked.
After running the script I get no child devices, see first figure.
Last two figures show the Advanced device parameter and variable tabs after running the script.
Thanks,
Avi

Do an hard refresh of your browser (CTRL+F5). The child should be a Security Sensor, but it seems it’s not, from your screenshot, and its name is not changed.

Just to be clear (this post ha various versions of the script and I cannot edit it anymore), the latest version is always available at:
[broken link removed]

1 Like

It’s working! Thank you so much!!
I think my mistake was that I left out the last line in the script with the reload.

I added a scenario where upon “motion detection”, the door lock is turned open. There is about 10-15 seconds delay from the moment it identifies my fingerprint, until the door lock is turned open.
Do you know if there is a way to reduce this delay?

Once again thank you so much.

1 Like

yep, this device is garbage :frowning:
I removed it from my system and I’m using two shelly 1. They released a wifi device very similar to this one, and very cheap (9 eur) that I’ll test very soon.

EDIT: mine is locking it every 2-3 days. Fibaro’s support offered a RMA, but I had to pay for shipment. This will add insult to injury, so I’ve just considered this as 70 EUR thrown away.

1 Like

Hi,
Thanks for this script. I now have 6 of these devices around the house reporting back garage door positions, alarm system outputs and heating system temperatures etc… I even have one tied into an Arduino MKR 1400 to use SMS messages to open and close my gates (plan to replace this with a serial interface). I’ve played with the device settings and have the device semi-latching and auto resetting the inputs to limit the number of activations. All seem to be totally reliable.

The only thing that I’d like to change is the device type for the binary inputs IN1 and IN2. I’d like these to be straight forward binary sensors and not the armed sensor type - i.e. more like the OUT1 & OUT2 devices - not least because these do not seem to appear properly on an IOS device (the little running man does not go red). I have played around with the device types but with no success. I think the problem is related to how the system knows to send a tripped status to the IN1/IN2 devices configured as motionsensors but a switchpower status the OUT1/OUT2 devices configured as binarylights.

I’m looking at the BasicSetCapabilities variable “00=Ue1,FF=Te1,2=Ue2,1=Te2” that seems to be tripping/untripping e1 and e2 and have changed this to “00=Oe1,FF=Fe1,2=Ue2,1=Te2” to see whether this helps but no luck. I cannot work out where the info coming in over the zwave network is converted to the right uPnP status to send to the Vera device. I suspect that its buried in all the magic numbers in MultiChannelCapabilities.

Any assistance would be much appreciated. I’ve order a book on zwave from Vesternet but I suspect the problem is in the specific zwave to uPnP interface on the Vera.

Regards
Richard

This is a very specific Vera behavior. From the docs

Allows defining actions for BASIC_SET messages.

Format:

=

where:

  • Value : the BASIC_SET Value; if Value is “XX”, it means any value
  • Action : the Action to perform; the supported values are: T=Trip, U=Untrip, O=On, F=Off, D=Dim
  • Endpoint : the Endpoint device ID (altid); if Endpoint=0, it means the parent node, or the current node if the device has no children

Examples:

00=Ue1,FF=Te1 => if receive 0x00, Untrip endpoint “e1”; if receive 0xFF, Trip endpoint “e1”

XX=D02 => Dim endpoint 02 to whatever value received

00=T0,FF=U0 => if receive 0x00, Trip the current node; if receive 0xFF, Untrip the current node
SupportedMRTypes string Allows defining which meter report types are supported by the device.

Thanks,

Not clear on exactly what the BASIC_SET is - hopefully the zwave book will help. I saw the info on basic-set_capabilities you posted and this suggested I could change this from trip/untrip (e.g. Ue1/Te1) to On/Off (Oe1/Fe1). Thought this must be it and I had a go but I could not see anything different in the log file or on the device variables. Should it have worked (or done something?). When it says On/Off, how does the system know what uPnP action should be sent to the device?

I assume that the system works by the Vera receiving a zwave “packet” saying endpoint 1 on/off (or a number) and the vera then converts this into a uPnP command based on the type of device. I assumed that you would be able to change how this conversion happened (light, motion sensor etc.). I just can’t work out how this is configured. It’s not the case that the Smart Implant is sending a “trip” type command for e1 from the start and it must be connected to a trip type uPnP service is it?

Sorry for the vague terms. Hopefully I will be able to frame my questions better after reading the book! Are there any other sources that would help me understand the basics? I have the lua stuff and uPnP stuff understood well enough to write a plugin from scratch but I’m finding this part of the system completely opaque.

Regards

As I said, this is not Zwave stuff, but Vera’s internal implementation. So it will know how to trip/untrip or turn on/off the child device.

After you’ve changed it, do a luup.reload() and hard refresh (ctrl+f5) your browser, because cache will prevent you from seeing the values.

Ah mixing up my BASIC_COMMAND_ and BASIC_SETs! I’m getting there slowly (book just arrived from Vesternet…).

That change worked! Many thanks. Light icon going on and off in web and mobile app interfaces as hoped for.

Next step is to change the device panel to where the status is read-only (light going on and off but no switch for the user). Is there a built in device panel for this or will I have to write my own?

Going to do some work on the script to make all this configurable.

Cheers
Richard

1 Like

You’ll probably need to develop a custom device if you want to follow this route. That why a security sensor has more sense. Just change the category and subcategory (search for the wiki) and you’re done.

I’m unable to get status of binary inputs with Fibaro Smart Implant.
After running @therealdb script everything looks as expected, but motion sensors are never updated :confused:

Any ideas how can I debug this / what did I go wrong?

Best, Marcin

Clearly you spent some time putting this great info together.

I purchased my implant solely for opening and closing my garage door via the Vera controller. Nothing more.

I understand to get it to open/close, I need to change some parameters, however the ones I need to change are not visible or perhaps I need to create new variables, either way I’m stumped.
Can you please.
John

I need to delete or hide the unwanted children and for a dummy like me, it’s wasn’t clear how to.

Hi, I notice there has been no activity here for some time does that mean there is working fix or has everybody given up?

Like a number of people on this thread I am attempting to replace a dying “Universal Binary Sensor V1.2" with a “Smart Implant FGBS-222", with little success so far.

Following the advice given here I have paired my Smart Implant as a generic device and got:

Appliance Module
_Appliance Module 1
_Temperature °C
Temp
_Generic IO 1
_Generic IO 2
_GET_LANG(generic_sensor,sensor)
_GET_LANG(generic_sensor,sensor) 1
_GET_LANG(generic_sensor,sensor)

I have run therealdb’s script (many thanks) dated April 20 (with the appropriate masterID) followed by luup.reload(). This has given me (as expected):

SmartImplant Master
SmartImplant IN1 DISARMED
SmartImplant IN2 DISARMED
SmartImplant Ext T °
_Temperature °C

From here on it goes down hill. I then get:

Setting Special Association
Failed at Setting Special Association
Device failed to configure

After sometime I do get a reasonable temperature (I only have the internal temperature sensor)

SmartImplant Ext T 26.30 °C

But SmartImplant IN1 and SmartImplant IN2 do not respond to their respective inputs.

I am running version 1.7.5186 (7.31) on a VeraPlus.

I have repeated the above process several times very close to my VerPlus always with the same result.

Can anybody help as I don’t even know what “Special Association” means let alone how to fix it.