Toilet air freshener idea

Hi I put together a simple device using a
Tuya ZigBee smart fingerbot (search on AliExpress)

And a Sonoff ZigBee dongle

I 3d printed a support to hold the perfume bottle and fingerbot.

The perfume is from Zara home so if you need the 3d model let me know. The fingerbot came with some stickers and some little wooden blocks which I used.

In openhab I already had a rule that turned on a light using a DSC alarm motion detector. So I added a function to activate the fingerbot if there was someone in the room for more than 5 minutes (I didn’t want it spraying every time someone went in eg. just to look in the mirror).

The only problem I had was the dongle interferes with a rfxcom usb transceiver. Openhabian loses the connection to the rfxcom and seems to overwrite the driver. So I had to move the dongle to a separate home assistant server and use ZigBee2mqtt.

It works perfectly, I will probably add some rules for timed sprays if we are home during the day.

Overall investment about ÂŁ40 but the dongle will be used for other devices too. Happy wife too!

8 Likes

Ohh this is nifty! Nice thinking :slight_smile: I have the mind to make something similar but based on already existing solutions. This video is in Portuguese unfortunately but it’s easy enough to follow if you care.

https://youtu.be/Fku52LQqsJs

You can add alternative parts like this:
https://s.click.aliexpress.com/e/_EvwJZuv

Add a battery inside and you have a stand alone solution that doesn’t look out of place :slight_smile:

But your solution with oob things is great!

1 Like

Great idea - but: isn’t the fingerbot you linked to a Bluetooth device?

Yes sorry I bought off AliExpress but couldn’t find a way to link from the app. I got a tuya ZigBee smart fingerbot plus and the associated tools although you don’t really need them.

1 Like

Hello,

I bought the same Tuya fingerbot and I am using a Raspbee II with deCONZ.
I am able to see the fingerbot as a light in the deCONZ.
After that, I can create a thing in OpenHab, only as battery.
However, it is not possible to change its state from Openhab.

I tried to change the DDF as reported here: https://github.com/dresden-elektronik/deconz-rest-plugin/issues/7094
but the situation does not change.

my last DDF is the following:

{
  "schema": "devcap1.schema.json",
  "manufacturername": ["_TZ3210_dse8ogfy", "_TZ3210_j4pdtz9v"],
  "modelid": ["TS0001", "TS0001"],
  "vendor": "Tuya",
  "product": "Fingerbot",
  "sleeper": false,
  "status": "Gold",
  "subdevices": [
    {
      "type": "$TYPE_ON_OFF_OUTPUT",
      "restapi": "/lights",
      "uuid": [
        "$address.ext",
        "0x01"
      ],
      "items": [
        {
          "name": "attr/id"
        },
        {
          "name": "attr/lastannounced"
        },
        {
          "name": "attr/lastseen"
        },
        {
          "name": "attr/manufacturername"
        },
        {
          "name": "attr/modelid"
        },
        {
          "name": "attr/name"
        },
        {
          "name": "attr/swversion",
          "parse": {"fn": "zcl:attr", "ep": 1, "cl": "0x0000", "at": "0x0001", "script": "tuya_swversion.js"},
          "read": {"fn": "zcl:attr", "ep": 1, "cl": "0x0000", "at": "0x0001"}
        },
        {
          "name": "attr/type"
        },
        {
          "name": "attr/uniqueid"
        },
        {
          "name": "state/on",
          "parse": {"fn": "tuya", "dpid": 1, "eval": "Item.val = Attr.val;" },
          "write": {"fn": "tuya", "dpid": 1, "dt": "0x10", "eval": "Item.val == 1 ? 1 : 0;"},
          "read": {"fn": "tuya"}
        },
        {
          "name": "config/tuya_unlock"
        },
        {
          "name": "state/reachable"
        }
      ]
    },
   {
      "type": "$TYPE_BATTERY_SENSOR",
      "restapi": "/sensors",
      "uuid": [
        "$address.ext",
        "0x01",
        "0x0001"
      ],
      "meta": {
        "values": {
          "config/mode": {"clic": 0, "switch": 1, "program": 2}
        }
      },      
      "items": [
        {
          "name": "attr/id"
        },
        {
          "name": "attr/lastannounced"
        },
        {
          "name": "attr/lastseen"
        },
        {
          "name": "attr/manufacturername"
        },
        {
          "name": "attr/modelid"
        },
        {
          "name": "attr/name"
        },
        {
          "name": "attr/swversion",
          "parse": {"fn": "zcl:attr", "ep": 1, "cl": "0x0000", "at": "0x0001", "script": "tuya_swversion.js"},
          "read": {"fn": "zcl:attr", "ep": 1, "cl": "0x0000", "at": "0x0001"}
        },
        {
          "name": "attr/type"
        },
        {
          "name": "attr/uniqueid"
        },
        {
          "name": "config/on"
        },
        {
          "name": "config/reachable"
        },
        {
          "name": "config/mode",
          "values": [
              ["clic", 0], ["switch", 1], ["program", 2]
          ],
          "parse": {"fn": "tuya", "dpid": 101, "eval": "if (Attr.val == 0) { Item.val = 'clic' } else if (Attr.val == 1) { Item.val = 'switch' } else { Item.val = 'program' }"},
          "write": {"fn": "tuya", "dpid": 101, "dt": "0x30", "eval": "if (Item.val == 'clic') { 0 } else if (Item.val == 'switch') { 1 } else { 3 }"},
          "read": {"fn": "none"}
        },        
        {
          "name": "state/battery",
          "parse": {"fn": "tuya", "dpid": 105, "eval": "Item.val = Attr.val;" },
          "read": {"fn": "none"},
          "default": 0
        },
        {
          "name":"config/delay",
          "read":{
            "fn":"none"
          },
          "write":{
            "dpid":103,
            "dt":"0x2b",
            "eval":"Item.val;",
            "fn":"tuya"
          },
          "parse":{
            "dpid":103,
            "eval":"Item.val = Attr.val;",
            "fn":"tuya"
          },
          "default":1
        },
        {
          "name": "state/lastupdated"
        }
      ]
    }
  ]
}

any suggestion on where to look for the issue or a workaround?

Thanks a lot.

Great idea Julian. May it be possible to get your 3d printing file? :slight_smile:

I already have the fingerbot.

Would be great, thxxx :slight_smile:

I have used zigbee2mqtt which has full support of the fingerbot (and lots of other low cost tuya.

My perfumer fingerbot unfortunately died. The motor on the fingerbot was not strong enough, the spray nozzle on the bottle started to become quite hard to press. Maybe someone can find a better type of bottle…

Here is the STL file I had to change the extension to .pdf otherwise I couldn’t upload. Just change it back to .STL and it should work.
perfumer.pdf (4.2 KB)