MIOS Action with Aeon Doorbell

I’m working on trying to get an Aeon Labs doorbell (ZW056) working with OpenHAB2. I have it added to the Vera, and have that end working. What I want to do is be able to call specific MP3 files I’ve added to the device. To do this on the Vera, you do it thru LUUP code in a scene such as:

luup.call_action('urn:micasaverde-com:serviceId:ZWaveNetwork1','SendData',{Node='15',Data='112 4 6 1 2'},1)

I don’t want to set up scenes for all these, just so I can call them from OH2. In researching, it appears that some have commanded other devices by setting up the device in the item like:

String  SDB_MUSIC_CTRL  "SDB - Controle Musique" (SDB)                  { mios="unit:house,device:41/service/DLNAMediaController1/Online" }

and then using the MIOS action on that item, such as:

sendMiosAction(SDB_MUSIC_CTRL, "urn:dlna-org:serviceId:DLNAMediaController1/SelectDMRDevice", newArrayList('URL' -> 'http://192.168.0.123:49494/description.xml'))

I’ve done some basic experimenting, and I’m not sure at all how to get my particular device properly configured to do this. I’m thinking I’m missing something else that needs to be added somewhere (like the DLNA controller?). Here are my items for this device from the generator:

Number   FRDoorbellId "ID [%d]" (GDevices) {mios="unit:house,device:50/id"}
String   FRDoorbellDeviceStatus "FR_Doorbell Device Status [MAP(miosDeviceStatusUI.map):%s]" (GDevices) {mios="unit:house,device:50/status"}
Number   FRDoorbellConfigured "FR_Doorbell Configured [%d]" (GDevices,gRoomFamily) {mios="unit:house,device:50/service/HaDevice1/Configured"}
String   FRDoorbellModeSetting "FR_Doorbell Mode Setting [%s]" (GDevices,gRoomFamily) {mios="unit:house,device:50/service/HaDevice1/ModeSetting"}
DateTime FRDoorbellLastUpdate "FR_Doorbell Last Update [%1$ta, %1$tm/%1$te %1$tR]" <calendar> (GDevices,gRoomFamily) {mios="unit:house,device:50/service/HaDevice1/LastUpdate"}
DateTime FRDoorbellFirstConfigured "FR_Doorbell First Configured [%1$ta, %1$tm/%1$te %1$tR]" <calendar> (GDevices,gRoomFamily) {mios="unit:house,device:50/service/HaDevice1/FirstConfigured"}
Switch   FRDoorbellStatus "FR_Doorbell Status" (GDevices,gRoomFamily) {mios="unit:house,device:50/service/SwitchPower1/Status"}
Number   FRDoorbellPollRatings "FR_Doorbell Poll Ratings [%.4f]" (GDevices,gRoomFamily) {mios="unit:house,device:50/service/HaDevice1/PollRatings"}
DateTime FRDoorbellLastPollSuccess "FR_Doorbell Last Poll Success [%1$ta, %1$tm/%1$te %1$tR]" <calendar> (GDevices,gRoomFamily) {mios="unit:house,device:50/service/ZWaveNetwork1/LastPollSuccess"}
Number   FRDoorbellConsecutivePollFails "FR_Doorbell Consecutive Poll Fails [%d]" (GDevices,gRoomFamily) {mios="unit:house,device:50/service/ZWaveNetwork1/ConsecutivePollFails"}

I know that I won’t need all this - I’ll only need one item probably. I’m just not sure how I need to set up the item to serve as a basis for the action commands…

Thanks,

Danny

Still working on this without success. I think I’m up to try number 23…

I used the invoke request to get the list of actions for this device (went to: http://mios:host:3480/data_request?id=invoke). I see that under urn:micasaverde-com:serviceId:ZWaveNetwork1, I have SendData (Node,Data), so it matches what I’d expect based on the example above. I also tested the above Luup code in a scene on the Vera, so I know it does work.

Using the Luup variable list (http://wiki.micasaverde.com/index.php/Luup_UPnP_Variables_and_Actions), I see that SendData uses a data variable of ‘Data’. As a result, I’m assuming that my rule command should be something like:

sendMiosAction(FRDoorbellBaseDevice, "urn:micasaverde-com:serviceId:ZWaveNetwork1/SendData", newArrayList('Node' -> '31', 'Data' -> '112 4 6 1 5'))

or 

sendMiosAction(FRDoorbellBaseDevice, "SendData", newArrayList('Node' -> '31', 'Data' -> '112 4 6 1 6'))

with an item of:

String   FRDoorbellBaseDevice "FR_Doorbell [%s]" (GDevices,gRoomFamily) {mios="unit:house,device:50/service/ZWaveNetwork1"}

Both of these commands run without error, but no sound played. I’m definitely running out of ideas…

@guessed, can you help me? I’m betting you’ll know exactly what I’m doing wrong…

Thanks,

Danny

If you’re doing this raw ZWave command in Vera/Luup:

luup.call_action('urn:micasaverde-com:serviceId:ZWaveNetwork1','SendData',
                 {Node='15',Data='112 4 6 1 2'},
                 1)

then these are always sent to the ZWave Controller Device (id=1 in Vera).

The MiOS Item Generator typically builds something like the following item declaration, attached to this MiOS Device:

Number   ZWaveId "ID [%d]" (GDevices) {mios="unit:house,device:1/id"}

making the equivalent openHAB look like something like (untested):

sendMiosAction(ZWaveId,
               "ZWaveNetwork1/SendData", 
               newArrayList('Node' -> 15,  'Data' -> '112 4 6 1 2'))

I don’t have this device, so I’m not sure what that does to it. I’d hazard a guess that the Aeon Hardware shows up as two devices in Vera (one for the Button, and one for the Chime component)

If so, can you publish the generated Items file content for both components? Failing that, can you send me (via PM) the JSON file from your Vera? I need to see how this thing appears, and what services it exposes, to see if something is missing in the Generator.

String  SDB_MUSIC_CTRL  "SDB - Controle Musique" (SDB)                  { mios="unit:house,device:41/service/DLNAMediaController1/Online" }

Typically this type of DLNA Service is reserved for things that are Network attached, like a Sonos or similar. If the Device in Vera has that family of DLNA Services, then the Generator would typically emit a bunch of output in the Items file.

From a quick read, I get the sense that “sounds” can only be added to the Aeon by directly uploading over USB using a direct-attached PC.

I might have this wrong, since it was a quick read of the Amazon page and this MiOS Discussion :wink:

Anyhow, if that’s the case, then it likely exposes a way to “invoke” those (pre-stored) sounds. Perhaps that’s what you’re looking to do by making the SendData call?

Given the writeup in the MiOS Discussion I suspect all you need is the correct form of the SendData call (above)

That worked. Did the base zwave device - just copied and pasted your example. Then I used that sendMiosAction (with my device ID and number of MP3 changed), and it played the sound just like it was supposed to. Have some repeating going on, but that was probably my testing method.

There’s only one device created, the one I attached the items for. You do copy MP3s over via USB, and then “call” them using the sendMiosAction to make them play. Much cruder than the sonos approach, but also much cheaper and gets me what I’m after…

Thank you very much for the help. I figured you’d be able to figure it out quickly and I wasn’t disappointed…

Danny

1 Like

For anyone that finds this in the future, I figured I’d put a little more info. The doorbell device defaults to playing the file twice. I only wanted it to play once, so I needed to change this. To set it to play once, this command needs sent (setting parameter 2 to 1 instance (last value):

sendMiosAction(ZWaveId, "ZWaveNetwork1/SendData", newArrayList('Node' -> 31,  'Data' -> '112 4 2 1 1'))
	

All the parameters for this device can be found at: https://community.smartthings.com/t/new-aeon-labs-doorbell-need-device-type-help/14924/75

Danny

1 Like